.hilightファイルの入出力でUnicode文字がNo.39539
fzok4234 さん 22/01/24 17:07
 
こんばんは。毎度お世話になっております。


さて、.hilight ファイルで Unicode 文字での強調表示を扱おうとしたところ、正常
に Unicode 文字が
扱えない不具合がありました。

まず、拡張子 .test という形式のファイルタイプ別の設定を予め作成しておきます。
そして、
強調表示させるファイル test.test を UTF-8 などの Unicode エンコードで以下の
内容で作成します。

0001  abcde
0002  あいうえお
0003  👩🏻‍👩🏿‍👧🏼&#
8205;👧🏾

1 行目が ASCII 、2 行目が Shift-JIS 、3 行目が Unicode 絵文字の範囲となって
います。

次に、この test.test ファイルの全行を強調表示させるための input.hilight 定義
ファイルを
UTF-16 LE 、CR+LF 、BOM有り で以下の内容で作成します。

37,abcde
37,あいうえお
37,👩🏻‍👩🏿‍👧🏼&#820
5;👧🏾

これは test.test ファイルの各行を「行の強調表示 1」で色付けさせるものとなっ
ています。

そして、test.test ファイルを開いた状態で「ファイルタイプ別の設定」の「デザイ
ン」の
「保存/読込」ボタンで input.hilight 定義ファイルの読み込みを実行します。

すると、test.test ファイルの 1 行目と 2 行目は正しく色付けされるが、3 行目の
絵文字の行は
色付けされません。また、「ファイルタイプ別の設定」の「強調表示」のページで絵
文字の項目が

????????

と文字化けした状態になってしまいました。

さらに、この状態で「ファイルタイプ別の設定」の「デザイン」の「保存/読込」ボ
タンで
現在の設定を output.hilight 定義ファイルとして保存したところ、以下の内容のよ
うに
絵文字部分が ???????? に化けた、しかも Unicode ではなく Shift-JIS 、CR+LF 形
式で保存されて
しまいました。

37,???????????????????
37,abcde
37,あいうえお


まとめると、

 1. .hilight ファイルでの入力では Unicode 文字が ???? に化けて正常に読み込
めない。
 2. .hilight ファイルへの出力では UTF-16 LE などの Unicode 形式で保存でき
ない。

ということになります。

いずれも、ユーザーが意図した強調表示が正常に行えない不具合といえます。もちろ
ん、Unicode 文字を
1 文字ずつ正規表現を用いて [\u{0123AB}] と書くことで問題を回避できるように見
えます。しかし、
この方法だと 1 文字を表現するのに最低でも 10 文字書かないといけないため、強
調表示の文字数制限が
3999 文字しかない状況下ではあっという間に領域が枯渇するため現実的ではありま
せん。


どうか問題の修正の方よろしくお願いします。



[ ]
RE:39539 .hilightファイルの入出力でUnicNo.39540
秀丸担当 さん 22/01/24 17:48
 
設定ダイアログ上の操作で強調表示は、Unicode文字は直接扱うことはできないです。
設定ダイアログ上読み書きも同様にできないです。
これはレジストリの形式などが関係して、拡張が難しいところになっています。

hilightファイル直接指定モードでは、V8.89でUTF-16ができるようになっています。
もともとhilightファイル直接指定モードを作ったのは、Unicode文字を直接書く方法
を作るためでした。
UTF-8はいずれの場合もできないはずだと思います。

しかし今試してみたら、できるのは16bitの文字だけで、サロゲートペアとなる文字
はできていませんでした。
これもできるように修正させていただきます。

[ ]
RE:39540 .hilightファイルの入出力でUnicNo.39542
fzok4234 さん 22/01/24 23:40
 
> 設定ダイアログ上の操作で強調表示は、Unicode文字は直接扱うことはできないです。
> 設定ダイアログ上読み書きも同様にできないです。
> これはレジストリの形式などが関係して、拡張が難しいところになっています。

設定ダイアログから、レジストリ上のグローバル設定ではなく直接指定モードの .hi
light ファイルを
直接編集できるようにする機能拡張はできないでしょうか ?

.hilight ファイルの「通常の強調表示」の項目の書式はマクロヘルプの loadhiligh
t文 のところに
ある程度記述されているのですが、「複数行の強調表示」の項目の書き方はどこにも
載っていないため、
一旦設定ダイアログからレジストリのグローバル設定上に雛形を作らなければならず、
後からその
雛形設定を削除する手間などがあっていささか面倒です。

このため、設定ダイアログで .hilight ファイルを直に編集できれば ( もちろん Un
icode 文字も使用可能で )
かなり負担が減るとともに記述ミスも大幅に無くなると思います。

あと、これとは別に「複数行の強調表示」の項目の書式の説明をヘルプにきちんと載
せた方がよいと思います。
というのは .hilight ファイルをマクロ等から自動生成したい場合に、肝心の書式が
分からないとどうすることも
できないからです。

どうかよろしくお願いします。



[ ]
RE:39542 .hilightファイルの入出力でUnicNo.39547
秀丸担当 さん 22/01/25 15:45
 
hilightファイルの直接編集は、もし何かするとしたら、編集しやすい形式にしたほ
うがいいかもしれません。
通常の強調表示のオプションは、以前は先頭の10進数数値だけでしたが、今は16進数
や、編集しやすいようにrとかwとか簡単なアルファベットの組み合わせでもできるよ
うにしています。
秀丸メールの振り分けのルールファイルなんかは日本語そのままなので、強調表示も
それっぽく「正規表現 強調2,[a-z]+」みたいに、日本語そのままで書けてもいいか
もしれません。

複数行の強調については、オプションの書き方を公開したとしても、今の形式だと手
で書けるものではないので、同じく目で見てわかる形式にできたらいいです。
そういうネタがあるということでご意見参考にします。

[ ]