フォーラムの返信を作成しました。

1 件の投稿を表示中 (合計 360 個)
  • 作成者
    投稿
  • 返信先: AIとチャットを編集可能にして欲しい #32212
    snow
    Participant

    少し間が空いてしまいましたが、時折感じていることをもう一つ思い出したので、ここに追記させていただきます。
    「AIとチャット」は、他のAI連携機能と異なり、「ウィンドウ」という扱いのために、表示メニューから開きます。
    ただ、しばらく開いていないとまず(他のAI連携機能のある)ツールメニューをクリックして、「あれ?ここじゃないんだっけ?」と思ってしまうのです。
    「AI連携」という扱いで、再整理あるいはどちらからでも開けるようにできないでしょうか。

    snow
    Participant

    更新し、その後何度か試してみていますが、遅延はまったく感じられません。
    劇的に高速化されたと感じます。
    ご対応ありがとうございました。

    snow
    Participant

    お疲れ様です。
    あまり変えていないと思うのですが、ちょっと既定の設定が不明なので、上からすべて書き出してみます。
    スタイル:タブ
    アイコン:なし
    挿入位置:一番右
    閉じた時:最近仕様したタブをアクティブにする
    外部から開く時:最近使ったウィンドウの新しいタブ
    幅:ファイル名に合わせる
    入りきらない時:列を増やす
    閉じるボタン:無し
    書き換え禁止アイコンを表示:チェックあり
    アクティブなタブを強調表示:チェックあり

    返信先: マクロのサイズを小さくする方法 #32184
    snow
    Participant

    以下余談になります。
    プログラマが短い記述を好むかどうかはそれぞれですが、短くするにしても、意味が読み取れる記述であることが前提です。
    そのため、

    ∈タロウ∮太郎∋
    

    このように記述できる仕様を、プログラマは考えません。
    「EmEditorのマクロファイルを生成するツール(マクロ)」を作るしかないでしょう。

    返信先: マクロのサイズを小さくする方法 #32183
    snow
    Participant

    失礼しました。読み解けるものと思っていました。
    エディタではなくJavaScriptの話になりますので、それはご自身で勉強されてはどうでしょうか。

    batch_list=editor.filters;
    function F(a,b){
      batch_list.AddReplace(a,b,eeFindReplaceRegExp|eeFindReplaceCase,0);
    }
    F("タロウ","太郎");
    F("ハナコ","花子");
    document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);
    

    あるいはこのような形も考えられるでしょうか。この形であればfunctionを別ファイルに追い出して#includeするという手もあるでしょうか(複数のマクロから呼ぶかどうか、ご質問からでは判りませんが)。

    function F(){
      batch_list=editor.filters;
      for(a=arguments,i=0;i<a.length;i+=2)
        batch_list.AddReplace(a[i],a[i+1],eeFindReplaceRegExp|eeFindReplaceCase,0);
      return batch_list;
    }
    batch_list=F(
      "タロウ","太郎",
      "ハナコ","花子"
    );
    document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);
    
    返信先: マクロのサイズを小さくする方法 #32172
    snow
    Participant

    こんにちは。
    以前も同様の回答をした記憶がありますが、JavaScriptの文法内で短縮するのではだめなんでしょうか?
    例えば

    batch_list=~
    function F(a,b){
        batch_list.AddReplace(a,b,eeFindReplaceRegExp | eeFindReplaceCase,0);
    }
    F(“タロウ”,”太郎”);
    F(“ハナコ”,”花子”);
    ~
    返信先: AIとチャットを編集可能にして欲しい #32153
    snow
    Participant

    ご対応ありがとうございます。ペースト時に送信されないことを確認しました。
    最初の、文字編集についても、可能でしたらよろしくお願いいたします。
    現状カーソル位置と編集位置が合っていないため、やはり違和感を覚えます。

    返信先: AIとチャットを編集可能にして欲しい #32022
    snow
    Participant

    開発お疲れ様です。
    追加の要望になります。

    入力位置でペーストすると、その時点で送信されてしまうのが少し使いづらいです。
    別のアプリにあるテキストを追加編集してから使いたい場合に、アクションが多くなります。
    そこで、この操作がただのペーストになればと思っています。

    たとえば「ドラえもん」(改行なし)とコピーした状態でペーストすると、現状では単に「ドラえもん」が送信されます。
    送信されないようになれば、「の身長を教えて」などと追記して送信することができる、ということです。
    ※ただ、コピーし損じて「ラえもん」になっていることもありますし、やはり最初の要望である「編集可能」も欲しいと思います。

    自動送信が良いユーザもいらっしゃるでしょうから、オプションで選べる方が良いかも知れません。
    ご検討いただければ幸いです。

    snow
    Participant

    あれば有効に使う人は結構いそうだとは思います…が、テキストエディタとしてどうか、必要なのかという観点ですと、何か「違う」と感じる、ということでした。

    ただ、それはあくまで私の感覚です(江村様ほどではありませんが、技術者の端くれとしても)。
    江村様が、コンセプトの範囲内だ、ウリにできそうな機能だ、技術的に面白い…等々思われる可能性がないとは、もちろん私には言えません。

    To 江村様。
    トピックとの関係度は低いですが、この件でいくつか検証している間に感じたことです。
    通常モード・非箱形選択で行選択して 挿入>番号 を実行すると連番が選択文字列を上書きしますが、選択行の先頭に連番を挿入する方が自然で便利なように思います。
    (箱形選択→各行の行頭を選択→挿入>番号→箱形選択解除 が 行選択→挿入>番号 で実現できる)

    snow
    Participant

    こんにちは。

    単純な連番はともかく、後から変更された分もとなると、「テキストエディタ」に求めるには無理がある機能だと感じます。
    通常はHTMLかマークダウンあたりがふさわしいような。

    最後の最後で良ければオートリピートで可能でしょうが、リアルタイムにこのようなことをしたい場合は、やはりご自分でマクロを書いてイベント呼び出しするしかないと思います。

    返信先: ファイル検索中断時の挙動について #31819
    snow
    Participant

    ご対応ありがとうございました。
    はい、こちらで問題ありません。

    返信先: 一般操作の踏襲で劇的な改善を希望 #31818
    snow
    Participant

    横から失礼します、それはマクロのツールバーとどう違うのでしょうか。

    返信先: [AIとチャット] バーを狭くしてほしい #31817
    snow
    Participant

    こんにちは。
    私もちょっと気になりましたので。
    「AIとチャット」というタイトル行も、内容の割に領域を使ってしまうので要らないかなあ…とか。
    デザイン指針には反するのかも知れませんが、いっそ別ウィンドウというのも手かも知れませんね。

    返信先: コメントとコメント解除のトグル #31644
    snow
    Participant

    行コメント(// ……)は先のマクロでもうまく動いているのですが、行の途中から選択している場合のブロックコメント(/* …… */ )の解除がうまく行かない、ということです。

    と、先のマクロで一箇所誤りに気付きました。
    × startsWith(t, h.CommentBegin) && endsWith(t, h.CommentEnd);
    ○ f = startsWith(t, h.CommentBegin) && endsWith(t, h.CommentEnd);
    まあ、どのみち動いていないのですが。

    返信先: コメントとコメント解除のトグル #31627
    snow
    Participant

    コメントはエディタの持つ「状態」ではなく、その場で調べて判断しているため、「今どっちか」が取れないということかも知れませんね。
    ちょっと考えてみたのですが、行全体を選択しないパターンの「コメント解除」がうまく行っていません。
    「コメント」後の選択範囲を見ると、コメント開始は含まれず、コメント終了は含まれているので、元々ちょっと特殊ですね。

    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
    Participant

    失礼しました。OpenFile(file, 0, eeOpenDetectUTF8 | eeOpenAllowNewWindow) ですね…。

    返信先: よく使うファイルのお気に入りの機能 #31607
    snow
    Participant

    大きなお世話かも知れませんが、それっぽいものをマクロで書いてみたので貼り付けておきます。

    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
    Participant

    なぜかeeOpenAllowNewWindowを指定しても新しいウィンドウが開かれずにそのままロードしてしまうことがあるようで、現状は

    editor.NewFile();
    if (shell.FileExists(file)) {
        editor.OpenFile(file, eeOpenDetectUTF8);
    }
    

    とすることにしました。
    環境に起因する問題なのかは分かりません。

    snow
    Participant

    ありがとうございました。
    まさに、shell.FileExists()が、求めていたものでした。

    snow
    Participant

    ご返信ありがとうございます。

    すみません、前提条件が漏れていました。
    新規作成するかどうかを確認せずにNewFile()へ流したいのです。
    よろしくお願いいたします。

    返信先: 自動更新の適用について #31543
    snow
    Participant

    ご返信ありがとうございます。

    すみません、ということは私が「今すぐインストール」というチップを見落として、終了させているようです。
    次回注意して見てみます。

    snow
    Participant

    エンジニアの端くれとして言わせていただくと、このような場合は関数を作って一連のコードをまとめることを提案します。

    snow
    Participant

    横から済みませんが…。
    JavaScriptの言語仕様によるもののため、エディタに求めることではないと感じました。

    それから「編集」は私も良く使っていますが、反映されなかったことはないと思います。
    (実際、たった今この投稿で試しました)

    返信先: CSSネストへの対応 #31501
    snow
    Participant

    ご返信ありがとうございます。
    お問い合わせ感謝いたします。待つことにします。

    「すべての現役ブラウザでvalid」は確かに正確ではありませんが、種類ではなく利用率で言えばかなり100%に近いのではないでしょうか。
    IE11を考慮しつつ更新を続けているサイトも、もう少ないのでは…と。

    返信先: document.selection.Collapse();で解除されない #31483
    snow
    Participant

    横から失礼します。
    もしかしたら、マクロオプションの「既定でマクロを非同期に実行する」のチェックを外すと期待どおり動くのではないかと思いました。
    このオプション自体、元々私が「なぜかうまく動かない」系の質問をさせていただいたのが大元で、生まれたものと記憶しています。

1 件の投稿を表示中 (合計 360 個)