mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibLine: Add internal function to erase consecutive spaces under cursor
This commit is contained in:
parent
7f2582fca9
commit
cb02d52ac9
Notes:
sideshowbarker
2024-07-17 03:03:44 +09:00
Author: https://github.com/ronak69 Commit: https://github.com/SerenityOS/serenity/commit/cb02d52ac9 Pull-request: https://github.com/SerenityOS/serenity/pull/22997 Reviewed-by: https://github.com/alimpfard
3 changed files with 19 additions and 0 deletions
|
@ -172,6 +172,7 @@ void Editor::set_default_keybinds()
|
||||||
// ^[^H: alt-backspace: backward delete word
|
// ^[^H: alt-backspace: backward delete word
|
||||||
register_key_input_callback(Key { '\b', Key::Alt }, EDITOR_INTERNAL_FUNCTION(erase_alnum_word_backwards));
|
register_key_input_callback(Key { '\b', Key::Alt }, EDITOR_INTERNAL_FUNCTION(erase_alnum_word_backwards));
|
||||||
register_key_input_callback(Key { 'd', Key::Alt }, EDITOR_INTERNAL_FUNCTION(erase_alnum_word_forwards));
|
register_key_input_callback(Key { 'd', Key::Alt }, EDITOR_INTERNAL_FUNCTION(erase_alnum_word_forwards));
|
||||||
|
register_key_input_callback(Key { '\\', Key::Alt }, EDITOR_INTERNAL_FUNCTION(erase_spaces));
|
||||||
register_key_input_callback(Key { 'c', Key::Alt }, EDITOR_INTERNAL_FUNCTION(capitalize_word));
|
register_key_input_callback(Key { 'c', Key::Alt }, EDITOR_INTERNAL_FUNCTION(capitalize_word));
|
||||||
register_key_input_callback(Key { 'l', Key::Alt }, EDITOR_INTERNAL_FUNCTION(lowercase_word));
|
register_key_input_callback(Key { 'l', Key::Alt }, EDITOR_INTERNAL_FUNCTION(lowercase_word));
|
||||||
register_key_input_callback(Key { 'u', Key::Alt }, EDITOR_INTERNAL_FUNCTION(uppercase_word));
|
register_key_input_callback(Key { 'u', Key::Alt }, EDITOR_INTERNAL_FUNCTION(uppercase_word));
|
||||||
|
|
|
@ -127,6 +127,7 @@ struct Configuration {
|
||||||
M(insert_last_erased) \
|
M(insert_last_erased) \
|
||||||
M(erase_alnum_word_backwards) \
|
M(erase_alnum_word_backwards) \
|
||||||
M(erase_alnum_word_forwards) \
|
M(erase_alnum_word_forwards) \
|
||||||
|
M(erase_spaces) \
|
||||||
M(capitalize_word) \
|
M(capitalize_word) \
|
||||||
M(lowercase_word) \
|
M(lowercase_word) \
|
||||||
M(uppercase_word) \
|
M(uppercase_word) \
|
||||||
|
|
|
@ -579,6 +579,23 @@ void Editor::erase_alnum_word_forwards()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Editor::erase_spaces()
|
||||||
|
{
|
||||||
|
while (m_cursor < m_buffer.size()) {
|
||||||
|
if (is_ascii_space(m_buffer[m_cursor]))
|
||||||
|
erase_character_forwards();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (m_cursor > 0) {
|
||||||
|
if (is_ascii_space(m_buffer[m_cursor - 1]))
|
||||||
|
erase_character_backwards();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Editor::case_change_word(Editor::CaseChangeOp change_op)
|
void Editor::case_change_word(Editor::CaseChangeOp change_op)
|
||||||
{
|
{
|
||||||
// A word here is contiguous alnums. `foo=bar baz` is three words.
|
// A word here is contiguous alnums. `foo=bar baz` is three words.
|
||||||
|
|
Loading…
Reference in a new issue