mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-29 05:15:04 +00:00
Convert code to text-size
This commit is contained in:
parent
27a7718880
commit
b1d5817dd1
75 changed files with 438 additions and 456 deletions
|
@ -3,7 +3,7 @@
|
|||
use ra_parser::Token as PToken;
|
||||
use ra_parser::TokenSource;
|
||||
|
||||
use crate::{parsing::lexer::Token, SyntaxKind::EOF, TextRange, TextUnit};
|
||||
use crate::{parsing::lexer::Token, SyntaxKind::EOF, TextRange, TextSize};
|
||||
|
||||
pub(crate) struct TextTokenSource<'t> {
|
||||
text: &'t str,
|
||||
|
@ -15,7 +15,7 @@ pub(crate) struct TextTokenSource<'t> {
|
|||
/// 0 7 10
|
||||
/// ```
|
||||
/// (token, start_offset): `[(struct, 0), (Foo, 7), (;, 10)]`
|
||||
start_offsets: Vec<TextUnit>,
|
||||
start_offsets: Vec<TextSize>,
|
||||
/// non-whitespace/comment tokens
|
||||
/// ```non-rust
|
||||
/// struct Foo {}
|
||||
|
@ -51,12 +51,12 @@ impl<'t> TokenSource for TextTokenSource<'t> {
|
|||
if pos >= self.tokens.len() {
|
||||
return false;
|
||||
}
|
||||
let range = TextRange::offset_len(self.start_offsets[pos], self.tokens[pos].len);
|
||||
let range = TextRange::at(self.start_offsets[pos], self.tokens[pos].len);
|
||||
self.text[range] == *kw
|
||||
}
|
||||
}
|
||||
|
||||
fn mk_token(pos: usize, start_offsets: &[TextUnit], tokens: &[Token]) -> PToken {
|
||||
fn mk_token(pos: usize, start_offsets: &[TextSize], tokens: &[Token]) -> PToken {
|
||||
let kind = tokens.get(pos).map(|t| t.kind).unwrap_or(EOF);
|
||||
let is_jointed_to_next = if pos + 1 < start_offsets.len() {
|
||||
start_offsets[pos] + tokens[pos].len == start_offsets[pos + 1]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue