emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/treesit-fold eb714e2c21 408/417: feat: Add Gleam support (


From: ELPA Syncer
Subject: [nongnu] elpa/treesit-fold eb714e2c21 408/417: feat: Add Gleam support (#8)
Date: Mon, 1 Jul 2024 10:03:12 -0400 (EDT)

branch: elpa/treesit-fold
commit eb714e2c218a23a10eaa51aae3ddbf1b5105bdc1
Author: Akira Komamura <6270544+akirak@users.noreply.github.com>
Commit: GitHub <noreply@github.com>

    feat: Add Gleam support (#8)
---
 treesit-fold-parsers.el | 11 +++++++++++
 treesit-fold.el         | 13 +++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/treesit-fold-parsers.el b/treesit-fold-parsers.el
index 02bf77833a..9beea1a971 100644
--- a/treesit-fold-parsers.el
+++ b/treesit-fold-parsers.el
@@ -264,6 +264,17 @@
      . (lambda (node offset)
          (treesit-fold-range-line-comment node offset "#")))))
 
+(defun treesit-fold-parsers-gleam ()
+  "Rules set for Gleam."
+  '((function        . treesit-fold-range-gleam)
+    (type_definition . treesit-fold-range-gleam)
+    (module_comment
+     . (lambda (node offset)
+         (treesit-fold-range-line-comment node offset "////")))
+    (statement_comment
+     . (lambda (node offset)
+         (treesit-fold-range-line-comment node offset "///")))))
+
 (defun treesit-fold-parsers-glsl ()
   "Rule set for GLSL."
   '((field_declaration_list . treesit-fold-range-seq)
diff --git a/treesit-fold.el b/treesit-fold.el
index c75adafa61..565eb2835b 100644
--- a/treesit-fold.el
+++ b/treesit-fold.el
@@ -96,6 +96,7 @@
     (fish-mode              . ,(treesit-fold-parsers-fish))
     (gdscript-mode          . ,(treesit-fold-parsers-gdscript))
     (gdscript-ts-mode       . ,(treesit-fold-parsers-gdscript))
+    (gleam-ts-mode          . ,(treesit-fold-parsers-gleam))
     (glsl-mode              . ,(treesit-fold-parsers-glsl))
     (go-mode                . ,(treesit-fold-parsers-go))
     (go-ts-mode             . ,(treesit-fold-parsers-go))
@@ -880,6 +881,18 @@ more information."
               (end (1- end)))
     (treesit-fold--cons-add (cons beg end) offset)))
 
+(defun treesit-fold-range-gleam (node offset)
+  "Return the fold range for `function' `type_definition' NODE in Gleam.
+
+For arguments NODE and OFFSET, see function `treesit-fold-range-seq' for
+more information."
+  (when-let* ((open-bracket (car (treesit-fold-find-children node "{")))
+              (beg (treesit-node-start open-bracket))
+              (beg (1+ beg))
+              (end (treesit-node-end node))
+              (end (1- end)))
+    (treesit-fold--cons-add (cons beg end) offset)))
+
 (defun treesit-fold-range-groovy-block (node offset)
   "Define fold range for `block' in Groovy.
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]