branch: elpa/treesit-fold
commit cbde31d21daad72a9c81bb6bbaaacc6ee6a23321
Author: Jen-Chieh Shen <[email protected]>
Commit: GitHub <[email protected]>

    feat: Add Fennel support (#39)
    
    * feat: Add Fennel support
    
    * docs: changelog
---
 CHANGELOG.md            | 1 +
 README.md               | 2 +-
 treesit-fold-parsers.el | 8 ++++++++
 treesit-fold-summary.el | 2 ++
 treesit-fold.el         | 2 ++
 5 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f244620527c..273de45bc02 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ Check [Keep a Changelog](http://keepachangelog.com/) for 
recommendations on how
 * feat: Add `Vimscript` support 
([`d57ff35`](../../commit/d57ff357194483f4d3277613345634136a41b509))
 * feat: Add `Nim` support 
([`f5f3cd2`](../../commit/f5f3cd2d95b6e122c69f9f70391c35960f3c1f16))
 * feat: Add `F#` support 
([`35b6201`](../../commit/35b62011cb8ae2f85adb00080a0a9e040eee5c87))
+* feat: Add `Fennel` support ([#39](../../pull/39))
 
 ## 0.2.0
 > Released Feb 12, 2025
diff --git a/README.md b/README.md
index 64058907dd0..917a9ea88c7 100644
--- a/README.md
+++ b/README.md
@@ -127,7 +127,7 @@ These languages are fairly complete:
 - C / C++ / C# / Clojure / CMake / CSS
 - Dart
 - Elisp / Elixir / Erlang
-- Fish / F#
+- F# / Fish / Fennel
 - GDScript / Gleam / GLSL / Go / GraphQL / Groovy (Jenkinsfile)
 - Haskell / Haxe / HEEx / HLSL / HTML
 - Jai / Janet / Java / JavaScript / JSX / JSON / Jsonnet / Julia
diff --git a/treesit-fold-parsers.el b/treesit-fold-parsers.el
index 197bc5465cb..3513e2eb17d 100644
--- a/treesit-fold-parsers.el
+++ b/treesit-fold-parsers.el
@@ -266,6 +266,14 @@
      . (lambda (node offset)
          (treesit-fold-range-line-comment node offset "%")))))
 
+(defun treesit-fold-parsers-fennel ()
+  "Rules set for Fennel."
+  '((macro_form . treesit-fold-range-elisp-function)
+    (fn_form    . treesit-fold-range-elisp-function)
+    (comment
+     . (lambda (node offset)
+         (treesit-fold-range-line-comment node offset ";;")))))
+
 (defun treesit-fold-parsers-fish ()
   "Rules set for Fish."
   '((function_definition . treesit-fold-range-fish-function)
diff --git a/treesit-fold-summary.el b/treesit-fold-summary.el
index e0f8db4cf2b..7e9df6e9294 100644
--- a/treesit-fold-summary.el
+++ b/treesit-fold-summary.el
@@ -225,6 +225,8 @@ type of content by checking the word boundary's existence."
     (emacs-lisp-mode        . treesit-fold-summary-elisp)
     (elixir-mode            . treesit-fold-summary-ruby-doc)
     (erlang-mode            . treesit-fold-summary-tex-doc)
+    (fennel-mode            . treesit-fold-summary-elisp)
+    (fennel-ts-mode         . treesit-fold-summary-elisp)
     (fish-mode              . treesit-fold-summary-javadoc)
     (fsharp-mode            . treesit-fold-summary-ocaml)
     (gdscript-mode          . treesit-fold-summary-ruby-doc)
diff --git a/treesit-fold.el b/treesit-fold.el
index 18d8395c6d5..35fa725cf9d 100644
--- a/treesit-fold.el
+++ b/treesit-fold.el
@@ -95,6 +95,8 @@
     (erlang-mode            . ,(treesit-fold-parsers-erlang))
     (erlang-ts-mode         . ,(treesit-fold-parsers-erlang))
     (ess-r-mode             . ,(treesit-fold-parsers-r))
+    (fennel-mode            . ,(treesit-fold-parsers-fennel))
+    (fennel-ts-mode         . ,(treesit-fold-parsers-fennel))
     (fish-mode              . ,(treesit-fold-parsers-fish))
     (fsharp-mode            . ,(treesit-fold-parsers-fsharp))
     (fsharp-ts-mode         . ,(treesit-fold-parsers-fsharp))

Reply via email to