LunarVim/ftplugin/sh.lua

53 lines
1.4 KiB
Lua
Raw Normal View History

O.formatters.filetype["sh"] = {
function()
return {
exe = O.lang.sh.formatter.exe,
args = O.lang.sh.formatter.args,
stdin = not (O.lang.sh.formatter.stdin ~= nil),
}
end,
}
require("formatter.config").set_defaults {
logging = false,
filetype = O.formatters.filetype,
}
if not require("lv-utils").check_lsp_client_active "bashls" then
-- npm i -g bash-language-server
require("lspconfig").bashls.setup {
cmd = { DATA_PATH .. "/lspinstall/bash/node_modules/.bin/bash-language-server", "start" },
on_attach = require("lsp").common_on_attach,
filetypes = { "sh", "zsh" },
}
end
2021-07-02 05:42:26 +02:00
-- sh
local sh_arguments = {}
2021-07-05 03:14:01 +02:00
local shfmt = { formatCommand = "shfmt -ci -s -bn", formatStdin = true }
2021-07-02 05:42:26 +02:00
local shellcheck = {
2021-07-05 03:14:01 +02:00
LintCommand = "shellcheck -f gcc -x",
lintFormats = { "%f:%l:%c: %trror: %m", "%f:%l:%c: %tarning: %m", "%f:%l:%c: %tote: %m" },
2021-07-02 05:42:26 +02:00
}
2021-07-05 03:14:01 +02:00
if O.lang.sh.linter == "shellcheck" then
table.insert(sh_arguments, shellcheck)
end
2021-07-02 05:42:26 +02:00
if not require("lv-utils").check_lsp_client_active "efm" then
require("lspconfig").efm.setup {
-- init_options = {initializationOptions},
cmd = { DATA_PATH .. "/lspinstall/efm/efm-langserver" },
init_options = { documentFormatting = true, codeAction = false },
root_dir = require("lspconfig").util.root_pattern ".git/",
filetypes = { "sh" },
settings = {
rootMarkers = { ".git/" },
languages = {
sh = sh_arguments,
},
2021-07-05 03:14:01 +02:00
},
}
end