Files
dot/.local/share/blesh/contrib/config/github499-append-to-last-modified.bash
2026-02-14 12:43:31 -05:00

38 lines
1.1 KiB
Bash

# blesh/contrib/config/github499-append-to-last-modified.bash
# (C) 2024, Koichi Murase <myoga.murase@gmail.com>
#
# Example:
#
# # ~/.blerc
# ble-import config/github499-append-to-last-modified
# ble-bind -f 'M-insert' github499/append-to-last-modified
#
# References:
#
# https://github.com/akinomyoga/ble.sh/discussions/499
#
_ble_contrib_github499_last_modified_index=
function ble/contrib/config:github499/record-last-modified-index {
local reason=${4-}
[[ $reason == history ]] && return 0
local index
ble/history/get-index
_ble_contrib_github499_last_modified_index=$index
}
ble/array#push _ble_edit_dirty_observer ble/contrib/config:github499/record-last-modified-index
function ble/widget/github499/append-to-last-modified {
local ins=$_ble_edit_str
[[ $ins ]] || return 1
local index=$_ble_contrib_github499_last_modified_index
[[ $index ]] || ble/history/get-count -v index
ble-edit/history/goto "$index"
[[ $_ble_edit_str && $_ble_edit_str != *$'\n' ]] && ins=$'\n'$ins
local p=${#_ble_edit_str}
ble-edit/content/replace-limited "$p" "$p" "$ins"
((_ble_edit_ind=${#_ble_edit_str}))
return 0
}