mirror of https://github.com/Wilfred/difftastic/
docs: update README
parent
2697585ee0
commit
afb6000a71
@ -1,29 +1,38 @@
|
|||||||
# tree-sitter-rust
|
# tree-sitter-rust
|
||||||
|
|
||||||
[](https://github.com/tree-sitter/tree-sitter-rust/actions/workflows/ci.yml)
|
[](https://github.com/tree-sitter/tree-sitter-c/actions/workflows/ci.yml)
|
||||||
|
|
||||||
Rust grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter)
|
Rust grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* **Speed** - When initially parsing a file, `tree-sitter-rust` takes around twice as long as Rustc's hand-coded parser.
|
- **Speed** — When initially parsing a file, `tree-sitter-rust` takes around twice
|
||||||
|
as long as Rustc's hand-coded parser.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ wc -l examples/ast.rs
|
$ wc -l examples/ast.rs
|
||||||
2157 examples/ast.rs
|
2157 examples/ast.rs
|
||||||
|
|
||||||
$ rustc -Z ast-json-noexpand -Z time-passes examples/ast.rs | head -n1
|
$ rustc -Z ast-json-noexpand -Z time-passes examples/ast.rs | head -n1
|
||||||
time: 0.007 parsing # (7 ms)
|
time: 0.007 parsing # (7 ms)
|
||||||
|
|
||||||
$ tree-sitter parse examples/ast.rs --quiet --time
|
$ tree-sitter parse examples/ast.rs --quiet --time
|
||||||
examples/ast.rs 16 ms
|
examples/ast.rs 16 ms
|
||||||
```
|
```
|
||||||
|
|
||||||
But if you *edit* the file after parsing it, this parser can generally *update* the previous existing syntax tree to reflect your edit in less than a millisecond, thanks to Tree-sitter's incremental parsing system.
|
But if you _edit_ the file after parsing it, this parser can generally _update_
|
||||||
|
the previous existing syntax tree to reflect your edit in less than a millisecond,
|
||||||
|
thanks to Tree-sitter's incremental parsing system.
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
* [The Rust Grammar Reference](https://doc.rust-lang.org/grammar.html) - The grammar reference provides chapters that formally define the language grammar.
|
- [The Rust Grammar Reference](https://doc.rust-lang.org/grammar.html) — The grammar
|
||||||
* [The Rust Reference](https://doc.rust-lang.org/reference/) - While Rust does not have a specification, the reference tries to describe its working in detail. It tends to be out of date.
|
reference provides chapters that formally define the language grammar.
|
||||||
* [Keywords](https://doc.rust-lang.org/stable/book/appendix-01-keywords.html) and [Operators and Symbols](https://doc.rust-lang.org/stable/book/appendix-02-operators.html).
|
- [The Rust Reference](https://doc.rust-lang.org/reference/) — While Rust does
|
||||||
* Archive of the outdated [Syntax Index](https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/share/doc/rust/html/book/first-edition/syntax-index.html) that contains examples of all syntax in Rust cross-referenced with the section of The Book that describes it.
|
not have a specification, the reference tries to describe its working in detail.
|
||||||
|
It tends to be out of date.
|
||||||
|
- [Keywords](https://doc.rust-lang.org/stable/book/appendix-01-keywords.html) and
|
||||||
|
[Operators and Symbols](https://doc.rust-lang.org/stable/book/appendix-02-operators.html).
|
||||||
|
- Archive of the outdated [Syntax Index](https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/share/doc/rust/html/book/first-edition/syntax-index.html)
|
||||||
|
that contains examples of all syntax in Rust cross-referenced with the section
|
||||||
|
of The Book that describes it.
|
||||||
|
|||||||
Loading…
Reference in New Issue