mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
[core] WEB-72084 Migrate inspections to use new InjectedLanguageManager API.
GitOrigin-RevId: 7d69c938b84f5f77df3d881a2f3d3e4adba0202f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5d569bb187
commit
874b64c36f
@@ -3,13 +3,13 @@ package org.intellij.lang.regexp.inspection;
|
||||
|
||||
import com.intellij.codeInspection.LocalInspectionTool;
|
||||
import com.intellij.codeInspection.ProblemsHolder;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import org.intellij.lang.regexp.RegExpBundle;
|
||||
import org.intellij.lang.regexp.psi.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -38,7 +38,7 @@ public class DuplicateCharacterInClassInspection extends LocalInspectionTool {
|
||||
@Override
|
||||
public void visitRegExpClass(RegExpClass regExpClass) {
|
||||
PsiFile file = regExpClass.getContainingFile();
|
||||
if (file == null || Boolean.TRUE.equals(file.getUserData(InjectedLanguageUtil.FRANKENSTEIN_INJECTION))) return;
|
||||
if (file == null || InjectedLanguageManager.getInstance(file.getProject()).isFrankensteinInjection(file)) return;
|
||||
final HashSet<Object> seen = new HashSet<>();
|
||||
for (RegExpClassElement element : regExpClass.getElements()) {
|
||||
checkForDuplicates(element, seen);
|
||||
|
||||
@@ -39,7 +39,6 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
import com.intellij.psi.impl.source.resolve.FileContextUtil;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtilBase;
|
||||
import com.intellij.psi.impl.source.tree.injected.Place;
|
||||
import com.intellij.psi.impl.source.tree.injected.changesHandler.CommonInjectedFileChangesHandler;
|
||||
@@ -117,8 +116,10 @@ public final class QuickEditHandler extends UserDataHolderBase implements Dispos
|
||||
assert myNewFile.getTextLength() == myNewVirtualFile.getContent().length() : "PSI / Virtual file text mismatch";
|
||||
|
||||
// suppress possible errors as in injected mode
|
||||
myNewFile.putUserData(InjectedLanguageUtil.FRANKENSTEIN_INJECTION,
|
||||
injectedFile.getUserData(InjectedLanguageUtil.FRANKENSTEIN_INJECTION));
|
||||
myNewFile.putUserData(InjectedLanguageManager.FRANKENSTEIN_INJECTION,
|
||||
injectedFile.getUserData(InjectedLanguageManager.FRANKENSTEIN_INJECTION));
|
||||
myNewFile.putUserData(InjectedLanguageManager.LENIENT_INSPECTIONS,
|
||||
injectedFile.getUserData(InjectedLanguageManager.LENIENT_INSPECTIONS));
|
||||
PsiLanguageInjectionHost host = InjectedLanguageManager.getInstance(project).getInjectionHost(injectedFile.getViewProvider());
|
||||
myNewFile.putUserData(FileContextUtil.INJECTED_IN_ELEMENT, SmartPointerManager.getInstance(project).createSmartPsiElementPointer(host));
|
||||
myNewDocument =
|
||||
|
||||
@@ -5,9 +5,9 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
||||
import com.intellij.codeInsight.daemon.impl.HighlightInfoFilter;
|
||||
import com.intellij.codeInsight.highlighting.HighlightErrorFilter;
|
||||
import com.intellij.lang.annotation.HighlightSeverity;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.psi.PsiErrorElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -32,6 +32,6 @@ final class FrankensteinErrorFilter extends HighlightErrorFilter implements High
|
||||
}
|
||||
|
||||
private static boolean isFrankenstein(@Nullable PsiFile file) {
|
||||
return file != null && Boolean.TRUE.equals(file.getUserData(InjectedLanguageUtil.FRANKENSTEIN_INJECTION));
|
||||
return file != null && InjectedLanguageManager.getInstance(file.getProject()).isFrankensteinInjection(file);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ class StringInterpolationInjectionTest : KotlinLightCodeInsightFixtureTestCase()
|
||||
TestCase.assertEquals(expectedText, containingFile.text)
|
||||
TestCase.assertFalse(
|
||||
"Shouldn't be FRANKENSTEIN",
|
||||
java.lang.Boolean.TRUE == containingFile.getUserData(InjectedLanguageManager.FRANKENSTEIN_INJECTION)
|
||||
InjectedLanguageManager.getInstance(containingFile.project).isFrankensteinInjection(containingFile)
|
||||
)
|
||||
|
||||
undo(editor)
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
import org.intellij.plugins.intelliLang.inject.InjectedLanguage
|
||||
import org.intellij.plugins.intelliLang.inject.InjectorUtils
|
||||
import org.intellij.plugins.intelliLang.inject.registerSupport
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -37,15 +38,10 @@ abstract class KotlinLanguageInjectionPerformerBase : LanguageInjectionPerformer
|
||||
|
||||
if (parts.ranges.isEmpty()) return false
|
||||
|
||||
InjectorUtils.registerInjection(language, file, parts.ranges, registrar)
|
||||
InjectorUtils.registerSupport(support, false, context, language)
|
||||
InjectorUtils.putInjectedFileUserData(
|
||||
context,
|
||||
language,
|
||||
InjectedLanguageManager.FRANKENSTEIN_INJECTION,
|
||||
if (parts.isUnparsable) true else null
|
||||
)
|
||||
|
||||
InjectorUtils.registerInjection(language, file, parts.ranges, registrar) {
|
||||
it.registerSupport(support, false)
|
||||
.frankensteinInjection(parts.isUnparsable)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ public final class SpellCheckingInspection extends LocalInspectionTool implement
|
||||
}
|
||||
|
||||
PsiFile containingFile = holder.getFile();
|
||||
if (Boolean.TRUE.equals(containingFile.getUserData(InjectedLanguageManager.FRANKENSTEIN_INJECTION))) {
|
||||
if (InjectedLanguageManager.getInstance(containingFile.getProject()).isFrankensteinInjection(containingFile)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ public class XmlHighlightVisitor extends XmlElementVisitor implements HighlightV
|
||||
}
|
||||
|
||||
public static boolean isInjectedWithoutValidation(PsiElement element) {
|
||||
return InjectedLanguageManager.FRANKENSTEIN_INJECTION.get(element.getContainingFile()) == Boolean.TRUE;
|
||||
return InjectedLanguageManager.getInstance(element.getProject()).isFrankensteinInjection(element);
|
||||
}
|
||||
|
||||
public static boolean skipValidation(PsiElement context) {
|
||||
|
||||
Reference in New Issue
Block a user