みなさん、ベータ検証のご協力ありがとうございます。
前回は Zen モード (集中執筆モード) やタイプライタースクロールなどの実験的な機能を搭載してみましたが、今回も引き続き実験的な機能を搭載していきます。
Google Chrome のスクロールバーなどでお馴染みの、検索結果の大まかな位置がスクロールバー上に表示される機能です。
この機能は以前からご要望をいただいていましたが、Windows 標準のスクロールバーにはそういった機能がありませんので、スクロールバー自体をゼロから開発する必要がありまして、開発着手は 2017年の6月ですが実用化までに 2 年近くもかかってしまいました。
目次
新機能
検索位置や変更行、ブックマークなどをスクロールバー上にマーカー表示できるスクロールバーマーカーの搭載と、前回のバージョンでご好評をいただいていたタイプライタースクロールの仕様変更、その他にも色々と細かい改善を行いました。
検索位置が分かりやすい「スクロールバーマーカー」機能
スクロールバーマーカーは変更行、検索位置、ブックマーク、カーソル位置の 4 つのマーカーをスクロールバーの上に表示できる機能です。
初期設定では検索位置とブックマークのみが表示対象となっていますが、必要に応じて設定を変更することができます。
スクロールバーを右クリックするとポップアップメニューが表示されます。
メニューの [マーカーを表示] はマーカーの表示・非表示の切り替え、[オプション] はスクロールバーにかかわる設定画面を表示します。
スクロールバーの設定画面はメインメニューの [ツール] から [オプション] を選択しても同じ画面を開くことができます。
メインメニューの [ツール] から [オプション] を選択した場合はオプション画面の左側にあるカテゴリから [スクロール] を選択することでスクロールバーにかかわるオプションが表示されます。
[スクロールバーマーカー] の中にある [変更行]、[ブックマーク]、[検索]、[カーソル位置] のオン・オフでスクロールバー上のマーカー表示を切り替えることができます。
マーカーの色はいつもどおりオプション画面の [表示] の中の [表示項目] で変更可能です。
え、オプション画面がいつもと違うって?
そうなんです。従来のオプション画面はタブ切り替えによるページ選択でしたが、さらにタブを増やしてしまうと多段タブになってしまい視認性が低下しますので、本バージョンからはリストでページを選択するかたちにしました。
「タイプライタースクロール」の改善
編集行が画面の中央に来て視線の移動を抑えることができるタイプライタースクロールですが、画面の中央ではなく、中央よりちょっと上、ちょっと下、のような位置で固定したいというご要望がありました。
[ツール] メニューの [オプション] を開いて [スクロール] の中の [タイプライタースクロール位置] という項目で設定できます。
[上 4 分の 1]、[上 3 分の 1]、[中間]、[下 3 分の 1]、[下 4 分の 1] から選択が可能です。
なお、この機能追加に伴い、文字の入力中のみタイプライタースクロールが動作する仕様に変更しました。
従来の仕様を望む声もあるかもしれませんが、カーソルが常に中央に固定されているとキーボードでのカーソル移動がしづらい、PgDnキーでのページ移動が半ページずつしかできない、[上 4 分の 1] や [下 4 分の 1] の固定では使い勝手が悪いなどの問題点があり、仕様変更に至りました。
新しい仕様では、文字の入力中のみタイプライタースクロールが機能しますので、普段どおりの操作感を保ったままタイプライタースクロールを使用できるようになりました。
また、オプション画面の [スクロール] のページには新たな項目が追加されていますので、ここでご紹介しておきます。
-
オーバースクロール
スクロールしたときに一番最後の行を超えてさらにスクロールできる量を [なし]、[半ページ]、[1 ページ] から選択できます。
[なし] は最終行でぴったり、[半ページ] は画面の中央付近まで、[1 ページ] は 1 画面分、余分にスクロールが可能になります。
この設定はタイプライタースクロールを有効にしている場合は無視されます。また、[なし] か [1 ページ] を選択した場合は後述する [スクロールマージン] の値が含まれます。
-
スクロールマージン
カーソルを移動させて画面を上下にスクロールするときに上下に余裕を持たせることができます。初期値は 2 で、画面の上端、下端に 2 行のマージンが設けられています。
この値を 0 にすると Windows のメモ帳のように画面の下端ぴったりからスクロールが開始されるようになります。
また、999 のように十分に大きな値を設定すれば、従来のタイプライタースクロールのようにカーソルが常に画面の中央に配置されるようになります。
-
固定スクロール
新しい仕様のタイプライタースクロールは文字の入力中のみ動作しますが、このオプションを有効にすると常にカーソル行を固定した状態でスクロールするようになります。
ブックマークの高速化と安定性の向上
行に目印を付けることができるブックマーク機能ですが、エディターコンポーネントの仕様上、動作が不安定だったり、大きなテキストファイルでブックマークを増やすと動作速度が低下するなどの問題がありました。
ブックマーク機能は私が開発したものではなくエディターコンポーネントにもともと内蔵されている機能なので、不具合のご報告などをいただいても私の技術力では対応することができませんでした。
MeryWiki の「よくある質問」にもその旨は記載しており、以前からブックマーク機能を廃止することも検討していましたが、使える範囲で使えれば…というご意見もありまして、現在までそっとしておきました。
しかしながら、今回は新機能の「スクロールバーマーカー」でスクロールバーにブックマークを表示できるようになったことでブックマーク機能の活用の幅が広がりました。
そうなると、従来の不安定なブックマーク機能でお茶を濁すわけにもいかなくなりまして、ブックマーク機能を丸ごと作り直したというわけです。
仕様変更に伴い、設定ファイル (Mery.his) に含まれる従来のブックマークのデータとの互換性は失われます。
本バージョンを上書きインストールで更新した場合、従来のブックマークのデータは読み込まれますが、古いバージョンに戻す場合はブックマークが復元されませんのでご注意ください。
なお、ワークスペース機能に含まれるブックマークのデータは、本バージョンと古いバージョンの間に後方互換性はありません。
ワークスペース機能と合わせてブックマーク機能を使われているかたはブックマークの位置がズレてしまいますので、そのときは手動でブックマークをクリアして再設定してください。
また、ワークスペース機能で [元に戻す情報を保持する] を使われているかたは、一度オフにして本体を再起動して Undo データをクリアしていただく必要があります。
マクロメソッド BeginUndoGroup、 EndUndoGroup を追加
Ver 2.6.15 で Undo をグループ化する仕組みをマクロに実装しましたが、Redraw プロパティにその機能を含めていたので既存のマクロに影響があるとのご意見をいただきました。
本バージョンでは Redraw プロパティを使った仕組みを廃止して、新たに window.BeginUndoGroup と window.EndUndoGroup を用意しました。
BeginUndoGroup と EndUndoGroup はセットでの使用を想定しており、下記のように Undo をグループ化してやれば、1 度目の [元に戻す] で "def" が消え、2 度目の [元に戻す] で "abc" が消えるといった動作になります。
基本的な使い方BeginUndoGroup();
document.selection.Text = "a";
document.selection.Text = "b";
document.selection.Text = "c";
EndUndoGroup();
BeginUndoGroup();
document.selection.Text = "d";
document.selection.Text = "e";
document.selection.Text = "f";
EndUndoGroup();
もっと簡単に 1 マクロを 1 Undo で戻せるようにしたいといったシーンでは、下記のように先頭に 1 行、BeginUndoGroup(); を書くだけでも大丈夫です。
EndUndoGroup(); を省略しても Undo グループは自動的に閉じられますので、既存のマクロをすべて 1 Undo 化したいときなどは 1 行の修正だけで済みます。
もっと簡単な使い方BeginUndoGroup();
document.selection.Text = "a";
document.selection.Text = "b";
document.selection.Text = "c";
BeginUndoGroup ~ EndUndoGroup はネスト (入れ子) 可能なメソッドになっていますので、下記のような記述も可能です。
もっと複雑な使い方// BeginUndoGroup(); // ひとまずコメント
try {
BeginUndoGroup(); // 1 つめのグループ
try {
document.selection.Text = "a";
document.selection.Text = "b";
document.selection.Text = "c";
} finally {
EndUndoGroup();
}
BeginUndoGroup(); // 2 つめのグループ
try {
document.selection.Text = "d";
document.selection.Text = "e";
document.selection.Text = "f";
} finally {
EndUndoGroup();
}
} finally {
EndUndoGroup();
}
このようにネストできますので、例えば、マクロの作成や検証のときは先頭の BeginUndoGroup(); をコメントアウトしておけば "abc" と "def" がグループ化され、マクロが完成したら先頭のコメントアウトを解除して全体を 1 Undo にしてリリースする、のような使い方も可能です。
アウトラインで文字のサイズを変更できるようにした
アウトライン機能のフォントを変更したいというご要望は以前からいただいており隠し機能としては実装済みでしたが、画面上から操作できるような仕組みということでご要望をいただきました。
もともとアウトライン機能はプラグインのサンプルということで同梱しており、オープンソースなので誰でも自由にカスタマイズして使ってくださいねという技術的なお遊び要素だったので、ご要望をいただいても「ぜひ、開発に挑戦してみてね!」と回答することが多かったんですよね。
今回は特別というわけではなく、以前に公開したプロ生ちゃんエディションで同様の仕組みを開発していたので、それが流用できたというわけです。
フォント設定ダイアログなどを作るのは大変ですけど、右クリックから文字サイズを変更するぐらいなら…ね。
Delphi も無料になったことですし、みなさんもぜひプラグインの開発に挑戦してみてくださいね!
その他の新機能
正規表現ライブラリの鬼雲を 6.2.0 に更新
6.1.3 から 6.2.0 というバージョンの飛び方だったので次のバージョンが早めに出るのではないかと慎重になっていましたが、しびれが切れたので更新してみました。動作検証にご協力いただけると幸いです。
Shift+マウスホイールで横スクロールできるようにした
割と一般的な操作のようなので Mery でも対応してみました。それに伴い、半透明プラグインの透明度変更のキー割り当てをShift+マウスホイールからAlt+マウスホイールに変更しました。
高精度タッチパッドの横スクロールに対応
最近の PC は高精度タッチパッドという機能があるようで Windows 10 もそれに対応しているようですが、Mery では横スクロールが動作しないというご報告をいただきましたので対応してみました。
フォーラム スクロールバーの動作検証のお願い/4K ディスプレイでの表示
スクロールバーのポップアップメニューを自前で実装してみた
本バージョンからは OS 標準のスクロールバーではないので、以前は OS まかせで自動的に表示されていたポップアップメニューおよびその機能も Mery 側で実装しています。
つまり、カーソルを固定したまま上下にスクロールできる [上にスクロール] や [下にスクロール] へのキーボード割り当てを変更できるようにすることも可能ではあるのですが…。
現状、横書きのときはCtrl+↑または↓で上下スクロール、Ctrl+→または←で単語ごとに左右にカーソル移動するのですが、縦書きにするとこのキーボード割り当てが自動的に入れ替わる仕組みになっています。
キーボード割り当てを許可してしまうと横書き・縦書きに関係なく固定キーになってしまうという問題があるのでキーボード割り当てには対応させていません。
行間の最小値を -2 まで行けるようにした
最近、やけに行間の広いフォントがあるようなので行間の最小値を -2 まで行けるようにしてみました。マイナスの数値の手入力はできないので、スピンエディットの上下ボタンで入力してくださいね。
キーボードマップのソートに対応
以前からときどきご要望をいただいていました。
Delphi だと作るのがすごく面倒くさいのと、使用頻度が少なそうということで気が向いたら作りますと回答していましたが、気が向きました。
キーボードマップで右クリックメニューを追加
上記の機能追加に伴い、右クリックで [コピー]、[すべて選択]、[オプション] のポップアップメニューを表示できるようにしました。
キーボードマップのダブルクリックでキーボード割り当ての画面が開くようにした
上記の [オプション] または項目のダブルクリックでキーボードマップから直接キーボード割り当ての変更画面を呼び出せるようにしました。
その他の仕様変更
マクロで Chakra (jscript9.dll) における Quit メソッドをサポート外にした
Mery の JScript マクロでは Chakra (jscript9.dll、以下 Chakra と表記します) という IE9 以降の高速なスクリプトエンジン使用します。
Chakra と旧 JScript には一応互換性があることはあるのですが、一部の機能が仕様変更されています。
参考 JavaScript Version Information - Microsoft Edge Development | Microsoft Docs
ドキュメントに記載がないか、該当項目が見つけられないだけかわかりませんが、どうも Chakra を使用するとスクリプトを途中で中断する機能が使えなくなっているようなのです。
旧 JScript では IActiveScript の InterruptScriptThread を使うか、IActiveScriptSiteInterruptPoll の QueryContinue で S_FALSE を返してやることで実行中のスクリプトを強制的に終了させることができたのですが、いずれの方法も Chakra では動作しませんでした。
あれれおかしいぞと思って調査しましたところ、Chakra では WSH (WScript) でも Quit メソッドが使用できなくなっていることがわかりました。
WScriptWScript.Echo("a");
WScript.Echo("b");
WScript.Quit();
WScript.Echo("c");
WScript.Echo("d");
実行結果
エラー: Object doesn't support this action
コード: 800A01BD
ソース: JavaScript runtime error
このスクリプトは旧 JScript エンジンだと正常に動作します。
そういうわけで Windows の仕様ということで仕方なく Mery のマクロでも Chakra での Quit メソッドをサポート外とし、エラーコード 0x800A01BD を返すようにしました。
Ver 2.7.2 でエラーコード 0xA00A01BD を返すように仕様変更しました。
0xA00A01BD はユーザ定義エラーで、スクリプトの実行は中断され Mery 側でこのエラーを無視することであたかも Quit したかのようにみせかけることができますので、既存のマクロへの影響は緩和されると思います。
しかしながら、これは既存のマクロへの影響を抑えるための対症療法にすぎません。Chakra では WSH で Quit メソッドが使用できないというのは仕様ですから、WSH を記述するときはご注意ください。
また、Mery のマクロでは旧 JScript との互換性を優先する場合、先頭に下記のように記述することで Chakra ではなく旧 JScript エンジンを使用してマクロを実行させることもできます。(動作速度や機能は犠牲になります)
マクロ#language = "JScript"
alert("a");
alert("b");
Quit();
alert("c");
alert("d");
既存のマクロにも影響が及ぶ仕様変更なので心苦しいかぎりですが、ご理解のほどよろしくお願いいたします。また、Chakra でのスクリプトの中断方法 (InterruptScriptThread が動く裏技とか?) の情報があればご協力いただけると幸いです。
更新内容
本バージョンでは他にもいくつかの不具合修正や機能改善が含まれています。現在、お使いのバージョンで問題がある場合はバージョンアップで改善されるかもしれません。
2019/04/10 (Ver 2.7.0)
-
[終了時に履歴を消去する] で [カーソル位置とブックマーク] がオンの時に Mery.his を削除するようにした
カーソル位置とブックマークのデータも完全に削除できるようになりました。
-
[読み直し] でブックマークが読み込まれなくなっていた問題を修正
以前に [読み直し] でスクロールバーの位置まで復元する仕組みを作ったときの副作用でブックマークが読み込まれなくなっていましたので修正しました。
-
Zen モードで半角スペースなどが表示されていたのを修正
Zen モードは余計な情報を非表示にして集中力を高めることが目的なので、半角スペースなどが表示されていたのは不具合です。
-
Zen モード切り替え時にチラつきを抑える対策を強化してみた
Delphi アプリはしばしばチラつくんです。なるべくチラつきを抑えるよう最善を尽くしました。
-
URL のパース処理に「!」も含めてみた
URL のパース処理の作り直しに挑戦してみましたが難しすぎて挫折。結局「!」を許可するだけで断念しました。
-
Windows Classic テーマの [検索した文字列] の背景色を変更
スクロールバーマーカーの [検索] 項目の色に合わせました。既に Mery.ini が出来上がっている場合はテーマをリセットしないと反映されません。
-
[変更行を強調表示] で行が折り返されているときの挙動を修正
正規表現で置換したときに改行の数が変わる状況下で強調表示の位置がズレてしまう問題などを改善しました。
-
[水平スクロールバーを自動的に表示] のときのスクロールバーの挙動を修正
Windows のスクロールバー関連の API はどうもバグっぽい挙動をするので困ります。
-
縦書き切り替え直後、スクロールバーが表示されないことがあったのを修正
Windows のスクロールバー関連の API はどうもバグっぽい挙動をするので非常に困ります。
-
タイプライタースクロールの内部名を変更
タイプライタースクロールを使われているかたはオン・オフの状態が消えますのでもう一度 [タイプライタースクロール] をオンにしてくださいね。
-
マクロの ScriptName、ScriptFullName で実行中のファイル名が返らないことがあった問題を修正
マクロをイベントから呼び出したときにこの問題が発生していたようです。
-
インストーラーを Inno Setup 5.6.1 に更新
"高 DPI システムに対するサポートの向上" だそうです。
2019/04/11 (Ver 2.7.1)
-
編集モードの設定で現在の編集モードが初期値になっていなかったのを修正
-
[読み直し] で読み直し前のブックマークが残っていたのを修正
2019/04/12 (Ver 2.7.2)
-
マクロの NextBookmark と PreviousBookmark を新しいブックマークに対応させた
-
マクロで Chakra (jscript9.dll) における Quit メソッドをサポート外にしたヤツを既存のマクロになるべく影響を与えないように対策してみた
2019/04/17 (Ver 2.7.3)
- ウィンドウ分割でスクロールバーマーカーが反映されなかった問題を修正
- スクロールマージン 999 で完全に中央に固定されていなかった問題を修正
- タイプライタースクロールに [固定スクロール] オプションを追加
- タイプライタースクロールのショートカットキーにCtrl+Tを割り当てた
-
[置換] の第二ショートカットキーにCtrl+Hを割り当てた
(上記 2 つのショートカットキーは初期値なので、すでに Mery.ini ができている場合は反映されません)
2019/04/18 (Ver 2.7.4)
-
ファイルを開いた直後にアウトラインプラグインの解析が走らなくなっていた問題を修正
(魔が差してファイルを開いたときにプラグインに EVENT_CHANGED を通達する処理を消しちゃったのが原因。元に戻しました)
ダウンロード
レジストリを一切使用しない ZIP 版と、レジストリを使用しますが導入が簡単なインストーラー版をご用意しております。
ZIP 版
アーカイブを解凍するだけですぐに使える ZIP 版です。
Mery Ver 2.7.4 (32 ビット版) ZIP- 2,998,085 バイト 2019/04/18
- SHA256: d16415d1151bf413e00b7ba2564b74a697b8dd23a090152fa98fa248865cc580
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,684,933 バイト 2019/04/18
- SHA256: f1ac586a8398ae0168d302f87391dec6d0bdf743ce4861351eb0e9e85263a5de
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
インストーラー版
解凍などの作業が必要なく簡単に使えるインストーラー版です。
Mery Ver 2.7.4 (32 ビット版) インストーラー- 2,538,275 バイト 2019/04/18
- SHA256: 715e150046963c107f7d14e4fd0afd201b1ab44cead54174c864130d40504eb2
- 対応 OS: Windows 10, 8, 7, Vista, XP (32 ビット, 64 ビット)
- 3,044,647 バイト 2019/04/18
- SHA256: 9a9b5f7823c7ca9582c76482a4ae22b19875c49958aaad1b941c9deeeee03eb5
- 対応 OS: Windows 10, 8, 7, Vista (64 ビット)
おわりに
最後に、本バージョンの新機能「スクロールバーマーカー」ですが、これって一見、簡単に作れそうに見えますよね?本編では語れなかったその大変さを語らせていただきたいと思います。
いや、語らせてください。
まず、ゼロからスクロールバーを作ること。これが一番大事なわけですが、Windows にはスクロールバーの高さやボタンの幅などを取得できる API が用意されていますのでそれを使えばある程度、スクロールバーの位置に長方形を描くぐらいのことは可能です。
しかしながら Per-Monitor DPI 対応のため、OS やビルド番号ごとに異なる API を使ったり、一部の API がまだ PerMonitorV2 に対応していなかったりして挫けそうになります。
あと、スクロールバーの絵柄って OS によって異なるのですが、Mery のように Windows 標準っぽいデザインのアプリケーションですと Chrome のように OS に関係なくフラットデザインなスクロールバーにしてしまうと結構浮いてしまうんですよね。
そこで上図のように OS に準拠したスクロールバーを作成するために、ボタンやサム (ツマミ) などの絵柄を部品ごとに Windows のスタイルから取得 (そういう API があります) してきて自前でスクロールバーを描くことになるわけです。
その後、Windows XP の壁が立ちはだかります。
Windows XP のクラシックテーマだと、そもそもスタイルの機能が使えません。
つまり部品の絵柄を自分で描く必要があるわけで、スクロールバーの背景の部分は白とグレーの市松模様のビットマップを敷き詰めたり、サム (ツマミ) の部分はグレーの長方形の上に枠を描画したりして "それっぽいモノ" を描いています。
ところで Windows Vista は持っていないので、どんな感じで描画されるのかわかりませんし、そもそも動作しないのかもしれません。
なるべく OS 標準のスクロールバーに似せる努力はしていますが、まったく同じにはなりませんし、従来の挙動とは異なることや特殊なデバイスのスクロール機能に対応できないことも考えられます。
この点をご理解いただいたうえで、動作検証にご協力いただけたなら幸いです。
まだあります。
スクロールバーに検索位置を表示させるとなると、検索するたびにファイル全体を検索して位置を調べる必要があります。
エディター画面では検索文字列に色がついているので、一見、ファイル全体が検索されているかのように見えますが、そんなことをしていたら動作速度が遅くなって大変ですからね。画面が移動するたびに画面上に見えている部分だけその都度検索して色付けしているんです。
つまり、大きなファイル (100 万行ぐらい) になってくると、ファイル全体を検索する速度が遅くなってしまいますし、テキストの内容が変わるたびに検索しなおす必要がありますので、動作速度の問題が非常に大きいのです。
Chrome や秀〇エディターさんでは検索した後に徐々にスクロールバーに色がついていく感じなので、恐らく別スレッドで動作させて本体が固まるのを防ぎつつ裏で色付けするような仕組みになっているのでしょうね。
でも、Chrome のスクロールバーの色付けは速度がちょっと遅いですし、秀〇エディターさんはテキストの内容が変わるたびにリアルタイムでスクロールバーに反映というのはできないようで、編集するとマーカーがすべて消えてしまいます。
ほかのアプリケーションでも苦戦されているのですね…と、ハードルを下げつつ、言い訳しつつ。
ちょっと動作速度が遅くても許してネ!
一応、お使いのデバイスで新しいスクロールバーが動作しなかったり、どうしても OS 標準のスクロールバーを使いたかったりするときに備えて従来のスクロールバーに戻すオプションを用意しています。
Mery.ini[Scroll]
UseSystemScrollBar=1
はぁ…本バージョンはホント弱気です。胃が痛いよー。
ケムリクサも見放題!Amazon プライムが 30 日利用できる、無料体験登録はこちら。
とうとう来ましたね!
いやー、今回のバージョンは、まだかまだかとソワソワするほどの楽しみぶりでした。
楽しく使わせていただきます😆
>> yuko さん
コメントありがとうございます!
スクロールバーの検証の際はご協力ありがとうございました。おかげさまで何とかリリースすることができました。いやぁ…今回のバージョンはホント不安がいっぱいなので、バグが出ても温かい目で見守っていただけると幸いです… ^^;
お待ちしていました! ベータ版 Ver 2.7.0 更新&公開おめでとうございます。
> ブックマークの高速化と安定性の向上
> 本バージョンを上書きインストールで更新した場合、従来のブックマークのデータは読み込まれます
> [読み直し] でブックマークが読み込まれなくなっていた問題を修正
これ! とてもうれしいです。以前のブックマークもきちんと読み込んでくれて「言うことなし」です。
ブックマークされている行の行頭での Backspace でブックマークが消せるのも、以前より扱いやすくなったかんじですね。
複数行選択状態や全文対象の一括置換でもブックマークが維持されるのも「サイコー」。 XD
> キーボードマップのソートに対応/キーボードマップで右クリックメニューを追加/キーボードマップのダブルクリックでキーボード割り当ての画面が開くようにした
これもすごく使い勝手がいいですね。 ソートの3発目のクリックで「ソート解除」になったのはニヤリとしました。 これは Microsoft Windows で標準化されるべきですね。 :/
> マクロメソッド BeginUndoGroup、 EndUndoGroup を追加
仕様が固まったようですので、これからどのように活用していこうか楽しみです。 最後の EndUndoGroup を省略できるのもシンプルでよさそうなかんじですね。
> その後、Windows XP の壁が立ちはだかります。
> Windows XP のクラシックテーマだと、そもそもスタイルの機能が使えません。
XPスタイルの Luna がきらい(重い)で未だにクラシックテーマを愛用している私めらにもありがたいご配慮をいただき、ありがとうございます。 ... でも、比較画像を見るとクラシックテーマのグレーの立体的なつまみとの相性は微妙? 8 や 10 のフラットなスクロールバーにはよく似合っていますね。 :)
スクロールバーのウインドウクラスが TNotePadEx.TScrollWindow となっていて「スゲー」って感心いたしました。 Logicool マウスのフリースピンホイールの高速スクロールもちゃんと効きます。
マウスユーティリティ「かざぐるマウス」とは相性がわるいようで、「かざぐるマウス」を常駐させている状態で、スクロールバー上である程度速めにホイールスクロールさせるとスクロールを受け付けてくれなくなるようでした。独自実装の TNotePadEx.TScrollWindow をフックする「かざぐるマウス」もすごいのですが、スクロールバー上でのホイールが効かなくなるのは困り者。「かざぐるマウス」をとるか Mery の新スクロールバーをとるか、悩ましいところです。
ああ、「2.7.0」はすべての新機能にコメントを付けたくなるぐらいすばらしいですが... ファーストインプレッションはこのぐらいで。 :)
Mery が良すぎて他のエディタは CSV の編集ぐらいでしか出番がなくなっちゃいますね。 :D
今朝、早速少し試してみましたが、今のところ快調そのもので、流石の一言です。しばらく常用してみて、もし何か不審な挙動があったら (優しめに) ご報告しますね。
また、高精度タッチパッド搭載のノート PC でも無事に横スクロールができるようになりました。ありがたやー (だけど、トラックポイントでの挙動を確認するの忘れました…😅あとで確認してみますね)
いつもお世話になっております。
半透明プラグイン2.3.4の設定の文言が「Shift+マウスホイール」のままになっています。
動作は「Alt+マウスホイール」で透明度変更できています(^^)
> トラックポイントでの挙動を確認するの忘れました…
トラックポイントでも横スクロールできるようになりました。素晴らしいです!
ブックマーク、やはりこれはすごく良いですよ! Undo/Redo ときちんと連携してくれていますし、以前のバージョンよりも履歴との連携の精度(?)も高くなってますね。 :D
「置換」ダイアログでの一括置換でなくても、マクロで UndoGroup ができるようになったので、置換対象(選択範囲)の行をループ処理で各行ごとに置換をかければブックマークを維持できて、1Undoもできる! もう、テンション上がりまくりです。 XD
自分用の「行コメント」マクロと「字下げ/字上げ」(インデント/アンインデント)系マクロを書き直してみましたら、実行後にブックマークのアフターケアをしなくてよくなり、バッチリ使い勝手があがりました。(これで Undo に選択範囲情報までつけば最高なんですが。 あるいは、document オブジェクトのプロパティでブックマーク行の true/false を設定できるように...)
あとは「引用符/コメント(引用の追加)」と「カッコで囲う」も手直しするとして、マクロライブラリに投稿するのはつぎの「正式版」のリリースを待ってからかな?
ブックマークについてひとつ。「読み直し/書き換え禁止」したときのことですが、ブックマークのあるファイルで
① ブックマークの上の行で改行(空行を追加)して
② 「読み直し」で「変更を破棄して続行」すると
③ ①の改行以降の行のブックマークが改行数だけズレて増殖する
という現象がおきました。これは ver 2.6.7 では起きないようですので、一応ご報告申し上げます。
こういう操作をすることはめったにないので、基本的に 2.7.0 での「読み直し」とブックマークの連携は「バッチグー」だとおもいます。 :)
これとは別に気づいたこととして、「編集モード」パネルを開いたときに「現在の編集モード名」のアイテムではなく「BAT」(先頭のアイテム)がアクティブになってしまっています。 パネルを開いてすぐに「プロパティ」ボタンを押してみたら、そう「BAT」...。 :P
さいごに、ツリー表示のオプションパネル。使い勝手が変わったわけではないのに、これもいい感じですね。 ツリーの余白が未来の可能性をほのめかすようで、ワクワクさせてくれます。 :D
>> sukemaru さん
コメントありがとうございます。
> 複数行選択状態や全文対象の一括置換でもブックマークが維持されるのも「サイコー」。 XD
改行を巻き込んだ正規表現置換のときのブックマーク位置の計算がヤバすぎて禿げかけました ^^;
> これは Microsoft Windows で標準化されるべきですね。 :/
さすがに Windows 10 だとできるのでは?と思って試してみたらできませんでした (w
> XPスタイルの Luna がきらい
私も XP を使っていた時代はクラシックテーマを愛用していました。立体的なスクロールバーだとデザイン的にちょっとね…。当初はマーカーを半透明描画してなじませようとしていたのですが、重かったのでやめました。
> マウスユーティリティ「かざぐるマウス」とは相性がわるい
私のほうでも動作検証をしてみましたので、フォーラムのスクロールバースレに投稿しておきました。
https://www.haijin-boys.com/discussions/4177#discussion-4300
> Mery が良すぎて他のエディタは CSV の編集ぐらいでしか出番がなくなっちゃいますね。 :D
ありがとうございます。でも、CSV の編集には対応しませんからね!(w
> 以前のバージョンよりも履歴との連携の精度(?)も高くなってますね。 :D
ありがとうございます。他のエディタでは行ごと削除したブックマークは履歴をたどっても戻らないですから!そこはがんばりました ^^
> マクロライブラリに投稿するのはつぎの「正式版」のリリースを待ってからかな?
そうですね、大きな問題がなければ、あとは軽く細かいバグを直して正式版にしたいところです。
> ①の改行以降の行のブックマークが改行数だけズレて増殖するという現象がおきました。
ご報告ありがとうございます。ファイルの読み込み時にブックマークをクリアするのを忘れていました ^^; 次のバージョンでは修正しておきますね。
> 「BAT」(先頭のアイテム)がアクティブになってしまっています。
前のバージョンでは編集モードの設定を開いてすぐに「↑・↓」のキーを押すと Bat が選択された状態になっていたので、どうせなら初めから Bat でええんじゃね?と思って修正してしまったのですが、改悪でしたね… ^^; 次のバージョンでは修正しておきますね。
> ツリーの余白が未来の可能性をほのめかすようで、ワクワクさせてくれます。 :D
ツリーにする予定だったのですが、そんなに項目なくて、結局、ただのリストにしました。
試作品ではもうちょっと細かく、[バックアップ] や [ワークスペース]、[Zen モード] などの項目ごとにページを分けていたのですが、そしたら今度は設定画面のほうが項目少なすぎてスカスカに…。とりあえず画面のほうは現状維持ということで (w
>> yuko さん
早速お試しいただきありがとうございます。
毎回、公開した直後に凡ミスが見つかることが多いので、とりあえず公開 1 日目を問題なく過ごせたので良かったです。
> 高精度タッチパッド搭載のノート PC でも無事に横スクロールができるようになりました。
検証ありがとうございます。ほっ、良かったです。実機がないのでめっちゃ不安でした。
は!トラックポイントで動かなかったら泣きます \(^o^)/
>> nanashi さん
コメントありがとうございます。
> 半透明プラグイン2.3.4の設定の文言が「Shift+マウスホイール」のままになっています。
ご報告ありがとうございます。ぐふぅ、これはやってしまいましたね…
そんなところに文言を書いていたなんて。昔の私のバカバカバカ!
早速修正しておきました。
しれーっと Ver 2.7.1 に差し替えました。
> とりあえず公開 1 日目を問題なく過ごせたので良かったです。
などと言いつつ、初日のバグを放置すると精神衛生上よろしくないので…。はぁ、胃が痛い…。
> しれーっと Ver 2.7.1 に差し替えました。
「編集モードのプロパティ」の改修、ありがとうございます。 :D
Begin/EndUndoGroup メソッドを MSY ファイルに足して、ぼんやりと「編集モードのプロパティ」マクロ(SendKeys + ExecuteCommandByID) → インポートボタン と操作して、「あれ、BeginUndoGroup に色がつかないぞ??」とおもって見直したら BAT の定義ををつぶしたりしちゃってて。 :P
たびたび小出しになってしまいすみませんが、ブックマーク×マクロ関連で追加報告があります 。
このままでは、きっと全国3百万人のブックマーク系マクロのファンの皆さんが悲嘆にくれ、Mery 劇場版 ver 2.6.16 につづいて全米さんも号泣です! ;(
① ブックマーク行が「折り返し」のかかる長い行のとき、マクロの NextBookmark() メソッドが折り返しより下のブックマーク行にいけなくなって Mery が固まってしまいます。
昨晩「ブックマークジャンプ」マクロの更新テスト中に特定のファイルでだけ固まったのでソースコードを何度も見直してみたのですが原因が分からず、どうやら他の方のマクロでも固まるようで「???」
煮詰まって意味もなく「折り返しトグル」マクロや F2 / Shift+F2 キーをポチポチしてたら原因に気づけた次第(「折り返しトグル」連打の効用に笑)。 :)
「無限ループで自爆してるのか?」とかおもいつつも 2.6.15 だとまったく問題なく動作していたので、「ならば正規表現ライブラリが変わったからでは?」とか無駄に迷走してしまいましたが、原因まで行き着くことができてちょっとだけスッキリ。 :D
拙作「ブックマークジャンプ」にかぎらず、goat さんの元祖「ブックマーク一覧ジャンプ」、ks さんの「ブックマーク系コマンド集」、シリルさんの「ポップアップ」、いずれにおいても while( NextBookmark() ) ループでブックマーク行を検出する仕組みなので「折り返し」のあるブックマーク行があると固まるようです。
② PreviousBookmark() メソッドの挙動が変わって、ブックマーク行内(行頭以外のケタ位置)にキャレットがあるときに行頭に移動するのではなく、ひとつ上のブックマーク行に移動するようで、マクロライブラリに既存のブックマーク系マクロだと「先頭行のブックマーク状態」を取得できなくなっています。
先頭行がブックマークされているとき、Mery ver 2.7 では
document.selection.SetActivePoint( mePosLogical, x=2, y=1 ); //先頭行の2文字目位置
Alert( document.selection.PreviousBookmark() );
が true を返さなくなっているので、sukemaru/goat/シリル版のジャンプマクロは先頭行のブックマーク検出が ×。
※もともと「先頭行のブックマーク状態の取得」自体がトリッキーなコードを必要とするのですが、新仕様でも最初のキャレット移動先を SetActivePoint( mePosLogical, x=1, y=2 ) にすれば 可 なので、goat/シリル版の場合は StartOfDocument() のあとの CharRight() を LineDown() に変更が必要。
ただし、2行目以降の検出ループの前にもう一度 StartOfDocument() が必要。 ドキュメントが「1行だけ」のばあいは ×。 ← 1行だけの文書ならブックマークの必要性もなく、マクロでジャンプする必要性ありませんが。 :)
ks さんのマクロは、仕様的に2行目以降にもブックマークがないと先頭行のブックマークを検出できないかもしれない ? ので、ちょっとわかりません。
document.selection.StartOfDocument();
Alert( document.selection.NextBookmark() && document.selection.PreviousBookmark() );
もう1点、マクロ関連ではなく緊急性もないのですが、気になる挙動も。
ブックマーク行の行頭から Backspace でブックマークを解除できる仕組みは個人的にとても気に入ったのですが、ひとつ前の行の行末からの Delete でも消えてしまうのは馴染みにくいかんじがします。
どちらも前の行の「改行の削除」ということなのかもしれませんが、できましたらブックマークの解除の仕様についても、あらためてご検討をよろしくお願いします (個人的な意見としては、Backspace と Delete とで仕組みを分けづらいようでしたら、Backspace での解除がダメになってもよいかと)。
> はぁ、胃が痛い…。
私のほうでも昨夜は「失ってはいけない大切ななにか」がこぼれ落ちてしまったようで、おもに枕のあたりに。 :(
更新版の公開で落ち着かれたはずのところに申し訳ないですが、よろしくお願いします。
p.s. 「行コメント」や「字下げ/字上げ」マクロをブックマークにお手軽対応させるループ処理コードは、数百行の範囲選択状態からだと動作が遅くて、ロールバックを検討中です(PCの新調はまだ検討していません)。
やっぱり全行一括置換の document.selection.Text = document.selection.Text.replace( /^/gm, "hoge" ); のほうが断然速いですね。
更新おつかれさまです!
ここ最近ワークスペースやスクロールバーマーカーなど大きな機能追加が相次いでいて、開発の苦労を思うと頭が下がります。
> Windows Vista は持っていないので、どんな感じで描画されるのかわかりませんし、そもそも動作しないのかもしれません。
Vista でスクロールバーマーカーを試したところ、描画は予想どおり 7 風でした。ポップアップメニューやオプションの動作も一通り問題ないようです。
> Chakra では WSH (WScript) でも Quit メソッドが使用できなくなっている
ぐわあ、これは厄介。ガード節を考え直さないといけませんね…。
MeryWiki に投稿した自作マクロで影響があるのは5つ。「字下げ」「対応する括弧に移動」「行並べ替え」はラベル文と break を使う方法に置き換える予定ですが、「テキスト整形」は仕様変更になりそうです。「連番を挿入」はテキスト整形の連番付加コマンドで自分は事足りると気づいてから使用頻度激減したので作り変えないと…。
>> masme さん
こんばんは、常日頃より「対応する括弧に移動」「行並べ替え」「テキスト整形」「連番を挿入」マクロ+その他のマクロ色々を使わせていただいています(たぶん投稿されているマクロ全部を使っているかも。字下げ/時上げと行コメントは改造させていただいてますが)。
masme さんのマクロは、当方の XP (JScript 5.8) でも十二分に速い処理速度で動いてくれていますから、#language = "JScript" の追加だけでもよいかもしれませんね。 :)
でも、masme さんのコードは参考になるところが多いので、ソースコードの更新も大歓迎だったりします。 XD
>> Kuro さん
とりあえずマクロライブラリのトップに「ソースコードに Quit() がふくまれているマクロが正常に動作しないときは、ソースコードの先頭に #language = "JScript" の1行を追加してください」のような簡単な warningbox を追加するというのはいかがでしょうか?
更新お疲れ様です、どうもありがとうございます
スクロールバーマーカーってなるほどこうなるんですね。てっきりデザイン的にはZenモードのスクロールバーが他のところにも流用されるのだろうと思ってました。ワークスペースの実装までの流れのように実験を兼ねていたのだろうと……
> "それっぽいモノ" を描いています。
えぇ!?それぞれのOS分を全部ってことですよね、ひぃぃ。確か以前すごく大変って言ってたような、覚えがあります。本当にお疲れ様です。なのに本当に"それっぽい"のでKuroさんの苦労が伝わりにくいという……
ぶっちゃけ禅、いえ、なんでもありません、テヘペロ猫の絵が可愛いです
> マクロで Chakra (jscript9.dll) における Quit メソッドをサポート外にした
私が投稿させていただいたマクロの中でQuitメソッドを使っていたものは、40秒で修正して更新しておきました
>> sukemaru さん
ご返信ありがとうございます。
> このままでは、きっと全国3百万人のブックマーク系マクロのファンの皆さんが悲嘆にくれ、Mery 劇場版 ver 2.6.16 につづいて全米さんも号泣です! ;(
なはは…恥ずかしながらマクロのほうは新ブックマークの仕様で作り直すの忘れてましたてへぺろ(・ω<)
> ブックマーク行の行頭から Backspace でブックマークを解除できる仕組みは個人的にとても気に入ったのですが、ひとつ前の行の行末からの Delete でも消えてしまうのは馴染みにくいかんじがします。
ひとつ前の行が改行のみだとわかりづらいかもしれませんが、ひとつ前の行に文字がある状態で行末で Delete していただくと理にかなった仕様だとご理解いただけるかと。
> 個人的な意見としては、Backspace と Delete とで仕組みを分けづらいようでしたら、Backspace での解除がダメになってもよいかと
ご不便をおかけして申し訳ございません。現在の仕様上、対応は困難ですので、文字位置で管理していた従来のブックマークの仕様にロールバックするかたちになると思います。
> 数百行の範囲選択状態からだと動作が遅くて、ロールバックを検討中です
そもそも NextBookmark などのメソッドは内部で行頭からループして検索しているので、そのループをさらにループ処理させることになると遅くなるでしょうね ^^;
>> masme さん
コメントありがとうございます!
ワークスペース機能は「イラネ」と思っていたのですが、実際に使ってみると便利なものですねー。今では、ないと生きていけない身体になってしまいました ^^
> Vista でスクロールバーマーカーを試したところ、描画は予想どおり 7 風でした。ポップアップメニューやオプションの動作も一通り問題ないようです。
おぉ!動作検証ありがとうございます。問題なく表示できていてよかったです。以前は Vista の評価版で検証していたのですが、どこを探しても見当たらなくて…。
> > Chakra では WSH (WScript) でも Quit メソッドが使用できなくなっている
> ぐわあ、これは厄介。ガード節を考え直さないといけませんね…。
予想以上に被害が大きいようですね…。
>> シリル さん
コメントありがとうございます。
> ワークスペースの実装までの流れのように実験を兼ねていたのだろうと……
Zen モードのスクロールバーは自前でスクロールバーを描画する実験でした。Zen モードみたいにスクロールバーの位置に長方形を描くまででも結構大変だったので…。でも、あのデザインのままだとさすがに浮いちゃいますからね ^^;
> えぇ!?それぞれのOS分を全部ってことですよね、ひぃぃ。
そういうわけではありません (w
Windows の機能で、スクロールバーの▼ボタンの絵とか、それを押したときの絵とか、ツマミの絵とかを画像として取得できる API が用意されているんです。
その API を Mery 側から呼べば、OS で使用されているスタイルに準拠した絵柄を画像として取得できるので、その画像を本来スクロールバーが表示されるはずの位置に貼り付けているわけです。(XP はその API がないので自前で塗り塗りしてますが w)
>> sukemaru さん、masme さん、シリル さん
Quit メソッドの件はとりあえず落ち着いてください!タンマです!
記事中に「また、Chakra でのスクリプトの中断方法の情報があればご協力いただけると幸いです」と記載している通り、暫定的な対応です。まだベータ版ですから ^^;
Ver 2.6.15 までは、Chakra で Quit メソッドが使われたときに停止しているかのように見えますが、内部ではスクリプトエンジンがクラッシュして終了処理が行われないまま停止していますのでメモリリークしています。
今回は、取り急ぎ、メモリリークを防ぐためにエラーを発生させて正常に停止させるようにしたというわけです。
さきほど実験していて分かったのですが、Windows のエラーコードは第 3 上位ビットを 1 に設定するとユーザ定義のエラーとして使えるらしくて、記事中に書いているエラーコード 0x800A01BD も第 3 上位ビットを 1 にして 0xA00A01BD としてやることでエラーメッセージの内容はそのままにユーザ定義のエラーとして扱える (JScript エンジンが起こすエラーと区別できる) ようになるっぽいので、Quit メソッドからユーザ定義エラーを発生させてそれを Mery 側でキャッチして、エラーを発生させずに終了させるという妙案を思いつきまして、うまく動きました。
スクリプト側で try ... catch でエラーをキャッチするものを組まれていると、Mery 側のエラー処理よりもそっちのほうが優先されるので catch ブロックには入ってしまいますが、catch ブロックで message を表示させたとしても 0x800A01BD と同様のメッセージが返るだけなので仕様的に誤りではないという言い訳もできるという寸法です。
なるべく早めにその対策版をリリースしますので今しばらくお待ちくださいませ。
しれーっと Ver 2.7.2 に差し替えました。
> なるべく早めにその対策版をリリースしますので今しばらくお待ちくださいませ。
などと言いつつ、土日は Mery のことは忘れて休みたいのでがんばりました (w
> そういうわけではありません (w
盛大に勘違いしてしまいました。すみません
> しれーっと Ver 2.7.2 に差し替えました。
バージョンが進む進む、お疲れ様です。ゆったり土日を過ごして下さい
こんにちは。
前バージョンはZIP版でしたが、今回はインストーラ版を使ってみました。
さっそくタイプライタースクロールの固定位置を確認してみました。
上4分の1から下4分の1までの5つすべてで、22分の20の位置で固定されてしまします(私の4Kディスプレイは、ウィンドウを最大化した場合、22行で表示します)。
中間で固定を選んでもそうなります。
>> 寒蝉 さん
こんにちは。早速お試しいただきありがとうございます。
タイプライタースクロールは本バージョンから仕様変更しまして、常時固定ではなく文字の入力時のみ位置が固定されるようになりました。詳細は当記事の【「タイプライタースクロール」の改善】の節で説明していますのでご確認ください。
更新お疲れさまです。
Undo をグループ化する仕組みの変更、ありがとうございます。影響の出ていたマクロの挙動も元通りになりました。
ウィンドウを分割しているときのサブエディタのスクロールバーマーカーで気になる点がありました。
変更行とブックマークは分割した時点で表示されておらず、マーカーの非表示・表示と切り替えると表示されますが、非分割・分割と切り替えるとまた消えてしまいます。
検索位置は検索をした直後に表示されますが、文字を入力・削除して検索位置として表示される場所が増減したとき、非分割・分割と切り替えないと反映されません。
こんばんは。
入力時もやはり、上4分の1から下4分の1までの5つすべて、同じ位置で固定されます。Zen モードでは丁度下4分の1あたりに固定されますので、私の実用上ではそこまで不便ではありませんが……。私が勘違いしている可能性もあります。
私のトラックボールにはホイールのチルト機能がありますので、Zen モード、横書きで試してみました。
うまく横スクロールできました。
>> ucky さん
コメントありがとうございます。
Undo グループ化の件ではご不便をおかけして申し訳ございませんでした。
> ウィンドウを分割しているときのサブエディタのスクロールバーマーカーで気になる点がありました。
ご報告ありがとうございます。そう言われてみると、完全にウィンドウ分割の存在を忘れておりました ^^;
次のバージョンでは対応しておきます!
>> 寒蝉 さん
こんばんは、ご返信ありがとうございます。
あらら、おかしいですね…。
固定というよりも、文字を入力すると画面の位置が「上4分の1」など設定した値に強制スクロールする、といった動作のはずなのですが。[表示] メニューの [タイプライタースクロール] はオンになっていますでしょうか?
> 私のトラックボールにはホイールのチルト機能がありますので、Zen モード、横書きで試してみました。
> うまく横スクロールできました。
動作検証ありがとうございます。トラックボールは持っていなかったのでとても助かります!
> Quit メソッドの件
いやはや、こちらこそお騒がせしました。Chakra 側の仕様なら解決は難しいのではと身構えましたが、素早い対策ありがとうございます。
こちらとしてもちょっとしたストレステストになって自作マクロのミスを見つけたり得るものはありましたので。
> 内部ではスクリプトエンジンがクラッシュして終了処理が行われないまま停止していますのでメモリリークしています。
Quit を使う「行並べ替え」などを多用しているとコミットサイズが右肩上がりな気がして不安視していたのですが、もしやそのせい?
個人的に Mery は長時間稼働させてますし、メモリリークはふさぐにこしたことないですね。
>> sukemaru さん
自分も先人達のマクロを参考に作り始めたので恐縮です。趣味プログラミングで至らぬことばかり。ステップアップせねば…!
バージョンアップ、お疲れさまでした。そして、ありがとうございます。
年代ものの XP パソコンで、ジョグダイヤルで縦スクロール、[Shift]+ジョグダイヤルで横スクロール、問題なく動作するみたいです。
上記のマクロに関してのやり取りの内容を余り理解していないのですが、既存のマクロについて、修正は必要なくそのまま使っても問題ないということで良いのですよね?
まあ私は Ver 2.7.0 で更新されたような機能を使ったマクロを使っていないような気はしますが。
それと、行数の多いテキストで、スクロールバーのつまみとカーソル位置が合わない・・・見えている範囲内にカーソルがない場合でもつまみ上にカーソル位置のマーカーが表示される場合があるのは、つまみを小さくしすぎないようにするためには仕方ないことなのでしょうね。
あと今回のバージョンアップとは関係ありませんが2点ほど質問。
印刷ダイアログでの[サイズ][行間]の単位は、pt (ポイント (1 pt ≒ 0.35 mm))ですよね?
既定のフォーマットにあわせて印刷するというのは、テキストエディタの領分ではないような気もしますが、例えば、DVD ケースのインデックスカードなどで最初から印刷されているラインに合わせて印刷するとか、A4 用紙の真ん中あたりの行から次のテキストを印刷するとかの場合はそこで調整するのかなと思ったので。
起動直後に、メニューバーの ファイル > 開く で開かれるフォルダは、前回開いてたファイルがあるフォルダと全く関係ないフォルダが開かれるときがありますが、そこで開くフォルダは OS 依存のものですか?
また、マクロ > カスタマイズ > 追加 で開かれるフォルダは、それとはまた違っていたような気もします。(これは勘違いかな?)
更新、ありがとうございます。
「タイプライタースクロール」の仕様変更ですが、スクロールマージンの値を変更せずに以前の中央固定にするオプション設定を [スクロール] 設定に追加する事は可能でしょうか?
v1.6.25 では、[表示]-[タイプライタースクロール] のオン・オフで手軽に素早く通常モードと中央固定を切替えられ、複数タブで作業していても簡単に切替えできて便利でした。
[スクロール] 設定内に「タイプライタースクロールを中央固定で使用する」のようなオプションがあると、[タイプライタースクロール] のオン・オフで利用できるのかな?と思ったもので。
以前の中央固定でタイプライタースクロールを使いたいのですが、スクロールマージンに大きな値を設定する方法だと、[タイプライタースクロール] のオン・オフ関係なく中央固定になり、解除する為には [スクロールマージン] 値を元に戻すしかなく、手軽に切替えとはいかないのです。(ini ファイルを書き換えるよりは [オプション] で設定できるだけでもありがたいのですが)
窓の杜さんに掲載されましたね!スクロールバーマーカーが大々的に宣伝されていていい感じでした。Mery ユーザー増えると嬉しいなー。
Zen モード、搭載されてからしばしば活用させていただいてますが、チラつきがほとんど無くなりましたね。使っていて気持ちがいいです。
> 新ブックマークの仕様で作り直すの忘れてましたてへぺろ(・ω<)
> しれーっと Ver 2.7.2 に差し替えました。
NextBookmark() の改修、ありがとうございます。無事、マクロで固まってしまうことはなくなりました。 :D
PreviousBookmark() と Shift+F2 キーの動作のほうは 2.6 と同じかたちには戻っていないようですが、2.7.2 の動作方式で決定なのでしょうか?
Delete キーでのブックマーク解除については諒解いたしましたので、上手に付き合っていけるようがんばります。 :)
> NextBookmark などのメソッドは内部で行頭からループして検索しているので、そのループをさらにループ処理させることになると遅くなるでしょうね ^^;
NextBookMark メソッドが遅いのではないんです(というか置換系のマクロには NextBookmark の検索処理をまだ入れてないです)。 :)
選択範囲全体を行単位で配列に分割しループ処理で各行ごとに replace してから document.selection.Text = array.join("\n") で一括置換していたものを、ループ処理の中にキャレットと選択範囲を移動させる SetActivePoint(mePosLogical, 1, i+ty) と EndOfLine(true, mePosLogical) を混ぜこんで行単位で document.selection.Text = array[i].replace(reg, hoge) するようにしちゃったものでして。
「BeginUndoGroup で1Undo できることだし、改行をふくめず各行ごとに replace のループ処理すればブックマークも維持できるじゃん」という思いつきだけでやってみたけど「あまりうまくなかったかなぁ?」みたいな次第です。
数百行の範囲選択状態からだと Redraw = false にしてもスクロールバーのつまみがニュルル~っと動いているのがわかる感じ…。 :D
とりあえずはこのまま自分用(非公開)として、Mery のバージョンチェックと設定用変数を設けて既存の速いコードと切り替えできるるようにするか、GetKeyState の修飾キー判定で動作を切り替えるようにするかでお茶を濁しているところです。
でも、replace したかどうかの判定も入れているので実際にどの行が置換されたかを「変更行」マーキングで見分けられる、という意味で 2.7 用のマクロとしては良いかたちかも?
私のマクロの速い遅いはともかく、ブックマーク機能が全体的に安定して堅牢になりましたし、UndoGroup のメソッドとあわせてブックマークを維持できる一括置換ができるようになりましたので、 Mery 2.7 の使い勝手のよさにウキウキ言いながら満喫しております。 X)
>> masme さん
Label: を使った break Label; 文ってループ処理以外でも使えるんですね。勉強になりました。:D
> [表示] メニューの [タイプライタースクロール] はオンになっていますでしょうか?
これでした。
お騒がせしてしまし申し訳ありません。
>> masme さん
ご返信ありがとうございます。
はい、Chakra の仕様ということでまだ対策を模索している段階ですが、Ver 2.7.2 では妙案その 1 を適用してみました。仕様的にこれで大丈夫なのかどうかは怪しいところですが、メモリリークの心配はありませんので。
> Quit を使う「行並べ替え」などを多用しているとコミットサイズが右肩上がりな気がして不安視していたのですが、もしやそのせい?
その可能性が高いと思います。私は、たまたま標準添付の「このファイルから検索」マクロで [空文字] で検索して気づいたのですが、Quit メソッドを呼び出すたびにどんどんメモリリークしてました ^^;
>> 774 さん
コメントありがとうございます。
> 年代ものの XP パソコンで、ジョグダイヤルで縦スクロール、[Shift]+ジョグダイヤルで横スクロール、問題なく動作するみたいです。
動作確認ありがとうございます。例の年代物のヤツですね!ジョグダイヤルで動作するとのことで、だいぶ安心感あります。
> 上記のマクロに関してのやり取りの内容を余り理解していないのですが、既存のマクロについて、修正は必要なくそのまま使っても問題ないということで良いのですよね?
Ver 2.7.0 からのマクロ機能に対するバグフィックスではなく、従来からある Quit() メソッドでメモリの解放漏れに関する不具合が発見されたのでそれに対する修正となっています。既存のマクロについてはなるべく影響を及ぼさないようにしたいと考えていますが、Windows のスクリプトエンジンの仕様上、対応が困難です。
Ver 2.7.2 で実験的な対策を施していますので、様子を見て問題がなければラッキーぐらいの感覚です。ダメな場合は改めてマクロの修正をご案内させていただこうと思います。
> 見えている範囲内にカーソルがない場合でもつまみ上にカーソル位置のマーカーが表示される場合があるのは、つまみを小さくしすぎないようにするためには仕方ないことなのでしょうね。
そうなんです。自前のスクロールバーなのでツマミをすごく小さくしてカーソル位置に合わせることもできるのですが、Windows (たぶん Vista 以降) ではなるべくツマミの最小サイズはコレにしなさいよと決められている値がありますので、それに準拠したための仕様です。開発にあたって他のアプリケーションも参考にしましたが、どれも大雑把ですね ^^;
> 印刷ダイアログでの[サイズ][行間]の単位は、pt (ポイント (1 pt ≒ 0.35 mm))ですよね?
[行間] はミリ単位だと思います。(印刷機能は私が開発した部分ではないので…ソースを調べてみたところ、プリンタの解像度に合わせてミリに変換してるっぽいです)
> 起動直後に、メニューバーの ファイル > 開く で開かれるフォルダは、前回開いてたファイルがあるフォルダと全く関係ないフォルダが開かれるときがありますが、そこで開くフォルダは OS 依存のものですか?
はい、OS 依存のものです。以前は前回開いていたフォルダを記憶するようにしていたのですが、ネットワークフォルダのファイルを開いていて、次に起動したときにネットワークフォルダが切断された状態だと、そこを探しに行ってしばらく固まってしまうというご意見があり、フォルダの記憶は Ver 2.6.14 で廃止しました。
マクロ > カスタマイズ > 追加 で開かれるフォルダも OS 依存で、Mery 側では特に指定していません。うーん、Windows がフォルダを記憶してくれるタイミングの仕様が謎というオチかも。
>> K.Yagi さん
コメントありがとうございます。
> v1.6.25 では、[表示]-[タイプライタースクロール] のオン・オフで手軽に素早く通常モードと中央固定を切替えられ、複数タブで作業していても簡単に切替えできて便利でした。
そう言っていただけると嬉しいです。
タイプライタースクロールは実験的に搭載した機能でしたが、常時中央固定はあまり評判が良くなかったので廃止しました。
スクロールマージンで無理やり中央固定する技は、もしかすると前回のタイプライタースクロールの仕様を気に入ってくれた人が 1 人ぐらいはいるのかも?と思って残した、一応の救済措置です… ^^;
新たな仕様のタイプライタースクロールは、執筆向けのエディタとして人気の高い Scrivener でも採用されている "入力時のみ発動するタイプ" ですが、編集作業の邪魔にもならず執筆を始めるとタイプライタースクロールになるので実用性は高いものだと思いますから、ぜひ使ってみてください。
> 以前の中央固定でタイプライタースクロールを使いたい
常に中央固定だと非常に操作しづらいと思うのですが、用途や、こういった使い方だと便利っていうご意見があれば教えていただけますと、今後の開発の参考にさせていただきたいと思います。
>> yuko さん
> 窓の杜さんに掲載されましたね!スクロールバーマーカーが大々的に宣伝されていていい感じでした。
情報ありがとうございます。ワーオ!小刻みにバージョンをあげたから【“スクロールバーマーカー”をテスト】っていう記事タイトルにしてくれている優しさ。窓の杜の中の人、さすがです。
"開発の着手から実用化にまで2年近くかかったという。"
めっちゃスゴイ機能みたいに書いてくれてますが、2 年間ガッツリ開発してたわけじゃなくて、日曜プログラマーですし、やる気が起きないっていうのでダラダラしてたのも含めてですからね。7zip で圧縮すると 5 日ぐらいになりそう (w
> Zen モード、搭載されてからしばしば活用させていただいてますが、チラつきがほとんど無くなりましたね。使っていて気持ちがいいです。
対策したのは Zen モードへ突入と解除のときだけですけど…、プラシーボ効果!?
>> sukemaru さん
コメントありがとうございます。
> PreviousBookmark() と Shift+F2 キーの動作のほうは 2.6 と同じかたちには戻っていないようですが、2.7.2 の動作方式で決定なのでしょうか?
はい、マクロのほうに影響があるようで申し訳ございませんが、[前の変更行] などの機能と仕様をそろえました。行番号の部分の色付けもそれにともない変更になっており、論理行全体をブックマーク行として認識するようにしました。
> 行単位で document.selection.Text = array[i].replace(reg, hoge) するようにしちゃったものでして。
> 数百行の範囲選択状態からだと Redraw = false にしてもスクロールバーのつまみがニュルル~っと動いているのがわかる感じ…。 :D
なるほど、document.selection.Text を書き換えちゃうと画面の再描画が走るので、行単位となると重いですね。
> 私のマクロの速い遅いはともかく、ブックマーク機能が全体的に安定して堅牢になりましたし、UndoGroup のメソッドとあわせてブックマークを維持できる一括置換ができるようになりましたので、 Mery 2.7 の使い勝手のよさにウキウキ言いながら満喫しております。 X)
ありがとうございます。ブックマークが消えてしまう話題からここまで壮大なことになるとは予想もしていませんでしたが、大きなファイルでもサクサクブックマークが動作するのでニヤリとしています (w
スクロールバーマーカーのほうでバグが出ているので、次はちょっとそっちの世界に行ってきます。
>> 寒蝉 さん
ご返信ありがとうございます。
お手数をおかけして申し訳ございません。今回の仕様変更に伴い、スクロール関連のオプションを整理しまして、タイプライタースクロールの設定の内部名称が変わってるので、前のバージョンでオンにしてる場合は再設定していただく必要がありました。
記事中で記載していたのですが、文章長いですしそこまで読まないですよね…、すみません ^^;
---- 本文より抜粋 ----
タイプライタースクロールの内部名を変更
タイプライタースクロールを使われているかたはオン・オフの状態が消えますのでもう一度 [タイプライタースクロール] をオンにしてくださいね。
----------------------
新しい仕様は入力中のみ発動するタイプですが、使い勝手はいかがでしょうか?以前の仕様を望まれる声もございましたので、今後の改善のため、ご意見を頂けると幸いです。
> はい、マクロのほうに影響があるようで申し訳ございませんが、[前の変更行] などの機能と仕様をそろえました。行番号の部分の色付けもそれにともない変更になっており、論理行全体をブックマーク行として認識するようにしました。
諒解いたしました。「ブックマークジャンプ」マクロも仕様変更して、近々完成です。 :D
> スクロールバーのつまみがニュルル~っと
動くには、Redraw = false の行のアンコメントを忘れてたからでした。でも、行数によっては数秒固まることがあるのをおもうと、スクロールバーで動きが見えるほうが安心感がありますね。 :)
現状ではブックマークを検出・復帰するコードは入れず、設定用変数や GetKeyState で置換方法を切り替えるようにして、低速の「ブックマーク優先モード」と「速度優先」モード(アンドゥしても選択範囲を維持)みたいにしています。
「ブックマーク優先モード」では BeginUndoGroup() メソッドが必用なので Mery のバージョンチェックコードを入れたのですが、Version プロパティの使い方として
if ( Number( editor.Version.replace( /\./g , "" ).slice( 0, 3 ) ) >= 270 ) { ... }
で大丈夫でしょうか? バージョンナンバーの「.」を無視して左から3ケタが 270 以上という判定条件です。
そのうち「インデント/逆インデント」マクロあたりでテスト投稿してみようかとおもっています。
> タイプライタースクロール
新しい仕様だと ↑↓ キーで移動してから入力するさいにエディタがガタっとスクロールするので、視点の移動にとまどいを感じることもありますが、慣れれば平気になるかもしれないので微妙に意見しづらいですね。 :|
以前のキャレット行の位置固定方式にも切り替えできると、壁紙で中央行(固定行)だけハイライトするような遊び方もできてよさそうかも? とおもいます。 :)
> 新たな仕様のタイプライタースクロールは、執筆向けのエディタとして人気の高い Scrivener でも採用されている "入力時のみ発動するタイプ"
なるほど、こちらの方が普通なのですね。
中央固定で使っていたのは、文章の誤字・脱字などを編集する時などで、前後の内容が見えるのでキャレット行での表現で伝わるのかを考えながら作業する場合ですね。
また、検索時にも、検索した結果が常に中央固定で表示されるので視点の移動が少ないので利用していました。
どちらも、どんどん文章を入力する時ではなく、ちまちま修正する時に使っていた事になりますね。
以前は、そんな作業をする時に ini ファイルを書き換えて行っていたのですが、v1.6.25 で [表示]-[タイプライタースクロール] で簡単に切替えできるようになって欲が出た感じです。申し訳ありません。
ご回答、ありがとうございます。
ご回答いただいた件、了解しました。
印刷ダイアログでの単位については、わざわざ調べていただきありがとうございます。
お手数をおかけしました。
> 以前は前回開いていたフォルダを記憶するようにしていた
> フォルダの記憶は Ver 2.6.14 で廃止しました。
ちょっと前からだったのですね。
確か以前は、前回開いていたフォルダが開いていたのになーと思っていましたが、すっきりしました。
欲を言えば、マクロ > カスタマイズ > 追加 で開かれるフォルダは固定しておいて欲しい思いもありますが、マクロはそんなに頻繁に追加するわけではありませんし、不都合が出てしまう人がいることを考えると仕方ないですね。
別件で、オプションダイアログのページ切り替えは、タブでも悪くはありませんが、個人的には今のリスト形式のほうが好きかも。
> 7zip で圧縮すると 5 日ぐらいになりそう (w
ま、まぁ 7zip は圧縮率高いですから…(フォローになってない)
> 対策したのは Zen モードへ突入と解除のときだけですけど…、プラシーボ効果!?
プラシーボ効果はたぶんありますねw
でも、ちょっと時間確認するために、マウスカーソルを最上端に持っていって Zen モードを一瞬だけ解除した際、白画面フラッシュを喰らって「ギャァ!」ってなることが無くなっただけでも、かなりの使い勝手向上だと感じていますw
>> Kuroさん
> Quit メソッドの件はとりあえず落ち着いてください!タンマです!
フライングしてしまい、すみませんでした
手元のマクロをQuit使用版に戻してみてエラーメッセージが表示されないことを確認しました。既存のマクロへの影響を抑える対応をしていただき、ありがとうございます
フライングでWikiへ投稿したQuitを無くした版は、Chakraの仕様ということですし、このままでいいですよね
裏技的なものはわかんないです、すみません
> マクロのほうに影響があるようで申し訳ございませんが、[前の変更行] などの機能と仕様をそろえました
私が投稿したものの中でブックマークを取り扱うマクロはちょこっと修正しておきました
>> masme さん
文字カウントマクロを愛用しています、ありがとうございます
>> sukemaru さん
> 「ブックマークジャンプ」マクロも仕様変更して、近々完成です。 :D
お手数をおかけしました、ご協力ありがとうございます。
> if ( Number( editor.Version.replace( /\./g , "" ).slice( 0, 3 ) ) >= 270 ) { ... }
> で大丈夫でしょうか? バージョンナンバーの「.」を無視して左から3ケタが 270 以上という判定条件です。
私は JavaScript や正規表現はよく分からないので… ^^; slice って何?…なレベルなのですが、editor.Version の仕様としては [ヘルプ] の [バージョン情報] ダイアログに表示されている Version X.X.X の「X.X.X」の部分と同じものが文字列として返ります。
> バージョンナンバーの「.」を無視して左から3ケタが 270 以上という判定条件です。
X の部分は 2 桁になる可能性もありますのでご注意ください。
> 新しい仕様だと ↑↓ キーで移動してから入力するさいにエディタがガタっとスクロールするので、視点の移動にとまどいを感じることもありますが、慣れれば平気になるかもしれないので微妙に意見しづらいですね。 :|
タイプライタースクロール搭載のエディタはいずれもガタッとなりますね (w
タイプライタースクロールはもともと Mac の Ulysses というエディタで実装されたのが始まり (たぶん) のようで、Mac のエディタだと搭載されているものも結構あるのですが Windows ではほとんど馴染みがありませんからね。初めて使った人は「なんじゃこりゃ?」ってなると思います ^^;
> 以前のキャレット行の位置固定方式にも切り替えできると、壁紙で中央行(固定行)だけハイライトするような遊び方もできてよさそうかも? とおもいます。 :)
普通にキャレット行に背景色を設定できるので、あえて壁紙でやる必要性… (w
>> K.Yagi さん
ご返信ありがとうございます。
> なるほど、こちらの方が普通なのですね。
普通というわけではないです。タイプライタースクロールという名前の機能が付いているエディタですと、固定スクロール (常に中央固定) が多いので、Mery も前のバージョンはそれを参考に開発しました。
タイプライタースクロールってそもそもあまり知られていない機能だからでしょうか。イイネっていうご意見はまったくなかったので、これは失敗したなーと思って、今回、根本から見直して執筆用途で使いやすいように作り直したというわけです ^^;
> 中央固定で使っていたのは、文章の誤字・脱字などを編集する時などで、前後の内容が見えるのでキャレット行での表現で伝わるのかを考えながら作業する場合ですね。
なるほど、そういった用途でしたか。
確かに、常時中央固定でキャレット行にハイライトをつけるか、ほかの行を薄くしたりする、いわゆるフォーカスモードという機能が付いているエディタはありますので、若干、需要はあるのかもしれませんね。
あと 2 件ぐらいイイネっていうご意見があれば、再考してみようと思います。
>> 774 さん
ご返信ありがとうございます。
> 印刷ダイアログでの単位については、わざわざ調べていただきありがとうございます。お手数をおかけしました。
いえいえ。ぜひ、Mery で DVD のインデックスカード制作して、成功したらやりかた教えてください ^^
> 不都合が出てしまう人がいることを考えると仕方ないですね。
マクロの追加ダイアログでも同様、ネットワークフォルダ関連ではフリーズの問題がありますので厳しいところですね。
Ver 2.6.14 の仕様変更時にも対策を色々と調査しましたが、ダイアログを開く前に共有ドライブのサーバーに PING を打って生存確認するとか、フォルダを開くダイアログを別スレッドで動作させて一定時間応答がなかったらスレッドを強制終了させるとか、鬼のような対策しかなく、泣く泣くフォルダの記憶の仕様を廃止したのです。
若干、使い勝手は悪くなると思いますが、困っている人のためということでご了承ください。
> 別件で、オプションダイアログのページ切り替えは、タブでも悪くはありませんが、個人的には今のリスト形式のほうが好きかも。
ありがとうございます。最近のアプリケーションはこの形式のものも結構あるので、意外と馴染みやすいかもしれませんね。(これ以上オプションが増やせないので…という言い訳ができなくなったのでツライですがw)
>> yuko さん
> ま、まぁ 7zip は圧縮率高いですから…(フォローになってない)
わははw 最近、ツイッターで TZEditor ていうエディタを開発されているかたを見つけたのですが、4月3日からテキストエディタの開発を始められて、現時点ですでに Mery ぐらいの画面になってて衝撃です。
私の 10 年っていったい…。
> 白画面フラッシュを喰らって「ギャァ!」ってなることが無くなっただけでも、かなりの使い勝手向上だと感じていますw
えぇ…、みなさん結構気にされていたのですね ^^; Mery フラッシュで事故が起きる前に対策できて良かったということにしておきましょう…。
>> シリル さん
ご返信ありがとうございます。
> 手元のマクロをQuit使用版に戻してみてエラーメッセージが表示されないことを確認しました。
おぉ、ちゃんと Quit しているようで安心しました。
> フライングでWikiへ投稿したQuitを無くした版は、Chakraの仕様ということですし、このままでいいですよね
> 裏技的なものはわかんないです、すみません
はい、Quit を無くした版で問題ないです。ちなみに Mery に標準添付のマクロもすべて Quit を無くした版に差し替えています。
一応、裏技的にエラーを出さずに Quit した感じで動くように細工したわけですが、Chakura のプロ?のかたあたりから「それでイイヨ」って言ってもらえないと自信が持てないので、しばらく様子見ですね。
> 私が投稿したものの中でブックマークを取り扱うマクロはちょこっと修正しておきました
お手数をおかけしました、ご対応ありがとうございます。ブックマークの仕様はこれで確定ですのでご安心ください。
☆ 新元号にあわせての正式版を目指しているのでしょうか、もしかして? だとすると2週間切ってる?
えぇっと……。
無責任な物言いですが、がんばってください。
2.7の新機能は、個人的にはあまり使いそうもないので、それ以前のことで。
(エイプリルフール版のコメント欄の方がよかったのかな?)
☆ プロ生ちゃんビーストモードですが、悪魔召喚プログラムの使用を禁止している学校も多いと思われますので、 普及は難しいかも知れません。
個人的には、6月6日あたりに、ひつじの日スペシャルエディションなんかあるといいな、と思います。
文書ごとに変わるように羊さんのワンポイント背景が5~6種類用意されているとうれしい。
「羊を数えて眠る機能」とかあると、徹夜続きの人がよく眠れるんじゃないかな?
☆ いろいろと意見を無視することは大事なことですね。
船頭が多いと、船に「山に登る機能をつけましょう」などとなるようですから。
ZENモードの「作業部分が白でそれ以外は黒」も、やっぱりダメか~。
キリッとすると思うんですけれどねぇ。
>> 道化の真実 さん
コメントありがとうございます。
> ☆ 新元号にあわせての正式版を目指しているのでしょうか、もしかして? だとすると2週間切ってる?
いいえー、今のところ正式版のリリースは考えていません。
ベータ版ですらプレッシャーで胃が痛くなっている状態なので正式版は夢のまた夢ですね。
> 2.7の新機能は、個人的にはあまり使いそうもないので、それ以前のことで。
そんなことおっしゃらず、使ってみてくださいな、スクロールバーマーカー機能、めっちゃ便利ですよー。
> ☆ プロ生ちゃんビーストモードですが、悪魔召喚プログラムの使用を禁止している学校も多いと思われますので、 普及は難しいかも知れません。
最近ですとそういった校則の学校も多いようですね。普通に校舎の裏とかで悪魔召喚できてた頃が懐かしい…。
> ☆ いろいろと意見を無視することは大事なことですね。
> 船頭が多いと、船に「山に登る機能をつけましょう」などとなるようですから。
ひえ…。この船、無料だから乗ってみたけど、客室をタイタニック号みたいにしてください、ぐらいならありそうです。
> ZENモードの「作業部分が白でそれ以外は黒」も、やっぱりダメか~。
うは…。無視しているわけではないのですが、仕様がうまくまとまらないのです。
"それ以外" を黒にするのは簡単なのですが、そこに表示されている文字カウントの色と相性が悪くなるので、そうなると文字カウントの色も個別に指定する機能が…となって、どうも美しくない感じで。
シンプルで美しい妙案がございましたらひとつ、ご意見を頂けると今後の開発の参考にさせていただきたいと思います。
> > 「ブックマークジャンプ」マクロ
includeライブラリに用意された関数メソッドには MacroSettings フォルダのパスを取得するためのものがなかったことに気がついて、「検索ジャンプ」から移植したコードをいろいろ直したりとかしましたが、使いやすいものができたとおもいます。 :)
…1万行越えのファイルとかではテストしてないので、速さについて確信があるわけではないですが。
「文頭/文末にジャンプ」はブックマークが消し飛んでたときの名残で入れたままにしてます。
> X の部分は 2 桁になる可能性もありますのでご注意ください。
そうでした。 2.10.xx になる可能性を失念していました。 :o
バージョンチェックのための組み込み用コードをマクロライブラリの下のほうに追加しておきました。
> 普通にキャレット行に背景色を設定できるので、あえて壁紙でやる必要性… (w
「カーソルのある行」の強調って範囲選択中に OFF になっちゃいますから、明暗でハイライトをつけるなら壁紙じゃないと使いづらくなっちゃいますね。
うちは右寄せで痛キャラを配置した壁紙ですから、「カーソルのある行」の強調が折り返しよりも右までくると楽しくないですし。 :D
壁紙について、「高さをあわせて右寄せ」ができるとエディタのウインドウサイズによらず立ちキャラ(縦長のイラストなど)をピタっと配置できるようになるのですが、ご検討いただけないでしょうか?
> タイプライタースクロールってそもそもあまり知られていない機能だからでしょうか。イイネっていうご意見はまったくなかったので、
以前 ScrollMargin の値を大きくして中央固定する方法が提示されていましたからね。あのときは反響もそこそこありませんでしたっけ?
> マクロ > カスタマイズ > 追加 で開かれるフォルダ
そういえばそんなボタンもありましたね。いつも JS ファイルを開いて「これを選択」で登録しているので忘れていました。
Ctrl+HはBackspaceかなぁって思うオッサンです。
まあメモ帳では置換なのでそれに合わせているのでしょうけど。
>最近、ツイッターで TZEditor ていうエディタを開発されているかたを見つけたのですが、4月3日からテキストエディタの開発を始められて、現時点ですでに Mery ぐらいの画面になってて衝撃です。
>私の 10 年っていったい…。
TZEditor、ブログを見た限り2012年以前から作り続けてらっしゃるみたいですよ。
バージョンアップお疲れ様です。
2.7.3、早速使ってみましたがアウトラインが正常に表示されません。
アウトラインを非表示→表示にすると直ります。
今さらですがZenモード搭載ありがとうございます。
集中執筆モードだしアウトラインは使えないだろうなと思っていたのですが脇にしっかり残ってて嬉しかったです。
更新されていましたか。おつかれさまです。
ver 2.6.15 ~ 2.7.3 で ClipboardData.ClearData(); メソッドが効かなくなっているようです(ver 2.6.14 では効くようでした)。 :(
いつも長文ばかりだったので、手短にご報告申まで。
>> sukemaru さん
> バージョンチェックのための組み込み用コードをマクロライブラリの下のほうに追加しておきました。
マクロライブラリへのご投稿ありがとうございます。
> 「高さをあわせて右寄せ」
ご意見は今後の開発の参考にさせていただきたいと思います。
> あのときは反響もそこそこありませんでしたっけ?
ですです。あれで調子に乗って正式な機能として実装したわけですが、その機能を必要としていない人の目にも触れるようになってしまったので、手厳しいご意見が来るようになったのかもしれません。隠し機能のままにしておけば良かった…。
> ver 2.6.15 ~ 2.7.3 で ClipboardData.ClearData(); メソッドが効かなくなっているようです(ver 2.6.14 では効くようでした)。 :(
検証してみましたが特に問題なく動作しているようです。クリップボードを監視するアプリが常駐しているとか、メモリがいっぱいでクリップボードへのアクセスができなくなっているとか?
>> とおりすがり さん
コメントありがとうございます。
> Ctrl+HはBackspaceかなぁって思うオッサンです。
私も同士です。今までかたくなに拒んできたのですが、時代の流れには逆らえず。
Ctrl+Hで文字が消えちゃう不具合、なんていうご報告もいただくようになりましたので、このたび、長いものに巻かれることにしました。
強制的に Ctrl+H に置き換わるわけではなく、Mery をクリーンインストールした場合の初期値というだけなので、普段お使いの Mery の設定には影響ありませんのでご安心ください。
>> ひつじのひと さん
情報ありがとうございます。
おおー、ホントだ!ブログ発見しました。ときどき Mery のことに触れられていてニヤリです。ツイッターを最近始められただけで、エディタの開発自体はすごく長かったのですね、失礼しました。
>> ピタ さん
早速お試しいただきありがとうございます。
アウトラインが表示されないとのことですが、私の環境 (Windows 10 64bit 1809 + Mery 2.7.3) では現象を再現することができませんでした。
差し支えなければお使いの OS とそのバージョンを教えていただけますでしょうか?
あと、プラグインやマクロを導入されている場合はそれらと競合している可能性もありますので、このあたりでお気づきの点などがございましたらご連絡いただけますと調査の参考にさせていただきたいと思いますので、よろしくお願いいたします。
ああ~もしかしておま環でしたか…。
Win7 64bit、導入してるプラグイン/マクロはアウトラインだけです。
iniを削除し起動しても発生しました。2.7.1、2.7.2では発生せず。
他に足りない情報があればお知らせください。お手間おかけしてすみません。
>> ピタ さん
ご返信ありがとうございます。
Windows 7 で Mery.ini を削除して試してみたら現象、再現できました。
その後、Windows 10 でも Mery.ini を削除したら再現されるようになってました。ちょっと調査して来ます。
あ、心当たり、ありました。
2.7.3 リリースする前にちょっとソースコード綺麗にしたろ!と思って整形してたときに、謎の 1 行があったので「なんやこれ?」と思って削除したヤツが原因でした…。取り急ぎ 2.7.4 を作ります。
「作業部分が白でそれ以外は黒」は、そうですか……。「色の反転」でできるとかいうものでもないのですね。
パズルの最後でピースが埋まらない感じでしょうか?
了解いたしました。とりあえず忘れておきます。ご考慮いただきありがとうございました。
あっ、2.7.4になっている……。
大変そうなのが、目に見えるというかなんというか。
えっと、がんばってください。
更新お疲れさまです。
ウィンドウ分割でのスクロールバーマーカーの問題、修正されているのを確認しました。
迅速な対応、ありがとうございます。
>> 道化の真実 さん
> 「作業部分が白でそれ以外は黒」は、そうですか……。「色の反転」でできるとかいうものでもないのですね。
なるほど、[色の反転] 流用は良い案かもしれないですね。作業部分はそのままで、それ以外のみ反転させる感じで。
あ、でも普通に全体を色の反転したい時とかもありますか。…かといって [色の反転その 2] みたいなメニューを増設するのもカッコ悪いし。Ctrl を押しながら [色の反転] したら外枠だけ反転とかなら可能か…、いや、でもそうなるとその状態を次に起動したときも復元できるすべがないか…、パズル難しいですー
> 大変そうなのが、目に見えるというかなんというか。
2.7 系は、今まで個人的な趣味で作って遊んでた実験的な要素をがっつり取り入れちゃったので、今までのベータ版がすべて正式版に見えるぐらいの勢いでベータ版ですね。
>> ucky さん
動作確認ありがとうございます。
凡ミスというわけではなく、設計自体がミスっていたので、根本から作り直しました。
つきましては、別の問題が発生する可能性もありますので、またお気づきの点などがございましたらよろしくお願いいたします。
アウトライン解析、きちんと動作しました。
迅速な修正ありがとうございます!
[固定スクロール] オプション設定、ありがとうございます。
しかも、固定位置の指定も可能になっていて、嬉しいやら、申し訳ないやら。
対応していただいた kuro さん、お言葉を添えていただいた sukemaru さんに感謝します。
以前タイプライタースクロールの位置について書き込んだ者です。
こちらに書き込んだことを忘れてて今回の更新で思い出しました、すみません;
1/3設定たいへん使いやすくて助かります、ありがとうございました!
> > ver 2.6.15 ~ 2.7.3 で ClipboardData.ClearData(); メソッドが効かなくなっているようです(ver 2.6.14 では効くようでした)。 :(
> 検証してみましたが特に問題なく動作しているようです。クリップボードを監視するアプリが常駐しているとか、メモリがいっぱいでクリップボードへのアクセスができなくなっているとか?
失礼しました。クリップボード監視系の常駐ソフトは使っていませんので、Mery.ini だけ差し替えて、まっさらの Mery.ini から起動したら ClearData() できました。
ふだん遣いの Mery.ini だと他のイベントマクロをすべてはずしても ClearData() できないままですので、どうやらうちの Mery.ini が汚れているのでしょうね。 :(
じっさいには使う機会のないメソッドで、たまたまテストマクロを書いていたときに気づいただけのことですから、あとは放置ということで。
> [固定スクロール] オプション設定、ありがとうございます。
> しかも、固定位置の指定も可能になっていて、嬉しいやら、申し訳ないやら。
わたしからも、ありがとうございます。 :D
わたしは Mery.ini の ScrollMargin 調整で「タイプライタースクロール」を初めて知って以来、キャレット行固定スクロールに慣れてしまいましたので、手軽に通常のスクロールと「タイプライタースクロール」の切り替えができるようになり、とてもうれしいですですね。 :)
> 謎の 1 行
ソースにはある程度コメント書いとけってことですねw
>> ピタ さん
ご確認ありがとうございます。
2.7 系では大幅な仕様変更が発生しており、現行の機能にも影響を及ぼしてしまい申し訳ございません。
またお気づきの点などがございましたら、ご連絡よろしくお願いいたします。
>> K.Yagi さん
早速、ダウンロードしていただきありがとうございます。
[固定スクロール] は 1/3 (1/4) 設定と PageUp, PageDown キーを合わせて使ったときに相性が悪かったのですが、たまたま無難な仕様を思いついたので Ver 2.7.4 で復活させました。
というのも、例えば 1/4 設定だと PageDown で 1/4 ページずつスクロールするほうが理にかなっていて操作的にも都合が良いのですが、半ページずつぐらいならまだしも 1/4 ページずつとなると「なんかスクロール遅くね?」っていう感覚のほうが強くなるので固定スクロールを廃止したのです…。
Ver 2.7.4 では 1/3 や 1/4 でも PageDown で 1 ページスクロールする仕様にしたので操作性は若干落ちますが、タイプライタースクロールを知らない人にも違和感が少ないかと思います。
仕様的にも「PageDown て 1 ページスクロールだもん」と言い訳できますので ^^;
>> 支倉 さん
コメントありがとうございます。
> 1/3設定たいへん使いやすくて助かります、ありがとうございました!
その節はご意見ありがとうございました。
1/3 設定は紆余曲折ありまして Ver 2.7.4 でようやく形になりましたのでグッドタイミングですね ^^
気に入っていただけましたら、更新の少ないこのサイト、小刻みにチェックしてくださいねー (アクセス数稼ぎ w
>> sukemaru さん
> Mery.ini だけ差し替えて、まっさらの Mery.ini から起動したら ClearData() できました。
ClearData() は、Mery の内部としてはクリップボードの内容を消去する 1 行のコードなので不具合は考えづらいですね。
> わたしは Mery.ini の ScrollMargin 調整で「タイプライタースクロール」を初めて知って以来
はじめて Mery.ini の ScrollMargin 調整でタイプライタースクロールの機能を実装したとき (当時はタイプライタースクロールっていう言葉もなかったですが) は評判が良くなかったので長いこと隠し機能のままでした。
ブログ記事でチラっと書いたあたりから人気が…。宣伝効果ってスゴイ (w
>> クリ廃止 さん
私はもっぱらノーコメンテーターですね (w
Mery のエディタエンジンのソース (13431 行) を見てみたら、コメント書いてある行、1 行でした。
自分の場合結果を返すサブルーチンにはほぼ必ず
呼ぶときの式的な物と期待するリターン値に関する何か
程度は付けるようにしてますね
タイプライタースクロールが、いったんオフになっていたんですね。
下1/3固定で使っています。
新しいタイプライタースクロール、いいですね。
WZ Editor 10 では中央固定しかできないので、5段階から選べること自体が嬉しいです(動作は慣れます)。
> Mery のエディタエンジンのソース (13431 行) を見てみたら、コメント書いてある行、1 行でした。
もう時期的に暖かくなってきたのに、なんだか寒気がしましたw
こんにちは。素晴らしいアプリケーションの配布誠にありがとうございます。
昨年度末にこちらを見つけ大ファンになりました!
社内ではインストールNGのためポータブル版が優秀すぎて業務効率がめちゃくちゃ向上しました・・・
1点既にある機能かどうかお聞きしたいのですが、私はメモ以外の活用でスタートアップに
ToDo.txtとして登録しPC起動時にMeryが立ち上がります。
具体的な管理方法は、1行目から□と☑を用いてToDoを管理しており、
☑にしたものは切り取りをして済みと記載された下部の行へ貼り付けし整理しています。
そこで機能やマクロで解決するのかもよくわからないレベルですが
例えば□メールを送る⇒☑メールを送るに変えると
下部に作成した済みの行より下に自動で移動する...要は指定の文字が入力されると
指定した行より下にその行が移動する。そんな機能などってあるのでしょうか。。。
もはや要望にもなっているかもです。。。
最近ファンになったものです さん
いらっしゃいませ、Mery を愛でる会へ。
(会の目的は、「もう Mery 開発したくないよーやだよー」って言っている Kuro さんをなだめることですw)
ご要望のお話、タスク管理をしっかり仕組み化されているようで素晴らしいですね。
それとご要望の機能についてですが、マクロで対応するのがいいでしょうねー。
勉強がてらご自身で作ってみるのがオススメですが、助言を求めてフォーラムに書き込んでみるのもありかもです。
Mery ユーザーには sukemaru さんを始め、マクロの達人がたくさんいらっしゃいますので、タイミングが良ければ色々と教えてもらえると思いますよ。
>> 最近ファンになったものです さん
マクロライブラリの「Yes/No マクロ(TrueとFalse を切り替える)」をいじって、ご要望のかたちに近いことができるようにしてみました。
「□」の左側にカーソルを置くか「□」だけを範囲選択してマクロを実行すると、「☑」マークに書き換えて、その行を文書の末尾に移動できるようにしました(ハズです)。
まだ当方での動作テストは十分にしておりませんので、ToDo リストの複製文書などで動作確認をしてからご利用ください。→ 不具合や、こまかい仕様についてなにかありましたら、フォーラムに「Yes/No マクロ」の新規スレッドを立てていただければ、できる範囲で対応いたします。
https://www.haijin-boys.com/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:YES%EF%BC%8FNO_%E3%83%9E%E3%82%AF%E3%83%AD%EF%BC%88ToDo%EF%BC%89.zip
ZIP 書庫内の「Yes/No マクロ」の変換ワードのリストは、ふだん私が使っているままになっています。不必要な変換ワードがありましたら、該当する行をご自分で削除してご利用ください。私のばあい、「Yes/No マクロ」にショートカットキーを割りふって、そのショートカットキーを「Ctrl+中クリック」にも登録して活用しています。
>> yuko さん
私、まだ自分でマクロを作りだして半年ぐらいのペーペーなのですが…。 :(
勉強がてらネタがあれば(自分でなんとかできそうであれば)作って投稿みたいなかんじで、完成しているか怪しいものも多かったりして(ツッコミ待ちのつもりなのですが、スルーされているのか? あのままでいいのか?)。一応、マクロライブラリに投稿したものは自分でも使っているものなのでそれなりに大丈夫だとはおもっていますが、けっこう不安。 …どうなんでしょうね。 :|
>> Kuro さん
おかげさまで ver 2.7.x にして以来、ブックマーク機能は絶好調です!
雑文やメモ、いろいろの文書、むだに行数の多いマクロなどなど、ブックマークを付けまくって「読み直し」や「書き換え禁止」の切り替えをやっていますが、いままでのところ、トラブルはいっさいありません。 :D
>> クリ廃止 さん
ありますねー。業務システムとかだと社内規約でコメントの書き方まで決められてたりしますね。
「/* 私は反対したけどXX先輩がやれと言ったのでパラメータを変更しました */」とか愚痴っぽく書かれてるコメントがあったり (w
>> 寒蝉 さん
ご返信ありがとうございます。
気に入っていただけて良かったです。Ver 2.7.4 では [固定スクロール] も追加しましたので、入力時のみではなく常に固定する従来の方式も使用できるようになっていますよー。
>> yuko さん
> もう時期的に暖かくなってきたのに、なんだか寒気がしましたw
わはー・・・。やらかしておいて言うのもアレですが、20 年ぐらい Delphi やってたらもうソースコード自体がコメントみたいなものですからね (w
謎の 1 行を消して問題が発生したことは、Mery 史上、両手両足で数えられるぐらいしかありませんのでご安心ください。
>> 最近ファンになったものです さん
Mery をお試しいただきありがとうございます。
> 社内ではインストールNGのためポータブル版が優秀すぎて業務効率がめちゃくちゃ向上しました・・・
その点は Mery の弱点ですね。フリーソフトの使用が禁止されている職場もありますし、Mery はデジタル署名なしの野良アプリなのでさらに立場が弱いです…。
> 指定した行より下にその行が移動する。そんな機能などってあるのでしょうか。。。
> もはや要望にもなっているかもです。。。
標準機能としては用意されていませんが、マクロを使えば割と簡単に実現できると思います。
>> yuko さん
> いらっしゃいませ、Mery を愛でる会へ。
> (会の目的は、「もう Mery 開発したくないよーやだよー」って言っている Kuro さんをなだめることですw)
せっかくの新規ユーザさんがドン引きしてしまうじゃないですかー。
100 人のコアなユーザさんより 1 人の初心者さんが大切です。(コアなユーザさん、広告踏まないんだもん)
>> sukemaru さん
ご協力ありがとうございます。
私もちょっとマクロの作成に挑戦してみていたのですが、先を越されてしまいましたねー、もう出来てる!すごっ。
> おかげさまで ver 2.7.x にして以来、ブックマーク機能は絶好調です!
ありがとうございます。
ちょっと更新ラッシュだったので、一休みしまして、ようやく少しばかりやる気が戻ってまいりました。
>> Kuro さん
> もう出来てる!
既存の「Yes/No マクロ」と、ブックマーク対応が面倒で棚上げになってる「行を上下に移動」用のコードの一部を流用しましたので。
ブックマーク対応を考えると SelectLine(); Delete(); ではなく、行末文字から前の行の行末改行 \n までを Delete() するほうがよさそうなのですが、文書の1行目から移動させる場合の例外処理も必要になりますよね。それにまだ、実際の ToDo リストが1件1行なのか分かりませんし、「済み/☑...」のグループの先頭に移動させるなら「済み」の行の文字列をもらえないと一つめの「☑」を探さねばならなくなりますが、一つめの「☑」がない場合の例外処理とか…。あと、日付の自動入力とかも? :(
いずれにせよ BeginUndoGroup() のおかげで、変更行の強調を最小限もおさえられるようになりますね。
「マクロの記録」でつくったようなコードでも「1Undo」できるというのは Mery 2.7 のキモですし、でっかい選択範囲をつくって var a = s.Text.split("\n"); a.push(a.shift()); s.Text = a.join("\n"); とやってしまうと、スクロールバーが広範囲に緑のマーカーで染まるので、行番号の強調表示以上に目立ったり…。 X(
今回の更新の目玉機能の「スクロールバー」「BeginUndoGroup()」「ブックマーク」、すべて XP ユーザーの私でも使えるものなのでとても嬉しいです(ToDo 対応 Yes/No マクロは、バージョンチェックの組みこみコードと「1Undo」メソッドのベータテストにもなってます)。:D
>> Kuro さん
お休み中のところ(?)失礼します。
マクロの SetBookmark() メソッドですが、折り返しのあるドキュメントだと、(行の表示方法が論理座標/表示座標いずれの場合も)折り返しの回数分ずつ下にズレているようなかんじで、折り返し以降の行で正しい行にブックマークを設定できないようです。
ClearBookmark() メソッドは、論理行/表示行によらずアクティブ行に作用しているようです。
ご報告まで。
編集モードの強調表示の設定が適用される範囲が2行までみたいですが、
もう少し増やせないでしょうか?
小説のセリフ部分(「~」)を強調したりとかするので。
>> あああ さん
横から失礼します。
多分、フォーラムのトピック『長い文字列の検索について』で説明されているような事情があるみたいです。
https://www.haijin-boys.com/discussions/4313#discussion-4315
編集モードを使っているのでしたら "強調文字列" の正規表現ではなく、"タグ 開始/終了" で鉤カッコの 「 と 」 とを指定すれば、折り返しのある長い行や改行をふくむ長いセリフでも強調できますね(色は決め打ちになってしまいますが)。
残念ながら「マーカー」の正規表現だと、検索文字列や強調文字列とおなじ制限をうけるようです。
>>sukemaruさん
情報ありがとうございます。
この制限をユーザの任意の数値(行数)に設定できるようにして、
動作速度を取るか見た目を取るか選択できるようにするというのは、
やはり手間がかかるものなのでしょうか。
>> sukemaru さん
ご報告ありがとうございます。マクロの SetBookmark() メソッドの件は現象を確認いたしましたので次のバージョンでは修正しておこうと思います。
ClearBookmark() メソッドはカレント行のブックマークを解除するのが正しい動作のはずですが、全消しの動作になってしまってますね ^^; こちらも修正しておきます。
>> あああ さん
>> sukemaru さん
編集モードの強調表示は、前の行を 1 行までと、次の行を 80 文字までという制限があります。
もともとプログラミングにおける予約語のように短い単語で、なおかつ出現回数の多いものを高速に色分けすることに重点を置いた設計になっているので、文章に対しての色付けは苦手ですね。
> 動作速度を取るか見た目を取るか選択できるようにするというのは、やはり手間がかかるものなのでしょうか。
手間というわけではないのですが、仕様上、行をまたぐ色分けは動作速度への影響が非常に大きいので、実験・検証を経て実用レベルの動作速度が保証できる値として上記の数値を導きました。
フォーラムに同様の話題がありまして、マーカー機能 (または強調表示) の正規表現を使用して小説のセリフの部分を色分けする方法も記載されていますのでご参考になるかもしれません。
https://www.haijin-boys.com/discussions/3252
フォーラムに記載されてる方法でできました。ありがとうございます。
令和元年、おめでとうございます
新時代もどうぞよろしくお願いいたします
マーカーバーの、それぞれのマーカーの横に個数を表示するというのは可能でしょうか?
ファイル中の単語の数を数えるのに便利かなぁ、と。
ついでに自動マーカーの分も表示されると嬉しいです。
マーカーバーに無理でも、下のステータスバーに自動マーカーの分だけでもあると助かります。
カーソルに追従するモードだと、逐次全文検索になって厳しいのかな。
「カーソル位置の単語を取得する」がOFFで、テキスト選択時のみでもいいです。
>> あ さん
> 下のステータスバーに自動マーカーの分だけでもあると助かります。
とりあえず、アクティブな文書(タブ)内で「選択範囲の文字列」がヒットした件数をステータスバー表示するマクロを用意してみました。よろしければ「選択範囲が変更されたとき」のイベントマクロにしてお試しください。
『検索ヒット数表示(選択文字列) - MeryWiki』
https://www.haijin-boys.com/wiki/%E6%A4%9C%E7%B4%A2%E3%83%92%E3%83%83%E3%83%88%E6%95%B0%E8%A1%A8%E7%A4%BA%EF%BC%88%E9%81%B8%E6%8A%9E%E6%96%87%E5%AD%97%E5%88%97%EF%BC%89
どうもこんにちは
いつもMeryを愛用させていただいています
1つ要望なんですがツールバーの標準バーを複数行にできないでしょうか
もしくはマクロバーをアイコンだけの表示にできないでしょうか
私はツールバーをよく使うんですが使いたいものが多すぎてツールバーが横に長くなりすぎてしまい
使い勝手が悪く感じてどうすればいいのか悩んでいます
特にマクロをツールバーに置こうとすると、マクロバーだとアイコンのみの表示ができず、テキストのせいで横に長くなってしまいます
かと言って標準バーに全て載せてしまうと結局標準バーが長くなりすぎてしまいます
なのでマクロバーをアイコンのみの表示にできたり、標準バーが複数行にできれば嬉しいです
>> あ さん
> マーカーバーの、それぞれのマーカーの横に個数を表示するというのは可能でしょうか?
文字入力などでテキストの内容が変わるたびに、全文検索をマーカーの数だけ発動しなければならないので、動作速度的に厳しいと思います。
マーカーではなく、通常の検索において個数を表示するオプションぐらいなら可能かもしれません。1 回の検索でも全文検索では動作速度が遅いので、常に表示はできないため、オプションというかたちになりますが…。
>> 寒天 さん
こんにちは、ご愛用いただきありがとうございます。
ツールバーですが、調査してみましたところ複数行にすることは技術的には可能でしたが、他のツールバーとの高さが合わなくなるので見た目が非常に汚くなってしまいます。(となりにマクロバーとかがあったら、マクロバーも一緒に縦長になってしまう)
複数行ではなく、Microsoft の Office 系のソフトのようにツールバーをいくつでも増やせる仕組みを作ることができれば良いのですが、あれだけの仕組みを開発するのはなかなか大変そうです。
マクロバーのほうですが、一応、マクロの先頭に、
#title=""
↑ こんな感じでタイトルを空で指定してやると、ラベルの部分は表示されなくなります。
でも、完全にツールバーのボタンと同じ形にはならず、ちょっと横に余白ができます。
これは Windows のツールバーの仕様上、ラベルの表示・非表示はボタンごとではなく、ツールバー単位でしか設定できないため、マクロバーはラベル表示のツールバーにしているためです。
あとはプラグインからですとツールバーを作ることもできますが、現状ですとこれぐらいしか対策がない状態ですのでご了承くださいませ。
>> 寒天 さん
Kuro さんの説明にあるように、現状ではマクロの1行目で #title="hoge" を指定する方法しかありませんが、#title="" だとマクロメニューをドロップダウンしたときのラベル(マクロ名)がなくなってしまうので、半角2~5文字程度か全角1~3文字程度のショートネームを残すことをおすすめします。
私のばあい、幅 970px 程度のウインドウ上のマクロバーに、アイコン「中」サイズの(24px)、フォントサイズ 8pt でマクロを 16 コ表示させています。
https://i.imgur.com/VizaHVo.png
https://imgur.com/a/EY69ST8
「標準っていったい、うごごご……」
と言われてしまいそうなほど変わり果ててしまった私の標準ツールバーです
使わないものは積極的に消しちゃうのがオススメです
>> sukemaru さん
うは、ほんとですね、#title="" にするとメニューが空っぽに…。
おー、こうして見るとマクロバーも違和感なく溶け込んでますね。
一応、私もツールバーを複数行にする実験を貼っておきます。
https://imgur.com/a/SYYVZRb
一見、「お?」と思いますが、マーカーバーがビローンって伸びてて、まぁそうなるよね。っていう感じです。
あと、CoolBar (ツールバーを載せてる可変式のコンテナ) との相性が悪いようで、なんかサイズがおかしくなったらウィンドウのサイズをちょっといじると元に戻るっていうちょっと暴れ馬ですね。Windows はこういうとこのツメが甘いから困ります。
>> シリル さん
オリジナリティ高いですね!もはや Mery 感ない (w
「禅」は渋いですねー。あと、筋斗雲のような絵も。
私はツールバーはほとんど使わないのでデフォルトです。
(小声で黙読してくださーい)
(ええっと、スクロールバーマーカーは、少ししてようやく使い方がわかりました。
それまでは、こんなバーコードみたいなので何かわかるなんて、プログラマーの方はすごいなー。
穿孔テープを目で追って読めるむかしのトクサツの博士みたい、と思っていました。
Chromeを使っていなくって頭のわるい、私のような人のために、
もうちょっとだけ詳しく使い方を書いていただけたら幸いです)
(そのスクロールバーマーカー。
特に変更行についてですが、これ、該当箇所をアウトラインにも反映させられると、
マーカーの箇所に何が書いてあるのかが大まかにわかっていいかもしれませんね。
さらに同じく変更行については、
前回終了時のマーカーの状態を保存してくれると、次に書くときに役に立つかも知れません。
↑また、山に登る船を作らせるようなことを書いてしまいました)
(現在「Mery」さんは、ウィンドウズの個人設定で背景を黒にし、デスクトップアイコンを非表示にして、
黒中白の画面にして使っています(疑似ZENモード?)。
ZENモードでも時計ぐらい欲しいという方は、この方がいいかも?)
>> 道化の真実 さん
コメントありがとうございます。
スクロールバーマーカーの件、なるべく丁寧に説明を書いたつもりだったのですが、Chrome を使ってるのが前提みたいな感じだったのでわかりづらかったですね、申し訳ございません。
> さらに同じく変更行については、前回終了時のマーカーの状態を保存してくれると、次に書くときに役に立つかも知れません。
変更行は、前回終了時を保存していくとどんどん変更行がたまっていきますし、一括置換などをした場合はすべて変更行になったりしますので、実用性を考えると毎回リセットぐらいの感覚が妥当かなと思います。
そういった理由でデフォルトではスクロールバーマーカーの [変更行] オプションはオフにしています。
アウトライン機能は本体とは分離したプラグインとなっており、そちらに変更行を通知させる機能はないので現状では対応できませんが、プラグイン側でそういった情報にアクセスできる手段を用意する、といったことであれば前向きに検討していきたいと思います。
でも、検索位置のマーカーは、Chrome とかで初めて見ましたが「これ考えた人、天才か!」って思うぐらいに便利なのでご活用いただけると幸いです。
> また、山に登る船を作らせるようなことを書いてしまいました
スクロールバーマーカーは F1 の車に耕運機の機能を付けるような感じでした。やはり動作速度がちょっと…。
Zen モード、ちょっと遊びすぎましたね ^^; 正式版では Zen モードやスクロールバーマーカーなどの実験的な要素は廃止するかもしれませんが、F1 の車目指してがんばります (w
> うは、ほんとですね、#title="" にするとメニューが空っぽに…。
私も以前ツールバー増設をお願いする前に試しました。さすがに「これはない」な、と。 LOL
> おー、こうして見るとマクロバーも違和感なく溶け込んでますね。
Google 先生にご提供いただいている素材と Kuro さんのマテリアルカラーアイコンの配色をベースに作っていますから。アイコンサイズと文字数とのぎりぎりなバランスで、クラシックテーマのグレー背景とカラーアイコンがあんばいよく馴染んでるかんじ。
> 一応、私もツールバーを複数行にする実験を貼っておきます。
おお。もしかしてその先を期待してもいいのでしょうか?
メインツールバーはそのままで、右側に置いたマーカーバーも多段表示になれば、マーカーにアイテムをたくさん登録しておいても ON/OFF しやすくなりますね。
ToDoリスト用の「Yes/Noマクロ」改造版を SetBookmark() なしでブックマークを保持できるように修正しておきました。
「1件 = 1行」のToDoリスト用としての更新はこれでおしまい。
あ、「最近のフォーラム」の表示が変わっていますね。いろいろなトピックを参照しやすくなって、とてもいいです。 :)
>> sukemaru さん
マクロありがとうございます。
希望通りのことが出来るようになりました。
>> yuko さん
Mery を愛でる会へ。笑いました!
ここのコメント欄の方々とても温かい方々ですね...
ありがとうございます!
>> sukemaru さん
コメントがあるとも思わず投稿していましたが、、
まさか作成していただけるとは;;
ありがとうございます!!導入してみてみます!!
感謝の言葉しかありません・・・・
>> あ さん
ご希望どおりとのことで、よかったです。
もし一致判定を「大文字/小文字の区別なし」にしたいようでしたら、「var word =」と「var dText =」の右辺を以下のように変えてください(数万行とかの大きなドキュメントだと処理が遅くなるかもしれませんが ← うちのローエンドXPの場合)。
var word = document.selection.Text.toLowerCase();
var dText = document.Text.toLowerCase();
「.toLowerCase()」を追加すると小文字同士での比較になり、「大文字/小文字の区別なし」での一致判定になります。
また、Mery の検索メソッドとおなじ数え方(「あああああ」のなかに「ああ」が4件)にしたいようでしたら
pos += len; → pos += 1;
>> 最近ファンになったものです さん
サポートが必要でしたら、フォーラムに「Yes/No マクロ」のトピック(新しいディスカッション)を立ててください。可能なかぎりで対応いたします。
>> sukemaru さん
> おお。もしかしてその先を期待してもいいのでしょうか?
ダメでしたー ^^;
その後、ツールバーの折り返し表示の実装に向けて研究してみたのですが、やはり CoolBar とは相性が悪いようでバグが多すぎて実用化は無理でした。
> > おお。もしかしてその先を期待してもいいのでしょうか?
> ダメでしたー ^^;
ヤダー 。・゚・(つД`)・゚・。ウエエェェン
うーん、残念ではありますが、研究おつかれさまでした。 :D
>> sukemaru さん
バグバグなのは Windows か Delphi の仕様っぽいので私の力では無理っぽいですねー。バグバグなの前提で、自己責任でどうぞというかたちで隠しオプションで実装なら可能ですが…。ちゃんとした多段ツールバーを開発するとなるとあと何年かかることやら。
> あ、「最近のフォーラム」の表示が変わっていますね。いろいろなトピックを参照しやすくなって、とてもいいです。 :)
気づいていただきありがとうございます。
ひとつのトピックがのびると他が埋もれてしまっていたので、トピック単位でグループ化して、最新の投稿のみ取ってくるようにしてみました。
マーカーバーの上でホイール回すと次のマーカー/前のマーカーに移動できるといいなぁ。
>> sukemaru さん
同一視のコードありがとうございます。
使い分けてみようかと思います。
>> Kuro さん
バグバグなのが前提で「自己責任の隠しオプション」でも、実装されてしまうと、あとあと「バグをなんとかして!」っていう要望が出てきそうですよね。
結局は「それも何とかしてしまう」のが仏の Kuro さんなのですが、ときには「やっぱり廃止」にしてしまう鬼の Kuro さんだったり。 XD
>> あ さん
片方のコードはイベントマクロにしておいて、もう片方のコードはショートカットキーなどから起動する普通のマクロとして、別々に登録してしまえばいいかもしれませんね。
アウトラインの表示/非表示で、ウインドウサイズを変更するようなことは可能でしょうか?
左にアウトラインを表示する際は、ウインドウ幅をそのぶん左に拡張するという感じに。
(編集領域のサイズを変更しない)
現状ではなく今後の可能性という意味で。
他のウインドウの内容を見ながらの編集時に、上に重なっているアウトライン部分を
一時的に非表示にしたりするのですが、そのたびにウインドウサイズの再調整が
発生して少し面倒に感じてます。(ウインドウの位置や編集領域のサイズはあまりいじりたくない)
#ウインドウの端から出たり引っ込んだりするMacの「ドロワー」という仕組みはよくできていたなと思う。
>> あ さん
アウトライン機能ですが、ウィンドウサイズを変更してしまうとディスプレイの外にウィンドウが飛び出してしまったりするケースも出てきますので標準の仕様として実装するのは難しいと思います。
でも、アウトライン機能は本体とは分離されたプラグインとなっており、誰でもカスタマイズできるようにオープンソースで公開していますので、Windows 的な動作を無視すれば実装は可能だと思いますので、誰かが作ってくれる可能性はありますね。
ホント、Mac ってよくできてますね。ウィンドウの端から出たり引っ込んだりするのは、Windows だとあんなになめらかにニュル~ってできないと思います。
ウインドウを最大化して終了させると、次回起動時に「ウインドウの一とサイズを復元」が効かず、最大サイズで起動するのは仕様でしょうか?
Win8.1 64bit、Mery2.7.4 ポータブル 64bitです。
>> 口内炎痛い さん
仕様です。
最大サイズで起動した場合でもタイトルバーの右上のロをクリックするか、タイトルバーをダブルクリックすることで、前回終了前で、最大化する直前のウィンドウサイズを覚えてて、そのサイズに戻すことができる仕様となっております。
コメ欄汚し失礼します。
聞いてばかりじゃ何なので、簡易の計算式電卓マクロを作ってみました。
電卓起動したり計算メモアプリの「iMemo」と行き来するのが面倒だったし。
(あれはあれでいろいろ便利ですが、普段は簡単な計算しかしないので)
GoogleDriveに置いときます。
https://drive.google.com/open?id=1TzDMyCk6SnNgETnx2ys2dBPXvTXsulL4
マクロライブラリに「簡易数式計算」というのがありましたが、求めているのと違ったので作りました。
対応しているのは四則演算のみですが、家計簿や買い物リストを選択して合計を求めたりできます。
選択されてない場合はカーソル行が対象です。↓みたいな感じです。「=36500」が計算結果。
>食費(((外食費を含む))) 30,000円
>水道代 (3,500円)
>電気代 3,000円
=36500
不要なものをバッサリ削ってかなり強引に計算式に仕立て上げます。
カンマ(,)は金額の桁区切りを想定しているので、CSVなどでは計算がおかしくなります。
空白やタブや", "(カンマ+空白)で区切られていれば加算扱いにしてます。
演算子なしや行間は基本的に足し算です。括弧のペアなどの整合性チェックはしてません。
(空括弧等はむしろ積極的に削ってます。evalでエラー出るし)
計算結果は選択位置の後ろに挿入します。リードオンリーのファイルとかは考えてません。
(挿入時の挙動はちょっとクセあります)
アウトプットバーに整形前後のカッコの数と整形後の計算式と結果を出してます。
計算結果をクリップボードに入れる処理も書いてますがコメントアウトしてます。
美しくないコードですが、動いているのでまあいいかなと。
(多重カッコの入れ子状態な式のテストは不十分かも。余計な処理してるような気がしてならない)
#テストで、演算子やカッコ祭りのこれのソース食わせてたら整形処理で泥沼にハマった……
#ちゃんとした式を前提にすればもっとスッキリするだろうけど、なんとなくやっちゃった。
#ソース食わせたら式や結果はどうなるかな~?って(意味がない)。反省はしてる。
作者様
仕様とのことで承知しました。
ただ、この仕様のメリットというか意図はなんなのでしょう。
素人考えでアレなのですが、どんなサイズで終わろうと、「ウインドウの位置とサイズを復元」を有効にしていれば、次は指定したサイズと場所で立ち上がって来たほうが便利に思ったのですが。
>> 口内炎痛い さん さん
メリットとしましては、ノート PC などの小さい画面起動する際に、常に最大化した状態で起動したいというご要望がありまして、Ver 2.4.7.6369 にて、そのご要望に応えたかたちとなっています。
意図としましては、Windows のアプリケーションですと、エクスプローラをはじめ、ワードパッドや Edge、Google Chrome、テキストエディタですとサク〇エディタさん Visual Studio Code など、多くの有名アプリケーションがウィンドウ位置の保存・復元において最大化状態も復元されますので、それらに準拠した仕様にした次第でございます。
作者様
お答えいただきありがとうございました。
それなら「常に最大で起動する」みたいなオプションがあればええやん!とも思ったのですが、
そのあたりは当時のやり取りを見ていない勝手な言い分でしょうし、やはり素人考えなのでしょうね。
ともあれ、ありがとうございました。
エディタ下部の文字コードの指定に関してなのですが、文字コードの指定を変更した際に、
強制的に読み込み直す(解釈し直す)のではなく、「保存時にその文字コードで保存する」
というような動作のほうが使い勝手がいいのではないのかなと思います。
変更時に再読込み(再解釈)をするかのダイアログを表示するのでもいいですね。
現状では、文字コードを変更したい場合、「名前をつけて保存」で指定するか、
「全コピー」→「文字コード指定変更」→「全選択・貼り付け」の操作が必要になり、
どちらの手段でも手間がかかるので。
文字コードの自動認識に失敗して手動で指定する場合よりも、
文字コードの変更のほうが頻度は高いかなと。
>> 口内炎痛い さん
ご返信ありがとうございます。
そうですね、オプション項目を増やすというのも一理あると思います。頂いたご意見は今後の開発の参考にさせていただきたいと思います。
>> あ さん
ご意見ありがとうございます。
文字コードの変更はテキストファイルの内容が壊れてしまうケースもございます。(例えば UTF8 から シフト JIS など)
手軽に変更できることも状況によっては便利かもしれませんが、通常は読み込み時か保存時にしか変更することがないと思いますので、なるべく安全な仕様のほうが好ましいですね。
> 文字コードの自動認識に失敗して手動で指定する場合よりも、
> 文字コードの変更のほうが頻度は高いかなと。
これはどういったケースで自動認識に失敗しているのかによりますが、もしかして "シフト JIS" のファイルを読み込んでも "UTF-8 (BOM無し)" になってしまうというお話だったりしますか?(その場合は、また別の対策が用意されていますので)
オプション→キーボード→編集の「改行を挿入」と「行の分割」の違いがよくわかりません。
「改行を削除」と「行の結合」は微妙に挙動が違うみたいですが。
>> あ さん
ヘルプに書いてあるとおりですが、[改行を挿入] は折り返しを設定している位置に改行を挿入します。[行の分割] は選択した範囲内の行末の空白を削除して行を分割します。行末の空白を除去するかどうかの違いです。
>> Kuro さん
(色んな所で)昔は文字コードの判定に失敗して手動で指定する機会も割とあったけど、
最近はそういう機会もないので「手動で指定して再解釈」は滅多に使わない機能かなぁと。
(SJISはともかくEUCなファイルを扱う機会もほぼ無くなった)
それよりは手軽に保存時の文字コード指定できたほうが嬉しいな、と。
ダブルクリックしないとメニューが出てこないので、うっかり変えてしまうということはまずないかと。
例えば、GoogleIMEの辞書ファイル(テキスト、UTF-8)をMS-IME形式(UTF-16LE)に変換するときに、
文字コードの変更もそこから指定できると便利だな、と。
あと、他のエディタの話になりますが、文字コードの変更を行った際に、
文書中の保存できない文字の一覧を表示してくれるものがありました。
(MacのCotEditorってやつですが)
>> Kuro さん
空白の処理の違いなんですね。ありがとうございます。
>> あ さん
Windows のテキストエディタですと、秀丸エディタさんや、サクラエディタさんはステータスバーから読み直しなしで文字コードの変更ができるようなので試してみられてはいかがでしょうか?
CotEditor は使ったことはありませんが、Mac ではとても有名なソフトですよね、名前はよく耳にします。
Mery ですと、一覧表示とまでは行きませんが、一応、文書中の保存できない文字を強調表示し、保存できない文字が含まれている旨を知らせる注意が表示される機能はございます。
ご意見は今後の開発の参考にさせていただきたいと思います。
>> あ さん
> 文字コードを変更したい場合、「名前をつけて保存」で指定するか、
> 「全コピー」→「文字コード指定変更」→「全選択・貼り付け」の操作が必要
それはマクロでやればいいのでは? とおもいましたが、編集モードのメニューをマクロ化するのはかなり大変なんですよね。 :|
でも、おもしろそうなので既存の「ファイルを読み直す・開きなおす」マクロを改造して組み込んでみました。 :)
https://www.haijin-boys.com/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E7%9B%B4%E3%81%99%E3%83%BB%E9%96%8B%E3%81%8D%E3%81%AA%E3%81%8A%E3%81%99%E3%80%90%E6%94%B9%E9%80%A0%E7%89%88%E3%80%91.zip
> 「全コピー」→「文字コード指定変更」→「全選択・貼り付け」
の追加機能は設定変数で true にしてありますので、右クリックメニュー/ショートカットキー/ツールバーアイコンなどに登録して使ってみてください。
追加機能以外の部分はマクロライブラリ版と変わりありませんので、仕様上の制限事項などは Mery Wiki のマクロライブラリを参照してください。
『ファイルを読み直す・開きなおす - MeryWiki』
https://www.haijin-boys.com/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E7%9B%B4%E3%81%99%E3%83%BB%E9%96%8B%E3%81%8D%E3%81%AA%E3%81%8A%E3%81%99
バグ、不具合などありましたら、(フォーラムに新規トピックを立てて)教えていただければ幸いです。
たびたびすみません。
前のコメントの「ファイルを読み直す・開きなおす」マクロ(wiki版/改造版)は自家用に手を入れていたものにあわせて更新しました。どちらからダウンロードしてもマクロの機能は同じにしてありますが、改造版のリンクのものは「追加オプション」の設定値が有効の状態になっています(マクロライブラリ版ではデフォルトで無効)。
個人的にエンコード指定の読み直しよりも最近閉じたファイルを開く用で使うことが多いので、「自家用」の JS ファイルも同梱しました。
>> あ さん
自作マクロの共有化は Mery Wiki のマクロライブラリがよろしいかと。
「実験的マクロ・練習マクロなど」のカテゴリも作りましたので、マニアックなマクロや自家用マクロでも大丈夫ですよ。 :)
あと、要望の提示やマクロの投稿の告知は、コメント欄ではなくフォーラムのほうがよいかとおもいます…(← オマエモナー)。
いつもお疲れ様です。
https://i.gyazo.com/754b8ad8250fb3194d8843abae6936de.png
私はこんな感じですね。
不具合なのかわからないけど・・・念の為。
https://i.gyazo.com/5097ed792bce88301368d9d2a0493055.png
https://i.gyazo.com/37d5db2902deb1bbdbf457085433c3e6.png
※書いている文章で発見しました。
https://i.gyazo.com/fc1fbf80434947205766f795c0793b7d.png
検証用でもやってみた結果。
検証用ファイル置いときますね。
つ https://1drv.ms/t/s!AoVo1fIhFFTCkVu7mp4jokoZMXd9
普通に開くとちゃんとした位置で開かれるんですが、謎ですね。
なお、今のスクロール設定
https://i.gyazo.com/071aa31ec0e9d51b987ed40212fffc47.png
何でしょうかねこれ・・・。(;||)
行間でもないみたいで、謎の現象に見舞われております。
スペック
Windows10 home 64bit
使用しているエディタ:https://i.gyazo.com/60f4d9e54ed0c1e9329221f6ac456051.png
32BITの使ってたのでそれが原因・・・?
追記
普通に開くとこうなります。
https://i.gyazo.com/002da256f08227b302b8b0c748fb1b13.png
バグなのかわかりません(;||)
>> 荒野炎神 さん
コメントありがとうございます。
スクロールしたときにエディタ部分の下に余白ができるということでしょうか?
これはオーバースクロールという機能で、最終行を超えてスクロールできる機能です。
ここに関連する設定はスクロール設定画面の [オーバースクロール] と、[スクロールマージン] という項目ですが、タイプライタースクロールをオンにしている場合はそれらの値に関係なくオーバースクロールする仕様となっています。
コメントありがとうございます。
仕様だったのですね。すみませんでした。