1. ホーム
  2. intellij-idea

[解決済み] Intellij IDEA 13: リファクタリングコメントと文字列を無効にする方法を教えてください。

2023-03-20 01:40:23

質問

public class KV<K, V> {
    public K key;
    public V value;
    public KV(K key, V value) {
        this.key = key;
        this.value = value;
    } 
}

クラス変数のリファクタリングを行おうとしています。 value をリファクタリングしようとしているのですが、これはその場で行われます。つまり、ダイアログはポップアップしません。私がエンターキーを押すと、コメントやその他を含め、プロジェクト全体にわたってリファクタリングを試みます。

<%--<link href="<c:url value="../core/core.css" />" />--%>

を .jsp ファイルに追加します。これは、リファクタリングするにはあまりに賢い方法です。 コメント をリファクタリングするのは、あまりにも賢いやり方です。これはしばしば多くのバグリスクを引き起こし、Java 環境でのリファクタリングはもはや安全ではありません。

Intellij 12でも同じようなことが起こっていました。真面目な話、Intellijが安全でないと思われるものを推奨したり、それが同じものであるかどうかわからないときに推奨したりするのは必要ありません

リファクタリングを除外することはできますが、毎回5つの"提案"を評価する時間はないです。ほとんどの場合、私はエンターキーを押すだけで、おっと物事はリファクタリングされています。

リファクタリングは、Java環境において、.jsファイル内のものを時々置き換えようとするときにも大きな問題です。真剣に、これは止めなければなりません。

ポップアップダイアログがないと、"検索文字列" のチェックを外すことができません。たとえそれがチェックされていたとしても、Intellij は 決して 特に現在のファイルの外側にある場合は、デフォルトでサジェストを含めます。同様にリファクタリングを推奨することもできますが、デフォルトで除外されるべきです。つまり、デフォルトですべてを破壊するのではなく、オプトインの機能であるべきです。

これは、最近のいわゆるquot;smart" Intellijリファクタリングにおける深刻なユーザーエクスペリエンスの問題です。JS ファイルをリファクタリングするとき、コメントまたは文字列のために Java ファイルを検索したくありません! その逆も同様です。また、その逆も同様です。

安全が第一です! 自分が何をしているかを知っている開発者は、必要であれば自分で文字列を検索します。動的言語環境では、Intellijを使用することは不可能です。なぜなら、頻繁に、そして明確なパターンなしに、時にはリファクタリングが行われ、時にはプロジェクト全体やその他を変えてしまうことがあるからです。

特に動的言語では、quot;このファイルまたは100%推論されたときのみリファクタリングする!"というオプションがあるはずです。静的な言語では、ファイル外のコメントや文字列を探そうともしないはずです。

公開するつもりはなかったのですが、私はこの問題を 2 年以上前にバグトラッカーで提起しましたが、誰も注意を払いませんでした。

EDIT

やりすぎかもと思われる方のために、今試してみました。

このクラスで。

public class KV<K, V> {
    public K key;
    public V val;
    public KV(K key, V val) {
        this.key = key;
        this.val = val;
    }
}

そして、これを を追加します。 Javaクラスなど。

public class CoreConfig {
    String abc = "kv.val";
    String def = "somethingElse.val";
}

リファクタリングする場合 KV.val をリファクタリングすると、以下のような推奨事項が表示されます。これは災害からのENTERであり、一度に1つずつ評価し除外しなければならないものです。労力はかかるし、ただただ迷惑で危険です。まるで、誰かがSTOP!と叫んでいるようなものです。そして、1分後には何もなく、フラストレーションと1000字の長いエッセイ(これ)になってしまうのです。

マジでこんな危険な挙動を無効にする方法あるんですか!?また、これがデフォルトでオンになっている理由はあるのでしょうか?

EDIT 20200706

2020年もクソは続く。 https://youtrack.jetbrains.com/issue/IDEA-245370

どのように解決するのですか?

を押すと Shift + F6 (Refactor Rename) を2回押すと、ダイアログが開き、quot;コメントと文字列の検索を無効にすることができます"