Maxime Coste
080160553c
Regex: support escaped character classes
2017-11-01 14:05:14 +08:00
Maxime Coste
1a8ad3759f
Regex: fix handling of strict quantifiers {N}
...
Previous behaviour was treating {N} as {N,}
2017-11-01 14:05:14 +08:00
Maxime Coste
be157453ad
Regex: Use a std::function based "Matcher" op to implement character classes
...
This is more extensible and should allow easier support for non ranges
classes.
2017-11-01 14:05:14 +08:00
Maxime Coste
eb1015cdfb
Regex: whenever Kakoune compiles a regex, pass it to the custom impl as well
...
That way we can see which features are missing.
2017-11-01 14:05:14 +08:00
Maxime Coste
002aba562f
Regex: work on unicode codepoints instead of raw bytes
2017-11-01 14:05:14 +08:00
Maxime Coste
75608ea223
Regex: when in full match mode, do not accept trailing data
2017-11-01 14:05:14 +08:00
Maxime Coste
490c130e41
Regex: Implement leftmost matching
...
Ensure threads are maintained in "priority" order, by having two
split instruction (prioritizing parent or child).
2017-11-01 14:05:14 +08:00
Maxime Coste
182b70cb0a
Regex: Add initial support for character ranges
2017-11-01 14:05:14 +08:00
Maxime Coste
52678fafa1
Regex: Add support for searching
...
Always compile a `.*` as the first instructions in a regex bytecode,
depending on the match or search mode, the RegexVM will either execute
this or skip it and start directly at the matching bytecode.
2017-11-01 14:05:14 +08:00
Maxime Coste
f7b8c1c79d
Regex: cleanup and reorganize regex code and improve capture support
...
Introduce the CompiledRegex class, rename ThreadedExecutor to
ThreadedRegexVM, remove the RegexProgram namespace.
2017-11-01 14:05:14 +08:00
Maxime Coste
023511deff
Regex: WIP support for saving captures
2017-11-01 14:05:14 +08:00
Maxime Coste
ad546e516a
Regex: Small comment tweaks
2017-11-01 14:05:14 +08:00
Maxime Coste
46a113e10a
Regex: Add support for curly braces count expressions
2017-11-01 14:05:14 +08:00
Maxime Coste
d04c60b911
Regex: Add support for subject begin/end assertion (\` and \')
2017-11-01 14:05:14 +08:00
Maxime Coste
9c5d539616
Regex: Add word boundary assertion support
2017-11-01 14:05:14 +08:00
Maxime Coste
a9a04e81b0
Regex: Ensure we only ever have a single thread on a given instruction
2017-11-01 14:05:14 +08:00
Maxime Coste
ee42c6b0ba
Regex: add unit test to check the ".*" construct
2017-11-01 14:05:14 +08:00
Maxime Coste
4010c44fc0
Regex: Make the Split op only take a single offset parameter
...
Split now creates a new thread and keep the current one running, as
all of its uses are compatible with this behaviour, which enable a
more compact compiled code.
2017-11-01 14:05:14 +08:00
Maxime Coste
f9dc6774b9
Regex: Introduce RegexProgram::ThreadedExecutor and add line end/begin impl
2017-11-01 14:05:14 +08:00
Maxime Coste
a448e1e222
Regex: Code cleanup in the regex impl
2017-11-01 14:05:14 +08:00
Maxime Coste
8c9976ea72
Regex: Add initial, exploratory work on a custom regex engine
2017-11-01 14:05:14 +08:00
Maxime Coste
797a0cb062
Add another assert to try to catch #1506
2017-11-01 14:04:42 +08:00
Maxime Coste
94a0c9bb45
Highlighters does not need to inherit from HighlighterGroup
...
Just compose, to avoid coupling Highlighters with the Highlighter
interface. And yeah, that naming is a bit confusing.
2017-10-31 13:53:08 +08:00
Maxime Coste
6272847ace
Prompt: display the fallback text everytime the prompt is empty
2017-10-31 12:54:21 +11:00
Maxime Coste
6d78b06405
Do not auto apply the fallback regex when in regex prompts
...
Fixes #1653
2017-10-30 18:58:47 +11:00
Maxime Coste
cd215ccee9
Do not allow opening files whose size we cannot express in an int
2017-10-30 18:58:47 +11:00
Maxime Coste
40eb598065
Makefile: Use pkg-config on Linux to get the ncurses compilation flags
...
Fixes #1659
2017-10-30 17:35:51 +11:00
Maxime Coste
9cb07503c6
Merge remote-tracking branch 'nuao/readme-map'
2017-10-30 17:05:55 +11:00
Maxime Coste
5e6077acc2
html.kak: Change </...> align hook to only run after inserting '>'
...
Improve the hook to support nesting of tags as well.
2017-10-30 17:04:54 +11:00
nuao
7e3c8db3e6
Correspond README with information box for map command's mode argument
...
goto, view, and object modes appear as modes in the information box, so
add these to the README.
This commit also list all modes in the same order as given in the
information box.
Related to #1657
2017-10-29 11:56:33 +00:00
Maxime Coste
43d470f286
Slight cleanup of select_surrounding implementation
2017-10-28 13:43:04 +08:00
Maxime Coste
c8257a58a5
kakrc.kak: set '-' as an additional word char
2017-10-28 13:43:04 +08:00
Maxime Coste
d7671f0cdf
kakrc.kak: Fix static word definition
2017-10-28 13:43:04 +08:00
Maxime Coste
7064e890f5
Update breaking changes message
2017-10-28 13:43:04 +08:00
Maxime Coste
d49555fc75
Move highlighters into Scopes
...
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.
2017-10-28 13:43:04 +08:00
Maxime Coste
9a449a3344
Display the fallback value in prompts
...
Fixes #1654
2017-10-28 10:07:28 +08:00
Maxime Coste
7062022187
HashMap: Tolerate reserving for 0 elements
...
Fixes #1652
2017-10-27 11:03:43 +08:00
Maxime Coste
75767f5cb5
Fix infinite loop shell_complete
...
Fixes #1648
2017-10-25 11:26:03 +08:00
Maxime Coste
ab9283bc37
Merge remote-tracking branch 'net/master'
2017-10-25 11:13:42 +08:00
Net
74202fab45
Rename br* colors to bright-*
2017-10-24 23:08:22 -04:00
Maxime Coste
7744b4c164
Merge remote-tracking branch 'lenormf/trampoline'
2017-10-25 10:57:58 +08:00
Maxime Coste
654e3fcb46
Fix regions highlighter infinite loops when regex matches empty ranges
2017-10-25 10:39:35 +08:00
Maxime Coste
c95bd83ea1
haskell.kak: remove complex lookarounds
...
Highlighting is going to be slightly less correct, but we get rid
of the last incompatible regex in rc/
2017-10-25 10:29:27 +08:00
Maxime Coste
d09924d24b
asciidoc.kak: use a more tolerant block regex for
...
Get rid of the nasty backreference we were relying on.
2017-10-25 10:29:27 +08:00
Maxime Coste
591ddb86e3
markdown.kak: Remove fenced block support from
...
Its not in the spec, except for code blocks that we handle differently
anyway. More importantly it currently relies on backreference.
2017-10-25 10:29:11 +08:00
Maxime Coste
7dc800c213
Simplify lookaround use in moon.kak
...
(?=[A-Z]\w*) is strictly the same as (?=[A-Z]) as \w* will always
at least match an empty string.
2017-10-25 10:29:11 +08:00
Maxime Coste
870d2d22d7
haskell.kak: Remove some complex lookarounds
2017-10-25 10:28:59 +08:00
Maxime Coste
0fa59e5fd2
rc/: Tweak some regexes to be compatible with our impl limitations
...
The upcoming custom implementation does not support arbitrary lookarounds,
and other advanced regex features. Simplify the regexes to avoid those.
2017-10-25 10:27:39 +08:00
Maxime Coste
bf6e5daa08
Use stricter regex syntax
...
boost regex tolerates non-escaped special characters, and escaped
non-special characters. Standardize on stricter syntax, where
special characters must be escaped, and non-special characters must
not.
2017-10-25 10:27:39 +08:00
Maxime Coste
78530b82be
Add an indentation test for braces after if
2017-10-25 10:27:39 +08:00