mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 09:50:04 +08:00
41 lines
985 B
Lua
41 lines
985 B
Lua
local configs = require 'lspconfig/configs'
|
|
local util = require 'lspconfig/util'
|
|
|
|
local meson_matcher = function(path)
|
|
local pattern = 'meson.build'
|
|
local f = vim.fn.glob(util.path.join(path, pattern))
|
|
if f == '' then
|
|
return nil
|
|
end
|
|
for line in io.lines(f) do
|
|
-- skip meson comments
|
|
if not line:match '^%s*#.*' then
|
|
local str = line:gsub('%s+', '')
|
|
if str ~= '' then
|
|
if str:match '^project%(' then
|
|
return path
|
|
else
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
configs.vala_ls = {
|
|
default_config = {
|
|
cmd = { 'vala-language-server' },
|
|
filetypes = { 'vala', 'genie' },
|
|
root_dir = function(fname)
|
|
local root = util.search_ancestors(fname, meson_matcher)
|
|
return root or util.find_git_ancestor(fname)
|
|
end,
|
|
},
|
|
docs = {
|
|
description = 'https://github.com/benwaffle/vala-language-server',
|
|
default_config = {
|
|
root_dir = [[root_pattern("meson.build", ".git")]],
|
|
},
|
|
},
|
|
}
|