Skip to content

Commit 0a758a2

Browse files
bors[bot]matklad
andcommitted
Merge #1090
1090: always show token text r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
2 parents 78f38a2 + 7d6bd5d commit 0a758a2

File tree

221 files changed

+8921
-8921
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

221 files changed

+8921
-8921
lines changed

crates/ra_ide_api/src/syntax_tree.rs

Lines changed: 85 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ fn syntax_tree_for_token(node: SyntaxToken, text_range: TextRange) -> Option<Str
9393

9494
#[cfg(test)]
9595
mod tests {
96+
use test_utils::assert_eq_text;
97+
9698
use crate::mock_analysis::{single_file, single_file_with_range};
9799

98100
#[test]
@@ -101,23 +103,23 @@ mod tests {
101103
let (analysis, file_id) = single_file(r#"fn foo() {}"#);
102104
let syn = analysis.syntax_tree(file_id, None);
103105

104-
assert_eq!(
106+
assert_eq_text!(
105107
syn.trim(),
106108
r#"
107109
SOURCE_FILE@[0; 11)
108110
FN_DEF@[0; 11)
109-
FN_KW@[0; 2)
110-
WHITESPACE@[2; 3)
111+
FN_KW@[0; 2) "fn"
112+
WHITESPACE@[2; 3) " "
111113
NAME@[3; 6)
112114
IDENT@[3; 6) "foo"
113115
PARAM_LIST@[6; 8)
114-
L_PAREN@[6; 7)
115-
R_PAREN@[7; 8)
116-
WHITESPACE@[8; 9)
116+
L_PAREN@[6; 7) "("
117+
R_PAREN@[7; 8) ")"
118+
WHITESPACE@[8; 9) " "
117119
BLOCK@[9; 11)
118-
L_CURLY@[9; 10)
119-
R_CURLY@[10; 11)
120-
"#
120+
L_CURLY@[9; 10) "{"
121+
R_CURLY@[10; 11) "}"
122+
"#
121123
.trim()
122124
);
123125

@@ -133,40 +135,40 @@ fn test() {
133135
);
134136
let syn = analysis.syntax_tree(file_id, None);
135137

136-
assert_eq!(
138+
assert_eq_text!(
137139
syn.trim(),
138140
r#"
139141
SOURCE_FILE@[0; 60)
140142
FN_DEF@[0; 60)
141-
FN_KW@[0; 2)
142-
WHITESPACE@[2; 3)
143+
FN_KW@[0; 2) "fn"
144+
WHITESPACE@[2; 3) " "
143145
NAME@[3; 7)
144146
IDENT@[3; 7) "test"
145147
PARAM_LIST@[7; 9)
146-
L_PAREN@[7; 8)
147-
R_PAREN@[8; 9)
148-
WHITESPACE@[9; 10)
148+
L_PAREN@[7; 8) "("
149+
R_PAREN@[8; 9) ")"
150+
WHITESPACE@[9; 10) " "
149151
BLOCK@[10; 60)
150-
L_CURLY@[10; 11)
151-
WHITESPACE@[11; 16)
152+
L_CURLY@[10; 11) "{"
153+
WHITESPACE@[11; 16) "\n "
152154
EXPR_STMT@[16; 58)
153155
MACRO_CALL@[16; 57)
154156
PATH@[16; 22)
155157
PATH_SEGMENT@[16; 22)
156158
NAME_REF@[16; 22)
157159
IDENT@[16; 22) "assert"
158-
EXCL@[22; 23)
160+
EXCL@[22; 23) "!"
159161
TOKEN_TREE@[23; 57)
160-
L_PAREN@[23; 24)
161-
STRING@[24; 52)
162-
COMMA@[52; 53)
163-
WHITESPACE@[53; 54)
164-
STRING@[54; 56)
165-
R_PAREN@[56; 57)
166-
SEMI@[57; 58)
167-
WHITESPACE@[58; 59)
168-
R_CURLY@[59; 60)
169-
"#
162+
L_PAREN@[23; 24) "("
163+
STRING@[24; 52) "\"\n fn foo() {\n ..."
164+
COMMA@[52; 53) ","
165+
WHITESPACE@[53; 54) " "
166+
STRING@[54; 56) "\"\""
167+
R_PAREN@[56; 57) ")"
168+
SEMI@[57; 58) ";"
169+
WHITESPACE@[58; 59) "\n"
170+
R_CURLY@[59; 60) "}"
171+
"#
170172
.trim()
171173
);
172174
}
@@ -176,22 +178,22 @@ SOURCE_FILE@[0; 60)
176178
let (analysis, range) = single_file_with_range(r#"<|>fn foo() {}<|>"#.trim());
177179
let syn = analysis.syntax_tree(range.file_id, Some(range.range));
178180

179-
assert_eq!(
181+
assert_eq_text!(
180182
syn.trim(),
181183
r#"
182184
FN_DEF@[0; 11)
183-
FN_KW@[0; 2)
184-
WHITESPACE@[2; 3)
185+
FN_KW@[0; 2) "fn"
186+
WHITESPACE@[2; 3) " "
185187
NAME@[3; 6)
186188
IDENT@[3; 6) "foo"
187189
PARAM_LIST@[6; 8)
188-
L_PAREN@[6; 7)
189-
R_PAREN@[7; 8)
190-
WHITESPACE@[8; 9)
190+
L_PAREN@[6; 7) "("
191+
R_PAREN@[7; 8) ")"
192+
WHITESPACE@[8; 9) " "
191193
BLOCK@[9; 11)
192-
L_CURLY@[9; 10)
193-
R_CURLY@[10; 11)
194-
"#
194+
L_CURLY@[9; 10) "{"
195+
R_CURLY@[10; 11) "}"
196+
"#
195197
.trim()
196198
);
197199

@@ -206,7 +208,7 @@ FN_DEF@[0; 11)
206208
);
207209
let syn = analysis.syntax_tree(range.file_id, Some(range.range));
208210

209-
assert_eq!(
211+
assert_eq_text!(
210212
syn.trim(),
211213
r#"
212214
EXPR_STMT@[16; 58)
@@ -215,16 +217,16 @@ EXPR_STMT@[16; 58)
215217
PATH_SEGMENT@[16; 22)
216218
NAME_REF@[16; 22)
217219
IDENT@[16; 22) "assert"
218-
EXCL@[22; 23)
220+
EXCL@[22; 23) "!"
219221
TOKEN_TREE@[23; 57)
220-
L_PAREN@[23; 24)
221-
STRING@[24; 52)
222-
COMMA@[52; 53)
223-
WHITESPACE@[53; 54)
224-
STRING@[54; 56)
225-
R_PAREN@[56; 57)
226-
SEMI@[57; 58)
227-
"#
222+
L_PAREN@[23; 24) "("
223+
STRING@[24; 52) "\"\n fn foo() {\n ..."
224+
COMMA@[52; 53) ","
225+
WHITESPACE@[53; 54) " "
226+
STRING@[54; 56) "\"\""
227+
R_PAREN@[56; 57) ")"
228+
SEMI@[57; 58) ";"
229+
"#
228230
.trim()
229231
);
230232
}
@@ -243,23 +245,23 @@ fn bar() {
243245
.trim(),
244246
);
245247
let syn = analysis.syntax_tree(range.file_id, Some(range.range));
246-
assert_eq!(
248+
assert_eq_text!(
247249
syn.trim(),
248250
r#"
249251
SOURCE_FILE@[0; 12)
250252
FN_DEF@[0; 12)
251-
FN_KW@[0; 2)
252-
WHITESPACE@[2; 3)
253+
FN_KW@[0; 2) "fn"
254+
WHITESPACE@[2; 3) " "
253255
NAME@[3; 6)
254256
IDENT@[3; 6) "foo"
255257
PARAM_LIST@[6; 8)
256-
L_PAREN@[6; 7)
257-
R_PAREN@[7; 8)
258-
WHITESPACE@[8; 9)
258+
L_PAREN@[6; 7) "("
259+
R_PAREN@[7; 8) ")"
260+
WHITESPACE@[8; 9) " "
259261
BLOCK@[9; 12)
260-
L_CURLY@[9; 10)
261-
WHITESPACE@[10; 11)
262-
R_CURLY@[11; 12)
262+
L_CURLY@[9; 10) "{"
263+
WHITESPACE@[10; 11) "\n"
264+
R_CURLY@[11; 12) "}"
263265
"#
264266
.trim()
265267
);
@@ -277,23 +279,23 @@ fn bar() {
277279
.trim(),
278280
);
279281
let syn = analysis.syntax_tree(range.file_id, Some(range.range));
280-
assert_eq!(
282+
assert_eq_text!(
281283
syn.trim(),
282284
r#"
283285
SOURCE_FILE@[0; 12)
284286
FN_DEF@[0; 12)
285-
FN_KW@[0; 2)
286-
WHITESPACE@[2; 3)
287+
FN_KW@[0; 2) "fn"
288+
WHITESPACE@[2; 3) " "
287289
NAME@[3; 6)
288290
IDENT@[3; 6) "foo"
289291
PARAM_LIST@[6; 8)
290-
L_PAREN@[6; 7)
291-
R_PAREN@[7; 8)
292-
WHITESPACE@[8; 9)
292+
L_PAREN@[6; 7) "("
293+
R_PAREN@[7; 8) ")"
294+
WHITESPACE@[8; 9) " "
293295
BLOCK@[9; 12)
294-
L_CURLY@[9; 10)
295-
WHITESPACE@[10; 11)
296-
R_CURLY@[11; 12)
296+
L_CURLY@[9; 10) "{"
297+
WHITESPACE@[10; 11) "\n"
298+
R_CURLY@[11; 12) "}"
297299
"#
298300
.trim()
299301
);
@@ -310,38 +312,37 @@ fn bar() {
310312
.trim(),
311313
);
312314
let syn = analysis.syntax_tree(range.file_id, Some(range.range));
313-
assert_eq!(
315+
assert_eq_text!(
314316
syn.trim(),
315317
r#"
316318
SOURCE_FILE@[0; 25)
317319
FN_DEF@[0; 12)
318-
FN_KW@[0; 2)
319-
WHITESPACE@[2; 3)
320+
FN_KW@[0; 2) "fn"
321+
WHITESPACE@[2; 3) " "
320322
NAME@[3; 6)
321323
IDENT@[3; 6) "foo"
322324
PARAM_LIST@[6; 8)
323-
L_PAREN@[6; 7)
324-
R_PAREN@[7; 8)
325-
WHITESPACE@[8; 9)
325+
L_PAREN@[6; 7) "("
326+
R_PAREN@[7; 8) ")"
327+
WHITESPACE@[8; 9) " "
326328
BLOCK@[9; 12)
327-
L_CURLY@[9; 10)
328-
WHITESPACE@[10; 11)
329-
R_CURLY@[11; 12)
330-
WHITESPACE@[12; 13)
329+
L_CURLY@[9; 10) "{"
330+
WHITESPACE@[10; 11) "\n"
331+
R_CURLY@[11; 12) "}"
332+
WHITESPACE@[12; 13) "\n"
331333
FN_DEF@[13; 25)
332-
FN_KW@[13; 15)
333-
WHITESPACE@[15; 16)
334+
FN_KW@[13; 15) "fn"
335+
WHITESPACE@[15; 16) " "
334336
NAME@[16; 19)
335337
IDENT@[16; 19) "bar"
336338
PARAM_LIST@[19; 21)
337-
L_PAREN@[19; 20)
338-
R_PAREN@[20; 21)
339-
WHITESPACE@[21; 22)
339+
L_PAREN@[19; 20) "("
340+
R_PAREN@[20; 21) ")"
341+
WHITESPACE@[21; 22) " "
340342
BLOCK@[22; 25)
341-
L_CURLY@[22; 23)
342-
WHITESPACE@[23; 24)
343-
R_CURLY@[24; 25)
344-
343+
L_CURLY@[22; 23) "{"
344+
WHITESPACE@[23; 24) "\n"
345+
R_CURLY@[24; 25) "}"
345346
"#
346347
.trim()
347348
);

crates/ra_mbe/src/lib.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -302,37 +302,37 @@ impl_froms!(TokenTree: Leaf, Subtree);
302302
r#"
303303
SOURCE_FILE@[0; 40)
304304
STRUCT_DEF@[0; 20)
305-
STRUCT_KW@[0; 6)
305+
STRUCT_KW@[0; 6) "struct"
306306
NAME@[6; 9)
307307
IDENT@[6; 9) "Foo"
308308
NAMED_FIELD_DEF_LIST@[9; 20)
309-
L_CURLY@[9; 10)
309+
L_CURLY@[9; 10) "{"
310310
NAMED_FIELD_DEF@[10; 19)
311311
NAME@[10; 15)
312312
IDENT@[10; 15) "field"
313-
COLON@[15; 16)
313+
COLON@[15; 16) ":"
314314
PATH_TYPE@[16; 19)
315315
PATH@[16; 19)
316316
PATH_SEGMENT@[16; 19)
317317
NAME_REF@[16; 19)
318318
IDENT@[16; 19) "u32"
319-
R_CURLY@[19; 20)
319+
R_CURLY@[19; 20) "}"
320320
STRUCT_DEF@[20; 40)
321-
STRUCT_KW@[20; 26)
321+
STRUCT_KW@[20; 26) "struct"
322322
NAME@[26; 29)
323323
IDENT@[26; 29) "Bar"
324324
NAMED_FIELD_DEF_LIST@[29; 40)
325-
L_CURLY@[29; 30)
325+
L_CURLY@[29; 30) "{"
326326
NAMED_FIELD_DEF@[30; 39)
327327
NAME@[30; 35)
328328
IDENT@[30; 35) "field"
329-
COLON@[35; 36)
329+
COLON@[35; 36) ":"
330330
PATH_TYPE@[36; 39)
331331
PATH@[36; 39)
332332
PATH_SEGMENT@[36; 39)
333333
NAME_REF@[36; 39)
334334
IDENT@[36; 39) "u32"
335-
R_CURLY@[39; 40)"#
335+
R_CURLY@[39; 40) "}""#
336336
.trim()
337337
);
338338
}

crates/ra_syntax/src/syntax_node.rs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -319,10 +319,17 @@ pub struct SyntaxToken<'a>(pub(crate) rowan::SyntaxToken<'a, RaTypes>);
319319
impl<'a> fmt::Debug for SyntaxToken<'a> {
320320
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
321321
write!(fmt, "{:?}@{:?}", self.kind(), self.range())?;
322-
if has_short_text(self.kind()) {
323-
write!(fmt, " \"{}\"", self.text())?;
322+
if self.text().len() < 25 {
323+
return write!(fmt, " {:?}", self.text());
324324
}
325-
Ok(())
325+
let text = self.text().as_str();
326+
for idx in 21..25 {
327+
if text.is_char_boundary(idx) {
328+
let text = format!("{} ...", &text[..idx]);
329+
return write!(fmt, " {:?}", text);
330+
}
331+
}
332+
unreachable!()
326333
}
327334
}
328335

@@ -499,14 +506,6 @@ impl<'a> Iterator for SyntaxElementChildren<'a> {
499506
}
500507
}
501508

502-
fn has_short_text(kind: SyntaxKind) -> bool {
503-
use crate::SyntaxKind::*;
504-
match kind {
505-
IDENT | LIFETIME | INT_NUMBER | FLOAT_NUMBER => true,
506-
_ => false,
507-
}
508-
}
509-
510509
pub struct SyntaxTreeBuilder {
511510
errors: Vec<SyntaxError>,
512511
inner: GreenNodeBuilder<RaTypes>,

0 commit comments

Comments
 (0)