summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPau Ruiz Safont <unduthegun@gmail.com>2020-09-28 22:59:11 +0100
committerStephan Seitz <stephan.lauf@yahoo.de>2020-10-04 14:33:29 +0200
commitf1c272676b0348c8c0bdf40b2b6a8e4be39e5756 (patch)
tree1167a1886afd9754e2b0bfc66eccf1938a1eabea
parent37b011b67974d63fa5d5fc0fedd14158574acc59 (diff)
feat: add ocamllex parser and highlights
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--queries/ocamllex/highlights.scm27
2 files changed, 35 insertions, 0 deletions
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 6b74faaa..f0177e3e 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -145,6 +145,14 @@ list.ocaml_interface = {
filetype = 'ocamlinterface'
}
+list.ocamllex = {
+ install_info = {
+ url = "https://github.com/atom-ocaml/tree-sitter-ocamllex",
+ files = { "src/parser.c", "src/scanner.cc" },
+ },
+ maintainers = {'@undu'},
+}
+
list.swift = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-swift",
diff --git a/queries/ocamllex/highlights.scm b/queries/ocamllex/highlights.scm
new file mode 100644
index 00000000..eb72102a
--- /dev/null
+++ b/queries/ocamllex/highlights.scm
@@ -0,0 +1,27 @@
+
+[(lexer_argument) (regexp_name) (any)] @type
+
+(lexer_entry_name) @function
+
+["as" "let" "parse" "rule"] @keyword
+
+[(eof) (character)] @character
+(string) @string
+
+(character_range "-" @operator)
+(character_set "^" @operator)
+(regexp_alternative ["|"] @operator)
+(regexp_difference ["#"] @operator)
+(regexp_option ["?"] @operator)
+(regexp_repetition ["*"] @operator)
+(regexp_strict_repetition ["+"] @operator)
+
+(action ["{" "}"] @punctuation.special) @embedded
+(character_set ["[" "]"] @punctuation.bracket)
+(parenthesized_regexp ["(" ")"] @punctuation.bracket)
+
+["="] @punctuation.delimiter
+(lexer_entry "|" @punctuation.delimiter)
+
+(comment) @comment
+(ERROR) @error