フォーラムの返信を作成しました。
- 作成者投稿
- snow参加者
開発お疲れ様です。
追加の要望になります。入力位置でペーストすると、その時点で送信されてしまうのが少し使いづらいです。
別のアプリにあるテキストを追加編集してから使いたい場合に、アクションが多くなります。
そこで、この操作がただのペーストになればと思っています。たとえば「ドラえもん」(改行なし)とコピーした状態でペーストすると、現状では単に「ドラえもん」が送信されます。
送信されないようになれば、「の身長を教えて」などと追記して送信することができる、ということです。
※ただ、コピーし損じて「ラえもん」になっていることもありますし、やはり最初の要望である「編集可能」も欲しいと思います。自動送信が良いユーザもいらっしゃるでしょうから、オプションで選べる方が良いかも知れません。
ご検討いただければ幸いです。snow参加者あれば有効に使う人は結構いそうだとは思います…が、テキストエディタとしてどうか、必要なのかという観点ですと、何か「違う」と感じる、ということでした。
ただ、それはあくまで私の感覚です(江村様ほどではありませんが、技術者の端くれとしても)。
江村様が、コンセプトの範囲内だ、ウリにできそうな機能だ、技術的に面白い…等々思われる可能性がないとは、もちろん私には言えません。To 江村様。
トピックとの関係度は低いですが、この件でいくつか検証している間に感じたことです。
通常モード・非箱形選択で行選択して 挿入>番号 を実行すると連番が選択文字列を上書きしますが、選択行の先頭に連番を挿入する方が自然で便利なように思います。
(箱形選択→各行の行頭を選択→挿入>番号→箱形選択解除 が 行選択→挿入>番号 で実現できる)snow参加者こんにちは。
単純な連番はともかく、後から変更された分もとなると、「テキストエディタ」に求めるには無理がある機能だと感じます。
通常はHTMLかマークダウンあたりがふさわしいような。最後の最後で良ければオートリピートで可能でしょうが、リアルタイムにこのようなことをしたい場合は、やはりご自分でマクロを書いてイベント呼び出しするしかないと思います。
snow参加者ご対応ありがとうございました。
はい、こちらで問題ありません。snow参加者横から失礼します、それはマクロのツールバーとどう違うのでしょうか。
snow参加者こんにちは。
私もちょっと気になりましたので。
「AIとチャット」というタイトル行も、内容の割に領域を使ってしまうので要らないかなあ…とか。
デザイン指針には反するのかも知れませんが、いっそ別ウィンドウというのも手かも知れませんね。snow参加者行コメント(// ……)は先のマクロでもうまく動いているのですが、行の途中から選択している場合のブロックコメント(/* …… */ )の解除がうまく行かない、ということです。
と、先のマクロで一箇所誤りに気付きました。
× startsWith(t, h.CommentBegin) && endsWith(t, h.CommentEnd);
○ f = startsWith(t, h.CommentBegin) && endsWith(t, h.CommentEnd);
まあ、どのみち動いていないのですが。snow参加者コメントはエディタの持つ「状態」ではなく、その場で調べて判断しているため、「今どっちか」が取れないということかも知れませんね。
ちょっと考えてみたのですが、行全体を選択しないパターンの「コメント解除」がうまく行っていません。
「コメント」後の選択範囲を見ると、コメント開始は含まれず、コメント終了は含まれているので、元々ちょっと特殊ですね。function startsWith(a, b) { return b && a.substring(0, b.length) == b; } function endsWith(a, b) { return a.substring(a.length - b.length) == b; } function trim(a) { return a.replace(/^[\s]+|[\s]$/g, ''); } var t = document.selection.Text; if (!t) { document.selection.SelectLine(); t = document.selection.Text; } trim(t); var h = document.Config.Highlight; var f = startsWith(t, h.LineComment1) || startsWith(t, h.LineComment2); if (!f) { startsWith(t, h.CommentBegin) && endsWith(t, h.CommentEnd); } editor.ExecuteCommandByID(f ? 4372 : 4371);
snow参加者失礼しました。OpenFile(file, 0, eeOpenDetectUTF8 | eeOpenAllowNewWindow) ですね…。
snow参加者大きなお世話かも知れませんが、それっぽいものをマクロで書いてみたので貼り付けておきます。
1:
!function() { var file = new ActiveXObject("WScript.Shell").SpecialFolders("Desktop") + "\\filelist.txt"; var name = document.FullName; editor.NewFile(); var p = !1; if (!shell.FileExists(file)) { editor.NewFile(); } else { editor.OpenFile(file, 0, eeOpenDetectUTF8 | eeOpenAllowNewWindow); p = document.selection.Find(name, eeFindAround); document.selection.EndOfDocument(); } if (!p) { document.writeln(name); document.Save(file); } document.close(); }();
2:
!function() { var file = new ActiveXObject("WScript.Shell").SpecialFolders("Desktop") + "\\filelist.txt"; if (!shell.FileExists(file)) return; editor.OpenFile(file, 0, eeOpenDetectUTF8 | eeOpenAllowNewWindow); document.selection.SelectAll(); var t = document.selection.Text; document.close(); var files = t.split('\n'); menu = CreatePopupMenu(); for (var i = 0, k; i < files.length; ++i) { if (!(k = files[i])) continue; menu.Add(k.substring(k.lastIndexOf('\\') + 1), i + 1); } r = menu.Track(0); if (!r) return; editor.OpenFile(files[--r], 0, eeOpenDetectUTF8); // document.selection.insertFromFile(files[--r], 0, eeOpenDetectUTF8); }();
・良く使うファイルを開き、1でデスクトップのファイルに書き出しておきます(手で入れても構いません)。
・2を使うと、ポップアップメニューでファイル名の一覧が出ます。
・削除と移動はありませんが、デスクトップのテキストファイルなので何とでもなるでしょう…。snow参加者なぜかeeOpenAllowNewWindowを指定しても新しいウィンドウが開かれずにそのままロードしてしまうことがあるようで、現状は
editor.NewFile(); if (shell.FileExists(file)) { editor.OpenFile(file, eeOpenDetectUTF8); }
とすることにしました。
環境に起因する問題なのかは分かりません。snow参加者ありがとうございました。
まさに、shell.FileExists()が、求めていたものでした。snow参加者ご返信ありがとうございます。
すみません、前提条件が漏れていました。
新規作成するかどうかを確認せずにNewFile()へ流したいのです。
よろしくお願いいたします。snow参加者ご返信ありがとうございます。
すみません、ということは私が「今すぐインストール」というチップを見落として、終了させているようです。
次回注意して見てみます。snow参加者エンジニアの端くれとして言わせていただくと、このような場合は関数を作って一連のコードをまとめることを提案します。
snow参加者横から済みませんが…。
JavaScriptの言語仕様によるもののため、エディタに求めることではないと感じました。それから「編集」は私も良く使っていますが、反映されなかったことはないと思います。
(実際、たった今この投稿で試しました)snow参加者ご返信ありがとうございます。
お問い合わせ感謝いたします。待つことにします。「すべての現役ブラウザでvalid」は確かに正確ではありませんが、種類ではなく利用率で言えばかなり100%に近いのではないでしょうか。
IE11を考慮しつつ更新を続けているサイトも、もう少ないのでは…と。snow参加者横から失礼します。
もしかしたら、マクロオプションの「既定でマクロを非同期に実行する」のチェックを外すと期待どおり動くのではないかと思いました。
このオプション自体、元々私が「なぜかうまく動かない」系の質問をさせていただいたのが大元で、生まれたものと記憶しています。snow参加者ご返信ありがとうございました。
確認しました。一番上のプルダウンだったのですね。
確認不足でした。snow参加者ご返信ありがとうございます。
すみません、確かにそれでフリーズは防げるのですが。
チェック自体をなくしたいのではなく、チェック中にUIがフリーズするのをなくしたいだけなのです。
もしかするとアプリのレイヤーではどうすることもできないのかも知れませんが。よろしくお願いいたします。
snow参加者開発お疲れ様です。
私も、同じところが気になっていました(ベータ版は末尾が901~で、それ以外が正式版と認識しています)。
最新でいくと、一度22_2.9xxにすると、22_2.yには更新できず、22_3.0を待つ必要があるのですよね。特定の機能追加や修正の確認で、βを入れることが多いのではないでしょうか。
それが反映された正式版(末尾.0以外)のリリースを受けて、チェックを外して戻したいです。
つまり、数字の大小ではなくリリース日判断になればと。
その時点の変更がすべて次の正式版(末尾.0以外)に反映されるとは限りませんが、それは末尾.0でもあり得ると思います。snow参加者ご対応ありがとうございました。
さっそくv22.2.915をインストールして確認してみたところ、期待どおりジャンプしてくれました。
とくにファイル検索は便利な機能だけに、ジャンプしてくれるのとしてくれないのとでは、個人的にかなり違いを感じます。
改めて、スピーディな対応ありがとうございました。snow参加者ご返信ありがとうございます。
はい、そこのチェックはずっと入れたままです。
念のためいったん外して再度チェックしてみたのですが、状況は変わりませんでした。snow参加者ご対応ありがとうございました。
解消を確認しました。snow参加者1つ目。
var k = 10; // 上端からの行数 Window.scrollTo(1, document.selection.GetActivePointY(eePosView) - k + 1);
2つ目。
document.write(document.Config.Highlight.CommentBegin); // コメント開始 document.write("コメント"); document.write(document.Config.Highlight.CommentEnd); // コメント終了
こういう感じでしょうか。
- 作成者投稿