nvim-lspconfig عبارة عن مستودع "بيانات فقط"، يوفر تكوينات عميل Nvim LSP الأساسية والافتراضية لخوادم LSP المختلفة.
اعرض الوثائق الخاصة بجميع التكوينات أو :help lspconfig-all
من Nvim.
:help lsp
)، فأبلغ عنه إلى Neovim core. git clone https://github.com/neovim/nvim-lspconfig ~/.config/nvim/pack/nvim/start/nvim-lspconfig
npm i -g pyright
require ' lspconfig ' . pyright . setup {}
:help lspconfig-all
. nvim main.py
:checkhealth lsp
لمعرفة الحالة أو لاستكشاف الأخطاء وإصلاحها. اقرأ :help lspconfig
للحصول على التفاصيل. اقرأ :help lspconfig-all
للحصول على القائمة الكاملة للتفاصيل الخاصة بالخادم. بالنسبة للخوادم غير الموجودة على $PATH
(على سبيل المثال، jdtls
، elixirls
) ، يجب عليك تعيين المعلمة cmd
يدويًا عند استدعاء setup()
.
يقوم Nvim بتعيين بعض الخيارات والتعيينات الافتراضية عندما يتصل المخزن المؤقت بـ LSP (راجع :help lsp-config
). بخاصة:
'tagfunc'
<C-]>
وأوامر العلامات الأخرى.'omnifunc'
<CX><CO>
في وضع الإدراج. للإكمال التلقائي ، مطلوب مكون إضافي للإكمال التلقائي.'formatexpr'
gq
.K
بتعيين vim.lsp.buf.hover()
في الوضع العادي.[d
و ]d
يربطان vim.diagnostic.goto_prev()
و vim.diagnostic.goto_next()
على التوالي.<CW>d
بتعيين vim.diagnostic.open_float()
. يمكن تحقيق المزيد من التخصيص باستخدام حدث الأوامر التلقائية LspAttach
. يمكن استخدام حدث الأوامر التلقائية LspDetach
"لتنظيف" التعيينات في حالة فصل المخزن المؤقت عن خادم LSP. راجع :h LspAttach
و :h LspDetach
للحصول على التفاصيل والأمثلة. راجع :h lsp-buf
للحصول على تفاصيل حول وظائف LSP الأخرى.
يمكن توفير خيارات تكوين إضافية لكل خادم LSP عن طريق تمرير الوسائط إلى وظيفة setup
. راجع :h lspconfig-setup
للحصول على التفاصيل. مثال:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}
الأسباب الأكثر شيوعًا لعدم بدء تشغيل خادم اللغة أو إرفاقه هي:
cmd
المحدد في وحدة Lua لكل خادم من سطر الأوامر والتأكد من بدء تشغيل خادم اللغة. إذا كان cmd
اسمًا قابلاً للتنفيذ بدلاً من المسار المطلق للملف القابل للتنفيذ، فتأكد من وجوده على المسار الخاص بك.:set ft?
يظهر نوع الملف وليس قيمة فارغة..git
، لكن كل خادم يحدد التكوين الجذري في ملف lua. راجع doc/configs.md أو المصدر للحصول على قائمة الدلائل الجذرية.capabilities
لكل setup {}
إذا كنت تريد تفعيلها.setup {}
مرتين لنفس الخادم . الاستدعاء الثاني setup {}
سوف يحل محل الأول. إذا وجدت خطأً في وظيفة LSP، فأبلغ عنه إلى Neovim core.
قبل الإبلاغ عن خطأ ما، تحقق من سجلاتك ومخرجات :LspInfo
. أضف ما يلي إلى init.vim الخاص بك لتمكين التسجيل:
vim . lsp . set_log_level ( " debug " )
حاول تشغيل خادم اللغة، وافتح السجل باستخدام:
:LspLog
في معظم الأحيان، يكون سبب الفشل موجودًا في السجلات.
:LspInfo
(الاسم المستعار المهمل لـ :che lspconfig
) يعرض حالة خوادم اللغة النشطة والمكونة.:LspStart <config_name>
ابدأ اسم الخادم المطلوب. لن يبدأ بنجاح إلا إذا اكتشف الأمر دليلًا جذرًا يطابق التكوين الحالي. قم بتمرير autostart = false
لاستدعاء .setup{}
لخادم اللغة إذا كنت ترغب في تشغيل العملاء باستخدام هذا الأمر فقط. الإعدادات الافتراضية لجميع الخوادم التي تطابق نوع ملف المخزن المؤقت الحالي.:LspStop <client_id>
الافتراضي هو إيقاف كافة عملاء المخزن المؤقت.:LspRestart <client_id>
الافتراضي هو إعادة تشغيل كافة عملاء المخزن المؤقت. إذا كان خادم اللغة مفقودًا من configs.md، فإن المساهمة بتكوين جديد له يساعد الآخرين، خاصة إذا كان الخادم يتطلب إعدادًا خاصًا. اتبع الخطوات التالية:
lua/lspconfig/configs/SERVER_NAME.lua
.لنشر الإصدار:
حقوق الطبع والنشر للمساهمين Neovim. جميع الحقوق محفوظة.
تم ترخيص nvim-lspconfig بموجب شروط ترخيص Apache 2.0.
راجع LICENSE.md