nvim-lspconfig/lsp/gitlab_ci_ls.lua
Aleš Brelih 1c505a2a37
fix(gitlab_ls): root dir ordering #4025
Problem:
If project had a nested child gitlab file named: .gitlab-ci.yml it would
take it as root.

Solution:
If inside GIT repository just use git repository root as root and still
keep the option for .gitlab* as fallback if there is no git repo yet.
2025-08-21 19:14:23 -07:00

27 lines
640 B
Lua

---@brief
---
--- https://github.com/alesbrelih/gitlab-ci-ls
---
--- Language Server for Gitlab CI
---
--- `gitlab-ci-ls` can be installed via cargo:
--- cargo install gitlab-ci-ls
local util = require 'lspconfig.util'
local cache_dir = vim.uv.os_homedir() .. '/.cache/gitlab-ci-ls/'
---@type vim.lsp.Config
return {
cmd = { 'gitlab-ci-ls' },
filetypes = { 'yaml.gitlab' },
root_dir = function(bufnr, on_dir)
local fname = vim.api.nvim_buf_get_name(bufnr)
on_dir(util.root_pattern('.git', '.gitlab*')(fname))
end,
init_options = {
cache_path = cache_dir,
log_path = cache_dir .. '/log/gitlab-ci-ls.log',
},
}