Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Release LSP"v8.12.01.6.2026
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Intlayer LSP-Server
Der Intlayer Language Server ist eine Implementierung des Language Server Protocols (LSP), die Ihre IDE mit Intlayer-spezifischer Intelligenz erweitert. Er bietet derzeit Gehe zu Definition (Go to Definition) für Wörterbuchschlüssel-Aufrufe, sodass Sie direkt von useIntlayer("my-key") in Ihrer Komponente zu der .content.ts-Datei springen können, die diesen deklariert.
Warum den LSP verwenden?
Wenn Sie Intlayer verwenden, ist die Verbindung zwischen einem Aufrufe wie useIntlayer("homepage") und seiner Deklaration in src/homepage.content.ts implizit. Ohne Tooling müssen Sie manuell nach der Datei suchen. Der LSP macht diese Verbindung explizit:
Erkennung durch AI-Agenten
AI-Programmierassistenten (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex) verlassen sich auf den Language Server, um Symbole aufzulösen und dateiübergreifende Beziehungen zu verstehen. Wenn der Intlayer-LSP läuft, können Agenten useIntlayer("key") bis zu seiner Deklaration zurückverfolgen. Dies gibt ihnen genauen Kontext über verfügbare Inhaltsschlüssel, die Struktur jedes Wörterbuchs und die zu lesenden oder zu bearbeitenden Dateien.
Gehe zu Definition
Platzieren Sie Ihren Cursor auf einer beliebigen Wörterbuchschlüssel-Zeichenkette innerhalb eines unterstützten Getter-Aufrufs und drücken Sie F12 (oder Cmd/Ctrl+Klick). Der Editor öffnet die Inhaltsdeklarationsdatei und positioniert den Cursor auf der Zeile key:.
Unterstützung für zusammengeführte Wörterbücher
Ein Schlüssel kann auf mehrere Inhaltsdateien aufgeteilt sein (Intlayer führt sie zusammen). Der Server gibt einen Ort (Location) pro Quelldatei zurück, sodass Sie zu jeder Deklaration navigieren können.
Funktioniert überall
Unterstützt alle *-intlayer-Pakete (next-intlayer, react-intlayer, vue-intlayer, svelte-intlayer, solid-intlayer, preact-intlayer, angular-intlayer, lit-intlayer, express-intlayer, hono-intlayer, fastify-intlayer, adonis-intlayer, intlayer).
Unterstützte Getter-Aufrufe
Der Server erkennt die folgenden Funktionsaufrufe und extrahiert das erste String-Literal-Argument als Wörterbuchschlüssel:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Funktion | Beispiel |
|---|---|
useIntlayer | useIntlayer("hero") |
getIntlayer | getIntlayer("hero", locale) |
TypeScript-Generics und zusätzliche Argumente werden ignoriert – nur die Schlüssel-Zeichenkette zählt.
useDictionaryundgetDictionaryerwarten ein bereits importiertesDictionary-Objekt als erstes Argument anstelle eines Schlüssel-Strings, weshalb sie nicht von "Gehe zu Definition" profitieren und nicht vom Server verfolgt werden.
Installation
Der LSP-Server wird als Teil von @intlayer/lsp verteilt:
Kopieren Sie den Code in die Zwischenablage
npm install --save-dev @intlayer/lspDas Paket stellt das Binärprogramm intlayer-lsp zur Verfügung, das Editoren als Server-Executable verwenden.
Einrichtung als Claude Code Plugin
Der Intlayer LSP ist als Claude Code Plugin verfügbar, das direkt im Intlayer-GitHub-Repository gehostet wird. Durch die Installation erhält Claude Code native Unterstützung für "Gehe zu Definition" für all Ihre useIntlayer- / getIntlayer-Aufrufe.
1. Installieren Sie das Language-Server-Binärprogramm
Kopieren Sie den Code in die Zwischenablage
npm install -g @intlayer/lspDadurch wird das Binärprogramm intlayer-lsp zu Ihrem PATH hinzugefügt, welches durch den Eintrag lspServers des Plugins aufgerufen wird.
2. Registrieren Sie den Intlayer-Marktplatz und installieren Sie das Plugin
Kopieren Sie den Code in die Zwischenablage
claude plugin marketplace add intlayer@github:aymericzip/intlayerclaude plugin install intlayer-lsp@intlayerclaude plugin enable intlayer-lsp@intlayerClaude Code fügt "intlayer-lsp@intlayer": true zu Ihren enabledPlugins hinzu und startet den Language Server automatisch für die unterstützten Dateitypen (.ts, .tsx, .js, .jsx, .vue, .svelte).
3. Aktivieren Sie das LSP-Tool (falls nicht bereits aktiv)
Einige Claude Code-Versionen erfordern das Setzen des LSP-Feature-Flags. Fügen Sie Folgendes zu Ihrer ~/.claude/settings.json hinzu, wenn "Gehe zu Definition" nach der Installation nicht funktioniert:
Kopieren Sie den Code in die Zwischenablage
{ "env": { "ENABLE_LSP_TOOL": "1" }}Starten Sie Claude Code neu – bei der Navigation in Ihrer Intlayer-Codebasis wird nun goToDefinition, findReferences und andere LSP-Operationen anstelle eines Fallbacks auf grep verwendet.
Einrichtung in VS Code (über Erweiterung — empfohlen)
Wenn Sie die Intlayer VS Code-Erweiterung installiert haben, startet der Language Server automatisch. Keine zusätzliche Konfiguration erforderlich.
Siehe die VS Code-Erweiterungsdokumentation für Installation und weitere Funktionen.
Manuelle Einrichtung in VS Code
Wenn Sie die Intlayer-Erweiterung nicht verwenden, können Sie den Language Server manuell über eine generische LSP-Client-Erweiterung wie vscode-glspc oder durch Schreiben einer eigenen kleinen Erweiterung einrichten. Der empfohlene Weg ist die Verwendung der Intlayer-Erweiterung.
Als Referenz startet der Server über die Binärdatei intlayer-lsp über stdio:
Kopieren Sie den Code in die Zwischenablage
{ "intlayer.languageServer.command": "npx", "intlayer.languageServer.args": ["@intlayer/lsp"]}Die Intlayer-Erweiterung liest diese Einstellungen, um den Server zu starten. Wenn Sie sich ausschließlich auf die Erweiterung verlassen, sind keine manuellen Einstellungen erforderlich.
Einrichtung in Cursor
Cursor ist ein VS Code-Fork mit integrierten AI-Funktionen. Es verwendet dasselbe Erweiterungs-Ökosystem, daher funktioniert die Intlayer VS Code-Erweiterung ohne zusätzliche Konfiguration – installieren Sie sie einmal und Cursor erkennt sie automatisch.
Wenn Sie eine manuelle Konfiguration bevorzugen, liest Cursor auch .vscode/settings.json aus dem Workspace-Root, sodass das obige VS Code-Snippet direkt angewendet wird.
Einrichtung in Windsurf
Windsurf (von Codeium) ist ein weiterer auf VS Code basierender Editor. Installieren Sie die Intlayer-Erweiterung aus dem VS Code Marketplace und der Language Server wird automatisch aktiviert, genau wie in VS Code und Cursor.
Für eine manuelle Konfiguration erstellen Sie .vscode/settings.json im Projekt-Root:
Kopieren Sie den Code in die Zwischenablage
{ "intlayer.languageServer.command": "npx", "intlayer.languageServer.args": ["@intlayer/lsp"]}Einrichtung in Zed
Zed bietet native LSP-Unterstützung über seine Spracheinstellungen. Fügen Sie einen Eintrag in Ihren Zed-Benutzereinstellungen hinzu (~/.config/zed/settings.json):
Kopieren Sie den Code in die Zwischenablage
{ "lsp": { "intlayer-lsp": { "binary": { "path": "npx", "arguments": ["--yes", "@intlayer/lsp"] } } }, "languages": { "TypeScript": { "language_servers": ["intlayer-lsp", "..."] }, "TSX": { "language_servers": ["intlayer-lsp", "..."] }, "JavaScript": { "language_servers": ["intlayer-lsp", "..."] }, "Vue.js": { "language_servers": ["intlayer-lsp", "..."] }, "Svelte": { "language_servers": ["intlayer-lsp", "..."] } }}Der Platzhalter "..." teilt Zed mit, die Standard-Language-Server neben dem von Intlayer beizubehalten.
Einrichtung für AI-Agenten-CLIs (Claude Code, Codex, etc.)
Claude Code verfügt über erstklassige LSP-Plugin-Unterstützung – folgen Sie der Claude Code Plugin Einrichtung oben, um die vollständige "Gehe zu Definition"-Erfahrung direkt in Ihren Terminal-Sitzungen zu nutzen.
OpenAI Codex und andere Terminal-basierte Tools agieren noch nicht als LSP-Clients – sie lesen und schreiben Dateien direkt, anstatt eine persistente Language-Server-Sitzung aufrechtzuerhalten. Für diese Tools ergibt sich der Wert des laufenden LSPs indirekt: Wenn der Server in einem Begleit-Editor (VS Code, Cursor, Windsurf, ...) aktiv ist, steht der Live-Index des Editors jedem AI-Agenten zur Verfügung, der ihn über den vom Editor bereitgestellten Kontext abfragen kann (z. B. Cursor Composer, Windsurf Cascade, GitHub Copilot Chat).
Wenn Sie ausschließlich in einem Terminal ohne geöffneten Editor arbeiten, können Sie den Language Server im Hintergrund starten, damit er für jeden Editor bereit ist, der sich später mit demselben Workspace verbindet:
Kopieren Sie den Code in die Zwischenablage
# Server im Hintergrund aktiv haltennpx @intlayer/lsp &Manuelle Einrichtung in Neovim
Registrieren Sie mit nvim-lspconfig eine benutzerdefinierte Serverkonfiguration:
Kopieren Sie den Code in die Zwischenablage
local lspconfig = require('lspconfig')local configs = require('lspconfig.configs')if not configs.intlayer_lsp then configs.intlayer_lsp = { default_config = { -- Server mit npx starten, damit keine globale Installation erforderlich ist cmd = { 'npx', '--yes', '@intlayer/lsp' }, filetypes = { 'typescript', 'typescriptreact', 'javascript', 'javascriptreact', 'vue', 'svelte', }, root_dir = lspconfig.util.root_pattern( 'intlayer.config.ts', 'intlayer.config.js', 'package.json' ), }, }endlspconfig.intlayer_lsp.setup({})Nach dem Neustart von Neovim ruft das Drücken von gd über einem Intlayer-Schlüssel "Gehe zu Definition" auf.
Manuelle Einrichtung in anderen Editoren
Jeder Editor, der das Language Server Protocol unterstützt, kann @intlayer/lsp verwenden. Der Server bietet:
- Transport – Node.js IPC / stdio (Standard)
- Executable –
npx @intlayer/lsp(oder das lokal installierteintlayer-lsp-Binärprogramm) - Capabilities –
definitionProvider: true,textDocumentSync: Incremental
Konsultieren Sie die LSP-Dokumentation Ihres Editors für das genaue Konfigurationsformat (z. B. languageserver.json für coc.nvim oder die LSP-Client-Einstellungen in Helix).
Beispiel: coc.nvim
Kopieren Sie den Code in die Zwischenablage
{ "languageserver": { "intlayer": { "command": "npx", "args": ["@intlayer/lsp"], "filetypes": [ "typescript", "typescriptreact", "javascript", "javascriptreact", "vue", "svelte" ], "rootPatterns": [ "intlayer.config.ts", "intlayer.config.js", "package.json" ] } }}Beispiel: Helix
Kopieren Sie den Code in die Zwischenablage
[[language]]name = "typescript"language-servers = ["intlayer-lsp", "typescript-language-server"][[language]]name = "tsx"language-servers = ["intlayer-lsp", "typescript-language-server"][language-server.intlayer-lsp]command = "npx"args = ["@intlayer/lsp"]Wie es funktioniert
Wenn der Server startet, löst er die Intlayer-Konfiguration aus dem Workspace-Root mithilfe von getConfiguration() auf. Dies gibt ihm die build- und system-Pfade, die zum Auffinden von kompilierten Wörterbüchern benötigt werden.
Bei jeder Gehe zu Definition-Anfrage:
- Der Server liest den vollständigen Text des geöffneten Dokuments.
- Er scannt nach Getter-Aufrufen (
useIntlayer,getIntlayerusw.) mithilfe eines regulären Ausdrucks. - Er prüft, ob die Cursorposition in einen dieser Aufrufe fällt.
- Wenn dies der Fall ist, extrahiert er den Wörterbuchschlüssel (Erfassungsgruppe 3 des regulären Ausdrucks) und ruft
getUnmergedDictionaries()auf, um jede Inhaltsdatei zu lokalisieren, die diesen Schlüssel deklariert. - Er liest jede übereinstimmende Datei und findet die genaue Zeile mit
key: "<key>", um den Cursor präzise zu positionieren. - Er gibt ein Array von
Location-Objekten zurück – eines pro Quelldatei.
Die Konfiguration wird verzögert aufgelöst und pro Sitzung zwischengespeichert. Sie wird bei jeder initialize-Anfrage (z. B. wenn Sie einen neuen Workspace-Ordner öffnen) zurückgesetzt.
Fehlerbehebung
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| Gehe zu Definition tut nichts | Server läuft nicht | Überprüfen Sie, ob @intlayer/lsp installiert ist und vom Editor gestartet wird |
| Falscher Workspace-Root erkannt | Mehrere Workspace-Ordner | Stellen Sie sicher, dass der Ordner, der intlayer.config.ts enthält, der erste Workspace-Ordner ist |
| Definitionen für einen Schlüssel nicht gefunden | Konfiguration nicht aufgelöst | Überprüfen Sie, ob intlayer.config.ts (oder .js) im Workspace-Root existiert |
| Server stürzt beim Start ab | Node.js-Version zu alt | Benötigt Node.js ≥ 14.18 |