mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-11-25 05:23:12 +00:00
⬆️ rowan
It now stores text inline with tokens
This commit is contained in:
parent
46b4f89c92
commit
3429b32ad1
7 changed files with 12 additions and 17 deletions
|
|
@ -56,9 +56,9 @@ pub use crate::{
|
|||
};
|
||||
pub use parser::{SyntaxKind, T};
|
||||
pub use rowan::{
|
||||
Direction, GreenNode, NodeOrToken, SmolStr, SyntaxText, TextRange, TextSize, TokenAtOffset,
|
||||
WalkEvent,
|
||||
Direction, GreenNode, NodeOrToken, SyntaxText, TextRange, TextSize, TokenAtOffset, WalkEvent,
|
||||
};
|
||||
pub use smol_str::SmolStr;
|
||||
|
||||
/// `Parse` is the result of the parsing: a syntax tree and a collection of
|
||||
/// errors.
|
||||
|
|
|
|||
|
|
@ -73,8 +73,7 @@ fn reparse_token<'node>(
|
|||
new_text.pop();
|
||||
}
|
||||
|
||||
let new_token =
|
||||
GreenToken::new(rowan::SyntaxKind(prev_token_kind.into()), new_text.into());
|
||||
let new_token = GreenToken::new(rowan::SyntaxKind(prev_token_kind.into()), &new_text);
|
||||
Some((
|
||||
prev_token.replace_with(new_token),
|
||||
new_err.into_iter().collect(),
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use crate::{
|
|||
ast,
|
||||
parsing::Token,
|
||||
syntax_node::GreenNode,
|
||||
SmolStr, SyntaxError,
|
||||
SyntaxError,
|
||||
SyntaxKind::{self, *},
|
||||
SyntaxTreeBuilder, TextRange, TextSize,
|
||||
};
|
||||
|
|
@ -135,7 +135,7 @@ impl<'a> TextTreeSink<'a> {
|
|||
|
||||
fn do_token(&mut self, kind: SyntaxKind, len: TextSize, n_tokens: usize) {
|
||||
let range = TextRange::at(self.text_pos, len);
|
||||
let text: SmolStr = self.text[range].into();
|
||||
let text = &self.text[range];
|
||||
self.text_pos += len;
|
||||
self.token_pos += n_tokens;
|
||||
self.inner.token(kind, text);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
use rowan::{GreenNodeBuilder, Language};
|
||||
|
||||
use crate::{Parse, SmolStr, SyntaxError, SyntaxKind, TextSize};
|
||||
use crate::{Parse, SyntaxError, SyntaxKind, TextSize};
|
||||
|
||||
pub(crate) use rowan::{GreenNode, GreenToken, NodeOrToken};
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ impl SyntaxTreeBuilder {
|
|||
Parse::new(green, errors)
|
||||
}
|
||||
|
||||
pub fn token(&mut self, kind: SyntaxKind, text: SmolStr) {
|
||||
pub fn token(&mut self, kind: SyntaxKind, text: &str) {
|
||||
let kind = RustLanguage::kind_to_raw(kind);
|
||||
self.inner.token(kind, text)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue