diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2018-11-05 21:32:25 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2018-11-05 21:32:25 +0000 |
commit | f605f6e70a3a15b77900942933253d16dd3ce1f6 (patch) | |
tree | a7e8c5097124f8dae7ef15af4b85b1c208d3358c /crates/ra_editor | |
parent | 43665eb166e1bd0319a1e13a97b753a536e4b4d2 (diff) | |
parent | 59405bfe4ad0afa0b7ff533c7bfbc3ad4170604c (diff) |
Merge #188
188: Introduce `SyntaxErrorKind` and `TextRange` to `SyntaxError` r=matklad a=aochagavia
Co-authored-by: Adolfo OchagavĂa <[email protected]>
Co-authored-by: Adolfo OchagavĂa <[email protected]>
Diffstat (limited to 'crates/ra_editor')
-rw-r--r-- | crates/ra_editor/src/lib.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/ra_editor/src/lib.rs b/crates/ra_editor/src/lib.rs index 3186eaf1a..f92181b86 100644 --- a/crates/ra_editor/src/lib.rs +++ b/crates/ra_editor/src/lib.rs | |||
@@ -31,6 +31,7 @@ use ra_syntax::{ | |||
31 | algo::find_leaf_at_offset, | 31 | algo::find_leaf_at_offset, |
32 | ast::{self, AstNode, NameOwner}, | 32 | ast::{self, AstNode, NameOwner}, |
33 | File, | 33 | File, |
34 | Location, | ||
34 | SyntaxKind::{self, *}, | 35 | SyntaxKind::{self, *}, |
35 | SyntaxNodeRef, TextRange, TextUnit, | 36 | SyntaxNodeRef, TextRange, TextUnit, |
36 | }; | 37 | }; |
@@ -100,11 +101,18 @@ pub fn highlight(file: &File) -> Vec<HighlightedRange> { | |||
100 | } | 101 | } |
101 | 102 | ||
102 | pub fn diagnostics(file: &File) -> Vec<Diagnostic> { | 103 | pub fn diagnostics(file: &File) -> Vec<Diagnostic> { |
104 | fn location_to_range(location: Location) -> TextRange { | ||
105 | match location { | ||
106 | Location::Offset(offset) => TextRange::offset_len(offset, 1.into()), | ||
107 | Location::Range(range) => range, | ||
108 | } | ||
109 | } | ||
110 | |||
103 | file.errors() | 111 | file.errors() |
104 | .into_iter() | 112 | .into_iter() |
105 | .map(|err| Diagnostic { | 113 | .map(|err| Diagnostic { |
106 | range: TextRange::offset_len(err.offset, 1.into()), | 114 | range: location_to_range(err.location()), |
107 | msg: "Syntax Error: ".to_string() + &err.msg, | 115 | msg: format!("Syntax Error: {}", err), |
108 | }) | 116 | }) |
109 | .collect() | 117 | .collect() |
110 | } | 118 | } |