Sebastian Ullrich
f97a7d4234
feat: incremental elaboration of definition headers, bodies, and tactics ( #3940 )
...
Extends Lean's incremental reporting and reuse between commands into
various steps inside declarations:
* headers and bodies of each (mutual) definition/theorem
* `theorem ... := by` for each contained tactic step, including
recursively inside supported combinators currently consisting of
* `·` (cdot), `case`, `next`
* `induction`, `cases`
* macros such as `next` unfolding to the above

*Incremental reuse* means not recomputing any such steps if they are not
affected by a document change. *Incremental reporting* includes the
parts seen in the recording above: the progress bar and messages. Other
language server features such as hover etc. are *not yet* supported
incrementally, i.e. they are shown only when the declaration has been
fully processed as before.
---------
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
2024-05-22 13:23:30 +00:00
Joachim Breitner
4fdc243179
refactor: simplify some nomatch with nofun ( #3564 )
...
and also don’t wrap `nomatch` with `False.elim`; it is not necessary, as
`nomatch` already inhabits any type.
2024-03-02 20:43:31 +00:00
Henrik Böving
23e49eb519
perf: add prelude to all Lean modules
2024-02-18 14:55:17 -08:00
Scott Morrison
904239ae61
feat: upstream some Syntax/Position helper functions used in code actions in Std ( #3260 )
...
Co-authored-by: David Thrane Christiansen <david@davidchristiansen.dk>
2024-02-09 10:50:19 +00:00
Scott Morrison
2ad3c6406e
feat: upstream TSyntax helper functions ( #3261 )
...
From Std.Lean.Syntax.
2024-02-07 22:53:27 +00:00
Mario Carneiro
123c1ff7f0
fix: basic ident fallback in identComponents
2023-06-22 09:50:24 +01:00
Mario Carneiro
280d8c9c9b
feat: add (canonical := true) option in Syntax
2022-09-27 22:09:54 +02:00
Gabriel Ebner
ed9b5bcb92
fix: make all syntax accessors non-panicking
2022-09-14 10:17:00 -07:00
Sebastian Ullrich
b9152a5296
refactor: move, generalize findSyntaxStack?
2022-08-31 17:49:43 -07:00
Mario Carneiro
f6211b1a74
chore: convert doc/mod comments from /- to /--//-! ( #1354 )
2022-07-22 12:05:31 -07:00
Gabriel Ebner
eba400543d
refactor: use computed fields for Name
2022-07-11 14:19:41 -07:00
Leonardo de Moura
c9771fa1b2
chore: unused variables
2022-07-07 20:24:18 -07:00
Leonardo de Moura
2ebcf29cde
chore: use a[i]! for array accesses that may panic
2022-07-02 15:12:05 -07:00
Sebastian Ullrich
43ba121e98
feat: upgrade TSyntax to union of kinds
2022-06-27 22:37:02 +02:00
Sebastian Ullrich
2ef3636022
fix: elaborating category quotations
2022-06-27 22:37:02 +02:00
Sebastian Ullrich
7d48d125da
fix: store syntax kinds of parser aliases in order to construct correct antiquotations in macro and elab
2022-06-27 22:37:02 +02:00
Sebastian Ullrich
292d24ba19
feat: always store quoted kind in antiquotation kind
2022-06-27 22:37:02 +02:00
Leonardo de Moura
041827bed5
chore: unused variables
2022-06-07 17:54:10 -07:00
Sebastian Ullrich
ae7b895f7a
refactor: unname some unused variables
2022-06-07 16:37:45 -07:00
Sebastian Ullrich
ec045bfbb8
feat: $_ antiquotation pattern
2022-06-04 13:57:04 +02:00
Leonardo de Moura
c65537aea5
feat: Option is a Monad again
...
TODO: remove `OptionM` after update stage0
see: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Do.20we.20still.20need.20OptionM.3F/near/279761084
2022-05-04 15:27:42 -07:00
Leonardo de Moura
de2e2447d2
chore: style
2022-04-07 17:35:05 -07:00
Leonardo de Moura
fdd1cb5751
chore: remove workarounds for #1090
2022-04-01 11:28:17 -07:00
Leonardo de Moura
68acfc7fb9
chore: prepare for #1090
2022-04-01 11:11:28 -07:00
Leonardo de Moura
09de67780f
chore: prepare for #1090
2022-04-01 09:35:06 -07:00
Leonardo de Moura
3862e7867b
refactor: make String.Pos opaque
...
TODO: this refactoring exposed bugs in `FuzzyMatching` and `Lake`
closes #410
2022-03-20 10:47:13 -07:00
Leonardo de Moura
12e2a79170
chore: fix codebase after removing auto pure
2022-02-03 18:08:14 -08:00
Sebastian Ullrich
ce58ded16f
fix: syntax match of literals
...
Fixes #801
2022-01-29 08:40:03 -08:00
Leonardo de Moura
cf3b8d4eb4
chore: cleanup
...
Make the code style more uniform.
We still have a lot of leftovers from the old frontend.
2022-01-26 09:18:17 -08:00
Leonardo de Moura
bac91b9b5b
chore: remove arbitrary
2022-01-15 12:14:27 -08:00
Leonardo de Moura
68bd55af32
chore: fix codebase
2021-12-10 13:12:09 -08:00
Gabriel Ebner
bfc74decde
feat: add info field to Syntax.node
2021-10-26 20:19:27 +02:00
Leonardo de Moura
acd21052c0
chore: remove old notation
2021-10-02 15:06:40 -07:00
Leonardo de Moura
a821dcbff2
chore: enforce naming convention for theorems
...
see issue #402
fix: `ElabTerm.lean`
2021-08-07 12:48:38 -07:00
Wojciech Nawrocki
f07e49acdb
chore: parse names properly
2021-07-19 09:55:37 +02:00
Wojciech Nawrocki
03699cd5ba
feat: uniformly split idents
2021-07-19 09:55:37 +02:00
Wojciech Nawrocki
7aca461a35
fix: hovers on elabFieldName fields
2021-07-19 09:55:37 +02:00
Gabriel Ebner
6a4982622f
fix: nontermination in Syntax.reprint
2021-06-23 00:07:27 -07:00
Sebastian Ullrich
eb1e285e26
chore: style
2021-06-21 10:17:26 -07:00
Leonardo de Moura
8b4cdcfddd
chore: fix mutable variable shadowing
2021-05-22 19:24:41 -07:00
Leonardo de Moura
eae1f5412b
fix: bugs introduced in the previous commits
2021-05-17 15:00:51 -07:00
Leonardo de Moura
3b7bcdc449
feat: add endPos field to SourceInfo.original
...
We need an update stage0 before we use it.
2021-05-17 14:32:58 -07:00
Sebastian Ullrich
683ecb2d65
feat: ignore unquoted identifiers in prechecked quotations
2021-04-29 13:30:09 +02:00
Sebastian Ullrich
e96a21631b
refactor: move elaboration error filtering into Elab.Command
...
Also make it dependent on presence of `missing` instead of parse error,
which means that messages from complete commands that are immediately followed
by parse errors are not filtered out anymore
2021-04-17 23:44:57 +02: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
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
Sebastian Ullrich
cb5050bb7f
doc: Syntax.topDown
2021-03-16 16:41:32 -07:00
Leonardo de Moura
1112ab6eff
chore: use new notation
2021-03-11 11:19:33 -08:00
Sebastian Ullrich
7b9f9e806f
feat: Syntax.topDown
2021-03-11 13:22:18 +01:00
Leonardo de Moura
5662e2e745
refactor: move ToString Syntax and BEq Syntax to Init
2021-02-26 13:21:04 -08:00