aboutsummaryrefslogtreecommitdiffstats
path: root/lsp/termux_language_server.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lsp/termux_language_server.lua')
-rw-r--r--lsp/termux_language_server.lua23
1 files changed, 21 insertions, 2 deletions
diff --git a/lsp/termux_language_server.lua b/lsp/termux_language_server.lua
index d8799fe4..608527a2 100644
--- a/lsp/termux_language_server.lua
+++ b/lsp/termux_language_server.lua
@@ -4,9 +4,28 @@
---
--- Language server for various bash scripts such as Arch PKGBUILD, Gentoo ebuild, Termux build.sh, etc.
+local util = require('lspconfig').util
+
---@type vim.lsp.Config
return {
cmd = { 'termux-language-server' },
- filetypes = { 'PKGBUILD' },
- root_markers = { '.git' },
+ root_dir = function(bufnr, on_dir)
+ local patterns = {
+ -- Termux
+ 'build.sh',
+ '*.subpackage.sh',
+ -- Arch/MSYS2
+ 'PKGBUILD',
+ 'makepkg.conf',
+ '*.install',
+ -- Gentoo
+ 'make.conf',
+ 'color.map',
+ '*.ebuild',
+ '*.eclass',
+ }
+ local fname = vim.api.nvim_buf_get_name(bufnr)
+ local match = util.root_pattern(patterns)(fname)
+ on_dir(match and (vim.fs.root(match, '.git') or match))
+ end,
}