From aa396f60c15a5605199604e599fc0c603b074a03 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Sat, 19 Oct 2024 15:41:03 +0900 Subject: [PATCH] README: update GitHub Issue templates and other documentation * update GitHub Issue templates * add note on "history_limit_length" when "line_limit_type=editor" * support "ble summary" to call "ble/widget/display-shell-version" safely (e.g. without being affected by "set -o posix"). * fix missing highlighting in "ble/widget/display-shell-version". --- .github/ISSUE_TEMPLATE/00_T1-bug_report.md | 23 +- .../ISSUE_TEMPLATE/00_T2-feature_request.md | 6 + .github/ISSUE_TEMPLATE/00_T3-help.md | 9 +- .github/ISSUE_TEMPLATE/00_T4-free_style.md | 6 + .github/ISSUE_TEMPLATE/01_T1-bug_report.md | 18 +- README-ja_JP.md | 7 + README.md | 7 + ble.pp | 38 +- blerc.template | 5 +- docs/CONTRIBUTING.md | 8 +- docs/ChangeLog.md | 13 +- note.txt | 328 +++++++++++++++++- src/edit.sh | 8 +- 13 files changed, 434 insertions(+), 42 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/00_T1-bug_report.md b/.github/ISSUE_TEMPLATE/00_T1-bug_report.md index de58b9bd..f5339da8 100644 --- a/.github/ISSUE_TEMPLATE/00_T1-bug_report.md +++ b/.github/ISSUE_TEMPLATE/00_T1-bug_report.md @@ -4,15 +4,22 @@ about: Create a report to fix problems --- -**ble version**: -**Bash version**: - +```console +$ ble summary - +``` + + +``` + diff --git a/.github/ISSUE_TEMPLATE/00_T3-help.md b/.github/ISSUE_TEMPLATE/00_T3-help.md index b00d0982..8087014d 100644 --- a/.github/ISSUE_TEMPLATE/00_T3-help.md +++ b/.github/ISSUE_TEMPLATE/00_T3-help.md @@ -4,4 +4,11 @@ about: Questions on usage --- - +```console +$ ble summary + + +``` + + diff --git a/.github/ISSUE_TEMPLATE/00_T4-free_style.md b/.github/ISSUE_TEMPLATE/00_T4-free_style.md index a6e0d829..8bc3f1fa 100644 --- a/.github/ISSUE_TEMPLATE/00_T4-free_style.md +++ b/.github/ISSUE_TEMPLATE/00_T4-free_style.md @@ -4,4 +4,10 @@ about: Miscellaneous discussion, etc. --- +```console +$ ble summary + + +``` + diff --git a/.github/ISSUE_TEMPLATE/01_T1-bug_report.md b/.github/ISSUE_TEMPLATE/01_T1-bug_report.md index 45a0f356..8a84984b 100644 --- a/.github/ISSUE_TEMPLATE/01_T1-bug_report.md +++ b/.github/ISSUE_TEMPLATE/01_T1-bug_report.md @@ -4,13 +4,19 @@ about: 問題報告ありがとうございます! どんなに些細なこと --- -**ble version**: -**Bash version**: - +```console +$ ble summary + + +``` + ないので御一考頂ければ幸いです。動画で問題を説明する際にはキーボードから何を + 入力したのかの説明も含めてください。動画だけではどの様な操作が行われた結果で + あるか知ることができません。 --> diff --git a/README-ja_JP.md b/README-ja_JP.md index 2713fa2a..958cdd8f 100644 --- a/README-ja_JP.md +++ b/README-ja_JP.md @@ -449,6 +449,13 @@ make INSDIR="$HOME/.local/share/blesh" install - キャッシュディレクトリ `~/.cache/blesh` が生成されていればそれを削除します。 - 一時ディレクトリ `/tmp/blesh` が生成されていればそれを削除します。これは `/tmp` の内容が自動的にクリアされないシステムで必要です。 +## 1.7 トラブルシューティング + +- [Performance](https://github.com/akinomyoga/ble.sh/wiki/Performance) (英語) + では `ble.sh` の動作速度の改善に関する情報について説明しています。 +- [Reportin Issues](https://github.com/akinomyoga/ble.sh/wiki/Reporting-Issues) + (英語) では問題報告をする前に確認しておくと良い情報を説明しています。 + # 2 基本設定 ここでは `~/.blerc` に記述する基本的な設定を幾つか紹介します。 diff --git a/README.md b/README.md index 9fd0f637..c6c5b2c9 100644 --- a/README.md +++ b/README.md @@ -490,6 +490,13 @@ Basically you can simply delete the installed directory and the settings that th - Remove the cache directory `~/.cache/blesh` if any. - Remove the temporary directory `/tmp/blesh` if any [ Only needed when your system does not automatically clear `/tmp` ]. +## 1.7 Troubleshooting + +- [Performance](https://github.com/akinomyoga/ble.sh/wiki/Performance) + describes hints for perfomance issue is described +- [Reportin Issues](https://github.com/akinomyoga/ble.sh/wiki/Reporting-Issues) + describes information that you may check before reporting an issue. + # 2 Basic settings Here, some of the settings for `~/.blerc` are picked up. diff --git a/ble.pp b/ble.pp index ab336a46..d9758c74 100644 --- a/ble.pp +++ b/ble.pp @@ -2474,8 +2474,15 @@ function ble/dispatch/.help { ' hook ... alias of blehook' \ ' sabbrev ... alias of ble-sabbrev' \ ' palette ... alias of ble-color-show' \ + '' \ + ' # Diagnostics' \ + ' summary ... Summarize the current shell setup' \ '' } +function ble/dispatch:summary { + ble/widget/display-shell-version +} + function ble/dispatch { if (($#==0)); then [[ $_ble_attached && ! $_ble_edit_exec_inside_userspace ]] @@ -2499,14 +2506,33 @@ function ble/dispatch { (version|--version) ble/util/print "ble.sh, version $BLE_VERSION (noarch)" ;; (check|--test) ble/base/sub:test "$@" ;; (*) - if ble/string#match "$cmd" '^[-a-zA-Z0-9]+$' && ble/is-function "ble-$cmd"; then - "ble-$cmd" "$@" - elif ble/is-function ble/bin/ble; then + if ble/string#match "$cmd" '^[-a-zA-Z0-9]+$'; then + if ble/is-function "ble/dispatch:$cmd"; then + "ble/dispatch:$cmd" "$@" + return "$?" + elif ble/is-function "ble-$cmd"; then + "ble-$cmd" "$@" + return "$?" + fi + fi + + if ble/is-function ble/bin/ble; then + # There seems to be an existing command "ble" for BLE (Bluetooth Low + # Energy) which has the following subcommands [1]: abort, begin, + # callback, characteristics, close, connect, descriptors, disable, + # disconnect, dread, dwrite, enable, equal, execute, expand, getrssi, + # info, mtu, pair, read, reconnect, scanner, services, shorten, start, + # stop, unpair, userdata, write. If we receive an unknown subcommand and + # an external command "ble" exists, we redirect the call to the external + # command "ble". + # + # [1] https://www.androwish.org/home/wiki?name=ble+command ble/bin/ble "$cmd" "$@" - else - ble/util/print "ble (ble.sh): unrecognized subcommand '$cmd'." >&2 - return 2 + return "$?" fi + + ble/util/print "ble (ble.sh): unrecognized subcommand '$cmd'." >&2 + return 2 esac } function ble { diff --git a/blerc.template b/blerc.template index 0bf5503f..ad9e66ff 100644 --- a/blerc.template +++ b/blerc.template @@ -365,7 +365,10 @@ ## characters exceeds the capacity. The value `truncate` means that the ## command line is truncated from its end to fit into the capacity. The value ## `editor` means that the widget `edit-and-execute` will be invoked to open an -## editor to edit the command line contents. +## editor to edit the command line contents. When the value `editor` is +## specified, `bleopt history_limit_length` is recommended to be less than or +## equal to `bleopt line_limit_length`. Otherwise, the text editor may be +## unexpectedly executed in navigating through the history. #bleopt line_limit_type=none diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index dd7817bc..ed8bdd6a 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -6,10 +6,10 @@ You can freely create an issue using the following links: -- Report and fixes for bugs and performance issues [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=bug_report.md) -- Questions on usage [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=feature_request.md) -- Feature request [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=help.md) -- Others (suggestions, projects, discussion, complaints, news, information or anything) [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=free_style.md) +- Report and fixes for bugs and performance issues [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=00_T1-bug_report.md) +- Questions on usage [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=00_T2-feature_request.md) +- Feature request [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=00_T3-help.md) +- Others (suggestions, projects, discussion, complaints, news, information or anything) [[Here]](https://github.com/akinomyoga/ble.sh/issues/new?template=00_T4-free_style.md) ### Pull requests diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index 148ff1e8..99efbdd8 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -66,8 +66,8 @@ - edit (`ble/widget/display-shell-version`): print shell options `#D2261` 70b89e5e ed5d451b - edit: enable `BLE_PIPESTATUS` and `PIPESTATUS` in `PROMPT_COMMAND` and prompts (requested by mattmc3) `#D2276` 27888830 - nsearch: support `action={load-{line,command},insert{,-line}}` (motivated by vaab) `#D2286` 32f290df -- complete: support completion for `execute-named-command` `#D2288` xxxxxxxx -- complete: support `ble-face menu_complete_{match,selected}` (requested by simonLeary42) `#D2291` xxxxxxxx +- complete: support completion for `execute-named-command` `#D2288` 4fee44e6 +- complete: support `ble-face menu_complete_{match,selected}` (requested by simonLeary42) `#D2291` 31f264ad ## Changes @@ -207,7 +207,7 @@ - histdb: support subcommands `#D2167` 4d7dd1ee - histdb: support `top`, `stats`, `calendar`, and `week` `#D2167` 4d7dd1ee - histdb: unify the color palette selection `#D2167` 4d7dd1ee - - histdb: fix the seasonal default palette names `#D2289` xxxxxxxx + - histdb: fix the seasonal default palette names `#D2289` 4fee44e6 - contrib/fzf-git: update to be consistent with the upstream (motivated by arnoldmashava) `#D2054` c78e5c9f - contrib/layer/pattern: add `{pattern}` layer `#D2074` 449d92ca - contrib/fzf-git: fix unsupported command modes (reported by dgudim) `#D2083` ba2b8865 @@ -224,9 +224,9 @@ - contrib/colorglass: color: import themes from `Gogh-Co/Gogh` (motivated by d4rkb4sh8) `#D2274` d2eb75b5 - contrib/integration/fzf-completion: suppress unexpected quoting by compgen in dynamic completions (reported by mcepl) `#D2284` 32f290df - contrib/integration/fzf-initialize: use `fzf --bash` when shell integration files are not found (motivated by louiss0) `#D2285` 32f290df - - integration/fzf-initialize: (reported by 3ximus) `#D2285` xxxxxxxx + - integration/fzf-initialize: (reported by 3ximus) `#D2285` a36d13ce - config: add `github499-append-to-last-modified` (motivated by vaab) `#D2286` 32f290df -- integration: add `skim` integration for completion (reported by cmm) `#D2287` xxxxxxxx +- integration: add `skim` integration for completion (reported by cmm) `#D2287` a36d13ce ## Documentation @@ -238,7 +238,8 @@ - docs(README): add sabbrev example for named directories `#D2115` a9a21a0e - docs(README): note `bleopt prompt_command_changes_layout=1` `#D2196` 208eaa9d - docs(README): move disclaimers to a later section `#D2250` ad6f58b7 -- README: use `[[ ! ${BLE_VERSION-} ]] || ble-attach` `#D2264` xxxxxxx +- README: use `[[ ! ${BLE_VERSION-} ]] || ble-attach` `#D2264` ed11901a +- github: update GitHub issue templates `#D2294` xxxxxxxx ## Test diff --git a/note.txt b/note.txt index ff15da21..56f398f8 100644 --- a/note.txt +++ b/note.txt @@ -1926,6 +1926,154 @@ bash_tips - make_command.sh の整理 (scan 分離, char_width 分離) - note.txt -> memo.txt +2024-12-09 + + * highlight: cd を bind -x 経由で実行するとコマンドキャッシュがクリアされないので + ./docker.sh などの着色がエラー着色のまま or 存在しないのに存在するかのよう + になってしまう。ディレクトリを記録して変更があればキャッシュをクリアするべき。 + +2024-12-06 + + * edit: more widgets in vi_nmap (requested by excited-bore) + https://github.com/akinomyoga/ble.sh/issues/534 + + menu-complete, menu-complete-backward: これは complete と一緒に対応する必要 + がある。 + + * カーソル位置をどの様に処理するのかが微妙だと思ったが、p や insert mode か + ら戻った時のカーソル移動やその行の最後の文字の右にカーソルをおけない事な + どを考えると、現在位置の右にある文字も既に入力された文字列の一部として取 + り扱うのが自然である。 + + vi-undo: これは undo と全く同じで良い。Bash のソースコードを見たら単に undo + の関数を呼び出しているだけであった。5.2 で新しく vi-undo が追加されたのは、 + Bash の中で存在していた synonym にちゃんと一対一対応する様に名前を付与した + という事なのだろう。或いは、一覧にリストされる様になったか。 + + * edit: url-quote-magic (requested by Bluey26): + https://github.com/akinomyoga/ble.sh/issues/533 + + magic-space 等に追加の処理を自分で登録できる枠組みを作るのが良い気がする。 + そして、提案された機能は contrib に実装例を追加するという形にする。 + + * README: シェルで実装する理由、ble.sh の目的 + + * Criticism にシェルで commandline editor を実装するべきではないという批判。 + これについても何回か何処かで返信した様な気がする。うーん。これは README + の中で書くよりかは wiki の中に書くべきだろうか? うーん。 + + 恐らくこのあたりだろうか。これは結局 performance に関係しての言及であって、 + 複雑なプログラムをシェルで書く事にういての議論ではない。 + + https://github.com/akinomyoga/ble.sh/issues/214#issuecomment-1193390781 + + * そもそも何故 ble.sh を現在の形に作ったのかという事を何処にも書いていない + 気がする。これは何処かに書いても良い気がする。その議論は以下に書かれてい + る。 + + https://github.com/akinomyoga/ble.sh/issues/422#issuecomment-1986840459 + + * wiki: Questions-for-bug-reports.md は Reporting-Issue.md に統合する + +2024-11-26 + + * read PS1: read -e の内部で PROMPT_COMMAND によって PS1 が書き換わる + https://github.com/akinomyoga/ble.sh/discussions/528#discussioncomment-11339978 + + * menu-style: 複数行 description + https://github.com/akinomyoga/ble.sh/discussions/532#discussioncomment-11372936 + + これは preview pane 付きの menu-style と同時なのではないか。 + + * nsearch: nop search が無限に stack する + https://github.com/akinomyoga/ble.sh/issues/531#issuecomment-2499092693 + + 同じ位置のゼロ幅一致は連続で発生しない様にするべきである + + * contrib/fzf-menu: util-linux >= 2.39 を requirements に追加する + https://github.com/akinomyoga/ble.sh/issues/530 + + * wiki: bleopt line_limit_type=editor + https://github.com/akinomyoga/ble.sh/issues/520#issuecomment-2423335161 + + history_limit_length > line_limit_length + + * wiki: Unresolved Issues を拾ってまとめる + + 既に閉じたものもそうだが、昔から開きっぱなしになっている issues の幾つかは + もう閉じてしまっても良いと思われる物や、解決・再現の見込みのないものがある。 + これらは Unresolved-Issues に移動して閉じることにする。 + + また、閉じた物でも Information Needed ラベルのついた物も同様に確認する。 + + * wiki: ble/function#advice の説明を何処かに記述する。他の関数についても記述する + ことにする。 + + Functions.md という名前の wiki ページでも作成することにする。 + + うーん。これはまた新しいファイルを作る事になる。stuck しているので取り敢え + ず分割してこれは後で記述する事にする。 + + * complete: contrib に completion-util.bash 等を導入してそれを使って progcomp + 設定の振る舞いを調整できる様にする。opts 経由でどのような調整を行うかを指定 + できる様にしたい。 + + - timeout=MSEC + - timeout-auto=MSEC + - disable-auto + - subshell + - term-leave + + 等、様々な調整を追加する。 + + * また実装したら wiki/{Performance.md,Reporting-Issue.md} の auto-complete + の項目でそれぞれ引用する。 + + * wiki/Reporting-Issues: keylog の使い方について記述する。syntax_debug や、 + leavar や、debug_xtrace など。 + + 物によっては CONTRIBUTING の方に記述するべきかもしれない。特に自分で何か実 + 装しながらチェックするべきもの (make scan など)。print-variables 等もこれに + 該当するのでは。 + + * wiki/Questions-for-bug-reports: Reporting Issues に統合する + + * wiki/Performance.md: より詳細な設定 with contrib + + * auto-complete: contrib: auto-complete/ TAB completion 用の timeout を設定 + する関数も用意して良いのでは。 + + * profiler, is-stdin-ready, conditional-sync, assign 等の関数について説明を + 用意する。下の Functions.md の項目にも注意する。 + + * completion setting に対して個別に set -x 及び profiling を有効にする機 + 能があっても良いのではないかという気がする。コマンドの実行結果 (入力の + COMP_* および出力の COMPREPLY, exit status, etc.) も記録して良いのでは。 + それをユーザーに提供してもらう。然し、これはまた一つの大きな課題になる。 + + うーん。その様に考えると無限に記述することが増えるので適当な所で議論を切 + り分ける必要がある。 + + * 指定した関数の時間を計測する関数? これは core-debug か + contrib/debug-utils 的な場所に関数を定義してそれを読んでもらう事にする。 + + * wiki: describe wiki page + https://github.com/akinomyoga/ble.sh/issues/531 + + empty=emulate-readline について記述する。 + + * wiki: Functions.md: 自動生成・抽出 + + 本当はソースコードの記述を自動的に集める関数を作りたい気もするが、うーん。 + 沢山ある関数を全て含めるのは現実的でないし、説明も日本語の物と英語の物があ + る。現状では取り敢えず別々に記述することにして、必要があれば指定した関数に + ついてだけ抽出する機能を実装する + + * reject: マニュアルに含める関数のコメントに含めるマークアップを定義する? + @export-doc など? と思ったがその様にしたとしてもどういう順番でマニュアル + に含めるのかという問題が生じる。そう思うと結局マニュアルの側でコメントを + 参照するのが現実的ではないか。 + 2024-10-19 * [保留] complete: menu-complete の背景色 @@ -2009,12 +2157,6 @@ bash_tips 2024-09-22 - * [保留] starship と併用した時に初期化時に余分に prompt が表示される? - https://www.reddit.com/r/linuxquestions/comments/1fm84u4/the_terminal_prompt_starts_a_bit_lower_than_it/?show=original - - うーん。初期プロンプトの再描画で複数行プロンプトの時に正しく処理できていな - い可能性? と思ったが別に問題は再現しない。 - * complete: bash-completion のコマンド名生成も WSL2 PATH に対して調整が必要では Ref #D2280 @@ -2027,11 +2169,47 @@ bash_tips 気がする。後 completions/complete で compgen -A command が呼び出されている。 なのでこれらの関数だけ上書きすれば良い? + * segment ベースのプロンプトの為の枠組み? + https://github.com/akinomyoga/ble.sh/discussions/503 + https://github.com/akinomyoga/ble.sh/discussions/282 + + airline と同様に縮んで来た時に長さを調整する機能? airline ではどの様に実行 + していたか確認する。基本的にはそれと同様に実行すれば良い。但し、その為には + 単純に自分の一つ左の要素を使って境界の文字を生成すれば良いという訳ではない。 + + 境界の種類についても幾つかから選択できる様にしたい。全体で一括で決めるので + はなくて個別に選べる様にする? + + segment 毎に関数を定義できる様にする。ユーザーが定義できる様にする。と思っ + たが、単に配列に prompt sequence を記述する様にすれば良いのではないか。境界 + についてもそれを指定する専用の prompt sequence を定義して、その中で変数に値 + を指定するなどすれば良いのではないか。 + + sbp や liquidprompt や powerline などの構造を参考にする。それらの既存の + segments を最小限の変更で再利用できる様にする? + 2024-09-13 * https://github.com/akinomyoga/ble.sh/discussions/500 bashrc で多重にロードしている時に警告を出すべきでは。 + 警告を出すにしてもどの様にして検出すれば良いのか。例えば BASH_SOURCE を見て + .bashrc からどの様に呼び出されているかを記録する (source ble.sh を実行して + いる行数も特定しておく)。その呼出パターンが複数種類ある場合に警告を発する? + + x 然し、例えばループの中で重複して呼び出している場合等には呼び出しパターン + は同じになるのでこの方法だと検出できない。 + + x また状況に応じて異なる経路で source ble.sh を実行するような設定になってい + る場合には、改めてユーザーが source ~/.bashrc 等をした場合に、初回と異な + る呼び出しのされ方をして、それに対して警告を発してしまう事になる。 + + 例えば ble.sh が source されてから PROMPT_COMMAND が実行される迄に次の + source ble.sh が実行されたら警告を発する様にする? コマンドの実行回数・行番 + 号については初期化時には小さな数になっている筈である。その情報も用いて最初 + のプロンプトよりも前に ble.sh が複数回呼び出されているという事は検出可能で + ある。 + 2024-09-02 * contra に ?5h のバグがあるかも。ちょっとした拍子に反転が戻っておかしな事に @@ -7522,6 +7700,144 @@ bash_tips Done (実装ログ) ------------------------------------------------------------------------------- +2024-11-28 + + * README: README 及び wiki によく行う説明をまとめる [#D2294] + + * auto-complete 関連のエラーに関して説明を何処かに書くべきである。 + CONTRIBUTING か何かに説明を書いてそれを読む様に指示する。 + + * done: 問題がこちらでも再現するとは限らないこと。再現することが大事ということ。 + * done: 問題解決のために協力がほしいということ。 + + 元々 template に書かれている内容についてもそちらに移動する? 取り敢えず最 + 低限の内容だけにして其処に記述する事にする。 + + * ok: fzf や skim の設定についての説明は何処かの issue comment を参照する + のが良い。何回かそういう説明をした気がする。 + + 取り敢えず記述だけはした。改めてリンク先の内容を見て記述漏れの内容や未 + だ書きたいことがないかを確認したら完了という事にする→これは良い気がす + る。 + + * done: また Performance からリンクを貼る: hang しているのは単におかしな + 状態になったからかもしれない。 + + * done: auto-complete についての説明の様に書かれているが後半の殆ど全ての + 部分は TAB completion にも当て嵌る事である。構成を調整する必要がある。 + →適当に書き加えた。TAB completion 専用の短い section を追加した。 + + * done: 常に ble/widget/display-shell-version の結果を載せる様に要求する? + 但し ble.sh をロードする事ができない、session を開始できない時に限って + Bash version と ble.sh version を記述する様にする。 + + * done: "line_limit_type=editor" の時には history_limit_length も一緒に調整 + するべきという事を wiki, blerc.template に追記する。 + + * done: 未解決のまま放置されることとなった巷の問題の一覧を wiki の中に移動する。 + + > 溜まってきた "保留" 的な項目については一旦 wiki の何処かにまとめてしまっ + > て忘れる事にする? 返事のない Issue や再現できない物についてずっと Issue + > を開いておくのだと際限なく open issue が増えていく事になるが、それらが + > いつか改めて情報を得て解決されるという事はない様な気がする。また、この + > note.txt の中にも噂だけで再現しない項目が色々ある。それらについては一つ + > の文書を用意してその中に記録しておくという事にすれば良い気がする。 + + 取り敢えず作ったが少ししか記述していない。うーん。また色々 Issues を漁る + のは大変である。取り敢えず Information Needed の issue は拾って良い気がす + るがこれも後にする。 + + * Performance issue に関連するページも作成すると良いかも。典型的な問題及び + 解決法について。 + + https://github.com/akinomyoga/ble.sh/discussions/525 + + 以下に書いてある様な内容についてまとめる。 + + done: https://github.com/akinomyoga/ble.sh/issues/457#issuecomment-2291920637 + done: https://twitter.com/akinomyoga/status/1633101778894958595 + + * done: auto-complete に関しては auto-complete で補完生成を turnoff する + 関数や、或いは background で候補生成を実行する様に変更する関数などを用 + 意しても良い。それを contrib に入れて於いて呼び出させるなど。或いは、そ + もそも core-complete.sh の中にある workaround についても、同様の処理は + 実装している筈なのでそのコードを使い回せる様にするべきではないか。 + + https://github.com/akinomyoga/ble.sh/issues/522#issuecomment-2425293437 + + ここにある設定を記述する? contrib に入れるとしたら何処に入れる? + complete-utils.bash 的な名前の設定? + + * 返信 https://www.reddit.com/r/bash/comments/1gkv8y1/modern_bash_setup/ + + Performance のページを用意する。それに対する pointer を提供する。 + + > (i can't even ctrl-c in there) + + Have you checked ble.sh's README for the vi editing mode? Please check + [the item of `C-c` in the linked + page](https://github.com/akinomyoga/ble.sh/wiki/Vi-%28Vim%29-editing-mode#normalinsert-mode-c-c-cancel--discard-line). + + と思ったがやはりこれは関係ない事の気がするし、いつの間にかに他の人が色々 + 別の話をしているので気にしない事にする。 + + * 返信 https://www.reddit.com/r/bash/comments/1gzn6gu/blesh_performance_tune_help/?show=original + + * done: profiler の使い方等についても記述するべきではないか。というか、そ + もそも performance を改善する為にできることはないかと質問しているのは、 + もしかしたら開発者視点での質問かもしれない。ble.sh のコードベースを修正 + する為に何ができるかなどの意味。その為に書けることも実はたくさんあるの + ではないか。 + + x resolved: ble/widget/display-shell-version が set -o posix で正しく動作しない (reported by devidw) + + ユーザーに出力結果の提供を要求する以上は set -o posix であっても動作する + 様にしなければならない。というか、そもそも 5.3 以上では set -o posix の状 + 態だと ble/widget/display-shell-version の関数自体呼び出すことができない。 + + だとすると C-x C-v で結果を出力するのを主要な方法にするか? 或いは (set +o + posix; ble/widget/display-shell-version) という形で呼び出してもらう事にす + るか。然し、それは複雑過ぎる。或いはこれもまた関数名を変更して + _ble_widget_display_shell_version 等にするべきか。しかしその様にはしたく + ない。というより ble status とかで表示できる様にするか、或いは ble + version の中に含めるか。"ble summary" というコマンドで出力できる様にする + 事にした。今後は "ble summary" の結果を出力してもらう事にする。 + + x fixed: ble/widget/display-shell-version | cat とした時に _ble_term_bold + だけ直接使われている為に出力の中に混入する。 + + * ok: 実は README 本体は何も更新していない? + + * C で書けだとかシェルで実装するのは云々みたいな批判に対して。これは現時 + 点で必要という気もしないので取り敢えず別項目にして後で気が向いたら対応 + する事にする。 + + * done: Performance 記事へのリンク。Limitation/Criticism に performance + を乗せる? 或いは最近頻出なのでもっと上の方に乗せるべきだろうか → うー + ん。丁度言及できそうな場所が余りない。Limitation という程 limitation で + もない気がするし、 performance が ble.sh が欠陥の一つとして他の本質的な + 問題と一緒に列挙されるのも嫌な気がする。一番下に troubleshooting の項目 + を乗せてみたがこれだと気づかないかもしれない。Basic settings の丁度上の + Uninstalling の下に挿入するのが良い気がしてきたので取り敢えずそうする事 + にする。 + +2024-11-07 + + * kitty で _command_offset のエラーが発生する (reported by ozmodeuz) [#D2293] + https://github.com/akinomyoga/ble.sh/issues/512#issuecomment-2392121827 + + これは kitty の側で修正されるべきである。 + + ? kitty が bash_completion を load していてしかし何らかの理由で失敗している + 可能性? 実際に g grep で検索してみると bash_completion_script なるものが + 見える。これが何なのか確認する。と思ったがこれは単に kitty が inject して + いる script のことをそう呼んでいるだけだった。bash-completion に一致する + 文字列はなかった。 + + これは kitty に PR を提出したらすぐに merge された。 + + →kitty はなかなか新しい version が release されないがこれで解決という事にする。 + 2024-10-20 * complete: macOS awk の "towc: multibyte conversion failure on: '...'"エラー (reported by devidw) [#D2292] diff --git a/src/edit.sh b/src/edit.sh index 23d5fc45..b5e7692a 100644 --- a/src/edit.sh +++ b/src/edit.sh @@ -4425,7 +4425,7 @@ function ble/widget/display-shell-version { # locale local q=\' local ret='(unset)' - local var line=${_ble_term_bold}locale$sgr0: + local var line=${bold}locale$sgr0: for var in _ble_bash_LANG "${!_ble_bash_LC_@}" LANG "${!LC_@}"; do case $var in (LC_ALL|LC_COLLATE) continue ;; @@ -4441,7 +4441,7 @@ function ble/widget/display-shell-version { # terminal ret='(unset)' [[ ${TERM+set} ]] && ble/string#quote-word "$TERM" quote-empty:sgrq="$sgr3":sgr0="$sgr0" - local i line="${_ble_term_bold}terminal$sgr0: ${sgr2}TERM$sgrV=$sgr0$ret" + local i line="${bold}terminal$sgr0: ${sgr2}TERM$sgrV=$sgr0$ret" line="$line ${sgr2}wcwidth$sgrV=$sgr0$bleopt_char_width_version-$bleopt_char_width_mode${bleopt_emoji_width:+/$bleopt_emoji_version-$bleopt_emoji_width+$bleopt_emoji_opts}" [[ ${MC_SID-} ]] && line="$line, ${sgrC}mc$sgr0 (${sgrV}MC_SID:$MC_SID$sgr0)" for i in "${!_ble_term_DA2R[@]}"; do @@ -4459,12 +4459,12 @@ function ble/widget/display-shell-version { { shopt -po; shopt; } >| "$tmpfile2" local diff awk_script='/^[-+].*[[:space:]]on$/ {print $1} /^[-+]set -o .*$/ {print substr($0,1,1) $3}' IFS=$' \t\n' ble/util/assign-words diff 'ble/bin/diff -bwu "$tmpfile1" "$tmpfile2" | ble/bin/awk "$awk_script"' - line="${_ble_term_bold}options$sgr0: ${diff[*]}" + line="${bold}options$sgr0: ${diff[*]}" _ble_local_tmpfile=$tmpfile2 ble/util/assign/rmtmp _ble_local_tmpfile=$tmpfile1 ble/util/assign/rmtmp else - line="${_ble_term_bold}options$sgr0: ${sgr2}SHELLOPTS$sgrV=$sgr0$SHELLOPTS" + line="${bold}options$sgr0: ${sgr2}SHELLOPTS$sgrV=$sgr0$SHELLOPTS" ((_ble_bash>=40100)) && line="$line, ${sgr2}BASHOPTS$sgrV=$sgr0$BASHOPTS" fi lines[iline++]=$line