|
|
@ -12,17 +12,16 @@ lsp.setup_nvim_cmp({ |
|
|
|
-- (Optional) Configure lua language server for neovim |
|
|
|
lsp.nvim_workspace() |
|
|
|
|
|
|
|
local platform = require("mason-core.platform"); |
|
|
|
local servers = { |
|
|
|
'tailwindcss', |
|
|
|
'tsserver', |
|
|
|
'texlab', |
|
|
|
'pyright', |
|
|
|
'efm', |
|
|
|
'ltex', |
|
|
|
'jsonls' |
|
|
|
} |
|
|
|
|
|
|
|
local platform = require("mason-core.platform"); |
|
|
|
if not (platform.is.linux_x64_musl or |
|
|
|
platform.is.linux_arm64_musl) |
|
|
|
then |
|
|
@ -31,15 +30,11 @@ end |
|
|
|
|
|
|
|
lsp.ensure_installed(servers) |
|
|
|
|
|
|
|
lsp.configure("efm", { |
|
|
|
settings = { |
|
|
|
languages = { |
|
|
|
sh = "shellcheck -x", |
|
|
|
bash = "shellcheck -x", |
|
|
|
zsh = "shellcheck -x", |
|
|
|
} |
|
|
|
}, |
|
|
|
filetypes = { "sh", "bash", "zsh" } |
|
|
|
lsp.configure("tsserver", { |
|
|
|
on_init = function(client) |
|
|
|
client.server_capabilities.documentFormattingProvider = false |
|
|
|
client.server_capabilities.documentFormattingRangeProvider = false |
|
|
|
end |
|
|
|
}) |
|
|
|
|
|
|
|
lsp.on_attach(function(client, bufnr) |
|
|
@ -56,3 +51,40 @@ vim.diagnostic.config({ |
|
|
|
underline = true, |
|
|
|
float = true, |
|
|
|
}) |
|
|
|
|
|
|
|
local null_ls = require('null-ls') |
|
|
|
local null_opts = lsp.build_options('null-ls', {}) |
|
|
|
|
|
|
|
null_ls.setup({ |
|
|
|
on_attach = function(client, bufnr) |
|
|
|
null_opts.on_attach(client, bufnr) |
|
|
|
|
|
|
|
local format_cmd = function(input) |
|
|
|
vim.lsp.buf.format({ |
|
|
|
id = client.id, |
|
|
|
timeout_ms = 5000, |
|
|
|
async = input.bang, |
|
|
|
}) |
|
|
|
end |
|
|
|
|
|
|
|
local bufcmd = vim.api.nvim_buf_create_user_command |
|
|
|
bufcmd(bufnr, 'NullFormat', format_cmd, { |
|
|
|
bang = true, |
|
|
|
range = true, |
|
|
|
desc = 'Format using null-ls' |
|
|
|
}) |
|
|
|
end, |
|
|
|
sources = { |
|
|
|
null_ls.builtins.formatting.prettier, |
|
|
|
null_ls.builtins.formatting.autopep8, |
|
|
|
null_ls.builtins.formatting.gofmt, |
|
|
|
null_ls.builtins.diagnostics.eslint, |
|
|
|
null_ls.builtins.diagnostics.shellcheck, |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
require('mason-null-ls').setup({ |
|
|
|
ensure_installed = nil, |
|
|
|
automatic_installation = true, |
|
|
|
automatic_setup = false, |
|
|
|
}) |