diff options
Diffstat (limited to 'ftplugin/sh.lua')
-rw-r--r-- | ftplugin/sh.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ftplugin/sh.lua b/ftplugin/sh.lua new file mode 100644 index 00000000..7d9312f6 --- /dev/null +++ b/ftplugin/sh.lua @@ -0,0 +1,33 @@ +-- 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" } +} + +-- sh +local sh_arguments = {} + +local shfmt = {formatCommand = 'shfmt -ci -s -bn', formatStdin = true} + +local shellcheck = { + LintCommand = 'shellcheck -f gcc -x', + lintFormats = {'%f:%l:%c: %trror: %m', '%f:%l:%c: %tarning: %m', '%f:%l:%c: %tote: %m'} +} + +if O.lang.sh.formatter == 'shfmt' then table.insert(sh_arguments, shfmt) end + +if O.lang.sh.linter == 'shellcheck' then table.insert(sh_arguments, shellcheck) end + +require"lspconfig".efm.setup { + -- init_options = {initializationOptions}, + cmd = {DATA_PATH .. "/lspinstall/efm/efm-langserver"}, + init_options = {documentFormatting = true, codeAction = false}, + filetypes = {"sh"}, + settings = { + rootMarkers = {".git/"}, + languages = { + sh = sh_arguments, + } + } +} |