Skip to content

Provide examples of queries to search about: annotation, class, method, etc #228

Description

@cmoulliard

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions