Commit Graph

60 Commits

Author SHA1 Message Date
Johannes Altmanninger
611bdebf3c Access selections via helper methods
The next commit changes the selections to a history of
selections. Today we directly access the selections data member. Let's
instead use an accessor method, to reduce the number of changes in
the next commit.
2022-08-29 08:01:43 +02:00
Frank LENORMAND
a5dd8a7935 src: Allow ga to skip removed buffers
This commit prevents `ga` from returning a “no last buffer” error
when the previously displayed buffer was removed.

Since the jumps list keeps track of the order in which buffers were
displayed already, handling arbitrary `delete-buffer`s as well,
cycle through it to implement `ga` instead of storing a pointer.

Note that this commit doesn't take into account buffer flags that
might exclude some buffers from being cycled over by commands.

Fixes #1840
2021-10-06 08:44:47 +02:00
Maxime Coste
22bfbd06af Redraw relevant clients after adding/removing highlighters 2019-12-28 11:27:04 +11:00
Maxime Coste
e42c81c8eb Ensure current context switches away from buffer on delete-buffer
Fixes #3025
2019-07-22 20:26:39 +10:00
Maxime Coste
e613292568 Use register to store prompt history 2019-06-23 12:05:09 +10:00
Justin Frank
8178400f8d Fixed all reorder warnings 2019-02-27 22:45:31 -08:00
Maxime Coste
1ad3b87302 Collapse jumps based on current index change
The previous method, while likely more correct, could restore jump
lists containing references to already removed buffers.
2019-02-17 11:21:26 +11:00
Maxime Coste
d3be78cca2 Only commit undo groups when buffer was modified
This fixes an interaction with kak-lsp that would trigger undo group
commit when setting a buffer option value.
2018-09-12 20:02:57 +10:00
Maxime Coste
57baad4afd Make FaceRegistry scoped
set-face now takes a scope argument, and faces can be overridden on
a buffer or window basis.

colorscheme apply on global scope, which should be good enough for
now.

