diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index eeeb249..11b8055 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -31,6 +31,9 @@ return { }, }, }) + lsp.helm_ls.setup({ + filetypes= { "helm", "yaml" }, + }) end, }, } diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index 31d94cb..5721b75 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -1,6 +1,15 @@ return { "nvim-treesitter/nvim-treesitter", config = function() + local parser_config = require("nvim-treesitter.parsers").get_parser_configs() + parser_config.gotmpl = { + install_info = { + url = "https://github.com/ngalaiko/tree-sitter-go-template", + files = { "src/parser.c" }, + }, + filetype = "gotmpl", + used_by = { "gohtmltmpl", "gotexttmpl", "gotmpl", "yaml" }, + } require("nvim-treesitter.configs").setup({ highlight = { enable = true, diff --git a/.config/nvim/queries/gotmpl/highlights.scm b/.config/nvim/queries/gotmpl/highlights.scm new file mode 100644 index 0000000..6f55737 --- /dev/null +++ b/.config/nvim/queries/gotmpl/highlights.scm @@ -0,0 +1,84 @@ +; Identifiers + +[ + (field) + (field_identifier) +] @property + +(variable) @variable + +; Function calls + +(function_call + function: (identifier) @function) + +(method_call + method: (selector_expression + field: (field_identifier) @method)) + +; Operators + +"|" @operator +":=" @operator + +; Builtin functions + +((identifier) @function.builtin + (#match? @function.builtin "^(and|call|html|index|slice|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|ge|gt|ge)$")) + +; Delimiters + +"." @punctuation.delimiter +"," @punctuation.delimiter + +"{{" @punctuation.bracket +"}}" @punctuation.bracket +"{{-" @punctuation.bracket +"-}}" @punctuation.bracket +")" @punctuation.bracket +"(" @punctuation.bracket + +; Keywords + +[ + "else" + "else if" + "if" + "with" +] @conditional + +[ + "range" + "end" + "template" + "define" + "block" +] @keyword + +; Literals + +[ + (interpreted_string_literal) + (raw_string_literal) + (rune_literal) +] @string + +(escape_sequence) @string.special + +[ + (int_literal) + (float_literal) + (imaginary_literal) +] @number + +[ + (true) + (false) +] @boolean + +[ + (nil) +] @constant.builtin + +(comment) @comment +(ERROR) @error diff --git a/.config/nvim/queries/gotmpl/injections.scm b/.config/nvim/queries/gotmpl/injections.scm new file mode 100644 index 0000000..694efeb --- /dev/null +++ b/.config/nvim/queries/gotmpl/injections.scm @@ -0,0 +1 @@ +(text) @yaml