| Commit message (Collapse) | Author | Age |
|
|
|
| |
Sorry, that is ugly. Please revert if you see a better way to do it.
|
| |
|
|
|
|
|
|
| |
Instead of setting the last modified part of the text to be the insert point,
we register all modifications to the buffer between to user actions and take
the last modified point to be the least offset of all those modifications.
|
|
|
|
|
|
| |
We make the deletion callback not to regenerate a task id, as the insertion
callback does. I can't find a particular reason for this dissymetry, and it
was indeed causing trouble.
|
| |
|
|
|
|
| |
Also fixes bug #4030.
|
| |
|
| |
|
| |
|
|
|
|
| |
We build the rich XML at once without generating the printed string.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We reimplement a quick-n-dirty Gtk-free signal handler.
|
| |
|
|
|
|
|
|
|
| |
This allows a nifty display of the current state of the document through
a dedicated progress bar.
Also closes bug #3764.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of modifying exceptions to wear additional information, we instead use
a dedicated type now. All exception-using functions were modified to support
this new type, in particular Future's fix_exn-s and the tactic monad.
To solve the problem of enriching exceptions at raise time and recover this
data in the try-with handler, we use a global datastructure recording the
given piece of data imperatively that we retrieve in the try-with handler.
We ensure that such instrumented try-with destroy the data so that there
may not be confusion with another exception. To further harden the correction
of this structure, we also check for pointer equality with the last raised
exception.
The global data structure is not thread-safe for now, which is incorrect as
the STM uses threads and enriched exceptions. Yet, we splitted the patch in
two parts, so that we do not introduce dependencies to the Thread library
immediatly. This will allow to revert only the second patch if ever we
switch to OCaml-coded lightweight threads.
|
|
|
|
| |
This reverts commit ad2a0308b1592c7235714a2cca926f3b55accbb2.
|
| |
|
|
|
|
| |
buffer.
|
|
|
|
|
|
| |
In particular, renouncing to original support for existing non .v
files in CoqIDE (hoping it is ok for anyone). Please amend if better
to propose.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Coqtop was wrongly assuming that receiving a SIGINT when reading on a channel
meant that the channel was closed, resulting in a crash when interrupting
an idle coqtop from CoqIDE.
To prevent this, we block SIGINTs when reading in ide_slave.
|
| |
|
|
|
|
| |
responsible about.
|
| |
|
| |
|
|
|
|
| |
internal and external datatypes.
|
|
|
|
| |
{Interface} instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Extend the protocol with a new command called "annotate".
- By the way, relax the dependencies between the "ide" package
and the internal packages of Coq by *not* referring to external
type definitions inside Interface.
Indeed, the purpose of the protocol is to act as a barrier
between the source tree of Coq and the source tree of Coqide.
We should enforce this property.
(Maybe one day coqide will be extracted from the source tree
of Coq to live its own life.)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
coqide to coqtop.
(Joint work with Pierre)
|
| |
|
| |
|
|
|
|
|
| |
The leafs of the XML trees are still pretty-printed strings, but this
could be refined later on.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The more structured goal record type of CoqIDE is also useful for other
interfaces (in particular, for PIDE). To support this, the datatype was
factored out to the Proof module. In addition, the record gains a type
parameter, to allow interfaces to adapt the output to their needs.
To accommodate this type, the Proof module also gains the
map_structured_proof that takes a Proof.proof and a function on the
individual goals (in the context of an evar map) and produces a
structured goal based on the goal transformer.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This fix considerably speeds up syntax highlighting. It also avoids burning
100% CPU when typing long identifiers. Finally, identifiers longer than 20
characters are now properly highlighted, since the stack of the automaton
no longer overflows because of them.
|