Skip to content

Commit

Permalink
edit ({kill,copy,delete}-region-or): receive widgets as arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Mar 21, 2019
1 parent 719092c commit bbbd155
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 42 deletions.
4 changes: 2 additions & 2 deletions keymap/emacs.rlfunc.txt
Expand Up @@ -4,7 +4,7 @@ alias-expand-line -
arrow-key-prefix -
backward-byte @nomarked backward-byte
backward-char @nomarked backward-char
backward-delete-char delete-region-or backward-char
backward-delete-char delete-region-or delete-backward-char
backward-kill-line kill-backward-line
backward-kill-word kill-backward-cword
backward-word @nomarked backward-cword
Expand Down Expand Up @@ -62,7 +62,7 @@ insert-comment -
insert-completions complete insert_all
insert-last-argument -
kill-line kill-forward-line
kill-region kill-region-or uword
kill-region kill-region-or kill-uword
kill-whole-line -
kill-word kill-forward-cword
magic-space magic-space
Expand Down
2 changes: 1 addition & 1 deletion keymap/emacs.sh
Expand Up @@ -144,7 +144,7 @@ function ble-decode/keymap:emacs/define {
ble-decode/keymap:safe/bind-complete

# charwise operations
ble-bind -f 'C-d' 'delete-region-or forward-char-or-exit'
ble-bind -f 'C-d' 'delete-region-or delete-forward-char-or-exit'

# history
ble-bind -f 'M-^' history-expand-line
Expand Down
4 changes: 2 additions & 2 deletions keymap/vi.sh
Expand Up @@ -7524,7 +7524,7 @@ function ble-decode/keymap:vi_imap/define {
ble-bind -f paste_begin 'vi_imap/bracketed-paste'

# charwise operations
ble-bind -f 'C-d' 'delete-region-or forward-char-or-exit'
ble-bind -f 'C-d' 'delete-region-or delete-forward-char-or-exit'
ble-bind -f 'C-?' 'vi_imap/delete-region-or vi_imap/delete-backward-indent-or delete-backward-char'
ble-bind -f 'DEL' 'vi_imap/delete-region-or vi_imap/delete-backward-indent-or delete-backward-char'
ble-bind -f 'C-h' 'vi_imap/delete-region-or vi_imap/delete-backward-indent-or delete-backward-char'
Expand Down Expand Up @@ -7601,7 +7601,7 @@ function ble-decode/keymap:vi_imap/define-meta-bindings {
ble-bind -f 'M-C-m' 'newline'
ble-bind -f 'M-RET' 'newline'
ble-bind -f 'M-SP' 'set-mark'
ble-bind -f 'M-w' 'copy-region-or uword'
ble-bind -f 'M-w' 'copy-region-or copy-uword'
ble-bind -f 'M-\' 'delete-horizontal-space'

ble-bind -f 'M-right' '@nomarked forward-sword'
Expand Down
4 changes: 2 additions & 2 deletions keymap/vi_imap.rlfunc.txt
Expand Up @@ -25,7 +25,7 @@ complete-username complete context=username
complete-variable complete context=variable
copy-backward-word copy-backward-sword
copy-forward-word copy-forward-sword
copy-region-as-kill copy-region-or uword
copy-region-as-kill copy-region-or copy-uword
dabbrev-expand dabbrev-expand
delete-char vi_imap/delete-region-or delete-forward-char
delete-char-or-list -
Expand Down Expand Up @@ -62,7 +62,7 @@ insert-comment -
insert-completions complete insert_all
insert-last-argument -
kill-line kill-forward-line
kill-region kill-region-or uword
kill-region kill-region-or kill-uword
kill-whole-line -
kill-word kill-forward-uword
magic-space magic-space
Expand Down
12 changes: 10 additions & 2 deletions memo.txt
Expand Up @@ -2179,12 +2179,15 @@ bash_tips

New features
- emacs: support widgets `forward-byte` and `backward-byte` `#D1017` b2951ef
- emacs: support arguments of word wise operations `#D1020` 8c46dce
- emacs: support widgets `{capitalize,downcase,upcase}-xword` `#D1019` 8c46dce

Changes
- edit: erase in page on `SIGWINCH` `#D1016` 7625ebe
- edit: the widgets `{kill,copy,delete}-region-or` now receives widgets as arguments `#D1021`

Fixes
- decode: workaround Poderosa that returns `DSR` instead of `CPR` in reply to `DSR(6)` `#D1018`
- decode: workaround Poderosa that returns `DSR` instead of `CPR` in reply to `DSR(6)` `#D1018` 8e22c17

2019-02-09 (#D0915...#D1015) 949e9a8...df4feaa

Expand Down Expand Up @@ -3130,7 +3133,10 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------

2019-03-21
2019-03-22

* edit: {kill,copy,delete}-region-or の引数に [#D1021]
{kill,copy,delete}- を付加して実行するのは分かりにくいのでやめる

* 2017-12-04 emacs: 引き数: 単語関連 [#D1020]

Expand All @@ -3147,6 +3153,8 @@ bash_tips
* emacs: rlfunc capitalize-word, downcase-word, upcase-word [#D1019]
対応した。一緒に単語関係の widget の実装を整理した。

2019-03-21

* decode: rosaterm で起動すると "no previous search" というメッセージが表示される [#D1018]
何か変な物を受信している?

Expand Down
57 changes: 24 additions & 33 deletions src/edit.sh
Expand Up @@ -2158,46 +2158,37 @@ function ble/widget/copy-region {
ble/widget/.copy-range "$_ble_edit_mark" "$_ble_edit_ind"
_ble_edit_mark_active=
}
## 関数 ble/widget/delete-region-or type
## 領域または引数に指定した単位を削除します。
## mark が active な場合には領域の削除を行います。
## それ以外の場合には第一引数に指定した単位の削除を実行します。
## @param[in] type
## mark が active でない場合に実行される削除の単位を指定します。
## 実際には ble-edit 関数 delete-type が呼ばれます。
## 関数 ble/widget/delete-region-or widget
## mark が active の時に領域を削除します。
## それ以外の時に編集関数 widget を実行します。
## @param[in] widget
function ble/widget/delete-region-or {
if [[ $_ble_edit_mark_active ]]; then
ble/widget/delete-region
else
"ble/widget/delete-$@"
"ble/widget/$@"
fi
}
## 関数 ble/widget/kill-region-or type
## 領域または引数に指定した単位を切り取ります。
## mark が active な場合には領域の切り取りを行います。
## それ以外の場合には第一引数に指定した単位の切り取りを実行します。
## @param[in] type
## mark が active でない場合に実行される切り取りの単位を指定します。
## 実際には ble-edit 関数 kill-type が呼ばれます。
## 関数 ble/widget/kill-region-or widget
## mark が active の時に領域を切り取ります。
## それ以外の時に編集関数 widget を実行します。
## @param[in] widget
function ble/widget/kill-region-or {
if [[ $_ble_edit_mark_active ]]; then
ble/widget/kill-region
else
"ble/widget/kill-$@"
"ble/widget/$@"
fi
}
## 関数 ble/widget/copy-region-or type
## 領域または引数に指定した単位を転写します。
## mark が active な場合には領域の転写を行います。
## それ以外の場合には第一引数に指定した単位の転写を実行します。
## @param[in] type
## mark が active でない場合に実行される転写の単位を指定します。
## 実際には ble-edit 関数 copy-type が呼ばれます。
## 関数 ble/widget/copy-region-or widget
## mark が active の時に領域を転写します。
## それ以外の時に編集関数 widget を実行します。
## @param[in] widget
function ble/widget/copy-region-or {
if [[ $_ble_edit_mark_active ]]; then
ble/widget/copy-region
else
"ble/widget/copy-$@"
"ble/widget/$@"
fi
}

Expand Down Expand Up @@ -6182,8 +6173,8 @@ function ble-decode/keymap:safe/bind-common {
ble-decode/keymap:safe/.bind 'NUL' 'set-mark'
ble-decode/keymap:safe/.bind 'M-SP' 'set-mark'
ble-decode/keymap:safe/.bind 'C-x C-x' 'exchange-point-and-mark'
ble-decode/keymap:safe/.bind 'C-w' 'kill-region-or uword'
ble-decode/keymap:safe/.bind 'M-w' 'copy-region-or uword'
ble-decode/keymap:safe/.bind 'C-w' 'kill-region-or kill-uword'
ble-decode/keymap:safe/.bind 'M-w' 'copy-region-or copy-uword'
ble-decode/keymap:safe/.bind 'C-y' 'yank'

# spaces
Expand All @@ -6198,12 +6189,12 @@ function ble-decode/keymap:safe/bind-common {
ble-decode/keymap:safe/.bind 'S-C-b' '@marked backward-char'
ble-decode/keymap:safe/.bind 'S-right' '@marked forward-char'
ble-decode/keymap:safe/.bind 'S-left' '@marked backward-char'
ble-decode/keymap:safe/.bind 'C-d' 'delete-region-or forward-char'
ble-decode/keymap:safe/.bind 'delete' 'delete-region-or forward-char'
ble-decode/keymap:safe/.bind 'C-?' 'delete-region-or backward-char'
ble-decode/keymap:safe/.bind 'DEL' 'delete-region-or backward-char'
ble-decode/keymap:safe/.bind 'C-h' 'delete-region-or backward-char'
ble-decode/keymap:safe/.bind 'BS' 'delete-region-or backward-char'
ble-decode/keymap:safe/.bind 'C-d' 'delete-region-or delete-forward-char'
ble-decode/keymap:safe/.bind 'delete' 'delete-region-or delete-forward-char'
ble-decode/keymap:safe/.bind 'C-?' 'delete-region-or delete-backward-char'
ble-decode/keymap:safe/.bind 'DEL' 'delete-region-or delete-backward-char'
ble-decode/keymap:safe/.bind 'C-h' 'delete-region-or delete-backward-char'
ble-decode/keymap:safe/.bind 'BS' 'delete-region-or delete-backward-char'
ble-decode/keymap:safe/.bind 'C-t' 'transpose-chars'

# wordwise operations
Expand Down Expand Up @@ -6325,7 +6316,7 @@ function ble-decode/keymap:safe/define {
ble-decode/keymap:safe/bind-history
ble-decode/keymap:safe/bind-complete

ble-bind -f 'C-d' 'delete-region-or forward-char-or-exit'
ble-bind -f 'C-d' 'delete-region-or delete-forward-char-or-exit'

ble-bind -f 'SP' magic-space
ble-bind -f 'M-^' history-expand-line
Expand Down

0 comments on commit bbbd155

Please sign in to comment.