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
43d470f286
Slight cleanup of select_surrounding implementation
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
654e3fcb46
Fix regions highlighter infinite loops when regex matches empty ranges
2017-10-25 10:39:35 +08:00
Delapouite
d5b6669a83
Add distinct w (curr buf) / W (all buf) word completion for <c-x>
2017-10-24 22:47:43 +02:00
Net
2b44e93f79
Support bright named colors
2017-10-22 14:30:49 -04:00
Maxime Coste
600ba45189
Add missing include to meta.hh
2017-10-21 05:30:43 +08:00
Maxime Coste
d6cb10d693
Disable constexpr keymap as it breaks compilation with gcc 5
2017-10-20 19:12:21 +08:00
Maxime Coste
723bb2b175
Merge remote-tracking branch 'fsub/master'
2017-10-20 17:28:06 +08:00
Maxime Coste
7c06667bdf
Make the normal mode keymap a compile time hash map
...
This hash map is now fully constexpr, and ends up stored in the read
only data segment instead of being recomputed at each startup.
2017-10-20 12:21:22 +08:00
Maxime Coste
d486ea84e5
Constexprify various hash functions
2017-10-20 12:21:22 +08:00
Maxime Coste
ddff35e5ab
Move keymap as an implementation detail of the normal mode keys
...
Only expose a free function that tries to get the NormalCmd from a
key.
2017-10-20 12:21:22 +08:00
fsub
a70128a4cf
Avoid some warnings in optimized builds
2017-10-19 22:20:44 +02:00
Maxime Coste
ddc307b8e9
Optimize CommandManager::execute handling of tokens
...
Instead of walking a list of tokens and inserting eventual new
ones in the middle, use a stack of token and push new ones on top.
2017-10-17 10:25:20 +08:00
Maxime Coste
145cf843dd
Add a fail
command to explicitely raise an error
2017-10-17 10:25:16 +08:00
Maxime Coste
89f016d871
Refactor column highlighter to make it more robust
...
Support arbitrary orders for column highlighters (it was previously
failing when column highlighters were not applied in column order).
Fix show_matching tab handling at the same time (horizontal scrolling,
tab characters and show_matching were behaving badly).
Window highlighting now runs user highlighters, then built-ins for each
phases, instead of running all phases for user highlighters, then all
phases for built-ins.
We now consider unprintable character to be 1-column width as we know
we will display them as "�".
Fixes #1615
Fixes #1023
2017-10-12 14:46:15 +08:00
Maxime Coste
78d7d512cb
Fix utf8::to_previous that could go before the begin iterator
2017-10-10 10:53:24 +08:00
Maxime Coste
079cfbc6ac
Remove unused forward declaration
2017-10-10 10:52:58 +08:00
Maxime Coste
6ada6e6d77
Move all non-core string code to string_utils.{hh,cc}
2017-10-10 10:52:32 +08:00
Maxime Coste
d1b9c24afc
Make Server outlive buffer manager
...
Fixes crashes when trying to access the server to get the session
on hooks run during destruction of other managers.
Fixes #1622
2017-10-10 10:49:30 +08:00
Maxime Coste
80d2506c34
Make utf8_iterator traits clear about it returning non-references
2017-10-07 21:54:59 +08:00
Maxime Coste
e18836aea7
Add is_upper and is_lower helper unicode functions
2017-10-07 21:54:55 +08:00
Maxime Coste
ca17fbbeb9
Merge remote-tracking branch 'Delapouite/docs-scroll'
2017-10-07 21:51:37 +08:00
Maxime Coste
a5ae21d70d
Move HookManager::Hook definition in the cpp
...
This avoids including regex.hh in the header.
2017-10-06 13:58:04 +08:00
Maxime Coste
18705a0097
Add missing operator+= and -= on utf8_iterator
...
Fix operator== and != that were non-const as well.
2017-10-06 13:57:54 +08:00
Maxime Coste
cbb6e9ea0f
Merge remote-tracking branch 'Delapouite/client_list'
2017-10-06 13:53:55 +08:00
Maxime Coste
8900d06646
Merge remote-tracking branch 'Delapouite/complete-line'
2017-10-06 13:50:42 +08:00
Maxime Coste
3cfd3a3276
Merge remote-tracking branch 'Delapouite/debug-mappings'
2017-10-06 13:49:52 +08:00
Maxime Coste
1b22472ce8
Remove unneeded regex.hh include in color.cc
2017-10-06 13:48:30 +08:00
Maxime Coste
1a20e26cc4
Allow itersel with draft context to change the buffer
...
That way we can cater to the use case of executing some keys for
`:grep` matches with `exec -itersel -draft :grep-jump<ret>...`
2017-10-06 13:48:16 +08:00
Maxime Coste
30ab437777
Add more constexpr to flags wrapping functions
2017-10-06 13:48:01 +08:00