Frank LENORMAND
b040bf8b81
src: Use all selections to generate a pattern upon hitting *
...
This commit makes the `*` and <a-*> primitives compose a search pattern
comprised of all the current selections, as opposed to only the main one.
All selections are OR'd into the default search register, which makes it
convenient to search for several identifiers already selected.
To retain the old behaviour, the following mappings can be used:
```
map global normal * ': exec -draft -save-regs "" %{<space>*}<ret>'
map global normal <a-*> ': exec -draft -save-regs "" %{<space><a-*>}<ret>'
```
Fixes #2994
2019-07-01 19:53:08 +03:00
Maxime Coste
2ff9fd8d92
Kakoune v2019.07.01
2019-07-01 22:07:29 +10:00
Maxime Coste
aff3e7d5b7
Merge remote-tracking branch 'lenormf/fix-2907-2'
2019-06-29 09:54:51 +10:00
Maxime Coste
eae92c9ae3
Merge remote-tracking branch 'codesoap/rename_moduleload'
2019-06-29 09:52:20 +10:00
Maxime Coste
e4d6bff5ec
Fix quoting of tuple options
...
Fixes #2990
2019-06-27 22:42:12 +10:00
codesoap
ca2741fe20
Rename ModuleLoad hook to ModuleLoaded
...
This clarifies, that the hook is run *after* the module is loaded.
2019-06-25 19:16:47 +02:00
Frank LENORMAND
4c7bc9179b
src: Enforce case sensitivity when parsing function keys
...
The `parse_keys()` function is case insensitive when parsing function keys,
while the `key_to_str()` function always returns a capitalized key
description.
When users hook on the lowercase name of a function key,
e.g. `NormalKey <f10>`, and later hit that same key in normal mode, the
`key_to_str()` will convert it to the uppercase description ("<F10>").
This results into a hook with a lowercase regex predicate being unsuccessfully
matched against an uppercase key description by the hook manager, which
works on a case sensitive basis.
One solution could be to uppercase all function key descriptions passed as
hook filter upon declaration, but detecting that is not trivial as the
filter can contain more than just the simple <f\d+> data, e.g.
---
hook global InsertKey '<(?<name>\w+)>' %{…}
---
Another simpler solution that this commit implements is to allow only <F\d+>
descriptions in `parse_keys()`, and hope users will know not to use the
lowercase notation when declaring hooks.
Fixes #2907
2019-06-24 18:17:49 +03:00
Maxime Coste
034e726068
Unify register saving/restoring to a Vector
...
The previous "optimized" history register logic was unfortunately
not restoring correctly as the order of entries in the history
register could have been mutated.
2019-06-24 19:08:48 +10:00
Maxime Coste
6e09f677f4
Fix silly typo
2019-06-23 18:11:16 +10:00
Maxime Coste
a2fce67e9d
Put -Og flag in CXXFLAGS, not CPPFLAGS
2019-06-23 16:30:42 +10:00
Maxime Coste
177f38afd1
Merge remote-tracking branch 'eraserhd/debug-optimizations'
2019-06-23 12:05:21 +10:00
Maxime Coste
469818c6f9
Tweak history restoring behaviour
2019-06-23 12:05:09 +10:00
Maxime Coste
e613292568
Use register to store prompt history
2019-06-23 12:05:09 +10:00
Maxime Coste
a9e778fcc7
Add support for echo -quoting (raw|kakoune|shell)
switch
2019-06-23 12:04:21 +10:00
Maxime Coste
4b7b5d077c
Make quoting opt-in by using $kak_quoted_...
2019-06-23 12:04:21 +10:00
Maxime Coste
8b2906a14d
Refactor option_to_string quoting support, introduce Quoting::Raw
2019-06-19 23:04:16 +10:00
Maxime Coste
125b1924ce
Move dropped free windoes to the window trash
2019-06-18 21:49:41 +10:00
Maxime Coste
5888e23e02
Do not add window pointing to deleted buffers in the free window list
...
Fixes #2975
2019-06-16 19:12:35 +10:00
Maxime Coste
984472f681
Merge remote-tracking branch 'lenormf/fix-2966'
2019-06-15 10:48:49 +10:00
Maxime Coste
adf77c3e1d
Merge remote-tracking branch 'eraserhd/fifo-fixes'
2019-06-15 10:45:55 +10:00
Frank LENORMAND
936c21da70
src: Make sure the iterator is inbound before decrementing it
...
Fixes #2966
2019-06-14 09:17:56 +03:00
Jason Felice
0642058b3e
Fix emission of BufReadFifo events
...
The hook parameter should not be adjusted for the prevention of
scrolling. Also, ensure that the last BufReadFifo is triggered if we
encounter an error or EOF after appending some data to the buffer.
Closes #2946
2019-06-11 10:11:28 -04:00
Maxime Coste
14fb71b16c
Refuse to overwrite an existing session socket
2019-06-11 20:13:03 +10:00
Maxime Coste
d2dac558e7
Add a gather overload that infer element type
2019-06-10 21:57:06 +10:00
Maxime Coste
a1758bfcb0
Merge remote-tracking branch 'eraserhd/minor-remote-fixes'
2019-06-04 19:06:56 +10:00
Jason Felice
b82cf38338
Refactor message writing
2019-05-29 09:50:00 -04:00
Maxime Coste
1ebea85e6f
Do not merge selections on backspace in insert mode
...
Fixes #2861
2019-05-29 23:12:04 +10:00
Maxime Coste
7efdbb456d
Null terminate gdb auto-load script
...
Fixes #2929
2019-05-29 22:40:16 +10:00
Maxime Coste
262ef9b4e3
Fix BufferedWriter triggering std::terminate on exception when writing
...
Fixes #2932
2019-05-29 20:28:06 +10:00
Maxime Coste
7de3ea786f
Fix trailing slash removal code with root directory
2019-05-29 20:14:42 +10:00
codesoap
a0e0229f20
Fix the man path for OpenBSD
2019-05-28 11:21:29 +02:00
codesoap
6788b3ae27
Avoid using gzips '-k' for compatibility
...
OpenBSD's gzip doesn't have '-k', but file redirection should work
everywhere.
2019-05-28 11:21:29 +02:00
Maxime Coste
a1f0bae53a
Do not try to send remaining data on a closed socket
...
Fixes #2906
2019-05-23 12:42:38 +10:00
Jason Felice
a527aea465
Add -Og for debug builds
...
On my system, some optimizations are on by default (NixOS), resulting in
variables being optimized out on debug builds. It *seems to be*
something about a "_FORTIFY_SOURCE" feature? In any case, `-Og` is
documented as "Optimize debugging experience".
2019-05-21 08:44:26 -04:00
Robert Melton
a5bc91d67e
Merge remote-tracking branch 'upstream/master' into path-improvements
2019-05-21 04:19:13 -04:00
Maxime Coste
3b3a69b2f5
Fix compilation on older gcc / clang
...
This was already fixed on the menu-completions branch but an previous
commit version was wrongly cherry-picked.
Fixes #2914
2019-05-21 13:22:02 +10:00
Robert Melton
a43313c6ce
Strip all trailing slashes in real_path and compact_path
2019-05-19 19:52:05 -04:00
Maxime Coste
c972dfd2d7
Introduce Menu completion flags to auto select best candidate
2019-05-17 19:52:22 +10:00
Maxime Coste
4916471029
Add completion support to load-module
2019-05-13 17:34:45 +10:00
Maxime Coste
91386a535c
Support discarding selections in exec/eval -itersel
...
Only fail if all selections are discarded.
Fixes #2841
2019-05-13 17:34:43 +10:00
Maxime Coste
834f6916da
Do not keep a reference to ParametersDesc inside ParameterParser
...
This should fix #2900
2019-05-10 23:46:16 +10:00
Maxime Coste
f96547719d
Merge remote-tracking branch 'Delapouite/parse_lines'
2019-05-01 03:48:48 +10:00
Alex Leferry 2
910ace1611
Fix typo
2019-04-28 16:46:10 +02:00
Maxime Coste
229768841b
Fix parsing of faces with a base but no attributes
2019-04-28 00:35:52 +01:00
Delapouite
947e071066
Let parse_lines ensure that there's at least 1 line with \n
2019-04-27 19:29:16 +02:00
Maxime Coste
f6e58e7271
Fix crash when finishing insert completion with no completion candidates
2019-04-26 11:49:55 +01:00
Maxime Coste
0cc89b2b9f
Merge remote-tracking branch 'laelath/provides-requires'
2019-04-25 11:59:42 +01:00
Maxime Coste
1c8f1cbc2f
Fix wrapping of words with 'wrap col - indent < word len < wrap col'
...
Add a test case for those, and refactor bits of the wrap highlighter.
This explains part of the needed complexity in #2820 .
2019-04-24 11:40:57 +01:00
Maxime Coste
64ddd43be9
Only wrap before words that are shorter than the wrapping length
...
Closes #2820
2019-04-24 10:53:33 +01:00
Maxime Coste
c1471d38f1
Merge remote-tracking branch 'eraserhd/remote-refactors'
2019-04-24 09:01:00 +01:00
Maxime Coste
4e24ba86cc
Change faces alias to be a base that can be modified
...
Using <fg>,<bg>+<attr>@<base> will apply the given fg color,
bg color and attributes on top of base dynamically. Simply giving
<base> is a shorthand for default,default@<base>.
Inspired by the discussion in #2862
2019-04-23 23:15:23 +01:00
Jason Felice
99be3ff5e2
Use helper template struct in MsgReader
...
This makes reads for all types, including String, Vector, and Optional,
use the same interface in MsgReader.
2019-04-22 10:49:12 -04:00
Maxime Coste
aec58b968b
Small code cleanup in Face struct definition
2019-04-18 14:37:24 +02:00
Maxime Coste
06d4ee578e
Update changelog
2019-04-17 08:38:52 +02:00
Maxime Coste
78419bc76f
Remove InsertCompletionSelect hook
2019-04-17 08:38:52 +02:00
Maxime Coste
9118a18d5d
Change completions option docstring element to be an arbitrary command
...
We can have the previous behaviour by just passing the docstring to
`info -placement menu`.
2019-04-17 08:38:52 +02:00
Maxime Coste
02fc42a12a
Rename info -placement to info -style and support modal style
...
Fixes #1375
Closes #1380
2019-04-17 08:38:52 +02:00
Maxime Coste
ace499ecb1
Pass selected completion text to InsertCompletionHide
2019-04-16 15:56:07 +02:00
Maxime Coste
0bff4851d9
Support '-placement menu' switch in the info command
...
Expose insert completion menu documentation via the info command.
2019-04-15 17:22:48 +02:00
Maxime Coste
6d83828dab
Support name captures in dynregex highlighters
...
Fixes #2856
2019-04-16 00:18:15 +10:00
Maxime Coste
6b79c1e000
Support named captures in hooks
...
Fixes #2857
2019-04-15 23:56:49 +10:00
Maxime Coste
ac73f7c27f
Run ClientClose hook before exiting the client itself
...
Closes #2849
2019-04-13 15:40:43 +10:00
Maxime Coste
91337d6091
Make it possible to edit an existing scratch buffer again
...
And make `edit! -scratch *scratch*` for the recreation of an empty
buffer.
Fixes #2852
2019-04-12 13:52:26 +10:00
Maxime Coste
ef1fd3acb9
Prevent conversion to client on suspend from disconnecting other clients
...
clear the client manager in the to be converted process without
sending exit messages as the forked server will still be there.
Fixes #2847
2019-04-12 13:23:38 +10:00
Justin Frank
c40bb6fc00
Evaluate modules in an empty context
2019-04-08 17:06:56 -07:00
Justin Frank
7866d88131
Added ModuleLoad hook that uses the module name as the parameter
2019-04-08 17:05:55 -07:00
Justin Frank
6092852640
Added 'provide-module' and 'require-module' commands
2019-04-08 17:02:44 -07:00
Justin Frank
670f8192c8
Set up command boilerplate for provide-module and require-module
2019-04-08 17:02:44 -07:00
Maxime Coste
f732ea4efb
Refactor ClientManager::clear
2019-04-08 22:32:30 +10:00
Maxime Coste
675dbfbe8b
Auto generate buffer name when using edit -scratch with no name
...
This will make it easier to create a temporary scratch buffer to
work in without having troubles with name collisions.
Fixes #849
2019-04-08 22:16:44 +10:00
Maxime Coste
c8839e7904
Add a ClientCreate and ClientClose hook
...
As discussed in #2830 .
Closes #2500 .
2019-04-08 21:59:32 +10:00
Maxime Coste
d0df1ffe71
update version notes and changelog
2019-04-07 09:51:27 +10:00
Maxime Coste
41f19f8dc9
Add support for %file{...} expansions
...
This should make the use case exposed in #2836 implementable.
2019-04-07 09:43:40 +10:00
Maxime Coste
744778be30
Add a -to-file <filename> switch to the echo command
...
As discussed in #2836
2019-04-07 09:32:17 +10:00
Maxime Coste
835f2239a7
Run WinClose hook when clearing all free windows
...
Fixes #2830
2019-04-04 22:06:17 +11:00
Maxime Coste
cc788c888e
Fix detection of client ungraceful disconnection
2019-04-04 13:10:38 +11:00
Maxime Coste
d91e017803
Buffer writes in blocks of 4Kb when writing buffers to files
...
Could make kakoune more compatible with tools looking for file
modifications by reducing the amount of writes done.
As discussed in #2812
2019-04-01 22:57:55 +11:00
Maxime Coste
baae0c899b
Add -timestamp switch support to the select command
...
Fixes #2829
2019-04-01 22:11:18 +11:00
Maxime Coste
b8cf457e82
Add Optional::map and Optional::cast methods
...
Cool kids call that monadic interface if I understood correctly.
2019-04-01 22:09:32 +11:00
Delapouite
0fe8e59abc
Add missing flags to debug buffers output
2019-03-27 19:30:41 +01:00
Maxime Coste
688afee41b
Only pass ncurses compilation flags to ncurses_ui.cc
2019-03-26 13:04:08 +11:00
Maxime Coste
b531bab1ce
Add support for -shell-script-* completion in :prompt
...
Fixes #2754
2019-03-24 19:28:46 +11:00
Maxime Coste
045efdc49e
Extract shell script completion code into structs
2019-03-24 13:01:43 +11:00
Maxime Coste
cf0458e734
Add cursor_display_column expansion
...
Fixes #2788
2019-03-23 11:32:32 +11:00
Vladimir Bauer
247e8b4a19
find $(sharedir)/rc ...
2019-03-22 22:21:00 +03:00
Vladimir Bauer
b839e45573
undo clean section
2019-03-22 19:23:50 +03:00
Vladimir Bauer
a5897fe1b6
call find in BSD compatible way
2019-03-22 13:28:52 +03:00
Maxime Coste
ad882c3370
Limit WordDB word length to 50 bytes
...
Should improve both performance and relevancy of the word completions.
2019-03-22 18:03:49 +11:00
Justin Frank
4c26a03a61
Fixed makefile so properly installs new rc structure
2019-03-21 18:49:04 -07:00
Maxime Coste
ef0c183ed7
Do not copy environment strings, just refer to them
2019-03-21 20:43:24 +11:00
Maxime Coste
31d67f51dd
Track more memory statistics
2019-03-21 20:35:22 +11:00
Maxime Coste
56611604b2
Make String able to reference external data without copying
...
Sometimes we really need to have a String instead of a StringView,
but some of those strings might not need to own their data. Make
it possible to explicitely construct a String that does not own
the underlying buffer.
Use it when parsing balanced strings.
2019-03-19 22:00:57 +11:00
Maxime Coste
c2be661785
Fix typo in scratch buffer default content
2019-03-19 21:44:30 +11:00
Maxime Coste
f87e844244
Add a text in scratch buffer to make it explicit it wont be saved
...
Fixes #2759
2019-03-17 10:41:11 +11:00
Maxime Coste
a8ea599372
Remove another unnecessary ; in palete reset escape sequence
...
Should fix #2779 for real.
2019-03-16 11:57:31 +11:00
Maxime Coste
525684f4da
Make keymap fully constexpr
2019-03-16 11:54:56 +11:00
Maxime Coste
47be98f1fc
Remove unnecessary ; from palette reset escape sequence
...
Fixes #2779
2019-03-13 07:19:20 +11:00
Maxime Coste
21fa4dcb13
Re-introduce -MP in the C++ compilation rule
...
It turns out it is important to avoid having to clean when a header
is deleted.
2019-03-05 20:56:44 +11:00
Maxime Coste
8a0e89f326
Merge remote-tracking branch 'laelath/compilation-warnings'
2019-03-05 20:54:14 +11:00
Maxime Coste
ffb1813759
Merge remote-tracking branch 'krobelus/write-all-note-modified'
2019-03-05 20:50:15 +11:00