diff options
Diffstat (limited to 'lsp/foam_ls.lua')
| -rw-r--r-- | lsp/foam_ls.lua | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lsp/foam_ls.lua b/lsp/foam_ls.lua index cff7c03e..636b0660 100644 --- a/lsp/foam_ls.lua +++ b/lsp/foam_ls.lua @@ -13,10 +13,17 @@ return { filetypes = { 'foam', 'OpenFOAM' }, root_dir = function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) - on_dir(vim.iter(vim.fs.parents(fname)):find(function(path) + for path in vim.fs.parents(fname) do if vim.uv.fs_stat(path .. '/system/controlDict') then - return path + on_dir(path) + return end - end)) + end + local git_root = vim.fs.root(bufnr, { '.git' }) + if git_root then + on_dir(git_root) + return + end + on_dir(vim.fs.dirname(fname)) end, } |
