From c19a227d935006a107a3f7ab96c319c37bf499a0 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 30 Nov 2016 14:04:52 +0100 Subject: [PATCH] [java] better way of stopping comment injection lookup in compiled code (IDEA-164741) --- .../inject/java/JavaLanguageInjectionSupport.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/JavaLanguageInjectionSupport.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/JavaLanguageInjectionSupport.java index c679b90b43d6..5fc66d549846 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/JavaLanguageInjectionSupport.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/inject/java/JavaLanguageInjectionSupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ import com.intellij.openapi.ui.DialogBuilder; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.util.Factory; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.patterns.PsiJavaPatterns; import com.intellij.patterns.compiler.PatternCompiler; @@ -98,6 +99,13 @@ public class JavaLanguageInjectionSupport extends AbstractLanguageInjectionSuppo return host instanceof PsiLiteralExpression; } + @Nullable + @Override + public BaseInjection findCommentInjection(@NotNull PsiElement host, @Nullable Ref commentRef) { + boolean compiled = host.getContainingFile().getOriginalFile() instanceof PsiCompiledFile; + return compiled ? null : super.findCommentInjection(host, commentRef); + } + public boolean addInjectionInPlace(final Language language, final PsiLanguageInjectionHost psiElement) { if (!isMine(psiElement)) return false; return doInjectInJava(psiElement.getProject(), psiElement, psiElement, language.getID());