Projekt in neovim laden

OP #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?

OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.