diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 18273e42a..7aab74e90 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1156,6 +1156,16 @@ list.tiger = { maintainers = { "@ambroisie" }, } +list.gitignore = { + install_info = { + url = "https://github.com/shunsambongi/tree-sitter-gitignore", + files = { "src/parser.c" }, + branch = "main", + requires_generate_from_grammar = true, + }, + maintainers = { "@theHamsta" }, +} + local M = { list = list, filetype_to_parsername = filetype_to_parsername, diff --git a/queries/gitignore/highlights.scm b/queries/gitignore/highlights.scm new file mode 100644 index 000000000..c5f1ac5e1 --- /dev/null +++ b/queries/gitignore/highlights.scm @@ -0,0 +1,31 @@ +(comment) @comment + +[ + (directory_separator) + (directory_separator_escaped) +] @punctuation.delimiter + +[ + (wildcard_char_single) + (wildcard_chars) + (wildcard_chars_allow_slash) + (bracket_negation) +] @operator + +(negation) @punctuation.special + +[ + (pattern_char_escaped) + (bracket_char_escaped) +] @string.escape + +;; bracket expressions +[ + "[" + "]" +] @punctuation.bracket + +(bracket_char) @constant +(bracket_range + "-" @operator) +(bracket_char_class) @constant.builtin