Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın
Sürüm Geçmişi
- "Release LSP"v8.12.001.06.2026
Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.
Orijinal içeriğin İngilizce son sürümünü görüntüleyinIf 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 Sunucusu
Intlayer Dil Sunucusu (LSP), IDE'nizi Intlayer farkındalığına sahip bir zeka ile geliştiren bir Dil Sunucusu Protokolü (LSP) uygulamasıdır. Şu anda sözlük anahtarı çağrıları için Tanıma Git (Go to Definition) özelliği sunarak, bileşeninizdeki useIntlayer("my-key") çağrısından onu tanımlayan .content.ts dosyasına doğrudan atlamanızı sağlar.
Neden LSP Kullanmalısınız?
Intlayer kullandığınızda, useIntlayer("homepage") gibi bir çağrı ile bunun src/homepage.content.ts içindeki tanımı arasındaki bağlantı örtüktür. Araçlar olmadan, dosyayı manuel olarak aramanız gerekir. LSP bu bağlantıyı açık hale getirir:
AI Ajanı Farkındalığı
AI kodlama ajanları (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex), sembolleri çözmek ve dosyalar arası ilişkileri anlamak için dil sunucusuna güvenir. Intlayer LSP çalışırken, ajanlar useIntlayer("key") çağrısını tanımına kadar takip edebilir; bu da onlara mevcut içerik anahtarları, her bir sözlüğün yapısı ve hangi dosyaların okunması veya düzenlenmesi gerektiği konusunda doğru bağlam sağlar.
Tanıma Git
Desteklenen bir getter çağrısı içindeki herhangi bir sözlük anahtarı dizesinin üzerine imlecinizi getirin ve F12 (veya Cmd/Ctrl+Tıklama) tuşuna basın. Editör, içerik tanımlama dosyasını açar ve imleci key: satırına yerleştirir.
Birleştirilmiş Sözlük Desteği
Bir anahtar birden fazla içerik dosyasına bölünmüş olabilir (Intlayer bunları birleştirir). Sunucu, her kaynak dosya için bir konum (Location) döndürür, böylece her tanıma gidebilirsiniz.
Her Yerde Çalışır
Tüm *-intlayer paketlerini destekler (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).
Desteklenen Getter Çağrıları
Sunucu, aşağıdaki işlev çağrılarını algılar ve ilk dize değişmezi argümanını sözlük anahtarı olarak çıkarır:
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| İşlev | Örnek |
|---|---|
useIntlayer | useIntlayer("hero") |
getIntlayer | getIntlayer("hero", locale) |
TypeScript jenerikleri ve ekstra argümanlar yoksayılır — yalnızca anahtar dizesi önemlidir.
useDictionaryvegetDictionary, bir dize anahtarı yerine zaten içe aktarılmış birDictionarynesnesini ilk argüman olarak alır, bu nedenle Tanıma Git özelliğinden yararlanmazlar ve sunucu tarafından izlenmezler.
Kurulum
LSP sunucusu, @intlayer/lsp paketinin bir parçası olarak dağıtılır:
Kodu panoya kopyala
npm install --save-dev @intlayer/lspPaket, editörlerin sunucu yürütülebilir dosyası olarak kullandığı intlayer-lsp ikili dosyasını (binary) sunar.
Claude Code Eklentisi Olarak Kurulum
Intlayer LSP, doğrudan Intlayer GitHub deposunda barındırılan bir Claude Code eklentisi olarak mevcuttur. Bunu yüklemek, Claude Code'a tüm useIntlayer / getIntlayer çağrılarınız için yerel Tanıma Git farkındalığı kazandırır.
1. Dil Sunucusu İkili Dosyasını Yükleyin
Kodu panoya kopyala
npm install -g @intlayer/lspBu, eklentinin lspServers girişinin çağırdığı intlayer-lsp ikili dosyasını PATH'inize yerleştirir.
2. Intlayer Pazaryerini Kaydedin ve Eklentiyi Yükleyin
Kodu panoya kopyala
claude plugin marketplace add intlayer@github:aymericzip/intlayerclaude plugin install intlayer-lsp@intlayerclaude plugin enable intlayer-lsp@intlayerClaude Code, enabledPlugins ayarlarınıza "intlayer-lsp@intlayer": true ekleyecek ve desteklenen dosya türlerinde (.ts, .tsx, .js, .jsx, .vue, .svelte) dil sunucusunu otomatik olarak başlatacaktır.
3. LSP Aracını Etkinleştirin (Henüz aktif değilse)
Bazı Claude Code sürümleri, LSP özellik bayrağının ayarlanmasını gerektirir. Kurulumdan sonra Tanıma Git çalışmıyorsa ~/.claude/settings.json dosyanıza aşağıdakileri ekleyin:
Kodu panoya kopyala
{ "env": { "ENABLE_LSP_TOOL": "1" }}Claude Code'u yeniden başlatın — Intlayer kod tabanınızda gezinirken artık grep yöntemine başvurmak yerine goToDefinition, findReferences ve diğer LSP işlemlerini kullanacaktır.
VS Code'da Kurulum (Uzantı Aracılığıyla — Önerilen)
Eğer Intlayer VS Code uzantısı yüklüyse, dil sunucusu otomatik olarak başlar. Ek yapılandırma gerekmez.
Kurulum ve diğer özellikler için VS Code uzantısı belgelerine bakın.
VS Code'da Manuel Kurulum
Intlayer uzantısını kullanmıyorsanız, dil sunucusunu vscode-glspc gibi genel bir LSP istemci uzantısı kullanarak veya kendi küçük uzantınızı yazarak manuel olarak bağlayabilirsiniz. Önerilen yaklaşım Intlayer uzantısını kullanmaktır.
Referans için, sunucu stdio üzerinden intlayer-lsp ikili dosyası ile başlatılır:
Kodu panoya kopyala
{ "intlayer.languageServer.command": "npx", "intlayer.languageServer.args": ["@intlayer/lsp"]}Intlayer uzantısı, sunucuyu başlatmak için bu ayarları okur. Yalnızca uzantıya güveniyorsanız, manuel ayarlara gerek yoktur.
Cursor'da Kurulum
Cursor, yerleşik AI özelliklerine sahip bir VS Code çatalıdır (fork). Aynı uzantı ekosistemini kullanır, bu nedenle Intlayer VS Code uzantısı herhangi bir ek yapılandırma olmadan çalışır — bir kez yükleyin ve Cursor bunu otomatik olarak algılar.
Manuel bir yapılandırmayı tercih ederseniz, Cursor da çalışma alanı kökünden .vscode/settings.json dosyasını okur, böylece yukarıdaki VS Code kod parçacığı doğrudan uygulanır.
Windsurf'te Kurulum
Windsurf (Codeium tarafından geliştirilmiştir), VS Code tabanlı bir diğer editördür. VS Code Pazaryeri'nden Intlayer uzantısını yükleyin; dil sunucusu, VS Code ve Cursor'da olduğu gibi otomatik olarak etkinleşir.
Manuel yapılandırma için, proje kökünde .vscode/settings.json dosyası oluşturun:
Kodu panoya kopyala
{ "intlayer.languageServer.command": "npx", "intlayer.languageServer.args": ["@intlayer/lsp"]}Zed'de Kurulum
Zed, dil ayarları aracılığıyla yerel LSP desteğine sahiptir. Zed kullanıcı ayarlarınıza (~/.config/zed/settings.json) bir giriş ekleyin:
Kodu panoya kopyala
{ "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", "..."] } }}"..." yer tutucusu, Zed'e Intlayer sunucusunun yanında varsayılan dil sunucularını da tutmasını söyler.
AI Ajanı CLI'ları (Claude Code, Codex vb.) İçin Kurulum
Claude Code, birinci sınıf LSP eklenti desteğine sahiptir — doğrudan terminal oturumlarınızda tam Tanıma Git deneyimini elde etmek için yukarıdaki Claude Code Eklentisi kurulumunu takip edin.
OpenAI Codex ve diğer terminal tabanlı araçlar henüz LSP istemcileri olarak hareket etmemektedir — kalıcı bir dil sunucusu oturumu sürdürmek yerine dosyaları doğrudan okuyup yazarlar. Bu araçlar için, LSP'nin çalışıyor olmasının değeri dolaylı olarak ortaya çıkar: Sunucu bir yardımcı editörde (VS Code, Cursor, Windsurf, ...) aktif olduğunda, editörün canlı dizini, editör tarafından sağlanan bağlam (örneğin, Cursor Composer, Windsurf Cascade, GitHub Copilot Chat) aracılığıyla sorgulayabilen herhangi bir AI ajanının kullanımına sunulur.
Açık bir editör olmadan yalnızca bir terminalde çalışıyorsanız, dil sunucusunu arka planda başlatabilirsiniz, böylece daha sonra aynı çalışma alanına bağlanan herhangi bir editör için hazır olur:
Kodu panoya kopyala
# Sunucuyu arka planda aktif tutunnpx @intlayer/lsp &Neovim'de Manuel Kurulum
nvim-lspconfig kullanarak özel bir sunucu yapılandırması kaydedin:
Kodu panoya kopyala
local lspconfig = require('lspconfig')local configs = require('lspconfig.configs')if not configs.intlayer_lsp then configs.intlayer_lsp = { default_config = { -- Sunucuyu npx ile başlatın, böylece genel kuruluma gerek kalmaz 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({})Neovim'i yeniden başlattıktan sonra, bir Intlayer anahtarı üzerinde gd tuşuna basmak Tanıma Git işlemini çağıracaktır.
Diğer Editörlerde Manuel Kurulum
Dil Sunucusu Protokolünü destekleyen herhangi bir editör @intlayer/lsp kullanabilir. Sunucu:
- Taşıma (Transport) – Node.js IPC / stdio (standart)
- Yürütülebilir Dosya –
npx @intlayer/lsp(veya yerel olarak yüklenmişintlayer-lspikili dosyası) - Yetenekler –
definitionProvider: true,textDocumentSync: Incremental
Tam yapılandırma biçimi için editörünüzün LSP belgelerine başvurun (örneğin, coc.nvim için languageserver.json veya Helix içindeki LSP istemci ayarları).
Örnek: coc.nvim
Kodu panoya kopyala
{ "languageserver": { "intlayer": { "command": "npx", "args": ["@intlayer/lsp"], "filetypes": [ "typescript", "typescriptreact", "javascript", "javascriptreact", "vue", "svelte" ], "rootPatterns": [ "intlayer.config.ts", "intlayer.config.js", "package.json" ] } }}Örnek: Helix
Kodu panoya kopyala
[[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"]Nasıl Çalışır?
Sunucu başlatıldığında, getConfiguration() kullanarak çalışma alanı kökünden Intlayer yapılandırmasını çözer. Bu, derlenmiş sözlükleri bulmak için gereken build ve system yollarını sunucuya sağlar.
Her Tanıma Git isteğinde:
- Sunucu, açık olan belgenin tam metnini okur.
- Düzenli bir ifade (regex) kullanarak getter çağrılarını (
useIntlayer,getIntlayervb.) tarar. - İmleç konumunun bu çağrılardan birinin içine düşüp düşmediğini kontrol eder.
- Öyleyse, sözlük anahtarını (regex'in yakalama grubu 3) çıkarır ve bu anahtarı tanımlayan her bir içerik dosyasını bulmak için
getUnmergedDictionaries()işlevini çağırır. - Eşleşen her dosyayı okur ve imleci tam olarak konumlandırmak için
key: "<key>"içeren satırı bulur. - Kaynak dosya başına bir adet olmak üzere
Locationnesnelerinden oluşan bir dizi döndürür.
Yapılandırma tembelce (lazy) çözülür ve oturum başına önbelleğe alınır; her initialize isteğinde (örneğin yeni bir çalışma alanı klasörü açtığınızda) sıfırlanır.
Sorun Giderme
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Belirti | Olası Neden | Çözüm |
|---|---|---|
| Tanıma Git hiçbir şey yapmıyor | Sunucu çalışmıyor | @intlayer/lsp paketinin kurulu olduğunu ve editörün bunu başlattığını kontrol edin |
| Yanlış çalışma alanı kökü algılandı | Birden fazla çalışma alanı klasörü | intlayer.config.ts dosyasını içeren klasörün ilk çalışma alanı klasörü olduğundan emin olun |
| Bir anahtar için tanımlar bulunamadı | Yapılandırma çözülmedi | intlayer.config.ts (veya .js) dosyasının çalışma alanı kökünde mevcut olduğunu doğrulayın |
| Sunucu başlangıçta çöküyor | Node.js sürümü çok eski | Node.js ≥ 14.18 gerektirir |