mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
removed deprecated "findInjectedElementNoCommit" usages
This commit is contained in:
@@ -79,6 +79,12 @@ public abstract class InjectedLanguageManager {
|
||||
|
||||
public abstract boolean isInjectedFragment(@NotNull PsiFile file);
|
||||
|
||||
/**
|
||||
* Finds PSI element in injected fragment (if any) at the given offset in the host file.<p/>
|
||||
* E.g. if you injected XML {@code "<xxx/>"} into Java string literal {@code "String s = "<xxx/>";"} and the caret is at {@code "xxx"} then
|
||||
* this method will return XmlToken(XML_TAG_START) with the text {@code "xxx"}.<br/>
|
||||
* Invocation of this method on uncommitted {@code hostFile} can lead to unexpected results, including throwing an exception!
|
||||
*/
|
||||
@Nullable
|
||||
public abstract PsiElement findInjectedElementAt(@NotNull PsiFile hostFile, int hostDocumentOffset);
|
||||
|
||||
|
||||
+2
-1
@@ -29,6 +29,7 @@ import com.intellij.featureStatistics.FeatureUsageTracker;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.injected.editor.DocumentWindow;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
@@ -240,7 +241,7 @@ public class CodeCompletionHandlerBase {
|
||||
int offset = editor.getCaretModel().getOffset();
|
||||
int psiOffset = Math.max(0, offset - 1);
|
||||
|
||||
PsiElement elementAt = InjectedLanguageUtil.findInjectedElementNoCommit(psiFile, psiOffset);
|
||||
PsiElement elementAt = InjectedLanguageManager.getInstance(psiFile.getProject()).findInjectedElementAt(psiFile, psiOffset);
|
||||
if (elementAt == null) {
|
||||
elementAt = psiFile.findElementAt(psiOffset);
|
||||
}
|
||||
|
||||
+2
-1
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.CodeInsightSettings;
|
||||
import com.intellij.codeInsight.hint.EditorFragmentComponent;
|
||||
import com.intellij.injected.editor.EditorWindow;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||
@@ -190,7 +191,7 @@ public class BraceHighlightingHandler {
|
||||
Document document = editor.getDocument();
|
||||
// when document is committed, try to highlight braces in injected lang - it's fast
|
||||
if (PsiDocumentManager.getInstance(project).isCommitted(document)) {
|
||||
final PsiElement injectedElement = InjectedLanguageUtil.findInjectedElementNoCommit(psiFile, offset);
|
||||
final PsiElement injectedElement = InjectedLanguageManager.getInstance(psiFile.getProject()).findInjectedElementAt(psiFile, offset);
|
||||
if (injectedElement != null /*&& !(injectedElement instanceof PsiWhiteSpace)*/) {
|
||||
final PsiFile injected = injectedElement.getContainingFile();
|
||||
if (injected != null) {
|
||||
|
||||
+2
-2
@@ -59,7 +59,7 @@ public class CustomTemplateCallback {
|
||||
myTemplateManager = TemplateManager.getInstance(myProject);
|
||||
|
||||
myOffset = getOffset(editor);
|
||||
PsiElement element = InjectedLanguageUtil.findInjectedElementNoCommit(file, myOffset);
|
||||
PsiElement element = InjectedLanguageManager.getInstance(file.getProject()).findInjectedElementAt(file, myOffset);
|
||||
myFile = element != null ? element.getContainingFile() : file;
|
||||
|
||||
myInInjectedFragment = InjectedLanguageManager.getInstance(myProject).isInjectedFragment(myFile);
|
||||
@@ -171,7 +171,7 @@ public class CustomTemplateCallback {
|
||||
AttachmentFactory.createAttachment(file.getVirtualFile()));
|
||||
}
|
||||
else {
|
||||
element = InjectedLanguageUtil.findInjectedElementNoCommit(file, offset);
|
||||
element = InjectedLanguageManager.getInstance(file.getProject()).findInjectedElementAt(file, offset);
|
||||
}
|
||||
}
|
||||
if (element == null) {
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.formatting.Block;
|
||||
import com.intellij.formatting.FormattingDocumentModel;
|
||||
import com.intellij.formatting.FormattingModelEx;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
@@ -86,7 +87,7 @@ public class PsiBasedFormattingModel implements FormattingModelEx {
|
||||
|
||||
if (leafElement != null) {
|
||||
PsiFile hostFile = myASTNode.getPsi().getContainingFile();
|
||||
PsiElement injectedElement = InjectedLanguageUtil.findInjectedElementNoCommit(hostFile, offset);
|
||||
PsiElement injectedElement = InjectedLanguageManager.getInstance(hostFile.getProject()).findInjectedElementAt(hostFile, offset);
|
||||
|
||||
TextRange effectiveRange = injectedElement != null ? rangeInInjectedDocument(textRange, injectedElement) : null;
|
||||
if (effectiveRange == null) {
|
||||
@@ -151,7 +152,8 @@ public class PsiBasedFormattingModel implements FormattingModelEx {
|
||||
assert !PsiDocumentManager.getInstance(project).isUncommited(myDocumentModel.getDocument());
|
||||
// TODO:default project can not be used for injections, because latter might wants (unavailable) indices
|
||||
|
||||
PsiElement psiElement = project.isDefault() ? null : InjectedLanguageUtil.findInjectedElementNoCommit(containingFile, offset);
|
||||
PsiElement psiElement = project.isDefault() ? null : InjectedLanguageManager.getInstance(containingFile.getProject())
|
||||
.findInjectedElementAt(containingFile, offset);
|
||||
if (psiElement != null) {
|
||||
return psiElement.getNode();
|
||||
}
|
||||
|
||||
+1
-2
@@ -43,7 +43,6 @@ import com.intellij.psi.impl.source.SourceTreeToPsiMap;
|
||||
import com.intellij.psi.impl.source.tree.FileElement;
|
||||
import com.intellij.psi.impl.source.tree.RecursiveTreeElementWalkingVisitor;
|
||||
import com.intellij.psi.impl.source.tree.TreeElement;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import com.intellij.psi.util.PsiUtilBase;
|
||||
import com.intellij.util.CharTable;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
@@ -560,7 +559,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager implements Formatting
|
||||
if (!(astNode instanceof FileElement)) {
|
||||
return new Pair<>(null, null);
|
||||
}
|
||||
PsiElement elementAt = InjectedLanguageUtil.findInjectedElementNoCommit(file, offset);
|
||||
PsiElement elementAt = InjectedLanguageManager.getInstance(file.getProject()).findInjectedElementAt(file, offset);
|
||||
final CharTable charTable = ((FileElement)astNode).getCharTable();
|
||||
if (elementAt == null) {
|
||||
elementAt = findElementInTreeWithFormatterEnabled(file, offset);
|
||||
|
||||
@@ -15,10 +15,11 @@
|
||||
*/
|
||||
package com.jetbrains.python;
|
||||
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import com.jetbrains.python.fixtures.PyTestCase;
|
||||
|
||||
/**
|
||||
@@ -75,7 +76,9 @@ public class PyWrapTest extends PyTestCase {
|
||||
myFixture.configureByFile("wrap/WrapInStringLiteral.py");
|
||||
|
||||
final int stringLiteralOffset = 114;
|
||||
assertNotNull(InjectedLanguageUtil.findInjectedElementNoCommit(myFixture.getFile(), stringLiteralOffset + "\"".length()));
|
||||
PsiFile hostFile = myFixture.getFile();
|
||||
assertNotNull(
|
||||
InjectedLanguageManager.getInstance(hostFile.getProject()).findInjectedElementAt(hostFile, stringLiteralOffset + "\"".length()));
|
||||
|
||||
myFixture.type(" AND field");
|
||||
myFixture.checkResultByFile("wrap/WrapInStringLiteral.after.py", true);
|
||||
|
||||
Reference in New Issue
Block a user