diff options
Diffstat (limited to 'lsp/termux_language_server.lua')
| -rw-r--r-- | lsp/termux_language_server.lua | 23 |
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, } |
