From 7ebd79c1e8b9ebea155a285eb6565ccc39826031 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 16 Nov 2017 14:30:32 +0300 Subject: [PATCH] migrate to newer API --- .../impl/InjectedGeneralHighlightingPass.java | 2 +- .../codeInsight/editorActions/TypedHandler.java | 5 ++++- .../codeInsight/folding/impl/FoldingUpdate.java | 3 ++- .../codeInsight/lookup/impl/LookupImpl.java | 3 ++- .../psi/formatter/common/AbstractBlock.java | 14 ++++++++------ .../impl/source/codeStyle/CodeFormatterFacade.java | 2 +- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/InjectedGeneralHighlightingPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/InjectedGeneralHighlightingPass.java index c8169e9ca154..8b3d269cda4a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/InjectedGeneralHighlightingPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/InjectedGeneralHighlightingPass.java @@ -148,7 +148,7 @@ public class InjectedGeneralHighlightingPass extends GeneralHighlightingPass imp @NotNull final ProgressIndicator progress) { ApplicationManager.getApplication().assertReadAccessAllowed(); - List injected = InjectedLanguageUtil.getCachedInjectedDocuments(myFile); + List injected = InjectedLanguageManager.getInstance(myProject).getCachedInjectedDocumentsInRange(myFile, myFile.getTextRange()); final Collection hosts = new THashSet<>(elements1.size() + elements2.size() + injected.size()); //rehighlight all injected PSI regardless the range, diff --git a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/TypedHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/TypedHandler.java index 5b4dbd4731fd..85c99212d3ad 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/TypedHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/TypedHandler.java @@ -25,6 +25,7 @@ import com.intellij.codeInsight.highlighting.NontrivialBraceMatcher; import com.intellij.codeInsight.template.impl.editorActions.TypedActionHandlerBase; import com.intellij.injected.editor.DocumentWindow; import com.intellij.lang.*; +import com.intellij.lang.injection.InjectedLanguageManager; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.application.ApplicationManager; @@ -42,6 +43,7 @@ import com.intellij.openapi.fileTypes.FileTypes; import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.fileTypes.PlainTextLanguage; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.ProperTextRange; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; @@ -336,7 +338,8 @@ public class TypedHandler extends TypedActionHandlerBase { // even for uncommitted document try to retrieve injected fragment that has been there recently // we are assuming here that when user is (even furiously) typing, injected language would not change // and thus we can use its lexer to insert closing braces etc - for (DocumentWindow documentWindow : InjectedLanguageUtil.getCachedInjectedDocuments(oldFile)) { + List injected = InjectedLanguageManager.getInstance(oldFile.getProject()).getCachedInjectedDocumentsInRange(oldFile, ProperTextRange.create(offset, offset)); + for (DocumentWindow documentWindow : injected) { if (documentWindow.isValid() && documentWindow.containsRange(offset, offset)) { PsiFile injectedFile = PsiDocumentManager.getInstance(oldFile.getProject()).getPsiFile(documentWindow); if (injectedFile != null) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java index 1c1d5d0cdc6f..0a7c737a3062 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java @@ -23,6 +23,7 @@ import com.intellij.lang.Language; import com.intellij.lang.folding.FoldingBuilder; import com.intellij.lang.folding.FoldingDescriptor; import com.intellij.lang.folding.LanguageFolding; +import com.intellij.lang.injection.InjectedLanguageManager; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Attachment; import com.intellij.openapi.diagnostic.Logger; @@ -140,7 +141,7 @@ public class FoldingUpdate { Object lastTimeStamp = editor.getUserData(LAST_UPDATE_INJECTED_STAMP_KEY); if (lastTimeStamp instanceof Long && ((Long)lastTimeStamp).longValue() == timeStamp) return null; - List injectedDocuments = InjectedLanguageUtil.getCachedInjectedDocuments(file); + List injectedDocuments = InjectedLanguageManager.getInstance(project).getCachedInjectedDocumentsInRange(file, file.getTextRange()); if (injectedDocuments.isEmpty()) return null; final List injectedEditors = new ArrayList<>(); final List injectedFiles = new ArrayList<>(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java index 5fb943b6130f..9848d80514dd 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java @@ -992,7 +992,8 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable PsiFile hostFile = PsiDocumentManager.getInstance(myProject).getPsiFile(myEditor.getDocument()); if (hostFile != null) { // inspired by com.intellij.codeInsight.editorActions.TypedHandler.injectedEditorIfCharTypedIsSignificant() - for (DocumentWindow documentWindow : InjectedLanguageUtil.getCachedInjectedDocuments(hostFile)) { + List injected = InjectedLanguageManager.getInstance(myProject).getCachedInjectedDocumentsInRange(hostFile, TextRange.create(offset, offset)); + for (DocumentWindow documentWindow : injected ) { if (documentWindow.isValid() && documentWindow.containsRange(offset, offset)) { return documentWindow; } diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java b/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java index de8ac5c0068d..c1682f846c2f 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/common/AbstractBlock.java @@ -19,12 +19,13 @@ package com.intellij.psi.formatter.common; import com.intellij.formatting.*; import com.intellij.injected.editor.DocumentWindow; import com.intellij.lang.ASTNode; +import com.intellij.lang.injection.InjectedLanguageManager; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiManager; import com.intellij.psi.formatter.FormatterUtil; -import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil; import com.intellij.util.containers.ContainerUtilRt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -95,13 +96,14 @@ public abstract class AbstractBlock implements ASTBlock, ExtraRangesProvider { if (file == null) { return EMPTY; } - - if (InjectedLanguageUtil.getCachedInjectedDocuments(file).isEmpty()) { + + TextRange blockRange = myNode.getTextRange(); + PsiManager psiManager = null; + List documentWindows = InjectedLanguageManager.getInstance(psiManager.getProject()).getCachedInjectedDocumentsInRange(file, blockRange); + if (documentWindows.isEmpty()) { return EMPTY; } - - TextRange blockRange = myNode.getTextRange(); - List documentWindows = InjectedLanguageUtil.getCachedInjectedDocuments(file); + for (DocumentWindow documentWindow : documentWindows) { int startOffset = documentWindow.injectedToHost(0); int endOffset = startOffset + documentWindow.getTextLength(); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java index a5d4ee7811f4..b63fb75550b2 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java @@ -273,7 +273,7 @@ public class CodeFormatterFacade { final LinkedHashSet injectedFileRangesSet = ContainerUtilRt.newLinkedHashSet(); if (!psi.getProject().isDefault()) { - List injectedDocuments = InjectedLanguageUtil.getCachedInjectedDocuments(file); + List injectedDocuments = InjectedLanguageManager.getInstance(file.getProject()).getCachedInjectedDocumentsInRange(file, file.getTextRange()); if (!injectedDocuments.isEmpty()) { for (DocumentWindow injectedDocument : injectedDocuments) { injectedFileRangesSet.add(TextRange.from(injectedDocument.injectedToHost(0), injectedDocument.getTextLength()));