branch: elpa/treesit-fold
commit f5f3cd2d95b6e122c69f9f70391c35960f3c1f16
Author: JenChieh <[email protected]>
Commit: JenChieh <[email protected]>

    feat: Add Nim support
---
 README.md               | 2 +-
 treesit-fold-parsers.el | 8 ++++++++
 treesit-fold-summary.el | 8 ++++++++
 treesit-fold.el         | 3 +++
 4 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 851458c4207..a523d9334d8 100644
--- a/README.md
+++ b/README.md
@@ -134,7 +134,7 @@ These languages are fairly complete:
 - Kotlin
 - LaTex / Lisp / Lua
 - Make / MATLAB / Markdown / Mermaid
-- Ninja / Nix / Noir
+- Ninja / Nim / Nix / Noir
 - OCaml / Org
 - Perl / PHP / Python
 - R / RON/ Ruby / Rust / reStructuredText
diff --git a/treesit-fold-parsers.el b/treesit-fold-parsers.el
index a12734c5541..d877e4251f9 100644
--- a/treesit-fold-parsers.el
+++ b/treesit-fold-parsers.el
@@ -546,6 +546,14 @@
   '((body    . treesit-fold-range-seq)
     (comment . treesit-fold-range-c-like-comment)))
 
+(defun treesit-fold-parsers-nim ()
+  "Rule set for Nim."
+  '((array_construction . treesit-fold-range-seq)
+    (for                . treesit-fold-range-seq)
+    (comment
+     . (lambda (node offset)
+         (treesit-fold-range-line-comment node offset "#")))))
+
 (defun treesit-fold-parsers-nix ()
   "Rule set for Nix."
   '((attrset_expression . treesit-fold-range-seq)
diff --git a/treesit-fold-summary.el b/treesit-fold-summary.el
index 383ac12052a..9fd85d3b98f 100644
--- a/treesit-fold-summary.el
+++ b/treesit-fold-summary.el
@@ -238,7 +238,9 @@ type of content by checking the word boundary's existence."
     (json-mode              . treesit-fold-summary-javadoc)
     (jsonnet-mode           . treesit-fold-summary-javadoc)
     (julia-mode             . treesit-fold-summary-julia-doc)
+    (julia-ts-mode          . treesit-fold-summary-julia-doc)
     (kotlin-mode            . treesit-fold-summary-javadoc)
+    (kotlin-ts-mode         . treesit-fold-summary-javadoc)
     (latex-mode             . treesit-fold-summary-tex-doc)
     (LaTeX-mode             . treesit-fold-summary-tex-doc)
     (lisp-mode              . treesit-fold-summary-elisp)
@@ -246,6 +248,7 @@ type of content by checking the word boundary's existence."
     (llvm-mode              . treesit-fold-summary-elisp)
     (llvm-mir-mode          . treesit-fold-summary-elisp)
     (lua-mode               . treesit-fold-summary-lua-doc)
+    (lua-ts-mode            . treesit-fold-summary-lua-doc)
     (magik-mode             . treesit-fold-summary-ruby-doc)
     (makefile-mode          . treesit-fold-summary-ruby-doc)
     (makefile-automake-mode . treesit-fold-summary-ruby-doc)
@@ -257,8 +260,12 @@ type of content by checking the word boundary's existence."
     (matlab-mode            . treesit-fold-summary-matlab-doc)
     (mermaid-mode           . treesit-fold-summary-mermaid)
     (ninja-mode             . treesit-fold-summary-ruby-doc)
+    (nim-mode               . treesit-fold-summary-ruby-doc)
+    (nim-ts-mode            . treesit-fold-summary-ruby-doc)
     (nix-mode               . treesit-fold-summary-ruby-doc)
+    (nix-ts-mode            . treesit-fold-summary-ruby-doc)
     (noir-mode              . treesit-fold-summary-rust-doc)
+    (noir-ts-mode              . treesit-fold-summary-rust-doc)
     (objc-mode              . treesit-fold-summary-c)
     (org-mode               . treesit-fold-summary-org)
     (perl-mode              . treesit-fold-summary-ruby-doc)
@@ -283,6 +290,7 @@ type of content by checking the word boundary's existence."
     (typescript-mode        . treesit-fold-summary-javadoc)
     (verilog-mode           . treesit-fold-summary-javadoc)
     (vhdl-mode              . treesit-fold-summary-lua-doc)
+    (vimrc-mode             . treesit-fold-summary-vim)
     (vimscript-ts-mode      . treesit-fold-summary-vim)
     (nxml-mode              . treesit-fold-summary-xml)
     (yaml-mode              . treesit-fold-summary-ruby-doc)
diff --git a/treesit-fold.el b/treesit-fold.el
index 5a806475e24..baf52e3cb7a 100644
--- a/treesit-fold.el
+++ b/treesit-fold.el
@@ -158,6 +158,8 @@
     (ninja-mode             . ,(treesit-fold-parsers-ninja))
     (noir-mode              . ,(treesit-fold-parsers-noir))
     (noir-ts-mode           . ,(treesit-fold-parsers-noir))
+    (nim-mode               . ,(treesit-fold-parsers-nim))
+    (nim-ts-mode            . ,(treesit-fold-parsers-nim))
     (nix-mode               . ,(treesit-fold-parsers-nix))
     (nix-ts-mode            . ,(treesit-fold-parsers-nix))
     (ocaml-mode             . ,(treesit-fold-parsers-ocaml))
@@ -197,6 +199,7 @@
     (verilog-ts-mode        . ,(treesit-fold-parsers-verilog))
     (vhdl-mode              . ,(treesit-fold-parsers-vhdl))
     (vhdl-ts-mode           . ,(treesit-fold-parsers-vhdl))
+    (vimrc-mode             . ,(treesit-fold-parsers-vim))
     (vimscript-ts-mode      . ,(treesit-fold-parsers-vim))
     (nxml-mode              . ,(treesit-fold-parsers-xml))
     (xml-ts-mode            . ,(treesit-fold-parsers-xml))

Reply via email to