diff options
author | kylo252 <[email protected]> | 2021-07-31 06:06:08 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-07-31 00:06:08 -0400 |
commit | 9d89929d9bb47d1f78c2d3945b761da2f24a5643 (patch) | |
tree | 7f5d281ddb4bbdcecffe01c0234d02be32ede1f7 /lua/default-config.lua | |
parent | 6f4dd8471b24f71ed6712fb6b9acc0ac79b9137a (diff) |
Enable querying lang-server formatting capabilities (#1078)
Diffstat (limited to 'lua/default-config.lua')
-rw-r--r-- | lua/default-config.lua | 521 |
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, }, }, |