| Age | Commit message (Collapse) | Author |
|
<memory> is a costly header we can avoid by just implementing
UniquePtr ourselves, which is a pretty straightforward in modern
C++, this saves around 10% of the compilation time here.
|
|
When using `eval` a new scope named 'local' gets pushed for the
whole evaluation, this makes it possible to temporarily set
an option/hook/alias...
Local scopes nest so nested evals do work as expected.
Remove the now trivial with-option command
|
|
Matches the user facing name and seems more correct.
|
|
This allow replacing a highlighter in place, not loosing its current
position in its parent.
Fixes #3436
|
|
The highlighter name must be given as part of the path of the
highlighter, as the last element.
Fixes #1712
|
|
|
|
Some highlighters, such as wrap or line numbers, are not intended
to be used multiple times on the same display. Add support for unique
ids that are used by highlighters to disable themselves if another
unique highlighter with the same id is supposed to override them.
The usual highlighter "precedence" takes, place, that it, that most
nested highlighter will the the one to run (window in priority to
buffer in priority to global).
|
|
|
|
Just compose, to avoid coupling Highlighters with the Highlighter
interface. And yeah, that naming is a bit confusing.
|
|
That means we can now have highlighters active at global, buffer, and
window scope. The add-highlighter and remove-highlighter syntax changed
to take the parent path (scope/group/...) as a mandatory argument,
superseeding the previous -group switch.
|
|
Validate that childs of HighlighterGroup are matching its passes.
|
|
|
|
Highlighters now run in 3 phases:
Wrap, Move, and Colorize. That way we guarantee the wrap
highlighter runs first, then eventual line numbers/flags,
and finally the colorizers.
We also run a `compute_display_setup` method thats responsible
for computing the lines that will be displayed, eventually
scrolling the view to ensure the cursor is visible.
|
|
|
|
|
|
|
|
|
|
Regions highlighter can now correctly be applied to only subrange
of the buffer, fixing some corner cases in recursive regions.
|
|
|
|
|
|
|
|
HierachicalHighlighter contains a map of names to HighlighterGroup
and can wrap any highlighter that wants to access user settable
sub groups.
|
|
|
|
|
|
(that is most of the time when we are not concerned with displaying)
|
|
|
|
FilterGroup is similar to HighlighterGroup, it permits grouping
together filters for easy removal.
|
|
|
|
|
|
|