nvim-lspconfig adalah repo "hanya data", yang menyediakan konfigurasi klien Nvim LSP dasar dan default untuk berbagai server LSP.
Lihat dokumentasi untuk semua konfigurasi atau :help lspconfig-all dari Nvim.
:help lsp ), laporkan ke inti Neovim. 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 untuk melihat status atau memecahkan masalah. Baca :help lspconfig untuk detailnya. Baca :help lspconfig-all untuk daftar lengkap detail khusus server. Untuk server yang tidak ada di $PATH Anda (misalnya jdtls , elixirls ), Anda harus menyetel parameter cmd secara manual saat memanggil setup() .
Nvim menetapkan beberapa opsi dan pemetaan default ketika buffer terpasang ke LSP (lihat :help lsp-config ). Secara khusus:
'tagfunc'<C-]> dan perintah tag lainnya.'omnifunc'<CX><CO> dalam mode Sisipkan. Untuk penyelesaian otomatis , diperlukan plugin pelengkapan otomatis.'formatexpr'gq .K dipetakan ke vim.lsp.buf.hover() dalam mode Normal.[d dan ]d dipetakan ke vim.diagnostic.goto_prev() dan vim.diagnostic.goto_next() , masing-masing.<CW>d dipetakan ke vim.diagnostic.open_float() . Kustomisasi lebih lanjut dapat dicapai dengan menggunakan acara perintah otomatis LspAttach . Peristiwa perintah otomatis LspDetach dapat digunakan untuk "membersihkan" pemetaan jika buffer terlepas dari server LSP. Lihat :h LspAttach dan :h LspDetach untuk detail dan contoh. Lihat :h lsp-buf untuk detail tentang fungsi LSP lainnya.
Opsi konfigurasi tambahan dapat diberikan untuk setiap server LSP dengan meneruskan argumen ke fungsi setup . Lihat :h lspconfig-setup untuk detailnya. Contoh:
local lspconfig = require ( ' lspconfig ' )
lspconfig . rust_analyzer . setup {
-- Server-specific settings. See `:help lspconfig-setup`
settings = {
[ ' rust-analyzer ' ] = {},
},
}Alasan paling umum mengapa server bahasa tidak memulai atau terhubung adalah:
cmd yang ditentukan di setiap modul Lua server dari baris perintah dan melihat bahwa server bahasa dimulai. Jika cmd adalah nama yang dapat dieksekusi dan bukan jalur absolut ke file yang dapat dieksekusi, pastikan nama tersebut ada di jalur Anda.:set ft? menunjukkan tipe file dan bukan nilai kosong..git , tetapi setiap server mendefinisikan konfigurasi root dalam file lua. Lihat doc/configs.md atau sumber untuk daftar direktori root.capabilities untuk setiap setup {} jika ingin hal ini diterapkan.setup {} dua kali untuk server yang sama . Panggilan kedua untuk setup {} akan menimpa panggilan pertama. Jika Anda menemukan bug dengan fungsionalitas LSP, laporkan ke inti Neovim.
Sebelum melaporkan bug, periksa log Anda dan keluaran :LspInfo . Tambahkan yang berikut ini ke init.vim Anda untuk mengaktifkan logging:
vim . lsp . set_log_level ( " debug " )Coba jalankan server bahasa, dan buka log dengan:
:LspLog
Seringkali, alasan kegagalan ada di log.
:LspInfo (alias yang tidak digunakan lagi :che lspconfig ) menunjukkan status server bahasa yang aktif dan dikonfigurasi.:LspStart <config_name> Mulai nama server yang diminta. Hanya akan berhasil dimulai jika perintah mendeteksi direktori root yang cocok dengan konfigurasi saat ini. Teruskan autostart = false ke panggilan .setup{} Anda untuk server bahasa jika Anda ingin meluncurkan klien hanya dengan perintah ini. Default untuk semua server yang cocok dengan tipe file buffer saat ini.:LspStop <client_id> Defaultnya adalah menghentikan semua klien buffer.:LspRestart <client_id> Defaultnya adalah memulai ulang semua klien buffer. Jika server bahasa hilang dari configs.md, menyumbangkan konfigurasi baru untuk itu akan membantu orang lain, terutama jika server memerlukan pengaturan khusus. Ikuti langkah-langkah berikut:
lua/lspconfig/configs/SERVER_NAME.lua .Untuk menerbitkan rilis:
Hak Cipta Kontributor Neovim. Semua hak dilindungi undang-undang.
nvim-lspconfig dilisensikan berdasarkan ketentuan lisensi Apache 2.0.
Lihat LISENSI.md