public class InjectedLanguageManagerImpl extends InjectedLanguageManager implements Disposable
Disposable.ParentFRANKENSTEIN_INJECTION, INSTANCE_CACHE| Constructor and Description |
|---|
InjectedLanguageManagerImpl(Project project) |
| Modifier and Type | Method and Description |
|---|---|
static void |
checkInjectorsAreDisposed(Project project) |
void |
dispose()
Usually not invoked directly, see class javadoc.
|
static void |
disposeInvalidEditors() |
void |
dropFileCaches(PsiFile file) |
void |
enumerate(PsiElement host,
PsiLanguageInjectionHost.InjectedPsiVisitor visitor) |
void |
enumerateEx(PsiElement host,
PsiFile containingFile,
boolean probeUp,
PsiLanguageInjectionHost.InjectedPsiVisitor visitor) |
PsiElement |
findInjectedElementAt(PsiFile hostFile,
int hostDocumentOffset)
Finds PSI element in injected fragment (if any) at the given offset in the host file.
E.g.
|
DocumentWindow |
freezeWindow(DocumentWindow document) |
java.util.List<DocumentWindow> |
getCachedInjectedDocumentsInRange(PsiFile hostPsiFile,
TextRange range) |
java.util.List<Pair<PsiElement,TextRange>> |
getInjectedPsiFiles(PsiElement host) |
PsiLanguageInjectionHost |
getInjectionHost(FileViewProvider injectedProvider) |
PsiLanguageInjectionHost |
getInjectionHost(PsiElement injectedElement) |
static InjectedLanguageManagerImpl |
getInstanceImpl(Project project) |
java.util.List<TextRange> |
getNonEditableFragments(DocumentWindow window) |
PsiFile |
getTopLevelFile(PsiElement element) |
java.lang.String |
getUnescapedText(PsiElement injectedNode) |
int |
injectedToHost(PsiElement element,
int offset) |
int |
injectedToHost(PsiElement injectedContext,
int injectedOffset,
boolean minHostOffset) |
TextRange |
injectedToHost(PsiElement injectedContext,
TextRange injectedTextRange) |
java.util.List<TextRange> |
intersectWithAllEditableFragments(PsiFile injectedPsi,
TextRange rangeToEdit)
intersection may spread over several injected fragments
|
boolean |
isInjectedFragment(PsiFile injectedFile) |
boolean |
mightHaveInjectedFragmentAtOffset(Document hostDocument,
int hostOffset)
This method can be invoked on an uncommitted document, before performing commit and using other methods here
(which don't work for uncommitted document).
|
void |
processInjectableElements(java.util.Collection<? extends PsiElement> in,
Processor<? super PsiElement> processor) |
static void |
pushInjectors(Project project) |
void |
registerMultiHostInjector(MultiHostInjector injector) |
void |
registerMultiHostInjector(MultiHostInjector injector,
Disposable parentDisposable) |
getInstancepublic InjectedLanguageManagerImpl(Project project)
public static InjectedLanguageManagerImpl getInstanceImpl(Project project)
public void dispose()
Disposabledispose in interface Disposablepublic static void disposeInvalidEditors()
public PsiLanguageInjectionHost getInjectionHost(FileViewProvider injectedProvider)
getInjectionHost in class InjectedLanguageManagerpublic PsiLanguageInjectionHost getInjectionHost(PsiElement injectedElement)
getInjectionHost in class InjectedLanguageManagerpublic TextRange injectedToHost(PsiElement injectedContext, TextRange injectedTextRange)
injectedToHost in class InjectedLanguageManagerpublic int injectedToHost(PsiElement element, int offset)
injectedToHost in class InjectedLanguageManagerpublic int injectedToHost(PsiElement injectedContext, int injectedOffset, boolean minHostOffset)
injectedToHost in class InjectedLanguageManagerpublic void processInjectableElements(java.util.Collection<? extends PsiElement> in, Processor<? super PsiElement> processor)
public void registerMultiHostInjector(MultiHostInjector injector)
registerMultiHostInjector in class InjectedLanguageManagerpublic void registerMultiHostInjector(MultiHostInjector injector, Disposable parentDisposable)
registerMultiHostInjector in class InjectedLanguageManagerpublic java.lang.String getUnescapedText(PsiElement injectedNode)
getUnescapedText in class InjectedLanguageManagerpublic java.util.List<TextRange> intersectWithAllEditableFragments(PsiFile injectedPsi, TextRange rangeToEdit)
intersectWithAllEditableFragments in class InjectedLanguageManagerrangeToEdit - range in encoded(raw) PSIpublic boolean isInjectedFragment(PsiFile injectedFile)
isInjectedFragment in class InjectedLanguageManagerpublic PsiElement findInjectedElementAt(PsiFile hostFile, int hostDocumentOffset)
InjectedLanguageManager"<xxx/>" into Java string literal "String s = "<xxx/>";" and the caret is at "xxx" then
this method will return XmlToken(XML_TAG_START) with the text "xxx".hostFile can lead to unexpected results, including throwing an exception!findInjectedElementAt in class InjectedLanguageManagerpublic void dropFileCaches(PsiFile file)
dropFileCaches in class InjectedLanguageManagerpublic PsiFile getTopLevelFile(PsiElement element)
getTopLevelFile in class InjectedLanguageManagerpublic java.util.List<DocumentWindow> getCachedInjectedDocumentsInRange(PsiFile hostPsiFile, TextRange range)
getCachedInjectedDocumentsInRange in class InjectedLanguageManagerpublic void enumerate(PsiElement host, PsiLanguageInjectionHost.InjectedPsiVisitor visitor)
enumerate in class InjectedLanguageManagerpublic void enumerateEx(PsiElement host, PsiFile containingFile, boolean probeUp, PsiLanguageInjectionHost.InjectedPsiVisitor visitor)
enumerateEx in class InjectedLanguageManagerpublic java.util.List<TextRange> getNonEditableFragments(DocumentWindow window)
getNonEditableFragments in class InjectedLanguageManagerpublic boolean mightHaveInjectedFragmentAtOffset(Document hostDocument, int hostOffset)
InjectedLanguageManagermightHaveInjectedFragmentAtOffset in class InjectedLanguageManagerpublic DocumentWindow freezeWindow(DocumentWindow document)
freezeWindow in class InjectedLanguageManagerpublic static void pushInjectors(Project project)
public static void checkInjectorsAreDisposed(Project project)
public java.util.List<Pair<PsiElement,TextRange>> getInjectedPsiFiles(PsiElement host)
getInjectedPsiFiles in class InjectedLanguageManager