Commit Graph

5501 Commits

Author SHA1 Message Date
bors[bot]
2e2445444a Merge #207
207: Finish implementing char validation r=aochagavia a=aochagavia

The only thing missing right now are good integration tests (and maybe more descriptive error messages)

Co-authored-by: Adolfo Ochagavía <github@adolfo.ochagavia.xyz>
2018-11-07 11:09:40 +00:00
Adolfo Ochagavía
433a806191 Fix backslash escape 2018-11-07 12:04:26 +01:00
Adolfo Ochagavía
3b2ba59526 Use ArrayString instead of hand rolled data structure 2018-11-07 11:58:34 +01:00
Adolfo Ochagavía
e37ba706cc cargo format 2018-11-07 11:41:42 +01:00
Adolfo Ochagavía
94796e6447 Add lots of tests 2018-11-07 11:35:33 +01:00
Adolfo Ochagavía
fdb9f06880 Store hex digits in a stack-allocated buffer 2018-11-07 10:40:58 +01:00
bors[bot]
a46a07eca3 Merge #213
213: remove the last changing file from cache r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-06 20:52:50 +00:00
Aleksey Kladov
9ed7edab08 remove the last changing file from cache 2018-11-06 23:52:11 +03:00
bors[bot]
efdb0d84c8 Merge #212
212: evitct more stuff from cache r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-06 20:35:06 +00:00
Aleksey Kladov
816f72dbd5 evitct more stuff from cache 2018-11-06 23:34:30 +03:00
bors[bot]
ed1feb72dc Merge #211
211: ra_syntax::File is just RootNode r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-06 20:28:04 +00:00
Aleksey Kladov
8eaf7952ae ra_syntax::File is just RootNode 2018-11-06 23:26:26 +03:00
bors[bot]
7196286ec5 Merge #210
210: cleanup cahces more aggressively r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-06 19:23:06 +00:00
Aleksey Kladov
28e3220b34 cleanup cahces more aggressively 2018-11-06 22:22:22 +03:00
bors[bot]
3928255b6f Merge #209
209: Owned nodes r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-06 19:08:00 +00:00
Aleksey Kladov
7f88fe8790 Add a pinch of comments 2018-11-06 22:06:58 +03:00
Aleksey Kladov
a5301e94d5 Generalize Owned nodes 2018-11-06 21:52:00 +03:00
bors[bot]
21797bf0ef Merge #208
208: grammar: fix where clause parsing r=matklad a=matklad

closes #205

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-06 18:20:30 +00:00
Aleksey Kladov
ec131b6c7b grammar: fix where clause parsing
closes #205
2018-11-06 21:19:32 +03:00
Aleksey Kladov
dafe747dcc upstream basic tree algorithms to rowan 2018-11-06 20:56:32 +03:00
Adolfo Ochagavía
c56db92d1f Finish implementing char validation 2018-11-06 17:07:27 +01:00
Adolfo Ochagavía
a9cd2d60bc Clarifications and formatting 2018-11-06 17:57:11 +03:00
Aleksey Kladov
f0bcb09b5e Add roadmap 2018-11-06 16:12:57 +03:00
Aleksey Kladov
d1b242262a new discord 2018-11-06 14:47:15 +03:00
bors[bot]
88316784d3 Merge #199
199: Use closing paren as a trigger character r=matklad a=kjeremy

This seems counter-intuitive based on the concept of "trigger character" but it provides a better function signature experience.

Co-authored-by: Jeremy A. Kolb <jkolb@ara.com>
2018-11-06 11:13:05 +00:00
Jeremy A. Kolb
5a9d471f98 Use closing paren as a trigger character
This seems counter-intuitive based on the concept of "trigger character"
but it provides a better function signature experience.
2018-11-05 17:13:56 -05:00
bors[bot]
f605f6e70a Merge #188
188: Introduce `SyntaxErrorKind` and `TextRange` to `SyntaxError` r=matklad a=aochagavia



Co-authored-by: Adolfo Ochagavía <aochagavia92@gmail.com>
Co-authored-by: Adolfo Ochagavía <github@adolfo.ochagavia.xyz>
2018-11-05 21:32:25 +00:00
Adolfo Ochagavía
59405bfe4a cargo format 2018-11-05 22:29:33 +01:00
Adolfo Ochagavía
fda8ddc5fe Introduce Location and make SyntaxError fields private 2018-11-05 18:38:34 +01:00
Aleksey Kladov
43665eb166 bring back testutils 2018-11-05 15:56:07 +03:00
Aleksey Kladov
8e8f52e80a add description 2018-11-05 15:52:22 +03:00
Aleksey Kladov
80e50cae00 Switch ra_syntax to 2015 edition 2018-11-05 15:47:59 +03:00
Aleksey Kladov
420725f256 Introduce var works with tail exprs 2018-11-05 15:44:34 +03:00
bors[bot]
8d7b888481 Merge #194
194: Introduce FilePosition r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-05 12:04:13 +00:00
Aleksey Kladov
0192c116f7 Use FilePosition everywhere 2018-11-05 14:57:41 +03:00
Aleksey Kladov
1e1c188cbf rename Position to FilePostion 2018-11-05 14:24:38 +03:00
Aleksey Kladov
8b132354bb don't send backtraces for canceled requests 2018-11-05 14:22:39 +03:00
bors[bot]
de9bb9cfef Merge #193
193: Inline modules r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-05 11:12:04 +00:00
Aleksey Kladov
6bbcfca7ae Fully add inline modules to module tree 2018-11-05 14:10:20 +03:00
Aleksey Kladov
44d8919384 Submodule is enum 2018-11-05 13:23:37 +03:00
Aleksey Kladov
17a88928f4 collect all submodules 2018-11-05 13:08:52 +03:00
Aleksey Kladov
e0b21b9899 submodules works with module sources 2018-11-05 12:36:38 +03:00
Aleksey Kladov
88a15d10d5 use module_for_source 2018-11-05 12:36:38 +03:00
Aleksey Kladov
cd878658d3 Introduce modules_from_source fn 2018-11-05 12:36:38 +03:00
Aleksey Kladov
6502bd2c96 reduce code duplication 2018-11-05 11:39:51 +03:00
bors[bot]
9d29c717ac Merge #192
192: grammar: for predicates in where r=matklad a=matklad

closes #191

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2018-11-05 08:27:15 +00:00
Aleksey Kladov
9010cb9839 grammar: for predicates in where
closes #191
2018-11-05 11:24:08 +03:00
Adolfo Ochagavía
3b42ddae60 Introduce SyntaxErrorKind and TextRange in SyntaxError 2018-11-04 21:16:38 +01:00
bors[bot]
576b9a0727 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 <aochagavia92@gmail.com>
2018-11-04 14:47:20 +00:00
Adolfo Ochagavía
9b5bbab104 Add character literal parsing and validation 2018-11-04 15:17:24 +01:00