Maxime Coste
5f8753caec
rework selection insert/replace using a for_each method
...
expose that method so that various commands can take advantage of
it for performance or simplicity purposes.
2021-09-30 20:12:58 +10:00
Maxime Coste
e4a23a64fa
Support opening files bigger than 2 GiB
...
The real technical limit is with lines bigger than 2 GiB and buffers
with more than 2 Gi lines, refactor buffer loading to make it possible
to load those files.
Fix an overflow with the hash_data function at the same time
2021-05-28 17:03:41 +10:00
Maxime Coste
fc3e5ea419
Refactor how InsetCompletionHide hook parameter is computed
...
Keep track of inserted ranges instead of trying to re-derive them.
Fixes #3556
2020-06-27 13:33:50 +10:00
Maxime Coste
60154300f9
Support piping data to client stdin
...
Pass the client stdin fd to the server and open a fifo buffer
from it.
Fixes #3394
2020-05-10 19:30:13 +10:00
Maxime Coste
0a66eb9c47
Expand env vars as list of strings
...
This makes it possible to do :select `%val{selections_decs}` and to
correctly combine $kak_quoted with those.
2020-03-02 20:53:28 +11:00
Maxime Coste
6badd74790
Fix compilation on 32bit platforms
...
Fixes #3284
2020-01-09 20:13:02 +11:00
Maxime Coste
8b6ed26e8c
Few style changes on history exposition code
2020-01-02 22:36:26 +11:00
Jason Felice
b03b51d27a
Add 'history' and 'uncommitted_modifications' expansions
2020-01-01 19:47:29 -05:00
Maxime Coste
b68490ef11
Cleanup replaced range selection logic
...
Do not access Buffer::m_changes to find the inserted range, return
it directly from Buffer::insert and Buffer::replace. This fixes a
wrong behaviour where replacing at eof would lose the selected end
of line (as the implementation does not actually replace that end
of line)
2019-12-18 11:36:17 +11:00
Jason Felice
0f58f01428
Fix display column computations
...
Closes #3201
2019-11-12 20:43:14 -05:00
Maxime Coste
ed84a2d60c
Buffer begin and end are not end-of-words
...
Buffer begin never has a word character before, and end is always
preceeded by an end-of-line.
Fixes #2420
2018-10-08 12:40:52 +11:00
Maxime Coste
a0b42323ed
Add a -debug flag to :edit to set the buffer as debug data
...
As for the *debug* buffer, buffers with the debug flag wont get
used for cycling through buffer, or word completion.
2017-03-08 19:33:25 +00:00
Maxime Coste
b3ba769220
Propagate the hooks disabled state through prompt, menu, and command execution
...
Maintain it as well during buffer creation even if the hooks are not executed
in client context.
Fixes #818
2016-11-14 19:39:35 +00:00
Maxime Coste
35559b65dd
Support codepoints of variable width
...
Add a ColumnCount type and use it in place of CharCount whenever
more appropriate, take column size of codepoints into account for
vertical movements and docstring wrapping.
Fixes #811
2016-10-01 13:45:00 +01:00
Maxime Coste
a7005ec74b
Add a char_length(Buffer&, const ByteCoord&, const ByteCoord&) util
2016-07-28 09:41:47 +01:00
Maxime Coste
131b0a8298
Use ByteCoords directly for buffer insert/erase/replace
2016-03-16 13:59:30 +00:00
Maxime Coste
de1433d30a
Avoid the spurious newline insertion when replacing at end of buffer
...
Add a Buffer::replace method to handle the replacements properly
Fixes #633
2016-03-16 13:48:11 +00:00
Maxime Coste
47df1374fe
Refactor use selection as search pattern implementation
2016-02-17 23:40:14 +00:00
Maxime Coste
1d748a4017
Pass flags to the regex engine to correct anchors
...
Current behaviour was matching ^ $ for the current search start/end
(and \b was always matching begin/end as well).
Fixes #536
2015-12-23 22:20:25 +00:00
Maxime Coste
76fadd8108
More cleanups in the buffer open/reload code
2015-10-17 11:33:09 +01:00
Maxime Coste
fe704b9b84
Move line parsing and to Buffer.cc directly
2015-10-17 11:33:09 +01:00
Maxime Coste
3795ff735a
Refactor buffer creation and reloading to be more explicit
...
Reloading used to be implicit in the buffer creation function,
which is not always nice, as code that explicitely wanted to
reload a buffer could not say so.
2015-10-17 11:33:09 +01:00
Maxime Coste
e2720f1fbe
Store timespec for buffer fs timestamps, not just time_t
...
time_t has a resolution of one second, which cause troubles when
a file changes multiple time during that same second.
2015-09-27 11:55:34 +01:00
Maxime Coste
e6f0e8ef75
Move write_debug to buffer utils as write_to_debug_buffer
2015-06-06 11:54:48 +01:00
Maxime Coste
00bde4ef48
Respect columns when copying selection, not just bytes
2015-02-25 13:41:00 +00:00
Maxime Coste
2852e0fbe5
Remove trailing blank lines
2014-12-23 23:00:20 +00:00
Maxime Coste
6bcc038329
tweak helper functions in buffer_utils.hh
2014-09-22 13:45:07 +01:00
Maxime Coste
8d4531d419
Add support for reading from stdin/writing to stdout in filter mode
...
Note that kakoune still needs to read the whole buffer first, only
once stdin is closed can it execute the keys.
2014-08-15 13:21:54 +01:00
Maxime Coste
ed68d1ff28
utf8: use end of sequence iterators for more security
2014-07-05 12:10:06 +01:00
Maxime Coste
4e280977a2
Iterate in reversed order on selections when modifing buffer
...
This way, update only needs to be called once everything is done
as we always modify after the next selection to be used.
2014-05-14 20:56:49 +01:00
Maxime Coste
8546788b43
Refactor LineAndColumn coordinates
...
BufferCoord -> ByteCoord
DisplayCoord -> CharCoord
Moved their definition along with LineAndColumn into coord.hh
2014-05-07 19:53:45 +01:00
Maxime Coste
e83123de1f
Add support for non-scrolling fifo buffers
2014-05-02 18:58:04 +01:00
Maxime Coste
479c067a40
Add support for running Kakoune with redirected stdin
...
Will read to a *stdin* fifo buffer
2014-04-29 21:37:11 +01:00
Maxime Coste
7190791927
Move some buffer related utility functions to buffer_utils.{cc,hh}
2014-04-28 19:48:23 +01:00