Commit graph

208 commits

Author SHA1 Message Date
Leonardo de Moura
2667744092 fix: panic message 2021-04-15 18:25:19 -07:00
Sebastian Ullrich
435431ca7e feat: hide elaboration errors from partial syntax trees by default 2021-04-13 19:24:35 +02:00
Leonardo de Moura
40a42128be fix: auto completion improvements 2021-04-12 19:22:56 -07:00
Sebastian Ullrich
92810602d0 fix: server: do not stop processing after error (except for header error) 2021-04-12 22:41:10 +02:00
Leonardo de Moura
3318c75bed fix: make sure borrow annotations do not affect auto-completion 2021-04-09 13:47:28 -07:00
Sebastian Ullrich
af588078e0 fix: server: output import errors again 2021-04-09 12:40:38 +02:00
Leonardo de Moura
a1887df4ee feat: include parent structures and aliases in dot notation auto completion 2021-04-08 19:22:31 -07:00
Sebastian Ullrich
cc9577add2 refactor: server: remove SnapshotData 2021-04-08 22:10:27 +02:00
Sebastian Ullrich
dd15c8d5a7 feat: worker: don't abort on import error
to avoid the "crashed" message
2021-04-08 22:10:27 +02:00
Sebastian Ullrich
c3d6f781cf refactor: publishDiagnostics 2021-04-08 22:10:27 +02:00
Sebastian Ullrich
bba8184d3b feat: server: treat import errors as fatal 2021-04-08 22:10:27 +02:00
Sebastian Ullrich
a027b34d58 chore: remove dubious server-only option 2021-04-08 22:10:27 +02:00
Leonardo de Moura
a0a4b9faec fix: filter declarations that are not valid dot methods 2021-04-08 11:48:12 -07:00
Sebastian Ullrich
f75ce86f71 fix: server: go to type definition 2021-04-08 18:54:53 +02:00
Sebastian Ullrich
d75d7aa0d5 fix: server: ignore unknown implementation-dependent notifications
Fixes #383
2021-04-08 09:54:36 +02:00
Sebastian Ullrich
5b5a882da6 fix: watchdog: do not reorder messages while delaying edits 2021-04-07 17:12:37 +02:00
Sebastian Ullrich
43fcf69485 fix: watchdog: mark request as pending even if worker crashed 2021-04-07 16:48:12 +02: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
d6af843683 chore: remove completion auxiliary parser 2021-04-05 11:26:13 -07:00
Leonardo de Moura
19fcd518bf chore: fix syntax 2021-04-05 07:16:59 -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
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
820495ce7a feat: black list auxiliary match applications 2021-04-04 10:37:13 -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
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
Leonardo de Moura
ff1d27370c feat: add CompletionInfo 2021-04-02 20:44:57 -07:00
Leonardo de Moura
d26aa5e1ab feat: black list other auxiliary constructions 2021-04-02 16:21:54 -07:00
Sebastian Ullrich
e20b2c359a feat: server: show goal state after tactic if cursor not strictly before tactic 2021-04-03 00:23:46 +02:00
Leonardo de Moura
ed4504929d refactor: add Server/Completion.lean
Add environment extension for black listing declaritions for completion.
2021-04-02 11:10:06 -07:00
Leonardo de Moura
9815d626f5 feat: hide auxiliary constructions when generating completion candidates 2021-04-02 11:10:06 -07:00
Leonardo de Moura
bc44ad65ae feat: only consider dot completion info occurring in the hover line 2021-04-02 11:10:06 -07:00
Leonardo de Moura
5e66f4c97c feat: dot completion experiment
We still need to use the expected type, fix error recovery, etc. But it
is showing signs of life for very basic examples.

It is disabled for now.
2021-04-01 23:31:38 -07:00
Leonardo de Moura
c9f4359045 feat: add DotCompletionInfo 2021-04-01 23:31:38 -07:00
Leonardo de Moura
8d00a06d97 feat: add helper functions for completion 2021-04-01 23:31:38 -07:00
Sebastian Ullrich
63b96f62e7 feat: server: auto completion skeleton 2021-04-01 18:26:17 +02:00
Sebastian Ullrich
7391e0ef92 fix: "unknown goal" on tactics nested in terms 2021-03-30 14:09:39 +02:00
Sebastian Ullrich
ac8f0526f6 feat: report goals from multiple info states 2021-03-30 11:38:34 +02:00
Sebastian Ullrich
06df67313c refactor: goalsAt? 2021-03-30 11:27:42 +02:00
Leonardo de Moura
745cff41db feat: (try to) improve InfoTree.goalsAt? (yet another heuristic) 2021-03-29 19:30:00 -07:00
Leonardo de Moura
f75d9f50a6 feat: (try to) improve InfoTree.goalsAt? 2021-03-29 18:43:33 -07:00
Sebastian Ullrich
94a9a2516a doc: update server readme 2021-03-24 14:16:37 +01:00
Sebastian Ullrich
ba285c1c45 chore: do not hide leanpkg print-paths errors
@Vtec234 I was super confused about why the LEAN_PATH seemed to be set
up the wrong way when in reality an import failed to compile. If this is
an issue in the client or on Windows, we must fix it there.
2021-03-23 15:31:21 +01:00
Leonardo de Moura
880f1372bd feat: set pp.inaccessibleNames true when visualizing tactic state
@Kha The default value (false) for `pp.inaccessibleNames == false` help when
visualizing error messages (see test
`hidingInaccessibleNames.lean`). We added this feature after to hide
intermediate variables created by `match_syntax`.
However, this default value confused me in tactic mode. For example,
it will hide a hypotheses `x : Fin 0` if nobody depends on it, but as
a user we want to know we have it since we can close the goal using
it. Thus, I added `withPPInaccessibleNames act`, it executes `act`
using `pp.inaccessibleNames true` if the user did not explicitly set
it. I use this combinator at `FileWorker` and when producing the
`unsolved goals` error message. In all other scenarios, I believe
hiding these inaccessible variables is a good thing.
2021-03-21 18:21:46 -07:00
Leonardo de Moura
d9273786c7 chore: remove when and «unless»
They are obsolete.

cc @Kha
2021-03-20 18:52:18 -07:00
Leonardo de Moura
9a5f239513 refactor: remove Monad Option and Alternative Option
We should use `OptionM` instead.
`Option` still implements `Functor` and `OrElse`.

cc @Kha
2021-03-20 18:25:25 -07:00