[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/treesit-fold 4a2996eb5e 109/417: Organize
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/treesit-fold 4a2996eb5e 109/417: Organize |
Date: |
Mon, 1 Jul 2024 10:02:16 -0400 (EDT) |
branch: elpa/treesit-fold
commit 4a2996eb5ed33216c2dfbd9bc95700923de09d38
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Commit: Jen-Chieh Shen <jcs090218@gmail.com>
Organize
---
README.md | 2 ++
tree-sitter-fold-parsers.el | 29 ++++++++++++++++++++++++-----
tree-sitter-fold.el | 20 ++++++++++++++------
3 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 7df6e526fa..e349756d85 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,7 @@ then in Emacs:
## :hammer: Supported languages
+* Agda (WIP)
* Bash
* C / C++ / C# CSS
* Go
@@ -51,6 +52,7 @@ then in Emacs:
* Nix
* Python
* R / Ruby / Rust
+* Scala / Swift
* TypeScript / TSX
## Contribution
diff --git a/tree-sitter-fold-parsers.el b/tree-sitter-fold-parsers.el
index 107d2b3dd0..963ceb8b3c 100644
--- a/tree-sitter-fold-parsers.el
+++ b/tree-sitter-fold-parsers.el
@@ -38,6 +38,7 @@
(declare-function tree-sitter-fold-range-seq "tree-sitter-fold.el")
(declare-function tree-sitter-fold-range-line-comment "tree-sitter-fold.el")
(declare-function tree-sitter-fold-range-block-comment "tree-sitter-fold.el")
+(declare-function tree-sitter-fold-c-like-comment "tree-sitter-fold.el")
(declare-function tree-sitter-fold-range-python "tree-sitter-fold.el")
@@ -75,11 +76,7 @@
(switch_body . tree-sitter-fold-range-seq)
(anonymous_object_creation_expression . tree-sitter-fold-range-seq)
(initializer_expression . tree-sitter-fold-range-seq)
- (comment
- . (lambda (node offset)
- (if (tree-sitter-fold--multi-line node)
- (tree-sitter-fold-range-block-comment node offset)
- (tree-sitter-fold-range-line-comment node offset "///"))))))
+ (comment . tree-sitter-fold-c-like-comment)))
(defun tree-sitter-fold-parsers-css ()
"Rule sets for CSS."
@@ -153,6 +150,28 @@
(tree-sitter-fold-range-line-comment node
offset "///")))
(block_comment . tree-sitter-fold-range-block-comment)))
+(defun tree-sitter-fold-parsers-scala ()
+ "Rule sets for Scala."
+ '((import_selectors . tree-sitter-fold-range-seq)
+ (template_body . tree-sitter-fold-range-seq)
+ (block . tree-sitter-fold-range-seq)
+ (comment
+ . (lambda (node offset)
+ (if (tree-sitter-fold--multi-line node)
+ (tree-sitter-fold-range-block-comment node offset)
+ (tree-sitter-fold-range-line-comment node offset "///"))))))
+
+(defun tree-sitter-fold-parsers-swift ()
+ "Rule sets for Swift."
+ '((switch_statement . tree-sitter-fold-range-seq)
+ (function_declaration . tree-sitter-fold-range-seq)
+ (enum_declaration . tree-sitter-fold-range-seq)
+ (struct_declaration . tree-sitter-fold-range-seq)
+ (class_declaration . tree-sitter-fold-range-seq)
+ (protocol_declaration . tree-sitter-fold-range-seq)
+ (extension_declaration . tree-sitter-fold-range-seq)
+ (comment . tree-sitter-fold-c-like-comment)))
+
(defun tree-sitter-fold-parsers-typescript ()
"Rule sets for TypeScript."
(append (tree-sitter-fold-parsers-javascript)))
diff --git a/tree-sitter-fold.el b/tree-sitter-fold.el
index f826119cbf..3d461218c7 100644
--- a/tree-sitter-fold.el
+++ b/tree-sitter-fold.el
@@ -56,8 +56,14 @@
:group 'tree-sitter
:prefix "tree-sitter-fold-")
+(defvar tree-sitter-fold-foldable-node-alist nil
+ "Collect a list of foldable node from variable
`tree-sitter-fold-range-alist'.
+
+The alist is in form of (major-mode . (foldable-node-type)).")
+
(defcustom tree-sitter-fold-range-alist
`((agda-mode . ,(tree-sitter-fold-parsers-agda))
+ (sh-mode . ,(tree-sitter-fold-parsers-bash))
(c-mode . ,(tree-sitter-fold-parsers-c))
(c++-mode . ,(tree-sitter-fold-parsers-c++))
(csharp-mode . ,(tree-sitter-fold-parsers-csharp))
@@ -79,7 +85,8 @@
(ruby-mode . ,(tree-sitter-fold-parsers-ruby))
(rust-mode . ,(tree-sitter-fold-parsers-rust))
(rustic-mode . ,(tree-sitter-fold-parsers-rust))
- (sh-mode . ,(tree-sitter-fold-parsers-bash))
+ (scala-mode . ,(tree-sitter-fold-parsers-scala))
+ (swift-mode . ,(tree-sitter-fold-parsers-swift))
(typescript-mode . ,(tree-sitter-fold-parsers-typescript)))
"An alist of (major-mode . (foldable-node-type . function)).
@@ -100,11 +107,6 @@ the fold in a cons cell. See
`tree-sitter-fold-range-python' for an example."
alist)))
:group 'tree-sitter-fold)
-(defvar tree-sitter-fold-foldable-node-alist nil
- "Collect a list of foldable node from variable
`tree-sitter-fold-range-alist'.
-
-The alist is in form of (major-mode . (foldable-node-type)).")
-
(defcustom tree-sitter-fold-mode-hook nil
"Hook to run when enabling `tree-sitter-fold-mode`."
:type 'hook
@@ -380,6 +382,12 @@ For arguments NODE and OFFSET, see function
`tree-sitter-fold-range-seq' for
more information."
(tree-sitter-fold-range-seq node (tree-sitter-fold-util--cons-add '(1 . -1)
offset)))
+(defun tree-sitter-fold-c-like-comment (node offset)
+ "Define fold range for C-like comemnt."
+ (if (tree-sitter-fold--multi-line node)
+ (tree-sitter-fold-range-block-comment node offset)
+ (tree-sitter-fold-range-line-comment node offset "///")))
+
(defun tree-sitter-fold-range-python (node offset)
"Return the fold range for `function_definition' and `class_definition'.
- [nongnu] elpa/treesit-fold 4f281a727f 097/417: Use autoload instead, (continued)
- [nongnu] elpa/treesit-fold 4f281a727f 097/417: Use autoload instead, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold a68579c4f7 098/417: Fix ind overlays, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 66a8b272cc 101/417: Fix docstring extract condition, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 1602759fdd 178/417: Rename util module without util prefix, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold b505f0719f 183/417: ci: No more platform specific, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold e9d26a8e18 186/417: Update Eask, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 4e59c763c4 187/417: ci: cancel last workflow on push, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 62667ad992 189/417: Update README.md, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d6fbca3748 168/417: Update changelog, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 9fdf72dc20 201/417: docs(README): order contribute section, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 4a2996eb5e 109/417: Organize,
ELPA Syncer <=
- [nongnu] elpa/treesit-fold 8a5c66d099 110/417: Add support for PHP, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 0fe507ba03 111/417: Support sharp blocks, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 91fdf441bf 366/417: chore: Update copyright year, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold cad8607df0 107/417: Organize parsers, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 1e19f7c159 113/417: Fix compile warnings, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold 9a7b17aec8 208/417: update, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d8d6fc0558 209/417: update, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold bada0924b6 149/417: Support ruby, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold a137933c2b 153/417: Add screneshot, ELPA Syncer, 2024/07/01
- [nongnu] elpa/treesit-fold d7af314083 160/417: Done html, ELPA Syncer, 2024/07/01