Fixes #1411
2018-04-07 16:27:50 +10:00
Maxime Coste
0baf562c93 Support full redraws during shell execution and handle resize there
Fixes #1973
2018-03-30 09:58:18 +11:00
Maxime Coste
4b06c09c68 Make edit command work fine when running from an empty context
This way, the kind of context we get from a piped command allows
for opening a buffer and working with it directly.
2017-12-12 18:22:05 +11:00
Delapouite
a071e5b226 Add count support to jumps (<c-o> and <c-i>). Add jumps tests 2017-11-13 08:38:43 +01:00
Delapouite
6b339b7a97 Add status info when navigating through jumplist (<c-o>, <c-i>) 2017-09-27 17:26:39 +02:00
Maxime Coste
28bcb45b92 Fix bug where idle timers of disabled modes were still run 2017-05-22 16:57:22 +01:00
Maxime Coste
468bd63569 Tweak buffer change code so that WinDisplay hooks can use info boxes 2017-05-13 11:18:21 +01:00
Maxime Coste
d470bd2cc9 Make numeric registers setable
Fixes #1214
2017-02-14 00:02:01 +00:00
Maxime Coste
a7cac87753 Display a status line message when Kakoune is waiting on a shell to complete
If a shell commands takes more than 1s to execute, a message will appear
on the status line notifying the user, along with the time Kakoune has
been waiting for.
2016-10-29 11:25:58 +01:00
Maxime Coste
34c8e6a9cf Clear up info/menus and eventual prompts when reseting to normal mode
Fixes #697
2016-06-16 19:35:43 +01:00
Maxime Coste
3987463e75 Remove direct access to ui, go through client
Client can now update menu/info positions when the window move
around.
2016-02-27 17:23:13 +00:00
Maxime Coste
c16b9a2ec4 Set window dimensions when setting it in a context 2015-12-25 07:17:36 +00:00
Maxime Coste
669fccc5e9 Remove drop jump (c-d) 2015-12-23 02:47:32 +00:00
Maxime Coste
aa92ca96c8 Use an index for jump list current rather than an iterator 2015-12-23 02:31:03 +00:00
Maxime Coste
411e5a9486 Extract jump list handling in a JumpList struct 2015-12-23 01:56:54 +00:00
Maxime Coste
9e664318af Tweak Context::push_jump implementation, simplify code 2015-12-22 22:18:25 +00:00
Maxime Coste
a8d81e395b Support dropping last jump and use it to fix :tag double jump push
Fixes #492
2015-11-27 13:57:46 +00:00
Viktor Palmkvist
b53d9e282e Fix segfault in edge case when jumping backwards in jumplist
Closes #380
2015-08-26 11:54:51 +02:00
Maxime Coste
905af05c61 Move Context scope access helpers as inline methods 2015-07-13 13:43:52 +01:00
Maxime Coste
ddd70fd09a Make empty context construction more explicit 2015-04-19 18:47:52 +01:00
Maxime Coste
1dfa2d7fe4 Avoid unneeded update of selections when we are going to overwrite them 2015-04-19 15:12:16 +01:00
Maxime Coste
9f65a4e6dd Remove Context::set_selections, use Context::selections() = ... 2015-04-19 15:00:37 +01:00
Maxime Coste
da562e03a0 replace all std::vector with Vector 2015-01-12 13:58:41 +00:00
Maxime Coste
1c8ee78d1a Do not register timers for transient input handlers 2014-12-18 23:12:58 +00:00
Maxime Coste
e8c8833211 Do not reset edition level to 0 on buffer change
Keep it as is, commit undo in current buffer, and we will commit it in
the new buffer when edition level gets back to 0.
2014-11-21 18:56:39 +00:00
Maxime Coste
e38ba6ce3d Add scope class and encapsulate Options, Keymaps, Aliases and Hooks in it 2014-10-30 14:04:57 +00:00
Maxime Coste
185b980718 Add scoped aliases
aliases are now stored in window, buffer, or globally.
2014-10-30 14:02:13 +00:00
Maxime Coste
729e55573f Support changing buffer when an edition is in progress 2014-10-10 14:00:24 +01:00
Maxime Coste
b934c8ede5 Fix crash in Context::main_sel_register_value 2014-06-23 13:16:51 +01:00
Maxime Coste
7235180614 Use main selection index as default when accessing only one register value
Fixes #117
2014-06-21 11:31:08 +01:00
Maxime Coste
26f69b199e Rework and fix corner cases in selection updating code 2014-06-05 19:44:56 +01:00
Maxime Coste
a5e028e1b1 Add Context::set_selections(std::vector<Selection>)
This methods avoids updating the context selection needlessly as
they are going to get replaced anyway.
2014-06-01 16:01:38 +01:00
Maxime Coste
bf98b38afd Use a plain SelectionList for Context, remove DynamicSelectionList 2014-05-14 19:49:04 +01:00
Maxime Coste
a06094b00e Use simple SelectionList for the Context::JumpList 2014-05-13 20:09:37 +01:00
Maxime Coste
ea3e92aa5e SelectionList know its buffer and timestamp 2014-05-13 20:09:06 +01:00
Maxime Coste
39983e54d0 minor code style tweak 2014-04-04 00:00:06 +01:00
Maxime Coste
9455303a1e Do not allow changing buffer when the context is editing 2014-01-06 20:07:08 +00:00
Maxime Coste
c0973075fa Get rid of Editor for good
ClientManager now stores only the free windows, clients take
ownership of its own.
2013-12-20 20:14:57 +00:00
Maxime Coste
d1ac813f61 Pass a Context rather than a Window to highlighters 2013-12-16 23:24:08 +00:00
Maxime Coste
ea95632709 Move Editor::selections_content to Context 2013-12-15 20:37:07 +00:00
Maxime Coste
7267b8281f Move insert and erase to normal.cc, and move edition management to context 2013-12-15 20:23:02 +00:00
Maxime Coste
935bc3cec9 Add Context::selections method, and use it in priority to the Editor's one 2013-12-15 14:25:23 +00:00