diff options
-rw-r--r-- | crates/ra_cli/src/main.rs | 2 | ||||
-rw-r--r-- | crates/ra_hir/src/expr.rs | 2 | ||||
-rw-r--r-- | crates/ra_ide_api/src/display/navigation_target.rs | 2 | ||||
-rw-r--r-- | crates/ra_ide_api/src/syntax_tree.rs | 6 | ||||
-rw-r--r-- | crates/ra_mbe/src/tests.rs | 8 | ||||
-rw-r--r-- | crates/ra_syntax/src/fuzz.rs | 6 | ||||
-rw-r--r-- | crates/ra_syntax/src/lib.rs | 2 | ||||
-rw-r--r-- | crates/ra_syntax/src/parsing/reparsing.rs | 4 | ||||
-rw-r--r-- | crates/ra_syntax/src/syntax_node.rs | 56 | ||||
-rw-r--r-- | crates/ra_syntax/src/validation.rs | 4 |
10 files changed, 42 insertions, 50 deletions
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index 375e2f508..de8191ca3 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs | |||
@@ -55,7 +55,7 @@ fn main() -> Result<()> { | |||
55 | let _p = profile("parsing"); | 55 | let _p = profile("parsing"); |
56 | let file = file()?; | 56 | let file = file()?; |
57 | if !matches.is_present("no-dump") { | 57 | if !matches.is_present("no-dump") { |
58 | println!("{}", file.syntax().debug_dump()); | 58 | println!("{:#?}", file.syntax()); |
59 | } | 59 | } |
60 | std::mem::forget(file); | 60 | std::mem::forget(file); |
61 | } | 61 | } |
diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index 66cb9633b..6eed67f50 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs | |||
@@ -843,7 +843,7 @@ where | |||
843 | let file_id = call_id.as_file(MacroFileKind::Expr); | 843 | let file_id = call_id.as_file(MacroFileKind::Expr); |
844 | if let Some(node) = self.db.parse_or_expand(file_id) { | 844 | if let Some(node) = self.db.parse_or_expand(file_id) { |
845 | if let Some(expr) = ast::Expr::cast(node) { | 845 | if let Some(expr) = ast::Expr::cast(node) { |
846 | log::debug!("macro expansion {}", expr.syntax().debug_dump()); | 846 | log::debug!("macro expansion {:#?}", expr.syntax()); |
847 | let old_file_id = | 847 | let old_file_id = |
848 | std::mem::replace(&mut self.current_file_id, file_id); | 848 | std::mem::replace(&mut self.current_file_id, file_id); |
849 | let id = self.collect_expr(expr); | 849 | let id = self.collect_expr(expr); |
diff --git a/crates/ra_ide_api/src/display/navigation_target.rs b/crates/ra_ide_api/src/display/navigation_target.rs index 8aff5f2cd..c212ebf28 100644 --- a/crates/ra_ide_api/src/display/navigation_target.rs +++ b/crates/ra_ide_api/src/display/navigation_target.rs | |||
@@ -233,7 +233,7 @@ impl NavigationTarget { | |||
233 | 233 | ||
234 | pub(crate) fn from_macro_def(db: &RootDatabase, macro_call: hir::MacroDef) -> NavigationTarget { | 234 | pub(crate) fn from_macro_def(db: &RootDatabase, macro_call: hir::MacroDef) -> NavigationTarget { |
235 | let src = macro_call.source(db); | 235 | let src = macro_call.source(db); |
236 | log::debug!("nav target {}", src.ast.syntax().debug_dump()); | 236 | log::debug!("nav target {:#?}", src.ast.syntax()); |
237 | NavigationTarget::from_named( | 237 | NavigationTarget::from_named( |
238 | src.file_id.original_file(db), | 238 | src.file_id.original_file(db), |
239 | &src.ast, | 239 | &src.ast, |
diff --git a/crates/ra_ide_api/src/syntax_tree.rs b/crates/ra_ide_api/src/syntax_tree.rs index 3d7373d02..ae1849aaa 100644 --- a/crates/ra_ide_api/src/syntax_tree.rs +++ b/crates/ra_ide_api/src/syntax_tree.rs | |||
@@ -25,9 +25,9 @@ pub(crate) fn syntax_tree( | |||
25 | } | 25 | } |
26 | }; | 26 | }; |
27 | 27 | ||
28 | node.debug_dump() | 28 | format!("{:#?}", node) |
29 | } else { | 29 | } else { |
30 | parse.tree().syntax().debug_dump() | 30 | format!("{:#?}", parse.tree().syntax()) |
31 | } | 31 | } |
32 | } | 32 | } |
33 | 33 | ||
@@ -85,7 +85,7 @@ fn syntax_tree_for_token(node: &SyntaxToken, text_range: TextRange) -> Option<St | |||
85 | // If the "file" parsed without errors, | 85 | // If the "file" parsed without errors, |
86 | // return its syntax | 86 | // return its syntax |
87 | if parsed.errors().is_empty() { | 87 | if parsed.errors().is_empty() { |
88 | return Some(parsed.tree().syntax().debug_dump()); | 88 | return Some(format!("{:#?}", parsed.tree().syntax())); |
89 | } | 89 | } |
90 | 90 | ||
91 | None | 91 | None |
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs index 38a31109d..9151b6ecd 100644 --- a/crates/ra_mbe/src/tests.rs +++ b/crates/ra_mbe/src/tests.rs | |||
@@ -412,7 +412,7 @@ fn test_expand_to_item_list() { | |||
412 | let expansion = expand(&rules, "structs!(Foo, Bar);"); | 412 | let expansion = expand(&rules, "structs!(Foo, Bar);"); |
413 | let tree = token_tree_to_macro_items(&expansion).unwrap().tree(); | 413 | let tree = token_tree_to_macro_items(&expansion).unwrap().tree(); |
414 | assert_eq!( | 414 | assert_eq!( |
415 | tree.syntax().debug_dump().trim(), | 415 | format!("{:#?}", tree.syntax()).trim(), |
416 | r#" | 416 | r#" |
417 | MACRO_ITEMS@[0; 40) | 417 | MACRO_ITEMS@[0; 40) |
418 | STRUCT_DEF@[0; 20) | 418 | STRUCT_DEF@[0; 20) |
@@ -531,7 +531,7 @@ fn test_tt_to_stmts() { | |||
531 | let stmts = token_tree_to_macro_stmts(&expanded).unwrap().tree(); | 531 | let stmts = token_tree_to_macro_stmts(&expanded).unwrap().tree(); |
532 | 532 | ||
533 | assert_eq!( | 533 | assert_eq!( |
534 | stmts.syntax().debug_dump().trim(), | 534 | format!("{:#?}", stmts.syntax()).trim(), |
535 | r#"MACRO_STMTS@[0; 15) | 535 | r#"MACRO_STMTS@[0; 15) |
536 | LET_STMT@[0; 7) | 536 | LET_STMT@[0; 7) |
537 | LET_KW@[0; 3) "let" | 537 | LET_KW@[0; 3) "let" |
@@ -669,7 +669,7 @@ fn test_expr_order() { | |||
669 | ); | 669 | ); |
670 | 670 | ||
671 | assert_eq!( | 671 | assert_eq!( |
672 | expand_to_items(&rules, "foo! { 1 + 1 }").syntax().debug_dump().trim(), | 672 | format!("{:#?}", expand_to_items(&rules, "foo! { 1 + 1 }").syntax()).trim(), |
673 | r#"MACRO_ITEMS@[0; 15) | 673 | r#"MACRO_ITEMS@[0; 15) |
674 | FN_DEF@[0; 15) | 674 | FN_DEF@[0; 15) |
675 | FN_KW@[0; 2) "fn" | 675 | FN_KW@[0; 2) "fn" |
@@ -1013,7 +1013,7 @@ fn test_vec() { | |||
1013 | ); | 1013 | ); |
1014 | 1014 | ||
1015 | assert_eq!( | 1015 | assert_eq!( |
1016 | expand_to_expr(&rules, r#"vec![1u32,2];"#).syntax().debug_dump().trim(), | 1016 | format!("{:#?}", expand_to_expr(&rules, r#"vec![1u32,2];"#).syntax()).trim(), |
1017 | r#"BLOCK_EXPR@[0; 45) | 1017 | r#"BLOCK_EXPR@[0; 45) |
1018 | BLOCK@[0; 45) | 1018 | BLOCK@[0; 45) |
1019 | L_CURLY@[0; 1) "{" | 1019 | L_CURLY@[0; 1) "{" |
diff --git a/crates/ra_syntax/src/fuzz.rs b/crates/ra_syntax/src/fuzz.rs index 716925b2f..a9146c4f8 100644 --- a/crates/ra_syntax/src/fuzz.rs +++ b/crates/ra_syntax/src/fuzz.rs | |||
@@ -52,9 +52,9 @@ impl CheckReparse { | |||
52 | new_parse.tree().syntax().descendants().zip(full_reparse.tree().syntax().descendants()) | 52 | new_parse.tree().syntax().descendants().zip(full_reparse.tree().syntax().descendants()) |
53 | { | 53 | { |
54 | if (a.kind(), a.range()) != (b.kind(), b.range()) { | 54 | if (a.kind(), a.range()) != (b.kind(), b.range()) { |
55 | eprint!("original:\n{}", parse.tree().syntax().debug_dump()); | 55 | eprint!("original:\n{:#?}", parse.tree().syntax()); |
56 | eprint!("reparsed:\n{}", new_parse.tree().syntax().debug_dump()); | 56 | eprint!("reparsed:\n{:#?}", new_parse.tree().syntax()); |
57 | eprint!("full reparse:\n{}", full_reparse.tree().syntax().debug_dump()); | 57 | eprint!("full reparse:\n{:#?}", full_reparse.tree().syntax()); |
58 | assert_eq!( | 58 | assert_eq!( |
59 | format!("{:?}", a), | 59 | format!("{:?}", a), |
60 | format!("{:?}", b), | 60 | format!("{:?}", b), |
diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index 604abe5c6..605350ac4 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs | |||
@@ -114,7 +114,7 @@ impl Parse<SyntaxNode> { | |||
114 | 114 | ||
115 | impl Parse<SourceFile> { | 115 | impl Parse<SourceFile> { |
116 | pub fn debug_dump(&self) -> String { | 116 | pub fn debug_dump(&self) -> String { |
117 | let mut buf = self.tree().syntax().debug_dump(); | 117 | let mut buf = format!("{:#?}", self.tree().syntax()); |
118 | for err in self.errors.iter() { | 118 | for err in self.errors.iter() { |
119 | writeln!(buf, "error {:?}: {}", err.location(), err.kind()).unwrap(); | 119 | writeln!(buf, "error {:?}: {}", err.location(), err.kind()).unwrap(); |
120 | } | 120 | } |
diff --git a/crates/ra_syntax/src/parsing/reparsing.rs b/crates/ra_syntax/src/parsing/reparsing.rs index b4ad9e019..c7183299b 100644 --- a/crates/ra_syntax/src/parsing/reparsing.rs +++ b/crates/ra_syntax/src/parsing/reparsing.rs | |||
@@ -188,8 +188,8 @@ mod tests { | |||
188 | }; | 188 | }; |
189 | 189 | ||
190 | assert_eq_text!( | 190 | assert_eq_text!( |
191 | &fully_reparsed.tree().syntax().debug_dump(), | 191 | &format!("{:#?}", fully_reparsed.tree().syntax()), |
192 | &incrementally_reparsed.tree().syntax().debug_dump(), | 192 | &format!("{:#?}", incrementally_reparsed.tree().syntax()), |
193 | ); | 193 | ); |
194 | } | 194 | } |
195 | 195 | ||
diff --git a/crates/ra_syntax/src/syntax_node.rs b/crates/ra_syntax/src/syntax_node.rs index 51bae04de..3b20e96e2 100644 --- a/crates/ra_syntax/src/syntax_node.rs +++ b/crates/ra_syntax/src/syntax_node.rs | |||
@@ -6,11 +6,7 @@ | |||
6 | //! The *real* implementation is in the (language-agnostic) `rowan` crate, this | 6 | //! The *real* implementation is in the (language-agnostic) `rowan` crate, this |
7 | //! modules just wraps its API. | 7 | //! modules just wraps its API. |
8 | 8 | ||
9 | use std::{ | 9 | use std::{fmt, iter::successors, ops::RangeInclusive}; |
10 | fmt::{self, Write}, | ||
11 | iter::successors, | ||
12 | ops::RangeInclusive, | ||
13 | }; | ||
14 | 10 | ||
15 | use ra_parser::ParseError; | 11 | use ra_parser::ParseError; |
16 | use rowan::GreenNodeBuilder; | 12 | use rowan::GreenNodeBuilder; |
@@ -36,8 +32,29 @@ pub enum InsertPosition<T> { | |||
36 | pub struct SyntaxNode(pub(crate) rowan::cursor::SyntaxNode); | 32 | pub struct SyntaxNode(pub(crate) rowan::cursor::SyntaxNode); |
37 | 33 | ||
38 | impl fmt::Debug for SyntaxNode { | 34 | impl fmt::Debug for SyntaxNode { |
39 | fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { | 35 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
40 | write!(fmt, "{:?}@{:?}", self.kind(), self.range()) | 36 | if f.alternate() { |
37 | let mut level = 0; | ||
38 | for event in self.preorder_with_tokens() { | ||
39 | match event { | ||
40 | WalkEvent::Enter(element) => { | ||
41 | for _ in 0..level { | ||
42 | write!(f, " ")?; | ||
43 | } | ||
44 | match element { | ||
45 | SyntaxElement::Node(node) => writeln!(f, "{:?}", node)?, | ||
46 | SyntaxElement::Token(token) => writeln!(f, "{:?}", token)?, | ||
47 | } | ||
48 | level += 1; | ||
49 | } | ||
50 | WalkEvent::Leave(_) => level -= 1, | ||
51 | } | ||
52 | } | ||
53 | assert_eq!(level, 0); | ||
54 | Ok(()) | ||
55 | } else { | ||
56 | write!(f, "{:?}@{:?}", self.kind(), self.range()) | ||
57 | } | ||
41 | } | 58 | } |
42 | } | 59 | } |
43 | 60 | ||
@@ -173,31 +190,6 @@ impl SyntaxNode { | |||
173 | }) | 190 | }) |
174 | } | 191 | } |
175 | 192 | ||
176 | pub fn debug_dump(&self) -> String { | ||
177 | let mut level = 0; | ||
178 | let mut buf = String::new(); | ||
179 | |||
180 | for event in self.preorder_with_tokens() { | ||
181 | match event { | ||
182 | WalkEvent::Enter(element) => { | ||
183 | for _ in 0..level { | ||
184 | buf.push_str(" "); | ||
185 | } | ||
186 | match element { | ||
187 | SyntaxElement::Node(node) => writeln!(buf, "{:?}", node).unwrap(), | ||
188 | SyntaxElement::Token(token) => writeln!(buf, "{:?}", token).unwrap(), | ||
189 | } | ||
190 | level += 1; | ||
191 | } | ||
192 | WalkEvent::Leave(_) => level -= 1, | ||
193 | } | ||
194 | } | ||
195 | |||
196 | assert_eq!(level, 0); | ||
197 | |||
198 | buf | ||
199 | } | ||
200 | |||
201 | pub(crate) fn replace_with(&self, replacement: GreenNode) -> GreenNode { | 193 | pub(crate) fn replace_with(&self, replacement: GreenNode) -> GreenNode { |
202 | self.0.replace_with(replacement) | 194 | self.0.replace_with(replacement) |
203 | } | 195 | } |
diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs index 7140d10c3..943f88de9 100644 --- a/crates/ra_syntax/src/validation.rs +++ b/crates/ra_syntax/src/validation.rs | |||
@@ -89,9 +89,9 @@ pub(crate) fn validate_block_structure(root: &SyntaxNode) { | |||
89 | assert_eq!( | 89 | assert_eq!( |
90 | node.parent(), | 90 | node.parent(), |
91 | pair.parent(), | 91 | pair.parent(), |
92 | "\nunpaired curleys:\n{}\n{}\n", | 92 | "\nunpaired curleys:\n{}\n{:#?}\n", |
93 | root.text(), | 93 | root.text(), |
94 | root.debug_dump(), | 94 | root, |
95 | ); | 95 | ); |
96 | assert!( | 96 | assert!( |
97 | node.next_sibling().is_none() && pair.prev_sibling().is_none(), | 97 | node.next_sibling().is_none() && pair.prev_sibling().is_none(), |