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

1 件の投稿を表示中 (合計 347 個)
  • 作成者
    投稿
  • 返信先: コメントとコメント解除のトグル #31644
    snow
    参加者

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

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

    返信先: コメントとコメント解除のトグル #31627
    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) ですね…。

    返信先: よく使うファイルのお気に入りの機能 #31607
    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()へ流したいのです。
    よろしくお願いいたします。

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

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

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

    snow
    参加者

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

    snow
    参加者

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

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

    返信先: CSSネストへの対応 #31501
    snow
    参加者

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

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

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

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

    返信先: 保存確認を省きたい #31335
    snow
    参加者

    ご返信ありがとうございました。
    確認しました。一番上のプルダウンだったのですね。
    確認不足でした。

    返信先: 更新チェック? #31152
    snow
    参加者

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

    すみません、確かにそれでフリーズは防げるのですが。
    チェック自体をなくしたいのではなく、チェック中にUIがフリーズするのをなくしたいだけなのです。
    もしかするとアプリのレイヤーではどうすることもできないのかも知れませんが。

    よろしくお願いいたします。

    返信先: ベータ版から正式版に戻す機能 #31095
    snow
    参加者

    開発お疲れ様です。

    私も、同じところが気になっていました(ベータ版は末尾が901~で、それ以外が正式版と認識しています)。
    最新でいくと、一度22_2.9xxにすると、22_2.yには更新できず、22_3.0を待つ必要があるのですよね。

    特定の機能追加や修正の確認で、βを入れることが多いのではないでしょうか。
    それが反映された正式版(末尾.0以外)のリリースを受けて、チェックを外して戻したいです。
    つまり、数字の大小ではなくリリース日判断になればと。
    その時点の変更がすべて次の正式版(末尾.0以外)に反映されるとは限りませんが、それは末尾.0でもあり得ると思います。

    snow
    参加者

    ご対応ありがとうございました。
    さっそくv22.2.915をインストールして確認してみたところ、期待どおりジャンプしてくれました。
    とくにファイル検索は便利な機能だけに、ジャンプしてくれるのとしてくれないのとでは、個人的にかなり違いを感じます。
    改めて、スピーディな対応ありがとうございました。

    snow
    参加者

    ご返信ありがとうございます。
    はい、そこのチェックはずっと入れたままです。
    念のためいったん外して再度チェックしてみたのですが、状況は変わりませんでした。

    返信先: バリデータの不具合が再発しています #31010
    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); // コメント終了
    

    こういう感じでしょうか。

    返信先: ファイル再表示時の縦位置 #30645
    snow
    参加者

    理解しました。末尾の行が最下段より上に行かないようにする設定なのですね。
    解決した模様です。ありがとうございました。

    返信先: 以下のようなヘンな動きがあります。 #30644
    snow
    参加者

    こんにちは。
    手でctrl+A→ctrl+C→ctrl+V→ctrl+Vしても同じだと思います。
    一回目のPaste()は、選択範囲に対してペースト(結果、選択範囲が外れてカーソルが後ろに動く)していますね。
    一回目のPaste()の代わりにCharRight()が正しいのではないでしょうか?

    状況を読み取れていなかったら済みません。

    返信先: ファイル再表示時の縦位置 #30642
    snow
    参加者

    ご返信ありがとうございます。
    オンになっていましたので、オフにしてみました。
    ちょっとすぐには何が違うのか解らなかったのですが、様子を見てみます。

    返信先: 数値を3桁で区切るには? #30630
    snow
    参加者

    失礼しました、ベタで書いたためにシングルクオートが化けているようです。

    s=document.selection;a=s.text.split('.');a[0]=a[0].replace(/(\d)(?=(\d{3})+(?!\d))/g,'$1,');s.text=a.join('.');
    
    返信先: 数値を3桁で区切るには? #30625
    snow
    参加者

    置換で正規表現を使えば可能ですが、同じことをするマクロを書いてみました。
    s=document.selection;a=s.text.split(‘.’);a[0]=a[0].replace(/(\d)(?=(\d{3})+(?!\d))/g,’$1,’);s.text=a.join(‘.’);

    snow
    参加者

    ご返信ありがとうございます。
    v21.7.911でも発生しました。

    すみません、手順は判りません。
    判っているのは、ファイルからの検索で一覧をダブルクリックして開いたファイルで発生することがある、ということのみです。

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