summaryrefslogtreecommitdiff
path: root/ftplugin/sh.lua
diff options
context:
space:
mode:
authorchristianchiarulli <[email protected]>2021-07-01 23:42:26 -0400
committerchristianchiarulli <[email protected]>2021-07-01 23:42:26 -0400
commit20ed47e21e966a5b857ef9970ae6171b3a504ce1 (patch)
tree92bdefc7589545f4429a55b53e4493ad7832e632 /ftplugin/sh.lua
parent9bb4f8a085644914c79343b48c808509311ee203 (diff)
lsp in ftplugin austonautomoy
Diffstat (limited to 'ftplugin/sh.lua')
-rw-r--r--ftplugin/sh.lua33
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,
+ }
+ }
+}