sakura-editor / sakura

SAKURA Editor (Japanese text editor for MS Windows)
https://sakura-editor.github.io/
Other
1.23k stars 162 forks source link

矩形選択範囲をキーとした昇順・降順ソート用マクロ関数の追加希望 #1014

Open cugra opened 5 years ago

cugra commented 5 years ago

問題内容

V1ヘルプ http://sakura-editor.sourceforge.net/htmlhelp/HLP000212.html http://sakura-editor.sourceforge.net/htmlhelp/HLP000213.html

V2ヘルプ http://sakura-editor.sourceforge.net/htmlhelp2/HLP000212.html http://sakura-editor.sourceforge.net/htmlhelp2/HLP000213.html

上記オンラインヘルプに、

矩形選択中に昇順ソートを行うと、選択した文字列をキーにして、選択を含む行をソートできます。 ■マクロ構文 ・構文: SortAsc( ); ・記録: ○

矩形選択中に降順ソートを行うと、選択した文字列をキーにして、選択を含む行をソートできます。 ■マクロ構文 ・構文: SortDesc( ); ・記録: ○

とありますが、複数行の矩形選択中にソートという操作を キーマクロで記録して再生した場合、 通常選択時のソート動作となります。

再現頻度

100%

要望機能

ソート関数の第1,第2引数に開始位置と終了位置を指定して その範囲の文字をキーにソートを行う関数の追加を希望します。 開始位置と終了位置の指定方法はLinuxのcutコマンドイメージで 開始位置の指定は1から可能で第2引数を省略した場合は、 矩形選択範囲の最上部行の末尾を終了位置として仮定し 関数名末尾にBが付かない方は文字数の範囲でソートし、 関数名末尾にBが付く方は現在のコードページの バイト数の範囲でソートするイメージです。 SortAscSelectedBox(num1 [,num2]) SortDescSelectedBox(num1 [,num2]) SortAscSelectedBoxB(num1 [,num2]) SortDescSelectedBoxB(num1 [,num2])

この4つの関数はキーマクロの記録対象外のままでいいと思います。

問題のカテゴリ

環境情報

スクリーンショット

berryzplus commented 5 years ago

こんにちは。不具合報告ありがとうございます。

このissueって、最終的にどうしたいですか?

カテゴリの選択からすると以下を想定しとります。

ここが困ってる、ここをこうしたい、が具体的に書いてあると動きやすいです。

あと、バージョンのところが 2.0.5.0 になってるので、 最新版でどうなるかの検証をどなたかにお願いしたいです。

cugra commented 5 years ago

はじめまして。コメントありがとうございます。

最終的にドキュメント修正ではなくマクロ関数で矩形範囲位置ソートがしたいため、 「要望機能」をイシューに追加しました。

berryzplus commented 5 years ago

再現確認報告

再現せず、です。 ただし、報告された事象と関係ありそうな不具合を発見しました。

確認に使用したバージョン

サクラエディタ   v2.4.0.2118 32bit dev
(GitHash 951a0abdaee1a2b664f262cbd8bf4cb801375876)
(GitURL https://github.com/sakura-editor/sakura.git)

      Compile Info: V1916 WPR WIN601/I800/C000/N601
      Last Modified: 2019/8/12 05:31:43

正常動作したマクロ1

Alt+方向キーで選択モードに入り、選択拡張するパターン マクロ実行時点の選択位置から左に6回、上に4回カーソル移動する分の矩形を選択し、選択矩形をキーに行全体をソートします。

//キーボードマクロのファイル
Left_BoxSel(1); // (矩形選択)カーソル左移動
Left_BoxSel(1); // (矩形選択)カーソル左移動
Left_BoxSel(1); // (矩形選択)カーソル左移動
Left_BoxSel(1); // (矩形選択)カーソル左移動
Left_BoxSel(1); // (矩形選択)カーソル左移動
Left_BoxSel(1); // (矩形選択)カーソル左移動
Up_BoxSel(1);   // (矩形選択)カーソル上移動
Up_BoxSel(1);   // (矩形選択)カーソル上移動
Up_BoxSel(1);   // (矩形選択)カーソル上移動
Up_BoxSel(1);   // (矩形選択)カーソル上移動
SortAsc(0); // 選択行の昇順ソート

正常動作したマクロ2

Shift+F6で矩形選択モードに入り、方向キーによる移動で選択を拡張するパターン マクロ実行時点の選択位置から左に6回、上に4回カーソル移動する分の矩形を選択し、選択矩形をキーに行全体をソートします。

//キーボードマクロのファイル
BeginBoxSelect(0);  // 矩形範囲選択開始
Left(0);    // カーソル右移動
Left(0);    // カーソル右移動
Left(0);    // カーソル右移動
Left(0);    // カーソル右移動
Left(0);    // カーソル右移動
Left(0);    // カーソル右移動
Up(0);  // カーソル上移動
Up(0);  // カーソル上移動
Up(0);  // カーソル上移動
Up(0);  // カーソル上移動
SortAsc(0); // 選択行の昇順ソート

一時的な総括

最終的にドキュメント修正ではなくマクロ関数で矩形範囲位置ソートがしたいため、 「要望機能」をイシューに追加しました。

上記、こちらでの検証結果を参考に、任意の矩形範囲を選択するマクロが書けると思います。マクロで書けるということはスクリプトプラグインを書ける、ということです。

マウスドラッグがマクロ記録されない件については、見なかったことに・・・(マテ

cugra commented 5 years ago

キーボードマクロの記録方法のご教示ありがとうございました。 2.0.5.0でもAlt+マウスクリックはキーボードマクロが記録されず、 矩形範囲選択操作のキーボード操作からは、 キーボードマクロが記録されるのを確認しました。

この度はどうもありがとうございました。