Compare commits

..

No commits in common. "6401649361a7dc233bf0ae2417011d39b224af2c" and "95d8c16621a90c454bd5aeace0237730aa2b7e54" have entirely different histories.

View File

@ -1,3 +1,54 @@
-- Language servers
local ensure_installed = {
'clangd', -- C/C++
'lua_ls', -- Lua
'opencl_ls', -- OpenCL
'harper_ls', -- Spelling & grammar
'marksman', -- Markdown
'tinymist', -- Typst
}
if vim.fn.executable('npm') == 1 then
local ensure_install_from_npm = {
'ansiblels', -- Ansible
'bashls', -- Bash
'docker_compose_language_service', -- Docker Compose
'dockerls', -- Dockerfile
'html', -- HTML
'jsonls', -- JSON
'pyright', -- Python
'vimls', -- VimScript
'yamlls', -- YAML
}
for _, package in ipairs(ensure_install_from_npm) do
table.insert(ensure_installed, package)
end
end
if vim.fn.executable('pip') == 1 then
local ensure_install_from_pip = {
'cmake', -- CMake
'esbonio', -- Sphinx
'ruff', -- Python
}
for _, package in ipairs(ensure_install_from_pip) do
table.insert(ensure_installed, package)
end
end
if vim.fn.executable('go') == 1 then
local ensure_installed_from_go = {
'gopls', -- Go
}
for _, package in ipairs(ensure_installed_from_go) do
table.insert(ensure_installed, package)
end
end
if vim.fn.has('win32') == 1 then
table.insert(ensure_installed, 'powershell_es')
end
return { return {
'neovim/nvim-lspconfig', 'neovim/nvim-lspconfig',
dependencies = { dependencies = {
@ -80,48 +131,9 @@ return {
end end
require('mason').setup() require('mason').setup()
local language_servers = {
'clangd', -- C/C++
'lua_ls', -- Lua
'opencl_ls', -- OpenCL
'harper_ls', -- Spelling & grammar
'marksman', -- Markdown
'tinymist', -- Typst
}
if vim.fn.executable('npm') == 1 then
for _, package in ipairs({
'ansiblels', -- Ansible
'bashls', -- Bash
'docker_compose_language_service', -- Docker Compose
'dockerls', -- Dockerfile
'html', -- HTML
'jsonls', -- JSON
'pyright', -- Python
'vimls', -- VimScript
'yamlls', -- YAML
}) do table.insert(language_servers, package) end
end
if vim.fn.executable('pip') == 1 then
for _, package in ipairs({
'cmake', -- CMake
'esbonio', -- Sphinx
'ruff', -- Python
}) do table.insert(language_servers, package) end
end
if vim.fn.executable('go') == 1 then
table.insert(language_servers, 'gopls') -- Go
end
if vim.fn.has('win32') == 1 then
table.insert(language_servers, 'powershell_es') -- PowerShell
end
require('mason-lspconfig').setup({ require('mason-lspconfig').setup({
ensure_installed = language_servers, automatic_enable = true,
ensure_installed = ensure_installed,
}) })
-- (Dis|en)able harper-ls when spell mode is (dis|en)enabled. -- (Dis|en)able harper-ls when spell mode is (dis|en)enabled.
@ -224,6 +236,12 @@ return {
-- Refactoring mappings -- Refactoring mappings
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts) vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
-- Help mappings
-- TODO: v0.10.0 |vim.lsp.start()| now maps |K| to use
-- |vim.lsp.buf.hover()| if the server supports it, unless
-- |'keywordprg'| was customized before calling |vim.lsp.start()|.
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
-- Format whole buffer mapping -- Format whole buffer mapping
vim.keymap.set('n', '<leader>gq', vim.lsp.buf.format, opts) vim.keymap.set('n', '<leader>gq', vim.lsp.buf.format, opts)
@ -248,10 +266,10 @@ return {
local mason_registry = require('mason-registry') local mason_registry = require('mason-registry')
if mason_registry.is_installed('harper-ls') then if mason_registry.is_installed('harper-ls') then
-- Disable builtin spell mode highlighting -- Disable builtin spell mode highlighting
vim.cmd.highlight('SpellBad', 'NONE') vim.cmd.highlight('SpellBad', 'NONE')
vim.cmd.highlight('SpellCap', 'NONE') vim.cmd.highlight('SpellCap', 'NONE')
vim.cmd.highlight('SpellLocal', 'NONE') vim.cmd.highlight('SpellLocal', 'NONE')
vim.cmd.highlight('SpellRare', 'NONE') vim.cmd.highlight('SpellRare', 'NONE')
end end
end end
} }