summaryrefslogtreecommitdiff
path: root/lua/default-config.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/default-config.lua')
-rw-r--r--lua/default-config.lua521
1 files changed, 331 insertions, 190 deletions
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 25c6dcef..41636757 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -47,6 +47,7 @@ lvim = {
popup_border = "single",
default_keybinds = true,
on_attach_callback = nil,
+ on_init_callback = nil,
},
plugins = {
@@ -54,11 +55,13 @@ lvim = {
},
autocommands = {},
+ debug = false,
}
local schemas = nil
-local common_on_attach = require("lsp.service").common_on_attach
-local common_capabilities = require("lsp.service").common_capabilities()
+local common_on_attach = require("lsp").common_on_attach
+local common_capabilities = require("lsp").common_capabilities()
+local common_on_init = require("lsp").common_on_init
local status_ok, jsonls_settings = pcall(require, "nlspsettings.jsonls")
if status_ok then
schemas = jsonls_settings.get_default_schemas()
@@ -67,9 +70,12 @@ end
-- TODO move all of this into lang specific files, only require when using
lvim.lang = {
asm = {
- formatter = {
- exe = "asmfmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be asmfmt
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -78,9 +84,12 @@ lvim.lang = {
},
},
beancount = {
- formatter = {
- exe = "bean_format",
- args = {},
+ formatters = {
+ {
+ -- @usage can be bean_format
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -88,19 +97,21 @@ lvim.lang = {
setup = {
cmd = { "beancount-langserver" },
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
c = {
- formatter = {
- exe = "clang_format",
- args = {},
- stdin = true,
- },
- linters = {
- "clangtidy",
+ formatters = {
+ {
+ -- @usage can be clang_format or uncrustify
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
+ linters = {},
lsp = {
provider = "clangd",
setup = {
@@ -113,20 +124,21 @@ lvim.lang = {
"--clang-tidy-checks=-*,llvm-*,clang-analyzer-*",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
cpp = {
- formatter = {
- exe = "clang_format",
- args = {},
- stdin = true,
- },
- linters = {
- "cppcheck",
- "clangtidy",
+ formatters = {
+ {
+ -- @usage can be clang_format or uncrustify
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
+ linters = {},
lsp = {
provider = "clangd",
setup = {
@@ -139,14 +151,18 @@ lvim.lang = {
"--clang-tidy-checks=-*,llvm-*,clang-analyzer-*",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
crystal = {
- formatter = {
- exe = "crystal_format",
- args = {},
+ formatters = {
+ {
+ -- @usage can be crystal_format
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -154,14 +170,18 @@ lvim.lang = {
setup = {
cmd = { "crystalline" },
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
cs = {
- formatter = {
- exe = "clang_format",
- args = {},
+ formatters = {
+ {
+ -- @usage can be clang_format or uncrustify
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -174,14 +194,18 @@ lvim.lang = {
tostring(vim.fn.getpid()),
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
cmake = {
- formatter = {
- exe = "cmake_format",
- args = {},
+ formatters = {
+ {
+ -- @usage can be cmake_format
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -192,15 +216,16 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
clojure = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
- },
+ } },
linters = {},
lsp = {
provider = "clojure_lsp",
@@ -210,14 +235,18 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
css = {
- formatter = {
- exe = "prettier",
- args = {},
+ formatters = {
+ {
+ -- @usage can be prettier or prettierd
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -229,14 +258,18 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
d = {
- formatter = {
- exe = "dfmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be dfmt
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -244,15 +277,19 @@ lvim.lang = {
setup = {
cmd = { "serve-d" },
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
dart = {
- formatter = {
- exe = "dart_format",
- args = {},
- stdin = true,
+ formatters = {
+ {
+ -- @usage can be dart_format
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
linters = {},
lsp = {
@@ -264,14 +301,18 @@ lvim.lang = {
"--lsp",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
docker = {
- formatter = {
- exe = "",
- args = {},
+ formatters = {
+ {
+ exe = "",
+ args = {},
+ },
+ -- @usage can be {"hadolint"}
},
linters = {},
lsp = {
@@ -282,15 +323,19 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
elixir = {
- formatter = {
- exe = "mix",
- args = {},
- stdin = true,
+ formatters = {
+ {
+ -- @usage can be mix
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
linters = {},
lsp = {
@@ -300,15 +345,19 @@ lvim.lang = {
DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
elm = {
- formatter = {
- exe = "elm_format",
- args = {},
- stdin = true,
+ formatters = {
+ {
+ -- @usage can be elm_format
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
linters = {},
lsp = {
@@ -318,6 +367,7 @@ lvim.lang = {
DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-language-server",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
init_options = {
elmAnalyseTrigger = "change",
elmFormatPath = DATA_PATH .. "/lspinstall/elm/node_modules/.bin/elm-format",
@@ -328,9 +378,12 @@ lvim.lang = {
},
},
erlang = {
- formatter = {
- exe = "erlfmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be erlfmt
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -340,35 +393,40 @@ lvim.lang = {
"erlang_ls",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
emmet = { active = false },
fish = {
- formatter = {
- exe = "fish_indent",
- args = {},
+ formatters = {
+ {
+ -- @usage can be fish_indent
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
provider = "",
setup = {
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
go = {
- formatter = {
- exe = "gofmt",
- args = {},
- stdin = true,
- },
- linters = {
- "golangcilint",
- "revive",
+ formatters = {
+ {
+ -- @usage can be gofmt or goimports or gofumpt
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
+ linters = {},
lsp = {
provider = "gopls",
setup = {
@@ -376,15 +434,16 @@ lvim.lang = {
DATA_PATH .. "/lspinstall/go/gopls",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
graphql = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
- },
+ } },
linters = {},
lsp = {
provider = "graphql",
@@ -396,20 +455,20 @@ lvim.lang = {
"stream",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
html = {
- formatter = {
- exe = "prettier",
- args = {},
- },
- linters = {
- "tidy",
- -- https://docs.errata.ai/vale/scoping#html
- "vale",
+ formatters = {
+ {
+ -- @usage can be prettier or prettierd
+ exe = "",
+ args = {},
+ },
},
+ linters = {},
lsp = {
provider = "html",
setup = {
@@ -419,14 +478,18 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
java = {
- formatter = {
- exe = "prettier",
- args = { "--stdin-filepath", vim.api.nvim_buf_get_name(0) },
+ formatters = {
+ {
+ -- @usage can be clang_format or uncrustify
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -434,15 +497,19 @@ lvim.lang = {
setup = {
cmd = { DATA_PATH .. "/lspinstall/java/jdtls.sh" },
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
json = {
- formatter = {
- exe = "json_tool",
- args = {},
- stdin = true,
+ formatters = {
+ {
+ -- @usage can be json_tool or prettier or prettierd
+ exe = "",
+ args = {},
+ stdin = true,
+ },
},
linters = {},
lsp = {
@@ -454,6 +521,7 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
settings = {
json = {
@@ -477,10 +545,10 @@ lvim.lang = {
},
},
julia = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
- },
+ } },
linters = {},
lsp = {
provider = "julials",
@@ -493,15 +561,16 @@ lvim.lang = {
CONFIG_PATH .. "/utils/julia/run.jl",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
kotlin = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
- },
+ } },
linters = {},
lsp = {
provider = "kotlin_language_server",
@@ -510,6 +579,7 @@ lvim.lang = {
DATA_PATH .. "/lspinstall/kotlin/server/bin/kotlin-language-server",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
root_dir = function(fname)
local util = require "lspconfig/util"
@@ -530,11 +600,14 @@ lvim.lang = {
},
},
lua = {
- formatter = {
- exe = "stylua",
- args = {},
+ formatters = {
+ {
+ -- @usage can be stylua or lua_format
+ exe = "stylua",
+ args = {},
+ },
},
- linters = { "luacheck" },
+ linters = {},
lsp = {
provider = "sumneko_lua",
setup = {
@@ -543,7 +616,9 @@ lvim.lang = {
"-E",
DATA_PATH .. "/lspinstall/lua/main.lua",
},
+ capabilities = common_capabilities,
on_attach = common_on_attach,
+ on_init = common_on_init,
settings = {
Lua = {
runtime = {
@@ -572,20 +647,26 @@ lvim.lang = {
},
},
nginx = {
- formatter = {
- exe = "nginx_beautifier",
- args = {
- provider = "",
- setup = {},
+ formatters = {
+ {
+ -- @usage can be nginx_beautifier
+ exe = "",
+ args = {
+ provider = "",
+ setup = {},
+ },
},
},
linters = {},
lsp = {},
},
perl = {
- formatter = {
- exe = "perltidy",
- args = {},
+ formatters = {
+ {
+ -- @usage can be perltidy
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -594,9 +675,12 @@ lvim.lang = {
},
},
sql = {
- formatter = {
- exe = "sqlformat",
- args = {},
+ formatters = {
+ {
+ -- @usage can be sqlformat
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -607,9 +691,12 @@ lvim.lang = {
},
},
php = {
- formatter = {
- exe = "phpcbf",
- args = {},
+ formatters = {
+ {
+ -- @usage can be phpcbf
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -620,6 +707,7 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
filetypes = { "php", "phtml" },
settings = {
intelephense = {
@@ -632,28 +720,30 @@ lvim.lang = {
},
},
puppet = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
- },
+ } },
linters = {},
lsp = {
provider = "puppet",
setup = {
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
javascript = {
- -- @usage can be prettier or eslint
- formatter = {
- exe = "prettier",
- args = {},
- },
- linters = {
- "eslint",
+ -- @usage can be prettier or prettier_d_slim or prettierd
+ formatters = {
+ {
+ exe = "",
+ args = {},
+ },
},
+ -- @usage can be {"eslint"} or {"eslint_d"}
+ linters = {},
lsp = {
provider = "tsserver",
setup = {
@@ -663,19 +753,21 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
javascriptreact = {
- -- @usage can be prettier or eslint
- formatter = {
- exe = "prettier",
- args = {},
- },
- linters = {
- "eslint",
+ formatters = {
+ {
+ -- @usage can be prettier or prettier_d_slim or prettierd
+ exe = "",
+ args = {},
+ },
},
+ -- @usage can be {"eslint"} or {"eslint_d"}
+ linters = {},
lsp = {
provider = "tsserver",
setup = {
@@ -685,21 +777,20 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
python = {
- -- @usage can be flake8 or yapf
- formatter = {
- exe = "black",
- args = {},
- },
- linters = {
- "flake8",
- "pylint",
- "mypy",
+ formatters = {
+ {
+ -- @usage can be black or yapf or isort
+ exe = "",
+ args = {},
+ },
},
+ linters = {},
lsp = {
provider = "pyright",
setup = {
@@ -708,6 +799,7 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
@@ -715,9 +807,12 @@ lvim.lang = {
-- R -e 'install.packages("formatR",repos = "http://cran.us.r-project.org")'
-- R -e 'install.packages("readr",repos = "http://cran.us.r-project.org")'
r = {
- formatter = {
- exe = "format_r",
- args = {},
+ formatters = {
+ {
+ -- @usage can be format_r
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -730,16 +825,20 @@ lvim.lang = {
"languageserver::run()",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
ruby = {
- formatter = {
- exe = "rufo",
- args = {},
+ formatters = {
+ {
+ -- @usage can be rufo
+ exe = "",
+ args = {},
+ },
},
- linters = { "ruby" },
+ linters = {},
lsp = {
provider = "solargraph",
setup = {
@@ -748,14 +847,18 @@ lvim.lang = {
"stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
rust = {
- formatter = {
- exe = "rustfmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be rustfmt
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -765,32 +868,38 @@ lvim.lang = {
DATA_PATH .. "/lspinstall/rust/rust-analyzer",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
scala = {
- formatter = {
- exe = "scalafmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be scalafmt
+ exe = "",
+ args = {},
+ },
},
linters = { "" },
lsp = {
provider = "metals",
setup = {
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
sh = {
- -- @usage can be 'shfmt'
- formatter = {
- exe = "shfmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be shfmt
+ exe = "",
+ args = {},
+ },
},
- -- @usage can be 'shellcheck'
- linters = { "shellcheck" },
+ linters = {},
lsp = {
provider = "bashls",
setup = {
@@ -799,15 +908,16 @@ lvim.lang = {
"start",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
svelte = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
- },
+ } },
linters = {},
lsp = {
provider = "svelte",
@@ -817,14 +927,18 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
swift = {
- formatter = {
- exe = "swiftformat",
- args = {},
+ formatters = {
+ {
+ -- @usage can be swiftformat
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -835,6 +949,7 @@ lvim.lang = {
"sourcekit-lsp",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
@@ -852,9 +967,12 @@ lvim.lang = {
},
},
terraform = {
- formatter = {
- exe = "terraform_fmt",
- args = {},
+ formatters = {
+ {
+ -- @usage can be terraform_fmt
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -865,35 +983,41 @@ lvim.lang = {
"serve",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
tex = {
- formatter = {
- exe = "latexindent",
- args = {},
- stdin = false,
+ formatters = {
+ {
+ exe = "",
+ args = {},
+ stdin = false,
+ },
+ -- @usage can be chktex or vale
},
- linters = { "chktex" },
+ linters = {},
lsp = {
provider = "texlab",
setup = {
cmd = { DATA_PATH .. "/lspinstall/latex/texlab" },
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
typescript = {
- -- @usage can be prettier or eslint
- formatter = {
- exe = "prettier",
- args = {},
- },
- linters = {
- "eslint",
+ formatters = {
+ {
+ -- @usage can be prettier or prettierd or prettier_d_slim
+ exe = "",
+ args = {},
+ },
+ -- @usage can be {"eslint"} or {"eslint_d"}
},
+ linters = {},
lsp = {
provider = "tsserver",
setup = {
@@ -903,19 +1027,21 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
typescriptreact = {
- -- @usage can be prettier or eslint
- formatter = {
- exe = "prettier",
- args = {},
- },
- linters = {
- "eslint",
+ formatters = {
+ {
+ -- @usage can be prettier or prettierd or prettier_d_slim
+ exe = "",
+ args = {},
+ },
},
+ -- @usage can be {"eslint"} or {"eslint_d"}
+ linters = {},
lsp = {
provider = "tsserver",
setup = {
@@ -925,15 +1051,19 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
vim = {
- formatter = {
- exe = "",
- args = {},
+ formatters = {
+ {
+ exe = "",
+ args = {},
+ },
},
+ -- @usage can be {"vint"}
linters = { "" },
lsp = {
provider = "vimls",
@@ -943,15 +1073,20 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
vue = {
- formatter = {
- exe = "prettier",
- args = {},
+ formatters = {
+ {
+ -- @usage can be prettier or prettierd or prettier_d_slim
+ exe = "",
+ args = {},
+ },
},
+ -- @usage can be {"eslint"} or {"eslint_d"}
linters = {},
lsp = {
provider = "vuels",
@@ -960,14 +1095,18 @@ lvim.lang = {
DATA_PATH .. "/lspinstall/vue/node_modules/.bin/vls",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
yaml = {
- formatter = {
- exe = "prettier",
- args = {},
+ formatters = {
+ {
+ -- @usage can be prettier or prettierd
+ exe = "",
+ args = {},
+ },
},
linters = {},
lsp = {
@@ -978,16 +1117,17 @@ lvim.lang = {
"--stdio",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},
},
zig = {
- formatter = {
+ formatters = { {
exe = "",
args = {},
stdin = false,
- },
+ } },
linters = {},
lsp = {
provider = "zls",
@@ -996,6 +1136,7 @@ lvim.lang = {
"zls",
},
on_attach = common_on_attach,
+ on_init = common_on_init,
capabilities = common_capabilities,
},
},