【要望2件】更新行のマーク表示・UNICODEサロゲートペアのエディタ右端の表示

  1. OTBEditからMeryに乗り換え愛用しております。
    個人的にはEOF表示を"[EOF]"の他に、"←"で表示して欲しい、なんて欲が出てしまいますが、それはさて置き、要望2件を投稿させて頂きました。

    【環境】
    Windows10 Pro Ver.1709 OS-Build:16299.125

    【要望1】
    更新がされた行を、行番号の左側にマークを付け明示する機能を要望します。
    (イメージ)
     | 1|更新があった行
       2|更新がなかった行

    【要望2】
    UNICODEのサロゲートペア文字を表示し、これがエディタ部の右端にあると、先頭1コードポイント分が "・" として表示されるため、改善を要望します。

     |  fuka  |  返信
  2. ご愛用ありがとうございます。

    > 個人的にはEOF表示を"[EOF]"の他に、"←"で表示して欲しい
    私が学生時代に秀〇エディタを愛用していたので、その影響で [EOF] 表記になっています。確かに、最近の人が見ると [EOF] ってなんや!バグか?って思ってしまうかもしれませんね ^^; (はじめて秀〇エディタを使ったときに、まさにそう思った記憶が…)

    > 更新がされた行を、行番号の左側にマークを付け明示する機能を要望します。
    これは以前からご要望の多い機能ですが、私の技術力が足りないため、いまだに実現できていない機能です。開発は、あと一歩というところまでは来ているのですが…。

    > (イメージ)
    >  | 1|更新があった行
    >    2|更新がなかった行

    ↑左端に色のついた棒みたいなのが表示される感じですね、OTBEdit さんを試してみました。更新行 + ブックマーク行のパターンとかどうなるんだろうと思いましたが、なるほどw

    更新行は Sublime Text (標準だと対応してませんが) だと「●」が付きますし、秀〇エディタ、サク〇エディタとかだと太字になります。

    更新行 + ブックマーク行のときでも見やすい感じの表現方法のアイデア募集中なのでよろしくお願いします ^^

    > UNICODEのサロゲートペア文字を表示し、これがエディタ部の右端にあると、先頭1コードポイント分が "・" として表示されるため、改善を要望します。
    これはバグですね。
    ご報告ありがとうございます、次のバージョンでは修正しておきます。

     |  Kuro  |  返信
  3. ご返信ありがとうございます。
    ファイル終端記号の表示の種類は様々な考え方があって面白いですよね。
    私はEmEditorから入って、次がOTBEditだったので、終端記号が "←" で慣れてしまっているだけなのでお聞き流し下さい。

    >更新行 + ブックマーク行のときでも見やすい感じの表現方法のアイデア募集中
    左端マージンを広げ過ぎてエディター部を圧迫したくないし、色を重ねすぎるとユーザーに優しくないし、この辺りは結構ジレンマですよね。

    ブックマーク行については、「行数とエディター部を隔てる線」の太さと色で表現してはどうか、と思考しました。
    (イメージ)
     100│更新のない行
     101┃更新がされた行
       ↑この線の色はオプションで指定可能

    更新された行の表示は行番号の左端に "|" を表示することで、ブックマーク行と差別化できるかも知れません。
    (イメージ)
     100│更新のない行
    |101┃更新がされた行
    ↑この線の色はオプションで指定可能

    上記方法により、行番号の背景色のリソースを別の機能に割くことが出来ます。
    もし私のアイデアがMeryの肥やしになれば幸いです。

     |  fuka  |  返信
  4. こんばんは、ご返信ありがとうございます。

    > 私はEmEditorから入って、次がOTBEditだったので、終端記号が "←" で慣れてしまっているだけなのでお聞き流し下さい。
    あらら、E〇Editor って改行が "←" じゃなかったかしら?と思ったら [CR と LF を分けて表示する] 設定の時だけ CR が "←" で終端記号が "//" になるようですね。

    なるほどー。Mery でも、通常は終端記号 "←" にして、[CR と LF を分けて表示する] 設定の時は終端記号 "[EOF]" にする作戦、アリかもです。むしろ、そのほうが初めてテキストエディタを使う人にも優しい気がしました。

    > 左端マージンを広げ過ぎてエディター部を圧迫したくないし、色を重ねすぎるとユーザーに優しくないし、この辺りは結構ジレンマですよね。
    そうなんですよね。そもそもその機能を必要としていない人の邪魔にならないように、とか考えているとなかなか難しいです ^^;

    > 上記方法により、行番号の背景色のリソースを別の機能に割くことが出来ます。
    > もし私のアイデアがMeryの肥やしになれば幸いです。
    なるほど、区切り線ですか、一理ありますね。ただ、Mery では [行番号を表示しない] 設定のときのブックマークが「縦棒」なんですよね…。

    すごく逃げ腰の仕様ですが、下記のようなものを考えてみました。

    ▼変更行の強調表示
    デフォルトで ON。デフォルトだと「太字」になるだけ。
    (秀〇さんやサク〇さんやE〇さんもそうなってるでしょ。っていいわけができる)

    背景色の設定とかは通常通り可能。ただし、「縦棒化」は設定画面にそういうのを設けるスペースがないので「波線」にチェック入れたとき、みたいな隠し要素にする。

    ▼ブックマーク
    現状維持。縦棒化はしない。

    ▼変更行 + ブックマーク
    ・変更行 (太字) + ブックマーク (背景色) [デフォルト]
    → 普通に判別できるから大丈夫
    ・変更行 (縦棒) + ブックマーク (背景色)
    → これも普通に判別できるから大丈夫
    ・変更行 (背景色) + ブックマーク (背景色)
    → 色を混ぜて中間色にする (判別しづらくなるけど上書きよりはマシ)
    ・行番号を非表示 + 変更行 (縦棒) + ブックマーク (縦棒)
    → 色を混ぜて中間色にする (すごく判別しづらくなるけど我慢)

    ↑ ちょっと何言ってるのかわからない感じですが、察していただけると幸いです。

     |  Kuro  |  返信
  5. 投稿した後に、なんかダメかもって思いました。もうちょっと検討して出直してまいります ^^;

     |  Kuro  |  返信
  6. ご返信ありがとうございます。

    >機能を必要としていない人の邪魔にならないように
    そうなんですよね、利用想定が複雑になるほど機能の「慎ましさ」は大切になって来るんですよね。
    UI/UXをとても大切になさっているのが文章を読んでいて伝わってきて感動しています。

    >終端記号は "←" ... CR/LFを分けて表示時は "[EOF]"
    この仕様は整理されていて良いかも知れませんね。
    終端記号を選べるオプションがあると・・・とも思いましたが、マニアックすぎるかも知れませんね。

    >変更行とブックマークの表示
    >変更行 + ブックマーク
    よく考えたのですが、ユーザーが自由に設定したカスタムテーマの結果、生じる機能重複は「当然起こりうるもの」として扱った方が良いかも知れません。
    そうしないと、選択肢は以下の2つのいずれかに狭まってしまいます。

    ①絶対に変更できないオプションでを用意し、機能を差別化する
    ②重複するオプションは搭載しない

    カスタマイズし過ぎた時のために、『指定する部分』を "デフォルトに戻す" 機能を提供してフォローしてはいかがでしょうか。
    そうすれば、「ユーザーの自由」をサポートしつつ、機能を削らずに提供できると思考しました。

     |  fuka  |  返信
  7. ご返信ありがとうございます。

    > UI/UXをとても大切になさっているのが文章を読んでいて伝わってきて感動しています。
    ありがとうございます。シンプルで分かりやすい UI を目指していますので、そう言っていただけると嬉しいです。

    > 終端記号を選べるオプションがあると・・・とも思いましたが、マニアックすぎるかも知れませんね。
    そうですね、多機能な秀○さんやE○さんでもそこまでのオプションはなさそうですし…

    試しに終端を「←」にしてみたところ、そんなに違和感もないですし、すっきりしてイイ感じです。

    > そうしないと、選択肢は以下の2つのいずれかに狭まってしまいます。
    おっしゃる通りです。
    Mery はあえてそうしている部分もあり、ご指摘の②のパターンを突き進んでますね。

    カスタマイズ性を高め、重複機能を盛り込んでいったエディタは秀○さんやE○さんなどがありますが、多機能化という方向で戦っても勝ち目はないですから… ^^;

    でも、「変更行 + ブックマーク」はお手上げですね。ユーザさんがカスタマイズした結果、見づらくなっちゃったパターンは諦めようと思います。

    > 『指定する部分』を "デフォルトに戻す" 機能
    そうですね、そうしておけば見づらくなっちゃった場合でもすぐに元に戻せますね。あ、単純に [テーマ] を選択しなおすだけでもデフォルトに戻りますね。

    とりあえず今の仕様で実装してみて、ベータ版でみなさんの反応をうかがおうと思います。変更行の強調は、デフォルトでは「太字」のみ。背景色・縦棒化 (色) はユーザさん側で設定してねということで。

    (標準搭載の 19 個のテーマと、ブログに掲載している 101 個のテーマそれぞれに縦棒の色を配色するモチベーションがないっていう理由が大きいですがw)

     |  Kuro  |  返信
  8. ご返信ありがとうございます。
    諦めたくないので、深く考えているので、もう少し時間を下さい。
    ちゃんと私も協力と呼べるような結論に達したいです。
    が、うーん、奥深いです笑

     |  fuka  |  返信
  9. > 諦めたくないので、深く考えているので、もう少し時間を下さい。

    ご協力ありがとうございます ^^
    とりあえず、現在テストで作ってみた Mery の仕様と、他のテキストエディタの仕様を画像にしてみました。

    https://www.haijin-boys.com/wiki/images/f/fd/update-line.png

    (Atom、Brackets、VS Code、Sublime Text、Text Mate などはそもそも変更行の強調表示に対応していなかったので掲載していません)

    Mery (仮仕様)、OT〇Edit、サク〇エディタ、秀〇エディタ、E〇Editor で、画像の上半分は [行番号を表示]、下半分が [行番号を非表示] のパターンです。

    13 行目:変更行
    15 行目:ブックマーク行
    17 行目:変更行 + ブックマーク行

    こうしてみると、どのエディタも妥協されている感じなので、新しく見やすい仕様を考えるのは至難の業かも。Mery みたいに中間色にしてあげるだけでも良心的なのかも…w

     |  Kuro  |  返信
  10. ご返信ありがとうございます。
    また、比較画像一覧もご利用いただき恐縮です。

    >現在テストで作ってみた Mery の仕様と、他のテキストエディタの仕様を画像にしてみました。
    やはり、更新行とブックマークの共存=ウインドウ左端部分のUIの共有なんですよね。
    バーだと見づらい、被せるといずれかの機能が非表示になる、かと言ってエディター部を圧迫するような仕様で妥協したくない。
    こうして考えると確かに「中間色」は最適解に思えました。

    しかし、中間色とは「ユーザー側で何とかできない」だけに、以下が課題になります。
    ①ブックマーク・変更行が近似色(同一色の場合は意図的と判断できる)
    ②行番号背景色と同一色か近似色

    上記2点に対する案としては「中間色の他にユーザーが個別に色指定できる」になります。

    ただ、中間色表示とはユーザーの好み、つまり共通オプション範疇とも言えます。
    しかし、UIと言うより色彩に関わるもの、ならばテーマの範疇とも言えます。
    個人的に、一体どこに「中間色表示」のオプションを置くべきか、少し気になってしまいました。

     |  fuka  |  返信
  11. > また、比較画像一覧もご利用いただき恐縮です。
    ご確認いただきありがとうございます。

    > バーだと見づらい、被せるといずれかの機能が非表示になる、かと言ってエディター部を圧迫するような仕様で妥協したくない。
    そうなんですよね。左端の余白を広げて、ブックマークの記号を表示する領域を設ける、というのも考えられますが、ブックマークってそんなに多用される機能じゃない気もしますし。

    > しかし、中間色とは「ユーザー側で何とかできない」だけに、以下が課題になります。
    > ①ブックマーク・変更行が近似色(同一色の場合は意図的と判断できる)
    > ②行番号背景色と同一色か近似色
    おっしゃる通りです。

    表現上わかりやすくするために「中間色」といいましたが、実際はマーカー機能などで使用している「乗算色」なので、①のパターンの場合の近似色は重なり合ってより濃い色になりますので、判別可能となります。(といっても中間色よりはマシっていうぐらいですが…)

    ②のパターンが難しいところでして、乗算色を使えば行番号背景色に色を重ねることもできるのですが、そうなると「行番号背景色 + ブックマーク背景色 + 変更行背景色」のパターンなんて、もはや判別不可能でしょうし…。

    そこで考えた仕様が下記の通りです。

    1. 行番号背景色
    2. ブックマーク背景色
    3. 変更行背景色

    ↑ これを 1, 2, 3 の順に上書きで色付けします。で、1 に対しては色を混ぜません。したがって、1 + 2 の場合は 2、1 + 3 の場合は 3 の色を使います。

    2 と 3 が重なったときのみ、乗算色となります。なお、変更行を縦線で表示する場合 (比較表の Mery の右図) は、上記の処理を行いません。

    ↑ わかりづらいですよね… ^^;

    > 個人的に、一体どこに「中間色表示」のオプションを置くべきか、少し気になってしまいました。

    中間色表示は UI デザインの一つということで強制にしようと思っていますが、ちょっと文字だけでは仕様を説明しづらいので、次のベータ版で実際の動作をご確認いただければと思います。

     |  Kuro  |  返信
  12. 追伸:その後、やはり気になるので、もうちょっと考えてみます ^^;

     |  Kuro  |  返信
  13. >比較画像一覧もご利用いただき恐縮です。
    失礼しました「比較画像一覧もご用意いただき恐縮です。」でした。

    >ブックマークってそんなに多用される機能じゃない
    機能有効と共に専用領域を描写すると、他の機能たちが住む領域が狭くなる、でも不要と言うわけじゃない。
    実は機能を住まわせる空間って大切なんですよね。

    >1. 行番号背景色
    >2. ブックマーク背景色
    >3. 変更行背景色
    >1, 2, 3 の順に上書きで色付けし...1 に対しては色を混ぜません。
    >2 と 3 が重なったときのみ、乗算色となります。
    私もこの設計に賛成です。
    近似値の場合は、RGBをHSVに変換し明度で差別化しては・・・と思いましたが、複雑すぎるかも知れませんね笑

    >変更行を縦線で表示する場合 (比較表の Mery の右図) は、上記の処理を行いません。
    ここは悩み所ですよね。
    バーになると判別しづらいですが、見た目の形状はしっかり差別化できる。
    でも、同一色の場合だけイレギュラーを想定すれば良いので、単純とは言えるかも知れません。

    >中間色表示は UI デザインの一つということで強制にしようと思っていますが...
    >次のベータ版で実際の動作をご確認いただければと思います。
    多くの方々から意見が集まれば、もっと良いアイデアが浮かぶかも知れませんね。
    私も僭越ながら確認させて頂きます。

     |  fuka  |  返信
  14. 分岐が増えちゃいますけど
    行番号表示時
      変更行→行番号の前景色変更
      ブックマーク→現行通り行番号の背景色変更
      変更行+ブックマーク→前景色と背景色がかぶらなければ認知可能
    行番号非表示時
      変更行→左余白に * とか | とかの(任意?)記号表示
      ブックマーク→記号の表示位置の背景色変更
      変更行+ブックマーク→記号と背景色で認知可能
    でいかがでしょうか。

     |  通りすがり  |  返信
  15. みなさん、ご意見ありがとうございます。
    参考にさせていただきます。

    …とかいいつつ、ちょっと、変更行の強調表示の機能自体、実装が怪しくなってまいりました。

    エディタエンジンの仕様上、どうしても超えられない壁があって、もしかすると機能自体ボツになるかもしれません… (ノД`)・゜・。

     |  Kuro  |  返信
  16. 具体的には、

    正規表現置換は、内部的に行をまたぐので全部変更行になっちゃう。とか、[選択範囲の変換] は、選択範囲をまとめて Windows API に投げてるだけなので、変更なくても全部変更行になっちゃう。とか。操作の組み合わせによっては Undo、Redo でズレちゃうとか。

    そういう残念な仕様に目をつむって実装するか、雑な仕様は排除!ということで実装しないか、悩んでます。

     |  Kuro  |  返信
  17. お世話様です、現在の状況についての書き込みを拝見しました。
    変更行は必ずしも必要ないとも解釈できますし、仕様上の理由で実装なしでも良いと思います。
    そうなると「変更の自動保存」機能が欲しいな、と個人的に思いましたが、これは別のディスカッションですね。
    設計って難しいですよね、今後も応援しますよ!

     |  fuka  |  返信
  18. ご返信ありがとうございます。

    > 変更行は必ずしも必要ないとも解釈できますし、仕様上の理由で実装なしでも良いと思います。
    ありがとうございます。そう言っていただけると気が楽になります ^^

    > そうなると「変更の自動保存」機能が欲しいな、と個人的に思いましたが、これは別のディスカッションですね。
    自動保存機能は別のディスカッションのほうで盛り上がってますね。皆さんのご意見を参考に、次のバージョンでは実装予定となっています。

    > 設計って難しいですよね、今後も応援しますよ!
    ありがとうございます。変更行の件は非常に時間がかかってますし、このままボツにするのは惜しいので、もうちょっと粘ってみます!

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