aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Luis Lafuente <jl@lafuente.me>2022-10-20 01:33:31 +0200
committerGitHub <noreply@github.com>2022-10-19 23:33:31 +0000
commit470b872d5747819623c7b3a98eb320dc3cab95b4 (patch)
tree5af95a6999ab6e1a6f28a746d033b5010e73de62
parentfeat(diff): add diff parser (diff)
downloadnvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.tar
nvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.tar.gz
nvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.tar.bz2
nvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.tar.lz
nvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.tar.xz
nvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.tar.zst
nvim-treesitter-470b872d5747819623c7b3a98eb320dc3cab95b4.zip
parsers: add nickel parser (#3506)
* parsers: add nickel parser * Update lua/nvim-treesitter/parsers.lua Co-authored-by: Christian Clason <christian.clason@uni-due.de> * Update queries/nickel/highlights.scm Co-authored-by: Christian Clason <christian.clason@uni-due.de> * fix queries * Cleanup (based on @theHamsta review) Co-authored-by: Christian Clason <christian.clason@uni-due.de>
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--queries/nickel/highlights.scm61
2 files changed, 69 insertions, 0 deletions
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 85485aa55..cb72b911b 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1211,6 +1211,14 @@ list.gitignore = {
maintainers = { "@theHamsta" },
}
+list.nickel = {
+ install_info = {
+ url = "https://github.com/nickel-lang/tree-sitter-nickel",
+ files = { "src/parser.c", "src/scanner.cc" },
+ branch = "main",
+ },
+}
+
list.gitattributes = {
install_info = {
url = "https://github.com/ObserverOfTime/tree-sitter-gitattributes",
diff --git a/queries/nickel/highlights.scm b/queries/nickel/highlights.scm
new file mode 100644
index 000000000..53f4c134f
--- /dev/null
+++ b/queries/nickel/highlights.scm
@@ -0,0 +1,61 @@
+(comment) @comment @spell
+
+[
+ "forall"
+ "in"
+ "let"
+ "default"
+ "doc"
+ "rec"
+] @keyword
+
+"fun" @keyword.function
+
+"import" @include
+
+[ "if" "then" "else" ] @conditional
+"switch" @conditional
+
+(types) @type
+"Array" @type.builtin
+
+; BUILTIN Constants
+(bool) @constant.builtin
+"null" @constant.builtin
+
+(num_literal) @number
+
+(infix_op) @operator
+
+(type_atom) @type
+(enum_tag) @variable
+
+(chunk_literal_single) @string
+(chunk_literal_multi) @string
+
+(str_esc_char) @string.escape
+
+[
+ "{" "}"
+ "(" ")"
+ "[|" "|]"
+] @punctuation.bracket
+
+(multstr_start) @punctuation.bracket
+(multstr_end) @punctuation.bracket
+(interpolation_start) @punctuation.bracket
+(interpolation_end) @punctuation.bracket
+
+(record_field) @field
+
+(builtin) @function.builtin
+
+(fun_expr pats:
+ (pattern id:
+ (ident) @parameter
+ )
+)
+
+(applicative t1:
+ (applicative (record_operand) @function)
+)