2023年5月9日火曜日

ハイライトモードを改良

つかさのほえほえ日記: ハイライトモードの使い勝手がいまいちだったので、改良した。大きな変更点は以下。

  • 00_LISTFILE.txtがディレクトリにある場合はハイライトを自動で再現
  • ハイライトエントリ上で[SPACE]でハイライト解除

まずは以下を編集して取込。

-|K_highlightmode =

K_highlightmode = {
SPACE	,*if !%si"hlnum" %: %K"@SPACE" %: *stop
	*if %*js("PPx.result=PPx.EntryHighlight") %: *markentry -highlight:0 %R %: %K"@DOWN" %: *stop
	*markentry -highlight:%si"hlnum" %R %: %K"@DOWN"
\SPACE	,*if !%si"hlnum" %: %K"@\SPACE" %: *stop
	*if %*js("PPx.result=PPx.EntryHighlight") %: *markentry -highlight:0 %R %: %K"@UP" %: *stop
	*markentry -highlight:%si"hlnum" %R %: %K"@UP"
^S	, *makelistfile 00_LISTFILE.txt -basic -highlight %: *linemessage ハイライトを保存しました
ESC	, *linecust highlight,KC_main:LOADEVENT, %: *mapkey delete,K_highlightmode %: *linemessage HIGHLIGHT MODE END
0	, *linemessage ファイルマークに変更しました %: *string i,hlnum=0
1	, *linemessage ハイライト1に変更しました %: *string i,hlnum=1
2	, *linemessage ハイライト2に変更しました %: *string i,hlnum=2
3	, *linemessage ハイライト3に変更しました %: *string i,hlnum=3
4	, *linemessage ハイライト4に変更しました %: *string i,hlnum=4
5	, *linemessage ハイライト5に変更しました %: *string i,hlnum=5
6	, *linemessage ハイライト6に変更しました %: *string i,hlnum=6
7	, *linemessage ハイライト7に変更しました %: *string i,hlnum=7
}

以下のコマンドを実行。

*linecust highlight,KC_main:LOADEVENT,*ifmatch "o:e,a:d-","00_LISTFILE.txt" %%: *markentry -set:00_LISTFILE.txt %: *mapkey use,K_highlightmode %: *string i,hlnum=1 %: *linemessage HIGHLIGHT MODE [1-7]CHANGE COLOR ^[S]SAVE [ESC]QUIT

キーバインドは以下の通り。

  • [SPACE] カーソル位置のファイルをハイライト & [↓]
  • \[SPACE] カーソル位置のファイルをハイライト & [↓]
  • [数字] ハイライト色切り替え
  • ^[S] ハイライトを00_LISTFILE.txtに保存
  • [ESC] ハイライトモード終了