半角#の後に、半角英数字の文字列を3個続けると、色が反映されない場合がある

  1. 不具合なのか、仕様なのか、環境が原因なのか、不明なので投稿します

    状況としては
    半角#の後に、半角英数字の文字列を3個続けると、色が反映されない場合がある

    事象は、その行のみの場合や、複数行での場合があり、条件は不明です
    私のざっとの試験で、半角英数字でのみ、発生するのを確認しました
    行頭に、半角スペースが存在する場合においても、発生を確認しました

    私の環境の
    C:\Users\<ユーザー名>\AppData\Roaming\Mery\Mery.his
    C:\Users\<ユーザー名>\AppData\Roaming\Mery\Mery.ini
    を削除したり
    Meryインストール版を、アンインストールと、インストールを試行しましたが、改善しませんでした

    ■環境
    エディション:Windows 11 Home
    バージョン:25H2
    OS ビルド:26200.7019
    エクスペリエンス:Windows 機能エクスペリエンス パック 1000.26100.265.0
    システムの種類:64 ビット オペレーティング システム、x64 ベース プロセッサ

    Mery: 3.8.1 (x64)
    Onigmo: 6.2.0
    C/Migemo: 1.3
    Tidy: 5.8.0
    Hunspell: 1.7.1
    uchardet: 0.0.8
    QuickJS: 0.11.0
    OS: Windows 11 (Version 25H2, OS Build 26200.7019, 64-bit Edition)

    導入しているマクロ:なし
    導入しているプラグイン:なし

    ■環境の設定と、実際の挙動

    文字に色の設定をする
    通常:標準。黒
    半角英字:カスタム、R0、G128、B255。薄青
    半角数字:カスタム、R0、G192、B0。緑
    半角記号:カスタム、R0、G0、U255。青

    編集モード:Text
    CR+LF
    UTF-8(BOM無し)

    Mery上で、下記の様に、文字列を入力する

    #ab
    #abc
    #abcd
    の場合
    1行目の文字列"#ab"は、想定通りの色になる
    2行目の文字列"#abc"は、想定外の色(黒)になる
    3行目は文字列"#abcd"は、想定通りの色になる

    #12
    #123
    #1234
    1行目の文字列"#12"は、想定通りの色になる
    2行目の文字列"#123"は、想定外の色(黒)になる
    3行目は文字列"#1234"は、想定通りの色になる

    #aaa
    #aaaaaa
    の場合は
    1行目の文字列"#aaa"は、想定外の色(黒)になる
    2行目の1文字目と2文字目の"#a"は、想定外の色(黒)になる
    2行目の3文字目以降の文字列"aaaaa"は、想定通りの色になる

    #
    #abc
    #abcde
    #abcdef
    の場合は
    1行目の文字列"#"は、想定通りの色になる
    2行目の1文字目と2文字目の"#b"は、想定外の色(黒)になる
    2行目の3文字目と4文字目の"bc"は、想定通りの色になる
    3行目の文字列"#abcde"は、想定通りの色になる
    4行目の文字列"#abcdef"は、想定外の色(黒)になる

     |  いかいそ  |  返信
  2. ご報告ありがとうございます。

    現象、確認しました。

    Ver 3.7.13 で HTML カラー コードをダブルクリックで編集できる機能を追加したのですが、その仕様の影響で、#fff#ffffff といった「# + 3 桁 or 6 桁」の文字列が HTML カラー コードとして認識されてしまっていることが原因のようです。

    カラー コード編集機能を使っていない場合は、こうした文字列を特別扱いする必要はないので、次のバージョンで改善しておきますね。

    さらに、[カラー コードを開く]をオンにしている場合でも、いただいたサンプルのように # で始まる文字列が続けて並んでいるケースだと、うまく構文解析できないことが分かりましたので、こちらも合わせて修正しておきます。

     |  Kuro  |  返信
スポンサーリンク