Twitterに投稿されていたアレ!

  1. 「テキストカーソルインジケーター」「コードの折りたたみ」両方素晴らしいですね~。

    エディターから資料などに目を移して戻ってきたときによく見失うので(目と記憶力の衰え)インジケーターに対応して頂けると嬉しいです。
    任意のキー(CtrlとかShiftとか)押したときだけ作動、だと最高ですがMery側で制御するのは難しいでしょうか?

    折りたたみは、自分が書くときも人が書いたもの(サンプルにあった更新履歴など)を読むときも共に便利だと思います。
    オプションONで多少動作が重くなっても私はONを選びますよ~

     |  アイスクライマー  |  返信
  2. コードの折りたたみ、縦の可読性を向上してくれるので確かに重宝しますよね。
    私もコーディングのときによく使います。(Sublime Text なキーマップが好きなので、Ctrl+Shift+[/] で折りたたみ/展開で使ってます)

    関連してといってはなんですが、縦の可読性を向上する目的として私がよく使っているものとして、ご紹介がてら要望を…
    IntelliJ や Eclipse で使えるような、シンボル(クラス変数やメソッド宣言等)間のカーソル移動のショートカットです。

    IntelliJ ではデフォルトで Alt+Down/Up でシンボル間のカーソル移動をするのですが、これがもう便利で便利で。

    Mery での搭載イメージとしては、アウトラインプラグインに表示されている項目間のカーソル移動を、ショートカットで出来るイメージですね。

    例えば Markdown な文書を書いていると

    # header 1
    hoge
    
    ## header 1-2
    fuga
    
    # header 2
    piyo

    みたいなことを書きますと、アウトラインプラグイン上には

    header 1
    └header 1-2
    header 2

    といった項目が表示されます。

    これらの項目を Alt+Down/Up でカーソル移動ができるイメージです。

    プラグイン側の動作をエディタ部にフォーカスがある状態で呼び出すような感じになるので、難しいかもしれませんが…😅

     |  yuko  |  返信
  3. コメントありがとうございます。

    >> アイスクライマー さん

    > 「テキストカーソルインジケーター」「コードの折りたたみ」両方素晴らしいですね~。

    いいえ~、技術的に興味があったので実験して遊んでいただけなのです ^^;

    > エディターから資料などに目を移して戻ってきたときによく見失うので(目と記憶力の衰え)インジケーターに対応して頂けると嬉しいです。

    テキストカーソルインジケーターは Windows 10 20H1 から搭載された新機能らしいですが、まさにそういった用途に適していると思います。

    > 任意のキー(CtrlとかShiftとか)押したときだけ作動、だと最高ですがMery側で制御するのは難しいでしょうか?

    そうですねぇ。実験してみた感じですと、どうもそれ以前の問題のようで…

    Windows 10 に搭載されて間もない機能ということもあってか、結構不安定っていう情報が多いですね。

    インジケーターが追従してこなくなったり表示されなくなったり、アプリによってはクラッシュしたりすることもあるようで、安定性としては実用にはまだ早いかなといった印象です。

    ちなみに Mery の開発環境 Delphi なんて、テキストカーソルインジケーターをオンにしているだけで IDE ごと強制終了してしまいます。

    他にも Google Chrome は一応、部分的にテキストカーソルインジケーターに対応しているようですが、入力欄にカーソルを置いた状態でウィンドウを移動させるとインジケーターだけ置いてけぼりになったり…。

    こういった問題に目をつぶれば、一応使えなくはないと思うので、やるとしたら隠し機能でこっそり搭載とかになると思います。(オン・オフの柔軟な切り替えとかはたぶん無理~)

    >> yuko さん

    > コードの折りたたみ、縦の可読性を向上してくれるので確かに重宝しますよね。

    仕事で使う eclipse や Mery を開発している Delphi なんかにも当然のように付いている折りたたみ機能ですが、実は、私は一度もその機能を使ったことがなかったのです。

    暇だったので余興に作って遊んでみていたのですが、うーん、これ何に使うん?といった印象で… ^^;

    > これらの項目を Alt+Down/Up でカーソル移動ができるイメージです。

    なるほど~、って折りたたみ関係なくなってるような気もしますが、確かにアウトラインプラグインのノード間の移動を、エディター側で Alt + Up / Down でエディタ上でカーソル移動できると便利かもですね。

    > プラグイン側の動作をエディタ部にフォーカスがある状態で呼び出すような感じになるので、難しいかもしれませんが…😅

    そうですね。一応、エディター側にフォーカスがある場合でもプラグイン側からキー操作の横取りはできたと思うので、固定キーで良ければ実現できるかもしれません。

    キー割り当てのカスタマイズが必要となると本体側にアウトラインプラグインの機能をまるごと取り込まないといけないですね。

    でも、アウトラインを本体側に取り込んで折りたたみ機能を実装して本格的にコードエディターっぽい機能を増やしていくと Mery なんかより VS Code や Atom、Brackets とか使った方が断然快適なので、そっち系に進化させていくのはちょっと違うような気もするんですよね。

    悩ましいところです😅

     |  Kuro  |  返信
  4. Kuro さん

    > ちなみに Mery の開発環境 Delphi なんて、テキストカーソルインジケーターをオンにしているだけで IDE ごと強制終了してしまいます。

    不覚にも、ちょっと笑ってしまいましたw
    私は一瞬使ってすぐ OFF ってしまいましたが、そんなに相性問題出る機能だったんですねぇ、あれ。

    > なるほど~、って折りたたみ関係なくなってるような気もしますが、確かにアウトラインプラグインのノード間の移動を、エディター側で Alt + Up / Down でエディタ上でカーソル移動できると便利かもですね。

    折りたたみ機能とはほぼ関係ないんですが、私が Eclipse とかで使うときはそのシンボル間移動の機能と折りたたみ機能、同じ目的で使うことが多いんですよね。

    仕事柄、スパゲッティなコードを触ることが多くて、そうなると1メソッドの長さがン千行というのもザラなわけですが、「いや、今このメソッドを見たいんじゃないんだ…この1つ下のメソッドを見たいんだ…」と思ったときに、そのメソッドをごそっと折りたたんで1つ下のコードにすぐ辿り着くか、この Alt+Up/Down の移動かを使うんです。

    私の場合、Alt+Up/Down の機能が搭載されているエディタであれば、こちらの方が使用頻度が高めです。

    > でも、アウトラインを本体側に取り込んで折りたたみ機能を実装して本格的にコードエディターっぽい機能を増やしていくと Mery なんかより VS Code や Atom、Brackets とか使った方が断然快適なので、そっち系に進化させていくのはちょっと違うような気もするんですよね。

    そうなんですよね。
    私の Mery の使い方でも、ログの編集や文章の下書きや、Eclipse で微妙にめんどくさい一括編集なんかを Mery と行き来しながらやったり。
    イメージとしてはメモ帳以上 IDE (や VSCode のようなコーディング特化のエディタ) 未満の部分で使うことが多いので、私自身は Mery で折りたたみ機能はあまり使わないと思いますね... (機能自体はすごい!って思うんですけどね😅)

    アウトライン機能に関しては文章を書く上でもとっても役に立つので私は活用させていただいてますが、これも「メモ帳感覚で」よりは一歩奥に踏み込んだ機能ですから、Mery 本体に取り込むのも確かに悩ましいですよね。

    > そうですね。一応、エディター側にフォーカスがある場合でもプラグイン側からキー操作の横取りはできたと思うので、固定キーで良ければ実現できるかもしれません。

    たしか Delphi の制約で Alt+カーソルキーはキーカスタマイズで設定できないという話でしたし、それなら是非に Alt+Up/Down で…!とは思うところですが、この場合も結局 Alt+カーソルキーの制約に引っ掛かってダメですかね?😅

     |  yuko  |  返信
  5. > インジケーターが追従してこなくなったり表示されなくなったり、

    実はこれマイクロソフトの某ソフトで体験済みでした。
    ウィンドウ移動させるとカーソルだけ置いてきぼりに・・・
    これはカーソルがある行の強調表示でも代用できるので、折りたたみ機能だけは夢見て待ちたいと思います。

     |  アイスクライマー  |  返信
  6. >> yuko さん

    > 私は一瞬使ってすぐ OFF ってしまいましたが、そんなに相性問題出る機能だったんですねぇ、あれ。

    そうなんですよね。あの機能って、実は昔からある UI オートメーション (Excel とかの操作を自動化できるやつ) を利用しているようで…。

    アプリ側で UI オートメーションサーバー用の API を公開しておいて、Windows 側がクライアントとしてそこに接続しに来る感じなので、テキストカーソルインジケーターが不安定になるとアプリ側にも影響を及ぼすようですね😅

    > たしか Delphi の制約で Alt+カーソルキーはキーカスタマイズで設定できないという話でしたし、それなら是非に Alt+Up/Down で…!とは思うところですが、この場合も結局 Alt+カーソルキーの制約に引っ掛かってダメですかね?

    そういわれてみると Alt キーとの組み合わせはキー割り当ての設定ができない問題はありますね ^^;

    実験してみたところプラグイン側から Alt + 上下キーの横取りはできて、エディター側でアウトラインのノード間移動はできました。

    実装できそうだと喜んでいたのですが、実は Alt + 上下左右キーはエディター側ですでに「フリーカーソルモード」に割り当てられているという問題がありました…😅

    >> アイスクライマー さん

    > 実はこれマイクロソフトの某ソフトで体験済みでした。

    そうなんですよね。Mery の検索ダイアログの入力欄とかもマイクロソフトの標準コントロールを使っているので、インジケーター置いてけぼり現象が発生します ^^;

    でも一応、使えそうなレベルにはなってきたので次のバージョンでは隠しオプションで有効にできるようにしておこうと思います。

    > 折りたたみ機能だけは夢見て待ちたいと思います。

    そうですねー、シンプル志向のテキストエディターにそんな機能が必要かというとそうでもないと思うので、今のところは後ろ向きです。

    でも、折りたたみ機能は開発ネタとしては結構楽しめそうなので、将来的にネタに困ったら実装してしまうこともあるかもしれませんね。

     |  Kuro  |  返信
  7. > でも一応、使えそうなレベルにはなってきたので次のバージョンでは隠しオプションで有効にできるようにしておこうと思います。

    と思ったのですが、考え直しました。すみません…。

    一応、Mery としては実用レベルになっているのですが、Windows の機能としては安定性に欠けており、今後、仕様変更や機能改善が行われることもありそうなので、しばらく様子見とさせていただきたいと思います。

    テキストカーソルインジケーターもコードの折りたたみも見た目のインパクトが大きくてネタとしても面白いので、シンプル志向を忘れて開発に挑戦してしまいましたが、実装するかどうかになると慎重になってしまいますね😅

    ご意見もいただきましたし、せっかく作ったのでもったいないところですが、今回は涙を呑んで没とさせていただきます。

     |  Kuro  |  返信
  8. Kuro さん

    > 実装できそうだと喜んでいたのですが、実は Alt + 上下左右キーはエディター側ですでに「フリーカーソルモード」に割り当てられているという問題がありました…😅

    おおっ、こんな機能があったとは🙄
    Mery、使いこなしている方だと思っていましたがまだまだですね…(こういう隠し要素みたいのが面白いところでもあるw)

    ならば、アウトラインプラグインのグローバル設定 (「バーの位置」設定のようなイメージ) として、「Alt+上下キーでノード間を移動」のような設定を設け、ON にしているときだけフックするような動きにしてはどうでしょう?
    (…と食い下がってはみるものの、さすがに無茶ぶりですね…😅)

     |  yuko  |  返信
  9. > Mery、使いこなしている方だと思っていましたがまだまだですね…(こういう隠し要素みたいのが面白いところでもあるw)

    私もほとんど使わない機能なのですっかり忘れていましたw

    Alt + 上下以外のキー割り当てがないかなと思って調べてみたのですが、ノード間移動にキー割り当てされているエディターって IntelliJ と秀〇さんぐらいで、どちらも Alt + 上下でした。

    あまり関係ないですが、IntelliJ の Alt + 上下って、ときどきノード間にはさまって抜け出せなくなってしまうことありませんか?😅

    > ならば、アウトラインプラグインのグローバル設定 (「バーの位置」設定のようなイメージ) として、「Alt+上下キーでノード間を移動」のような設定を設け、ON にしているときだけフックするような動きにしてはどうでしょう?

    そうですね。固定キーの場合、変なキーに割り当てるよりは本体側の機能を潰してでも Alt + 上下に割り当てたほうが使いやすそうなので、やるとしたらそういったオプションを用意して、フリーカーソルで上下が使えなくなるけどプラグインだし我慢してね、といった感じがいいかもしれませんね。

    > (…と食い下がってはみるものの、さすがに無茶ぶりですね…😅)

    いいえー、今回、せっかくご意見をいただいたのにコードの折りたたみを没にしてしまったこともありますし、この機能ぐらいは追加してみたいと思います😉

     |  Kuro  |  返信
  10. > いいえー、今回、せっかくご意見をいただいたのにコードの折りたたみを没にしてしまったこともありますし、この機能ぐらいは追加してみたいと思います😉

    わっ、ありがとうございます!
    すごく便利なので、アウトライナーな方々にきっと気に入られるはず…
    楽しみにしています😊

    > あまり関係ないですが、IntelliJ の Alt + 上下って、ときどきノード間にはさまって抜け出せなくなってしまうことありませんか?😅

    うーん?ちょっと私は遭遇したことないです。 IntelliJ もアップデートでちょいちょい細かなバグ出てきたりするので、そういうものかもしれませんね…?

     |  yuko  |  返信
  11. Ver 3.2.2 のアウトライン、早速使ってみました!
    これが欲しかった…!! と感動を覚えてしまいました😭

    ただ一部、動作に不一致が見られる箇所がありましたので、ご報告します。(折角要望を聞いていただいたので心苦しいのですが、、、)
    ※以下 GIF 参照

    https://imgur.com/a/xO5sCNJ

    この動きにある通り、以下のような挙動をしています。

    ①「node 3」の内部 (19行目) で Alt+Up をしたときは「node 3」のヘッダー部 (17行目) に移動
    ②「node 2」の内部 (15行目) で Alt+Up をしたときは「node 1-2」のヘッダー部 (9行目) に移動

    アウトライン上で最後にあたるノードの配下で Alt+Up をしたときは、その箇所に対応するヘッダー部に移動する。(①)
    それ以外のノードの配下で Alt+Up をしたときは、その箇所の1つ上のノードのヘッダー部に移動する (②) といった動きです

    私としては、①の動きの方が自然のような気がしています。

     |  yuko  |  返信
  12. 早速お試しいただきありがとうございます。

    なるほど。動作の不一致というわけではなく、仕様の段階で誤解が生じていたように思います😱

    シンボル間の移動をエディター側でもできるようにということだったので、私はてっきりアウトラインツリーのノード間の移動が Alt + Up/Down できれば良いのだと思っていました。(簡単に出来そうだと思ったのはそのためですw)

    ① と ② はカーソル位置に注目しているとそういう風に見えますが、アウトラインツリーのほうに注目していただくとノード間を移動しているのが分かると思います😅

    開発時に IntelliJ の動作を参考にできれば良かったのですが、バグのためか Alt + Up/Down が数回しか効かずで、yuko さんのイメージしている仕様を把握できていなかったようです。

    「アウトラインツリーのノード間の移動」ではなく「アウトラインツリーのノード情報をもとにしたカーソル位置の移動」だったのですね。

    eclipse で試してみたら Ctrl + Shift + Up/Down でそういった移動ができるようなのでなんとなくイメージがつかめました。

    ノードを基準に考えると説明しづらいのですが、例えば、メソッド単位でアウトラインになっているとして、メソッドの内部にカーソルがある場合、Alt + Up はひとつ前のメソッドの先頭に移動、ではなく、そのメソッドの先頭に移動。つまりアウトラインツリーのノードの選択状態はそのままということですね。

    うーむ、ちょっと研究してみたいと思います。

     |  Kuro  |  返信
  13. >> Kuro さん

    うまく伝えられておらず、すみません…😓

    最初にちゃんと解説すべきでしたが、持っているイメージとしては以下の図のような感じです。 (Kuro さんの方でも見た Eclipse の Ctrl+Shift+Up/Down と同じ動きです)
    https://imgur.com/a/4zYWtDq

    Alt+Down のときと、Alt+Up のときでそれぞれ別のスコープ (赤文字と黄文字) があるようなイメージですね。

    Alt+Down or Alt+Up のときのカーソル位置がどのスコープに属しているかによって移動先のノードが決まる、と。

     |  yuko  |  返信
  14. いえいえ、私の勘違いです…😭

    詳細な図解、ありがとうございます。いただいた仕様をもとにして作り直してみました。

    アウトラインプラグイン Ver 3.1.1 (32 ビット版) [543,016 バイト 2020/12/26]
    https://www.haijin-boys.com/download/Outline-3.1.1.zip
    ウイルスチェック: https://www.virustotal.com/#/file/43bba91e2eac397cf3b92ba7bb94a2fbb0242e14df9370f315219137124365a4
    -
    アウトラインプラグイン Ver 3.1.1 (64 ビット版) [794,819 バイト 2020/12/26]
    https://www.haijin-boys.com/download/Outline-x64-3.1.1.zip
    ウイルスチェック: https://www.virustotal.com/#/file/fed2bc5b1cac8ca1389c816ebcca43c0e06ca991ef7aea4cc735cca90c95f3dc

    アウトラインプラグインのみの修正となっているため、Mery のバージョンアップは不要です。

     |  Kuro  |  返信
  15. >> Kuro さん

    わっ、素晴らしい!まさしくこの動きです!

    プログラムなら関数のトップ部分にすぐ戻ることもできるし、縦に長い文書ならトピック間をサクサク移動できるのがとても助かります。

    ありがとうございます。最高な使い勝手です!

     |  yuko  |  返信
  16. ご確認いただきありがとうございます。

    ちょっと自信がなかったもので、ご確認いただけて安心しました!

    本体に同梱してちゃんとリリースしたいところですが、Mery のバージョンアップが伴わないのでどうしようかと思っています😅

    別件で Windows 10 20H2 の新 IME で不具合が発生しているようなので、対策済み版として Ver 3.2.3 に含めてリリースするのもアリかな…

     |  Kuro  |  返信
  17. Ver 3.2.3 に同梱、ありがとうございます!
    ダークテーマ対応にファイルパスコピー機能、アウトラインのカーソル移動ショートカットと、Ver 3.2.x のアップデートは私にとって神機能の連続です😭

     |  yuko  |  返信
  18. 早速お試しいただきありがとうございます!

    個人的にもダークモード対応は今年の目玉機能でした。開発の工程を思い出すだけでゾッとします😱

    Ver 3.2.3 で今年は開発納めにしたいところですよー。今年も 1 年、Mery をご愛用いただき、また、ベータ検証にご協力いただきありがとうございました。

    来年こそは正式版リリースを目標に頑張ろうと思いますので、よろしくお願いしますね😁

     |  Kuro  |  返信
  19. 今年も開発にサポートにと、お疲れさまでした。
    今年は腱鞘炎と戦ったりとご苦労されたと思いますが、おかげさまで1年を快適なテキスト環境のもと働けました。ひとえに Kuro さんのおかげです。
    ありがとうございました🙇‍♂️

    > 来年こそは正式版リリースを目標に頑張ろうと思いますので、よろしくお願いしますね😁

    毎度、不安定なところを探す方が大変なくらい安定しているので、ベータやアルファなことを忘れていましたw

    正式版としては次が Ver 3系へのメジャーアップデートになるわけですね。
    Ver 2 -> 3 となると、マルチカーソルにダークモード対応が目玉になるでしょうか。モダンな機能が続々追加される胸アツなアップデートになりますね!

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