diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2018-11-04 14:47:20 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2018-11-04 14:47:20 +0000 |
commit | 576b9a0727ebbf00521bc1131cda808145696d06 (patch) | |
tree | a1ef0fa5dbfd431e8a58afc6542c32c9ecefed04 /crates/gen_lsp_server | |
parent | 19c6cbd9540ef87850161cad7e108b380eceea24 (diff) | |
parent | 9b5bbab104d8ba445143f6f3a9e4149b40c29ae5 (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/gen_lsp_server')
0 files changed, 0 insertions, 0 deletions