summaryrefslogtreecommitdiff
path: root/.local/src/blesh/keymap/emacs.sh
diff options
context:
space:
mode:
Diffstat (limited to '.local/src/blesh/keymap/emacs.sh')
-rw-r--r--.local/src/blesh/keymap/emacs.sh163
1 files changed, 0 insertions, 163 deletions
diff --git a/.local/src/blesh/keymap/emacs.sh b/.local/src/blesh/keymap/emacs.sh
deleted file mode 100644
index 430e213..0000000
--- a/.local/src/blesh/keymap/emacs.sh
+++ /dev/null
@@ -1,163 +0,0 @@
-# this script is a part of blesh (https://github.com/akinomyoga/ble.sh) under BSD-3-Clause license
-ble/is-function ble-edit/bind/load-editing-mode:emacs && return 0
-function ble-edit/bind/load-editing-mode:emacs { :; }
-ble/util/autoload "$_ble_base/keymap/vi.sh" \
- ble/widget/vi-rlfunc/{prev,end,next}-word \
- ble/widget/vi-command/{forward,backward}-{v,u}word \
- ble/widget/vi-command/forward-{v,u}word-end
-_ble_keymap_emacs_white_list=(
- self-insert
- batch-insert
- nop
- magic-space
- copy{,-forward,-backward}-{c,f,s,u}word
- copy-region{,-or}
- clear-screen
- command-help
- display-shell-version
- redraw-line
-)
-function ble/keymap:emacs/is-command-white {
- if [[ $1 == ble/widget/self-insert ]]; then
- return 0
- elif [[ $1 == ble/widget/* ]]; then
- local IFS=$_ble_term_IFS
- local cmd=${1#ble/widget/}; cmd=${cmd%%["$_ble_term_IFS"]*}
- [[ $cmd == emacs/* || " ${_ble_keymap_emacs_white_list[*]} " == *" $cmd "* ]] && return 0
- fi
- return 1
-}
-function ble/widget/emacs/__before_widget__ {
- if ! ble/keymap:emacs/is-command-white "$WIDGET"; then
- ble-edit/undo/add
- fi
-}
-function ble/widget/emacs/undo {
- local arg; ble-edit/content/get-arg 1
- ble-edit/undo/undo "$arg" || ble/widget/.bell 'no more older undo history'
-}
-function ble/widget/emacs/redo {
- local arg; ble-edit/content/get-arg 1
- ble-edit/undo/redo "$arg" || ble/widget/.bell 'no more recent undo history'
-}
-function ble/widget/emacs/revert {
- local arg; ble-edit/content/clear-arg
- ble-edit/undo/revert
-}
-_ble_keymap_emacs_modeline=::
-ble/array#push _ble_textarea_local_VARNAMES \
- _ble_keymap_emacs_modeline
-function ble/keymap:emacs/update-mode-name {
- local opt_multiline=; [[ $_ble_edit_str == *$'\n'* ]] && opt_multiline=1
- local footprint=$opt_multiline:$_ble_edit_arg:$_ble_edit_kbdmacro_record
- [[ $footprint == "$_ble_keymap_emacs_modeline" ]] && return 0
- _ble_keymap_emacs_modeline=$footprint
- local name=
- [[ $opt_multiline ]] && name=$'\e[1m-- MULTILINE --\e[m'
- local info=
- [[ $_ble_edit_arg ]] &&
- info=$info$' (arg: \e[1;34m'$_ble_edit_arg$'\e[m)'
- [[ $_ble_edit_kbdmacro_record ]] &&
- info=$info$' \e[1;31mREC\e[m'
- [[ ! $info && $opt_multiline ]] &&
- info=$' (\e[35mRET\e[m or \e[35mC-m\e[m: insert a newline, \e[35mC-j\e[m: run)'
- [[ $name ]] || info=${info#' '}
- name=$name$info
- ble/edit/info/default ansi "$name"
-}
-function ble/widget/emacs/__after_widget__ {
- ble/keymap:emacs/update-mode-name
-}
-function ble/widget/emacs/quoted-insert-char {
- _ble_edit_mark_active=
- _ble_decode_char__hook=ble/widget/emacs/quoted-insert-char.hook
- return 147
-}
-function ble/widget/emacs/quoted-insert-char.hook {
- ble/widget/quoted-insert-char.hook
- ble/keymap:emacs/update-mode-name
-}
-function ble/widget/emacs/quoted-insert {
- _ble_edit_mark_active=
- _ble_decode_key__hook=ble/widget/emacs/quoted-insert.hook
- return 147
-}
-function ble/widget/emacs/quoted-insert.hook {
- ble/widget/quoted-insert.hook
- ble/keymap:emacs/update-mode-name
-}
-function ble/widget/emacs/bracketed-paste {
- ble/widget/bracketed-paste
- _ble_edit_bracketed_paste_proc=ble/widget/emacs/bracketed-paste.proc
- return 147
-}
-function ble/widget/emacs/bracketed-paste.proc {
- ble/widget/bracketed-paste.proc "$@"
- ble/keymap:emacs/update-mode-name
-}
-function ble-decode/keymap:emacs/define {
- local ble_bind_nometa=
- ble-decode/keymap:safe/bind-common
- ble-decode/keymap:safe/bind-history
- ble-decode/keymap:safe/bind-complete
- ble-decode/keymap:safe/bind-arg
- ble-bind -f 'C-d' 'delete-region-or delete-forward-char-or-exit'
- ble-bind -f 'M-^' history-expand-line
- ble-bind -f 'SP' magic-space
- ble-bind -f __attach__ safe/__attach__
- ble-bind -f __before_widget__ emacs/__before_widget__
- ble-bind -f __after_widget__ emacs/__after_widget__
- ble-bind -f __line_limit__ __line_limit__
- ble-bind -f 'C-c' discard-line
- ble-bind -f 'C-j' accept-line
- ble-bind -f 'C-RET' accept-line
- ble-bind -f 'C-m' accept-single-line-or-newline
- ble-bind -f 'RET' accept-single-line-or-newline
- ble-bind -f 'C-o' accept-and-next
- ble-bind -f 'C-x C-e' edit-and-execute-command
- ble-bind -f 'M-#' insert-comment
- ble-bind -f 'M-C-e' shell-expand-line
- ble-bind -f 'M-&' tilde-expand
- ble-bind -f 'C-g' bell
- ble-bind -f 'C-x C-g' bell
- ble-bind -f 'C-M-g' bell
- ble-bind -f 'C-l' clear-screen
- ble-bind -f 'C-M-l' redraw-line
- ble-bind -f 'f1' command-help
- ble-bind -f 'C-x C-v' display-shell-version
- ble-bind -c 'C-z' fg
- ble-bind -c 'M-z' fg
- ble-bind -f 'C-\' bell
- ble-bind -f 'C-^' bell
- ble-bind -f 'C-_' emacs/undo
- ble-bind -f 'C-DEL' emacs/undo
- ble-bind -f 'C-BS' emacs/undo
- ble-bind -f 'C-/' emacs/undo
- ble-bind -f 'C-x u' emacs/undo
- ble-bind -f 'C-x C-u' emacs/undo
- ble-bind -f 'C-x U' emacs/redo
- ble-bind -f 'C-x C-S-u' emacs/redo
- ble-bind -f 'M-r' emacs/revert
- ble-bind -f 'C-q' emacs/quoted-insert
- ble-bind -f 'C-v' emacs/quoted-insert
- ble-bind -f paste_begin emacs/bracketed-paste
-}
-function ble-decode/keymap:emacs/initialize {
- local fname_keymap_cache=$_ble_base_cache/keymap.emacs
- if [[ -s $fname_keymap_cache &&
- $fname_keymap_cache -nt $_ble_base/keymap/emacs.sh &&
- $fname_keymap_cache -nt $_ble_base/lib/init-cmap.sh ]]; then
- source "$fname_keymap_cache" && return 0
- fi
- ble/edit/info/immediate-show text "ble.sh: updating cache/keymap.emacs..."
- {
- ble/decode/keymap#load isearch dump
- ble/decode/keymap#load nsearch dump
- ble/decode/keymap#load emacs dump
- } 3>| "$fname_keymap_cache"
- ble/edit/info/immediate-show text "ble.sh: updating cache/keymap.emacs... done"
-}
-ble-decode/keymap:emacs/initialize
-blehook/invoke keymap_load
-blehook/invoke keymap_emacs_load
-return 0