2020-11-28 16:21:07 +01:00
|
|
|
local config = require'lspconfig'
|
2020-09-26 23:54:07 +02:00
|
|
|
|
|
|
|
-- format on save
|
|
|
|
-- TODO often takes way longer to save than 1000 ms (e.g. 7000 ms in fitnesspilot-web)
|
|
|
|
local diagnosticls_on_attach = function(_, bufnr)
|
|
|
|
vim.api.nvim_command("au BufWritePre <buffer> lua vim.lsp.buf.formatting_sync(nil, 1000)")
|
|
|
|
end
|
|
|
|
|
2020-11-28 16:21:07 +01:00
|
|
|
local pid = vim.fn.getpid()
|
|
|
|
|
|
|
|
config.bashls.setup{}
|
|
|
|
config.jsonls.setup{}
|
|
|
|
config.yamlls.setup{}
|
|
|
|
config.html.setup{}
|
|
|
|
config.cssls.setup{}
|
|
|
|
config.vimls.setup{}
|
|
|
|
config.dockerls.setup{}
|
|
|
|
config.rnix.setup{}
|
|
|
|
config.tsserver.setup{}
|
|
|
|
config.omnisharp.setup{
|
|
|
|
cmd = {"omnisharp", "--languageserver", "--hostPID", tostring(pid)};
|
2020-09-26 23:54:07 +02:00
|
|
|
}
|
2020-11-28 16:21:07 +01:00
|
|
|
config.pyls.setup{}
|
|
|
|
config.terraformls.setup{}
|
|
|
|
config.hls.setup{}
|
2020-09-26 23:54:07 +02:00
|
|
|
|
|
|
|
-- based on: https://github.com/mikew/vimrc/blob/master/src/nvim/coc-settings.json
|
2020-11-14 11:18:13 +01:00
|
|
|
-- TODO breaks auto-completion when using with other lsp
|
2020-11-28 16:21:07 +01:00
|
|
|
-- TODO some ts projects are using tsc eslint plugin
|
|
|
|
-- config.diagnosticls.setup{
|
2020-09-26 23:54:07 +02:00
|
|
|
-- on_attach = diagnosticls_on_attach;
|
|
|
|
-- filetypes = {
|
|
|
|
-- "javascript",
|
|
|
|
-- "javascript.jsx",
|
|
|
|
-- "javascriptreact",
|
|
|
|
-- "typescript",
|
|
|
|
-- "typescript.jsx",
|
|
|
|
-- "typescriptreact",
|
|
|
|
-- "json",
|
|
|
|
-- "yaml",
|
|
|
|
-- "markdown",
|
|
|
|
-- "html",
|
|
|
|
-- "css"
|
|
|
|
-- };
|
|
|
|
-- init_options = {
|
|
|
|
-- linters = {
|
|
|
|
-- eslint = {
|
|
|
|
-- command = "eslint";
|
|
|
|
-- args = {
|
|
|
|
-- "--stdin",
|
|
|
|
-- "--stdin-filename",
|
|
|
|
-- "%filepath",
|
|
|
|
-- "--format",
|
|
|
|
-- "json"
|
|
|
|
-- };
|
|
|
|
-- rootPatterns = {".git"};
|
|
|
|
-- debounce = 50;
|
|
|
|
-- sourceName = "eslint";
|
|
|
|
-- parseJson = {
|
|
|
|
-- errorsRoot = "[0].messages";
|
|
|
|
-- line = "line";
|
|
|
|
-- column = "column";
|
|
|
|
-- endLine = "endLine";
|
|
|
|
-- endColumn = "endColumn";
|
|
|
|
-- message = "${message} [${ruleId}]";
|
|
|
|
-- security = "severity";
|
|
|
|
-- };
|
|
|
|
-- securities = {
|
|
|
|
-- ["2"] = "error";
|
|
|
|
-- ["1"] = "warning";
|
|
|
|
-- };
|
|
|
|
-- };
|
|
|
|
-- stylelint = {
|
|
|
|
-- command = "stylelint";
|
|
|
|
-- args = {
|
|
|
|
-- "--stdin",
|
|
|
|
-- "--formatter",
|
|
|
|
-- "json",
|
|
|
|
-- "--file",
|
|
|
|
-- "%filepath"
|
|
|
|
-- };
|
|
|
|
-- rootPatterns = {".git"};
|
|
|
|
-- debounce = 50;
|
|
|
|
-- sourceName = "stylelint";
|
|
|
|
-- parseJson = {
|
|
|
|
-- errorsRoot = "[0].warnings";
|
|
|
|
-- line = "line";
|
|
|
|
-- column = "column";
|
|
|
|
-- message = "${text}";
|
|
|
|
-- security = "severity";
|
|
|
|
-- };
|
|
|
|
-- securities = {
|
|
|
|
-- error = "error";
|
|
|
|
-- warning = "warning";
|
|
|
|
-- };
|
|
|
|
-- };
|
|
|
|
-- };
|
|
|
|
-- filetypes = {
|
|
|
|
-- javascript = {"eslint"};
|
|
|
|
-- ["javascript.jsx"] = {"eslint"};
|
|
|
|
-- javascriptreact = {"eslint"};
|
|
|
|
-- typescript = {"eslint"};
|
|
|
|
-- ["typescript.jsx"] = {"eslint"};
|
|
|
|
-- typescriptreact = {"eslint"};
|
|
|
|
-- css = {"stylelint"};
|
|
|
|
-- };
|
|
|
|
-- formatters = {
|
|
|
|
-- eslint = {
|
|
|
|
-- command = "eslint";
|
|
|
|
-- args = {
|
|
|
|
-- "--fix",
|
|
|
|
-- "%file"
|
|
|
|
-- };
|
|
|
|
-- rootPatterns = {".git"};
|
|
|
|
-- isStdout = 1;
|
|
|
|
-- doesWriteToFile = 1;
|
|
|
|
-- };
|
|
|
|
-- stylelint = {
|
|
|
|
-- command = "stylelint";
|
|
|
|
-- args = {
|
|
|
|
-- "--stdin",
|
|
|
|
-- "--fix",
|
|
|
|
-- "--file",
|
|
|
|
-- "%filepath"
|
|
|
|
-- };
|
|
|
|
-- rootPatterns = {".git"};
|
|
|
|
-- };
|
|
|
|
-- prettier = {
|
|
|
|
-- command = "prettier";
|
|
|
|
-- args = {
|
|
|
|
-- "--stdin",
|
|
|
|
-- "--stdin-filepath",
|
|
|
|
-- "%filepath"
|
|
|
|
-- };
|
|
|
|
-- rootPatterns = {".git"};
|
|
|
|
-- };
|
|
|
|
-- };
|
|
|
|
-- formatFiletypes = {
|
|
|
|
-- javascript = {"eslint"};
|
|
|
|
-- ["javascript.jsx"] = {"eslint"};
|
|
|
|
-- javascriptreact = {"eslint"};
|
|
|
|
-- typescript = {"eslint"};
|
|
|
|
-- ["typescript.jsx"] = {"eslint"};
|
|
|
|
-- typescriptreact = {"eslint"};
|
|
|
|
-- json = {"prettier"};
|
|
|
|
-- yaml = {"prettier"};
|
|
|
|
-- markdown = {"prettier"};
|
|
|
|
-- html = {"prettier"};
|
|
|
|
-- css = {"stylelint"};
|
|
|
|
-- };
|
|
|
|
-- };
|
|
|
|
-- }
|