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'
dan perintah tag lainnya.'omnifunc'
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.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
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
Defaultnya adalah menghentikan semua klien buffer.:LspRestart
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