Commit graph

24482 commits

Author SHA1 Message Date
Leonardo de Moura
4e99336d45 chore: update stage0 2021-04-05 20:01:28 -07:00
Leonardo de Moura
803161d9fc fix: propagate expected type 2021-04-05 20:00:05 -07:00
Leonardo de Moura
3ccd992dad feat: elaborate auxiliary completion node 2021-04-05 19:07:39 -07:00
Leonardo de Moura
06b67f4523 chore: update stage0 2021-04-05 18:53:42 -07:00
Leonardo de Moura
0717c3d0b2 chore: adding helper parser completion
I am hitting many error recovery problems. This is an attempt to make
auto-completion more robust.
For example, we currently can't auto complete inside of parentheses.
The syntax tree for the syntactically incorrect tern `(s. , 0)` is
```
(Term.paren "(" [(Term.proj `s ".")])
```
The elaborator for `paren` fails to match this partial syntax tree and
returns an error. I considered adding code to the `else` branch of
this elaborator and handle partial trees there. However, we would
still be losing information for the other elements of the tuple.
Example: no hover information for them.
The helper parser makes sure we don't lose information.
2021-04-05 18:44:01 -07:00
Leonardo de Moura
5c838c57f1 chore: disable special support for Syntax.missing at isNodeOf'
It didn't help with the problem I was having, but we talked about
customizing this behavior in the past. So, I will leave the function
here because it is convenient for trying experiments without having to
modify `Quotation.lean` and `update-stage0`
2021-04-05 18:38:58 -07:00
Leonardo de Moura
9d38309781 chore: update stage0 2021-04-05 18:38:58 -07:00
Leonardo de Moura
f9d5c4fc7c chore: update stage0 2021-04-05 18:38:57 -07:00
Leonardo de Moura
9fa89a73df feat: add helper functions for syntax match
Motivation: improve error recovery.
2021-04-05 18:38:57 -07:00
Leonardo de Moura
f13bdd6869 fix: error recovery at sepBy combinator 2021-04-05 18:38:57 -07:00
Leonardo de Moura
474ee644d7 chore: update stage0 2021-04-05 18:38:57 -07:00
Sebastian Ullrich
e863376be1 chore: simplify tests 2021-04-05 22:01:56 +02:00
Leonardo de Moura
fbd6adaf21 chore: fix tests 2021-04-05 12:35:52 -07:00
Leonardo de Moura
fb38955be2 feat: improve command parser error recovery
After a parser error in a command, we are "swallowing" all command
parsing errors until a command was succesfully parsed.
This was producing counterintuitive behavior in the IDEs.
2021-04-05 12:31:33 -07:00
Leonardo de Moura
383e32937e test: completion 2021-04-05 12:01:58 -07:00
Leonardo de Moura
d6af843683 chore: remove completion auxiliary parser 2021-04-05 11:26:13 -07:00
Leonardo de Moura
b1b645f5d7 chore: display expected type 2021-04-05 10:29:32 -07:00
Leonardo de Moura
19fcd518bf chore: fix syntax 2021-04-05 07:16:59 -07:00
Leonardo de Moura
6f1eaa96f1 chore: update stage0 2021-04-05 07:12:42 -07:00
Leonardo de Moura
e6dec2dd79 feat: don't allow whitespaces between . and field name 2021-04-05 07:11:14 -07:00
François G. Dorais
9949aa653e feat: add missing simp lemmas for <-> 2021-04-05 06:41:39 -07:00
Sebastian Ullrich
46be48211e test: dot completion 2021-04-05 14:00:22 +02:00
Sebastian Ullrich
5644cee2d6 chore: reset prefer_native 2021-04-05 13:58:15 +02:00
Sebastian Ullrich
8d7c8cc6f0 chore: update stage0 2021-04-05 13:54:29 +02:00
Sebastian Ullrich
98e1baabbd refactor: make trailingNode clean up after itself
Also resolves an issue with emitting both `left` and a partial tree
containing it
2021-04-05 13:51:03 +02:00
Sebastian Ullrich
e10cf4cf33 fix: Nix: leanpkg outside flake 2021-04-05 10:50:21 +02:00
Sebastian Ullrich
6dc3e55c54 fix: longestMatchFn: do not discard partial syntax tree of first overload 2021-04-05 10:00:47 +02:00
Sebastian Ullrich
e5be9e7dd4 chore: helpers for parser debugging 2021-04-05 10:00:47 +02:00
Leonardo de Moura
9f708ece44 chore: update stage0 2021-04-04 20:32:35 -07:00
Leonardo de Moura
ba3dd181f5 fix: make sure type errors do not break server
We often try to auto-complete code containing errors.
So, the methods `inferType` and `isDefEq` used during completion may
throw exceptions.
2021-04-04 20:29:20 -07:00
Leonardo de Moura
62590b3715 fix: code is reachable 2021-04-04 20:18:49 -07:00
Leonardo de Moura
41dda0f624 chore: update stage0 2021-04-04 20:04:37 -07:00
Leonardo de Moura
e8cf38de20 feat: improve auto completion matching 2021-04-04 20:03:13 -07:00
Leonardo de Moura
fb67b49719 fix: missing completion 2021-04-04 18:32:56 -07:00
Leonardo de Moura
dbbb7bf9f6 chore: update stage0 2021-04-04 11:39:31 -07:00
Leonardo de Moura
5ab3ed5314 chore: fix test 2021-04-04 11:38:35 -07:00
Leonardo de Moura
f2d81c7389 fix: position information for auto completion
We currently allow spaces between `.` and the "field" name, and this
was creating problems when auto-completing at `f (y.| a b)`
where `|` represents the cursor position
The `InfoTree` had a node for `y. a` and its tail position is after
the cursor position.
2021-04-04 11:25:52 -07:00
Leonardo de Moura
cffef2674f chore: add location 2021-04-04 10:50:30 -07:00
Leonardo de Moura
820495ce7a feat: black list auxiliary match applications 2021-04-04 10:37:13 -07:00
Daniel Fabian
401765f587 test: add test that deriving Ord compiles in various cases. 2021-04-03 21:27:26 -07:00
Daniel Fabian
fb4a119ed7 fix: allow also recursive types in the Ord construction. 2021-04-03 21:27:26 -07:00
Daniel Fabian
a8914380dc feat: add Ord and deriving instance for it.
For many data structures having an ordering is necessary. This one adds the `Ord` type class and a deriving handler for it. The ordering is based on order of constructors followed by lexicographical ordering within a constructor.
2021-04-03 21:27:26 -07:00
Leonardo de Moura
ab4ec76a25 chore: update stage0 2021-04-03 21:02:46 -07:00
Leonardo de Moura
0586fe3200 feat: activate auto completion
There are many pending TODO's, and issues with the error recovery code.
We also need a test suite.
2021-04-03 21:01:17 -07:00
Leonardo de Moura
9d12856432 feat: missing forM 2021-04-03 18:24:31 -07:00
Leonardo de Moura
750691bd5a chore: fix tests 2021-04-03 18:24:03 -07:00
Leonardo de Moura
09ee8bddad feat: tactic name completion 2021-04-03 15:45:44 -07:00
Leonardo de Moura
20f569c033 feat: set_option completion 2021-04-03 15:06:50 -07:00
Leonardo de Moura
0a94aaabc9 feat: use expected type to prioritize completion candidates 2021-04-03 14:12:42 -07:00
Leonardo de Moura
398bbcfce3 feat: save aditional information for id completion, and suppress implicit prefix when reporting completion types 2021-04-03 12:53:32 -07:00