Change a
on end of line behaviour to be consistent
`a` will just jump on next line, `a` on last end of line opens a new line beneath it. Fixes #1164
This commit is contained in:
parent
55a5ec3bbd
commit
63d4c8c311
|
@ -53,6 +53,10 @@ change to make Kakoune command model cleaner and more robust.
|
|||
|
||||
See <<highlighters#,`:doc highlighters`>>
|
||||
|
||||
* `a` on end of line is not treated specially anymore, it will start
|
||||
inserting on the next character, which will be the first character
|
||||
of the next line.
|
||||
|
||||
== Kakoune 2018.04.13
|
||||
|
||||
First official Kakoune release.
|
||||
|
|
|
@ -74,7 +74,7 @@ define-command -hidden c-family-indent-on-closing-curly-brace %[
|
|||
|
||||
define-command -hidden c-family-insert-on-closing-curly-brace %[
|
||||
# add a semicolon after a closing brace if part of a class, union or struct definition
|
||||
try %[ execute-keys -itersel -draft hm<a-x>B<a-x><a-k>\A\h*(class|struct|union|enum)<ret> a\;<esc> ]
|
||||
try %[ execute-keys -itersel -draft hm<a-x>B<a-x><a-k>\A\h*(class|struct|union|enum)<ret> '<a-;>;i;<esc>' ]
|
||||
]
|
||||
|
||||
define-command -hidden c-family-insert-on-newline %[ evaluate-commands -itersel -draft %[
|
||||
|
|
|
@ -1117,7 +1117,7 @@ public:
|
|||
{
|
||||
for (auto& sel : selections)
|
||||
{
|
||||
if (sel.cursor() > sel.anchor() and sel.cursor().column > 0)
|
||||
if (sel.cursor() > sel.anchor() and sel.cursor() > BufferCoord{0, 0})
|
||||
sel.cursor() = context().buffer().char_prev(sel.cursor());
|
||||
}
|
||||
}
|
||||
|
@ -1362,11 +1362,9 @@ private:
|
|||
case InsertMode::Append:
|
||||
for (auto& sel : selections)
|
||||
{
|
||||
sel.set(sel.min(), sel.max());
|
||||
auto& cursor = sel.cursor();
|
||||
// special case for end of lines, append to current line instead
|
||||
if (cursor.column != buffer[cursor.line].length() - 1)
|
||||
cursor = buffer.char_next(cursor);
|
||||
sel.set(sel.min(), buffer.char_next(sel.max()));
|
||||
if (sel.cursor() == buffer.end_coord())
|
||||
buffer.insert(buffer.end_coord(), "\n");
|
||||
}
|
||||
break;
|
||||
case InsertMode::AppendAtLineEnd:
|
||||
|
@ -1434,7 +1432,7 @@ private:
|
|||
|
||||
ScopedEdition m_edition;
|
||||
InsertCompleter m_completer;
|
||||
bool m_restore_cursor;
|
||||
const bool m_restore_cursor;
|
||||
bool m_autoshowcompl;
|
||||
Timer m_idle_timer;
|
||||
bool m_in_end = false;
|
||||
|
|
|
@ -357,11 +357,7 @@ BufferCoord get_insert_pos(const Buffer& buffer, const Selection& sel,
|
|||
case InsertMode::InsertCursor:
|
||||
return sel.cursor();
|
||||
case InsertMode::Append:
|
||||
{
|
||||
// special case for end of lines, append to current line instead
|
||||
auto pos = sel.max();
|
||||
return buffer.byte_at(pos) == '\n' ? pos : buffer.char_next(pos);
|
||||
}
|
||||
return buffer.char_next(sel.max());
|
||||
case InsertMode::InsertAtLineBegin:
|
||||
return sel.min().line;
|
||||
case InsertMode::AppendAtLineEnd:
|
||||
|
|
|
@ -1 +1 @@
|
|||
afoo<esc>.
|
||||
ifoo<esc>.
|
||||
|
|
|
@ -1 +1 @@
|
|||
reg @ amawww
|
||||
reg @ imawww
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
|
||||
foofoo
|
||||
|
|
Loading…
Reference in New Issue
Block a user