Projekt in neovim laden

#8031997
Lesenswert?

Hallo, ich versuche gerade neovim mit lua aufzusetzen. Habe hier aber ein Problem beim Laden von einem Projekt. Meine Projektstruktur:

1
nvim
2
  - init.lua
3
  lua
4
    project.lua
5
  projects
6
    - init.lua
7
    - Lightstripe.lua

in project.lua habe ich die Funktion

1
vim.api.nvim_create_user_command("Project", function(opts)
2
  local projects = require("projects")
3
  local sub = opts.fargs[1]
4

5
  -- ----------------------------------------------------------
6
  -- :Project open <name>
7
  -- ----------------------------------------------------------
8
  if sub == "open" then
9
    local name = opts.fargs[2]
10
    if not name then
11
      vim.notify("Usage: :Project open <name>", vim.log.levels.ERROR)
12
      return
13
    end
14
    projects.load(name)
15
... ... 
16
... ...

in der init.lua in nvim/lua/projects habe ich die Funktion

1
-- ------------------------------------------------------------
2
-- Projekt laden
3
-- ------------------------------------------------------------
4
function M.load(name)
5
  local ok, project = pcall(require, "projects." .. name)
6
  if not ok then
7
    vim.notify("Projekt nicht gefunden: " .. name, vim.log.levels.ERROR)
8
    return
9
  end

Wenn ich jetzt im neovim das Commando

1
:Project open Lightstripe

aufrufe, bekomme ich das Ergebnis

1
Projekt nicht gefunden: Lightstripe

Diese Ausgabe kommt aus der init.lua in nvim/lua/projects. Die Lightstripe.lua liegt aber direkt neben der init.lua .

Warum wird Lightstripe.lua nicht mehr gefunden?

#8032408
Lesenswert?

Harald K. schrieb:

Chandler B. schrieb:

pcall(require, "projects." .. name)

Ist . bei Deinem System ein Pfadtrenner?

Sollte das nicht vielleicht ein Slash sein?

Also

1
> pcall(require, "projects/" .. name)
2
>

Das ist jetzt komplett aus dem hohlen Bauch geraten, weder nutze ich lua noch irgendeine vi-Variante.

nein, der Pfadtrenner war richtig. Das Problem war, dass in der Lightstripe.lua selber ein Fehler drinn war. Ich habe das notify in der load-Funktion angepasst

1
    vim.notify("Fehler beim Laden: \n" .. project, vim.log.levels.ERROR)

Hier gebe ich jetzt den Fehler von 'project' aus und nicht mehr nur den Dateiname. Dann ist die Fehlermeldung etwas detaillierter und sagt, wo genau der Fehler ist.

Aber dennoch danke für deine Antwort

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren