diff options
Diffstat (limited to '.config/nvim/lsp/foam_ls.lua')
| -rw-r--r-- | .config/nvim/lsp/foam_ls.lua | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/.config/nvim/lsp/foam_ls.lua b/.config/nvim/lsp/foam_ls.lua new file mode 100644 index 0000000..636b066 --- /dev/null +++ b/.config/nvim/lsp/foam_ls.lua @@ -0,0 +1,29 @@ +---@brief +--- +--- https://github.com/FoamScience/foam-language-server +--- +--- `foam-language-server` can be installed via `npm` +--- ```sh +--- npm install -g foam-language-server +--- ``` + +---@type vim.lsp.Config +return { +  cmd = { 'foam-ls', '--stdio' }, +  filetypes = { 'foam', 'OpenFOAM' }, +  root_dir = function(bufnr, on_dir) +    local fname = vim.api.nvim_buf_get_name(bufnr) +    for path in vim.fs.parents(fname) do +      if vim.uv.fs_stat(path .. '/system/controlDict') then +        on_dir(path) +        return +      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, +}  |