Suggestion
As creating Tree-sitter S-Expressions - queries are not really simple, could you please provide some examples to allow the end users to figure out how they could query class, interface, enum, etc ?
Project used as example: https://github.com/ch007m/java-tree-sitter/tree/acc9a3108b4fd66c3147629db03081c24d8789b8/examples/spring-boot-todo-app
Example - Search about a class having as name
Query
(class_declaration name: (identifier) @class.name (#eq? @class.name "AppApplication"))
Result
./examples/spring-boot-todo-app/src/main/java/com/todo/app/AppApplication.java
pattern: 0
capture: 0 - class.name, start: (6, 13), end: (6, 27), text: `AppApplication`
./examples/spring-boot-todo-app/src/main/java/com/todo/app/controller/TaskController.java
./examples/spring-boot-todo-app/src/main/java/com/todo/app/entity/Task.java
./examples/spring-boot-todo-app/src/main/java/com/todo/app/repository/TaskRepository.java
./examples/spring-boot-todo-app/src/main/java/com/todo/app/service/TaskService.java
./examples/spring-boot-todo-app/src/main/java/com/todo/app/service/TaskServiceImpl.java
Example - Search about the annotation: @entity
[
(marker_annotation
name: (identifier) @annotation.name
(#eq? @annotation.name "Entity")) @entity.annotation
(annotation
name: (identifier) @annotation.name
(#eq? @annotation.name "Entity")) @entity.annotation
]
Result
cat ./examples/queries/annotation.txt | tree-sitter query /dev/stdin $SRC_PATH
Processing: /Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/repository/TaskRepository.java
Processing Java File: /Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/repository/TaskRepository.java
/Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/repository/TaskRepository.java
Processing: /Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/entity/Task.java
Processing Java File: /Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/entity/Task.java
/Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/entity/Task.java
pattern: 0
capture: 1 - entity.annotation, start: (7, 0), end: (7, 7), text: `@Entity`
capture: 0 - annotation.name, start: (7, 1), end: (7, 7), text: `Entity`
Processing: /Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/controller/TaskController.java
Processing Java File: /Users/cmoullia/code/quarkus/rewrite-mtool/_others/treesitter/aesh-tree-sitter/examples/spring-boot-todo-app/src/main/java/com/todo/app/controller/TaskController.java
Suggestion
As creating Tree-sitter S-Expressions - queries are not really simple, could you please provide some examples to allow the end users to figure out how they could query class, interface, enum, etc ?
Project used as example: https://github.com/ch007m/java-tree-sitter/tree/acc9a3108b4fd66c3147629db03081c24d8789b8/examples/spring-boot-todo-app
Example - Search about a class having as name
Query
Result
Example - Search about the annotation: @entity
Result