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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions