From 1d27cbca605a33b09ff1aaf1fe6b137526551581 Mon Sep 17 00:00:00 2001 From: Martin Larsson Date: Sat, 20 Jan 2024 15:18:38 +0100 Subject: [PATCH] Add bashls --- nvim/lua/language_servers/bashls.lua | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 nvim/lua/language_servers/bashls.lua diff --git a/nvim/lua/language_servers/bashls.lua b/nvim/lua/language_servers/bashls.lua new file mode 100644 index 0000000..fdce92f --- /dev/null +++ b/nvim/lua/language_servers/bashls.lua @@ -0,0 +1,44 @@ +local utils = require("lspconfig.util") + +return { + default_config = { + cmd = { "bash-language-server", "start" }, + settings = { + bashIde = { + -- Glob pattern for finding and parsing shell script files in the workspace. + -- Used by the background analysis features across files. + + -- Prevent recursive scanning which will cause issues when opening a file + -- directly in the home directory (e.g. ~/foo.sh). + -- + -- Default upstream pattern is "**/*@(.sh|.inc|.bash|.command)". + globPattern = vim.env.GLOB_PATTERN or "**/*@(.sh|.inc|.bash|.command|.zsh|zshrc|zsh_*)", + }, + bash = { + format = { + enable = true, + shell = "shfmt", + args = { + "-i", + "4", + "-bn", + "-ci" + } + }, + ignorePatterns = { + "node_modules", + ".git" + }, + lint = { + enable = true + }, + trace = { + server = "verbose" + }, + }, + }, + filetypes = { "sh", "zsh" }, + root_dir = utils.find_git_ancestor, + single_file_support = true, + }, +}