32 lines
766 B
Lua
32 lines
766 B
Lua
|
|
-- Setup tree sitter
|
|
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
|
|
parser_config.uci = {
|
|
install_info = {
|
|
url = "git@rpuzonas.com:rpuzonas/tree-sitter-uci.git",
|
|
files = {"src/parser.c"},
|
|
branch = "main",
|
|
generate_requires_npm = false,
|
|
requires_generate_from_grammar = false,
|
|
},
|
|
filetype = "uci",
|
|
}
|
|
|
|
-- Determine UCI filetype by contents of file.
|
|
-- If file has no extension and at least one line contains the word "config"
|
|
vim.filetype.add({
|
|
pattern = {
|
|
[".*/etc/config/.*"] = "uci",
|
|
[".*/[^%.]+"] = {
|
|
priority = -math.huge,
|
|
function(_, bufnr)
|
|
for _, line in ipairs(vim.filetype.getlines(bufnr)) do
|
|
if line:find("config") ~= nil then
|
|
return "uci"
|
|
end
|
|
end
|
|
end
|
|
}
|
|
}
|
|
})
|