1
0

add detection of uci files

This commit is contained in:
Rokas Puzonas 2023-05-22 18:05:21 +03:00
parent c32e55d64b
commit 4f33ea54ab
3 changed files with 34 additions and 2 deletions

View File

@ -17,6 +17,7 @@ require("bindings")
require("personal.pludin-dev")
require("personal.add-guard")
require("personal.cmacro-align")
require("personal.uci")
-- THEME_BEGIN
cmd("colorscheme srcery")

31
lua/personal/uci.lua Normal file
View File

@ -0,0 +1,31 @@
-- 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
}
}
})

View File

@ -1,8 +1,8 @@
; This is mandatory to have, If I want "https://git.rpuzonas.com/rpuzonas/tree-sitter-uci" to work :/
"package" @keyword
"config" @keyword
"option" @keyword
"list" @keyword
"option" @type
"list" @type
(name) @string
(string) @string