V1.30β4No.06823
秀丸担当 さん 17/10/26 09:12
 

V1.30β4を公開しました。

以下のページからダウンロードできます。
http://hide.maruo.co.jp/software/hmfilerclassic.html


直接ダウンロードする場合はこちら

32bit版:
http://hide.maruo.co.jp/software/bin3/hmfilerclassic130b4_signed.exe

64bit版:
http://hide.maruo.co.jp/software/bin3/hmfilerclassic130b4_x64_signed.exe


改版履歴
・Windows 10 (Fall Creators Update)でファイル一覧背景のドラッグで複数選
択するとき、マウスカーソルが右下や右上に飛ぶ問題を回避する修正。
・[ツール]→[オプション]→[表示]の「圧縮フォルダを表示」がOFFのときでも
無駄な処理の改善。
・/xオプションはファイル名を指定するときはjs:などを付けなくてもいいよう
に修正。
・起動オプションに/aを追加してスクリプトのGetArgで取得できるように修正。
・起動オプションに/mを追加して設定に関わらず既に起動されている場合はアク
ティブ切り替えできるように修正。
・GetArgメソッド追加。
・ArgCountプロパティ追加。
・検索結果で削除した後に縮小版にするとサムネイルが表示されたままの問題修
正。


[ ]
RE:06823 V1.30β4No.06824
shishi さん 17/10/28 05:11
 
/a に問題は無いようですが何度か報告しているとおり、起動スクリプトで"次の分割
"は動作しません

[ ]
RE:06824 V1.30β4No.06825
秀丸担当 さん 17/10/30 09:47
 

β3では/xの指定で、/x "C:\folder\test.js"のように書いてしまうと秀丸ファ
イラーClassicのスクリプトではないと認識されてしまい、
/x "js:C:\folder\test.js" と書く必要があったので、それが話が食い違う原因
なのではないかと思ったのですが、そうではなかったでしょうか。
V1.30β4では、/x "C:\folder\test.js"でも大丈夫なようにしました。

こちらで試している限りでは、
Command('新規ウィンドウ');

Command('次の分割');
といったスクリプトは動作しています。

コマンドラインに
/x "js:Command('次の分割');"
と書いた場合と、
/x "js:C:\folder\test.js"
でスクリプトのファイルにCommand('次の分割');を書いた場合の違いは無いです。

1つ気になる点としては、「次の分割」だけでは、設定によって起動時のフォー
カスのありかが違うので、場合によっては右の分割と左の分割を交互に入れ替わ
るだけになったり、起動時に常に右にフォーカスがある状況では、常に左にフ
ォーカスが移るという動作になったりすると思います。

設定に関わらず、明示的にフォーカスを移すとしたら、簡単には、以下のように
するといいと思います。
Command("タブ1");
Command("次の分割");
または、もう少し複雑には、以下のようにするといいと思います。
if(GetTabBarCount()>=2){
  //分割している
  var x = GetTabCount(0);
  SetActiveTab(x); //右の分割の先頭のタブ
}else{
  //分割していない
}

[ ]
RE:06825 V1.30β4No.06826
shishi さん 17/10/30 12:28
 
"次の分割"コマンドの動作も設定によって変わるのですか…

ちなみに

> 場合によっては右の分割と左の分割を交互に入れ替わ
るだけになったり、起動時に常に右にフォーカスがある状況では、常に左にフ
ォーカスが移るという動作になったりすると思います。

こちらにはあてはまりません。左にフォーカスを当てたままスクリプト起動させ、左
のままになったり、右にフォーカスを当てたままスクリプト起動させて右にフォーカ
スがあるままという状態を確認しています。バグでない原因があるとすればその設定
になるのではと思います。
ちなみにスクリプトファイルに"Command('次の分割');"のみを書いたり、組み合わせ
等試していますが、やはり"Command('次の分割')"だけが動作しないという挙動です。

最後に記載いただいたスクリプトは動作しました。ありがとうございます。

[ ]
RE:06825 V1.30β4No.06827
shishi さん 17/10/30 13:15
 
起動中にツールバーなどから"次の分割"を起動させようとすると、直接ランチャにCo
mmandを書いた時のみ動作しますが、"次の分割"をファイルに書いて起動させようと
すると動作しませんね。

これも設定によるものでしょうか?

あとこれは"次の分割"とは別の問題でWindowsの制限かと思いますが、改行がCRLFで
ないと動作したりしなかったりしますね。

[ ]
RE:06827 V1.30β4No.06828
秀丸担当 さん 17/10/30 13:55
 

「次の分割」で設定によるというのは、複数起動時のアクティブのようなややこ
しい話ではなく、例えばキー割り当てされた「次の分割」を実行すればそうなる
というようなことになります。
「次の分割」を連続実行すれば左右交互にフォーカスが移り、起動時が右の分割
にフォーカスがあれば左にフォーカスが移るという、普通の動きになります。
実行して何も起きないのは、設定ではない別の原因があるのだと思います。

改行をどう解釈するかは、確かにWindowsのスクリプトエンジンの解釈によりま
す。
こちらで試してみた限りでは、改行=CR+LFでも、改行=LFでも、どちらでも動
作しました。
テキストファイルのエンコーディングはShift-JISかUnicode(UTF-16)になります。
もしかしたら、テキストエディタのほうでEUCでLFになっていたりすると、文字
列をうまく解釈できないことがあると思います。
Message('次の分割');
としてみるとわかると思います。

Command('未知のコマンドXXX');のように未知のコマンド名の場合、エラーメッ
セージは出ずに続行してしまっていました。
未知のコマンド名の場合はエラーで中断するようにしようと思います。

[ ]
RE:06828 V1.30β4No.06829
shishi さん 17/10/30 15:03
 
すべてアルファベットのみのファイルで改行をLFからCRLFに変えてみたら動いたファ
イルがあったのでそのように思いましたが、そうではありませんでしたか。

そして副作用として原因が判明しました。SJISにしたところ動作しました。"次の分
割"自体が非ASCIIで文字エンコーディングの指定がなく、エラーも起こらなかったの
で気づくのは難しいですね…ちなみにUTF16はLFとBFの指定はありますか?

[ ]
RE:06829 V1.30β4No.06830
秀丸担当 さん 17/10/30 15:29
 

ファイルのエンコーディングの問題ということで、原因がわかってよかったです。
Unicodeの場合は、UTF-16のLE(Little-Endian)で、BOMありになります。

[ ]
RE:06830 V1.30β4No.06831
shishi さん 17/10/30 15:53
 
ありがとうございます。

コマンドやスクリプト周り、どんどん機能拡充していかれることを楽しみにしていま
す!

[ ]