mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
libsyntax2 -> rust-analyzer
This commit is contained in:
parent
79293d2593
commit
8845b50438
3 changed files with 9 additions and 10 deletions
|
@ -9,7 +9,7 @@ are some areas where contributions would be **especially** welcome:
|
||||||
constraints, it's an open question how to satisfy them in the
|
constraints, it's an open question how to satisfy them in the
|
||||||
optimal way. See `ARCHITECTURE.md` for current design questions.
|
optimal way. See `ARCHITECTURE.md` for current design questions.
|
||||||
|
|
||||||
* Porting libsyntax parser to libsyntax2: currently libsyntax2 parses
|
* Porting libsyntax parser to rust-analyzer: currently rust-analyzer parses
|
||||||
only a tiny subset of Rust. This should be fixed by porting parsing
|
only a tiny subset of Rust. This should be fixed by porting parsing
|
||||||
functions from libsyntax one by one. Take a look at the
|
functions from libsyntax one by one. Take a look at the
|
||||||
[libsyntax parser](https://github.com/rust-lang/rust/blob/6b99adeb11313197f409b4f7c4083c2ceca8a4fe/src/libsyntax/parse/parser.rs)
|
[libsyntax parser](https://github.com/rust-lang/rust/blob/6b99adeb11313197f409b4f7c4083c2ceca8a4fe/src/libsyntax/parse/parser.rs)
|
||||||
|
@ -17,23 +17,22 @@ are some areas where contributions would be **especially** welcome:
|
||||||
[Kotlin parser](https://github.com/JetBrains/kotlin/blob/4d951de616b20feca92f3e9cc9679b2de9e65195/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java)
|
[Kotlin parser](https://github.com/JetBrains/kotlin/blob/4d951de616b20feca92f3e9cc9679b2de9e65195/compiler/frontend/src/org/jetbrains/kotlin/parsing/KotlinParsing.java)
|
||||||
for "how to port".
|
for "how to port".
|
||||||
|
|
||||||
* Writing validators: by design, libsyntax2 is very lax about the
|
* Writing validators: by design, rust-analyzer is very lax about the
|
||||||
input. For example, the lexer happily accepts unclosed strings. The
|
input. For example, the lexer happily accepts unclosed strings. The
|
||||||
idea is that there should be a higher level visitor, which walks the
|
idea is that there should be a higher level visitor, which walks the
|
||||||
syntax tree after parsing and produces all the warnings. Alas,
|
syntax tree after parsing and produces all the warnings. Alas,
|
||||||
there's no such visitor yet :( Would you like to write one? :)
|
there's no such visitor yet :( Would you like to write one? :)
|
||||||
|
|
||||||
* Creating tests: it would be tremendously helpful to read each of
|
* Creating tests: it would be tremendously helpful to read each of
|
||||||
libsyntax and libsyntax2 parser functions and crate a small separate
|
libsyntax and rust-analyzer parser functions and crate a small separate
|
||||||
test cases to cover each and every edge case.
|
test cases to cover each and every edge case.
|
||||||
|
|
||||||
* Building stuff with libsyntax2: it would be really cool to compile
|
* Building stuff with rust-analyzer: it would be really cool to compile
|
||||||
libsyntax2 to WASM and add *client side* syntax validation to rust
|
rust-analyzer to WASM and add *client side* syntax validation to rust
|
||||||
playground!
|
playground!
|
||||||
|
|
||||||
|
|
||||||
Do take a look at the issue tracker, and try to read other docs in
|
Do take a look at the issue tracker.
|
||||||
the [./docs](https://github.com/matklad/libsyntax2/tree/master/docs) folder!
|
|
||||||
|
|
||||||
If you don't know where to start, or have *any* questions or suggestions,
|
If you don't know where to start, or have *any* questions or suggestions,
|
||||||
don't hesitate to chat at [Gitter](https://gitter.im/libsyntax2/Lobby)!
|
don't hesitate to chat at [Gitter](https://gitter.im/libsyntax2/Lobby)!
|
||||||
|
|
|
@ -92,7 +92,7 @@ notes.
|
||||||
- `algo`: generic tree algorithms, including `walk` for O(1) stack
|
- `algo`: generic tree algorithms, including `walk` for O(1) stack
|
||||||
space tree traversal (this is cool) and `visit` for type-driven
|
space tree traversal (this is cool) and `visit` for type-driven
|
||||||
visiting the nodes (this is double plus cool, if you understand how
|
visiting the nodes (this is double plus cool, if you understand how
|
||||||
`Visitor` works, you understand libsyntax2).
|
`Visitor` works, you understand rust-analyzer).
|
||||||
|
|
||||||
|
|
||||||
### `crates/ra_editor`
|
### `crates/ra_editor`
|
||||||
|
@ -132,7 +132,7 @@ A CLI interface to libsyntax
|
||||||
|
|
||||||
### `crate/tools`
|
### `crate/tools`
|
||||||
|
|
||||||
Code-gen tasks, used to develop libsyntax2:
|
Code-gen tasks, used to develop rust-analyzer:
|
||||||
|
|
||||||
- `cargo gen-kinds` -- generate `ast` and `syntax_kinds`
|
- `cargo gen-kinds` -- generate `ast` and `syntax_kinds`
|
||||||
- `cargo gen-tests` -- collect inline tests from grammar
|
- `cargo gen-tests` -- collect inline tests from grammar
|
||||||
|
|
|
@ -407,7 +407,7 @@ pub fn publish_diagnostics(
|
||||||
range: d.range.conv_with(&line_index),
|
range: d.range.conv_with(&line_index),
|
||||||
severity: Some(DiagnosticSeverity::Error),
|
severity: Some(DiagnosticSeverity::Error),
|
||||||
code: None,
|
code: None,
|
||||||
source: Some("libsyntax2".to_string()),
|
source: Some("rust-analyzer".to_string()),
|
||||||
message: d.message,
|
message: d.message,
|
||||||
related_information: None,
|
related_information: None,
|
||||||
}).collect();
|
}).collect();
|
||||||
|
|
Loading…
Reference in a new issue