aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/yellow/builder.rs
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2018-11-04 14:47:20 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2018-11-04 14:47:20 +0000
commit576b9a0727ebbf00521bc1131cda808145696d06 (patch)
treea1ef0fa5dbfd431e8a58afc6542c32c9ecefed04 /crates/ra_syntax/src/yellow/builder.rs
parent19c6cbd9540ef87850161cad7e108b380eceea24 (diff)
parent9b5bbab104d8ba445143f6f3a9e4149b40c29ae5 (diff)
Merge #184
184: Basic validation for character literals r=aochagavia a=aochagavia As part of #27 I would like to add a validator for characters that detects missing quotes and too long characters. I set up a dummy implementation to get my feet wet, which generates errors whenever it finds a character. Right now I have the following questions: 1. The `SyntaxError` type seems too basic to me. I think it would make sense to have a `SyntaxErrorKind` instead of a `msg` field (we can implement `Display` for it so you can generate the string if desired). It should also have a `TextRange` instead of a `TextUnit`, so you can support errors that are longer than one character. Do you agree? 1. I am manually checking whether the literal is a character (see the `is_char` method). Ideally, I would like to have a `LiteralKind` enum with variants like `Int`, `Float`, `Char`, `String`, etc. but it seems cumbersome to write all that by hand. Is there a way to specify this in `grammar.ron` so that the code is generated (the same way the `Expr` enum is generated)? By the way, there seems to be no error reporting of panics inside the language server. When I was developing this PR I accidentally introduced a panic, which resulted in no syntax errors being shown. I knew something was wrong, because normally the vscode highlights syntax errors, but I didn't know it was caused by a panic. Co-authored-by: Adolfo OchagavĂ­a <[email protected]>
Diffstat (limited to 'crates/ra_syntax/src/yellow/builder.rs')
0 files changed, 0 insertions, 0 deletions