Move this to its own page.
This commit is contained in:
parent
302c8b5305
commit
88822bd3fc
2 changed files with 29 additions and 17 deletions
29
docs/section-8-code-navigation-systems.md
Normal file
29
docs/section-8-code-navigation-systems.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: Code Navigation Systems
|
||||
permalink: code-navigation-systems
|
||||
---
|
||||
|
||||
# Code Navigation Systems
|
||||
|
||||
Tree-sitter can be used in conjunction with its [tree query language](https://tree-sitter.github.io/tree-sitter/using-parsers#pattern-matching-with-queries) as a part of code navigation systems. An example of such a system can be seen in the `tree-sitter tag` command, which emits a textual dump of the interesting syntactic nodes in its file argument. This document exists to provide guidelines on the design and use of tree-sitter concepts to implement such systems.
|
||||
|
||||
## Tagging and captures
|
||||
|
||||
Code navigation systems using Tree-sitter need to use queries and captures to categorize and label different syntactic nodes, such as functions, built-ins, operators, and variables. A reverse-DNS-style notation is recommendedfor these captures, and provide guidelines below for naming captures of a given syntax node. User applications may extend (or only recognize a subset of) these capture names, but it is desirable to standardize on the names below when supported by a given system or language.
|
||||
|
||||
| Category | Tag |
|
||||
|--------------------------|-----------------------------|
|
||||
| Class definitions | `@definition.class` |
|
||||
| Function definitions | `@definition.function` |
|
||||
| Interface definitions | `@definition.interface` |
|
||||
| Method definitions | `@definition.method` |
|
||||
| Module definitions | `@definition.module` |
|
||||
| Function/method calls | `@reference.call` |
|
||||
| Class reference | `@reference.class` |
|
||||
| Interface implementation | `@reference.implementation` |
|
||||
|
||||
To communicate the associated identifier inside one of these syntactic classes, capture the identifier within as `@name`.
|
||||
|
||||
## `tree-sitter graph`
|
||||
|
||||
Coming soon!
|
||||
Loading…
Add table
Add a link
Reference in a new issue