mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
Don't run code analysis for injections with interpolation in string formatting (PY-11962)
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
<orderEntry type="module" module-name="core-api" />
|
||||
<orderEntry type="module" module-name="IntelliLang" />
|
||||
<orderEntry type="module" module-name="python-community" />
|
||||
<orderEntry type="module" module-name="lang-impl" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.jetbrains.python.intelliLang;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.injection.MultiHostRegistrar;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import com.jetbrains.python.codeInsight.PyInjectionUtil;
|
||||
import com.jetbrains.python.codeInsight.PyInjectorBase;
|
||||
import org.intellij.plugins.intelliLang.Configuration;
|
||||
import org.intellij.plugins.intelliLang.inject.InjectedLanguage;
|
||||
@@ -15,6 +18,14 @@ import org.jetbrains.annotations.Nullable;
|
||||
* @author vlan
|
||||
*/
|
||||
public class PyConfigurationInjector extends PyInjectorBase {
|
||||
@Override
|
||||
public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context) {
|
||||
final PyInjectionUtil.InjectionResult result = registerInjection(registrar, context);
|
||||
if (!result.isStrict()) {
|
||||
InjectorUtils.putInjectedFileUserData(registrar, InjectedLanguageUtil.FRANKENSTEIN_INJECTION, Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Language getInjectedLanguage(@NotNull PsiElement context) {
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.intellij.lang.injection.MultiHostRegistrar;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiLanguageInjectionHost;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import com.jetbrains.python.codeInsight.PyInjectionUtil;
|
||||
import com.jetbrains.python.codeInsight.PyInjectorBase;
|
||||
import org.intellij.plugins.intelliLang.inject.InjectedLanguage;
|
||||
import org.intellij.plugins.intelliLang.inject.InjectorUtils;
|
||||
@@ -18,9 +20,13 @@ import org.jetbrains.annotations.Nullable;
|
||||
public class PyTemporaryInjector extends PyInjectorBase {
|
||||
@Override
|
||||
public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context) {
|
||||
if (registerInjection(registrar, context)) {
|
||||
final PyInjectionUtil.InjectionResult result = registerInjection(registrar, context);
|
||||
if (result.isInjected()) {
|
||||
final TemporaryPlacesRegistry registry = TemporaryPlacesRegistry.getInstance(context.getProject());
|
||||
InjectorUtils.registerSupport(registry.getLanguageInjectionSupport(), false, registrar);
|
||||
if (!result.isStrict()) {
|
||||
InjectorUtils.putInjectedFileUserData(registrar, InjectedLanguageUtil.FRANKENSTEIN_INJECTION, Boolean.TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user