Skip to content

Commit

Permalink
edit: always adjust the terminal states with "bind -x"
Browse files Browse the repository at this point in the history
  • Loading branch information
akinomyoga committed Apr 3, 2023
1 parent 8640dc4 commit cdda7c4
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
21 changes: 15 additions & 6 deletions ble-core.sh
Expand Up @@ -1842,23 +1842,32 @@ function ble/term/rl-convert-meta/leave {

#---- terminal enter/leave ----------------------------------------------------

function ble/term/enter-for-widget {
ble/term/bracketed-paste-mode/enter
ble/term/cursor-state/.update "$_ble_term_cursor_internal"
ble/term/cursor-state/.update-hidden "$_ble_term_cursor_hidden_internal"
ble/util/buffer.flush >&2
}
function ble/term/leave-for-widget {
ble/term/bracketed-paste-mode/leave
ble/term/cursor-state/.update "$_ble_term_cursor_external"
ble/term/cursor-state/.update-hidden reveal
ble/util/buffer.flush >&2
}

_ble_term_state=external
function ble/term/enter {
[[ $_ble_term_state == internal ]] && return
ble/term/stty/enter
ble/term/bracketed-paste-mode/enter
ble/term/cursor-state/.update "$_ble_term_cursor_internal"
ble/term/cursor-state/.update-hidden "$_ble_term_cursor_hidden_internal"
ble/term/rl-convert-meta/enter
ble/term/enter-for-widget
_ble_term_state=internal
}
function ble/term/leave {
[[ $_ble_term_state == external ]] && return
ble/term/stty/leave
ble/term/bracketed-paste-mode/leave
ble/term/cursor-state/.update "$_ble_term_cursor_external"
ble/term/cursor-state/.update-hidden reveal
ble/term/rl-convert-meta/leave
ble/term/leave-for-widget
_ble_term_cursor_current=unknown # vim は復元してくれない
_ble_term_cursor_hidden_current=unknown
_ble_term_state=external
Expand Down
5 changes: 4 additions & 1 deletion ble-edit.sh
Expand Up @@ -7315,8 +7315,11 @@ function ble/widget/.EDIT_COMMAND {
local command=$1
local READLINE_LINE=$_ble_edit_str
local READLINE_POINT=$_ble_edit_ind
eval "$command" || return 1
ble/term/leave-for-widget
builtin eval -- "$command"; local ext=$?
ble/term/enter-for-widget
ble-edit/content/clear-arg
((ext==0)) || return 1

[[ $READLINE_LINE != "$_ble_edit_str" ]] &&
_ble_edit_str.reset-and-check-dirty "$READLINE_LINE"
Expand Down

0 comments on commit cdda7c4

Please sign in to comment.