Java 类com.intellij.psi.impl.source.resolve.FileContextUtil 实例源码
项目:intellij-ce-playground
文件:JavaPsiFacadeImpl.java
@Override
public boolean arePackagesTheSame(@NotNull PsiElement element1, @NotNull PsiElement element2) {
PsiFile file1 = FileContextUtil.getContextFile(element1);
PsiFile file2 = FileContextUtil.getContextFile(element2);
if (Comparing.equal(file1, file2)) return true;
if (file1 instanceof JavaDummyHolder && file2 instanceof JavaDummyHolder) return true;
if (file1 instanceof JavaDummyHolder || file2 instanceof JavaDummyHolder) {
JavaDummyHolder dummyHolder = (JavaDummyHolder) (file1 instanceof JavaDummyHolder ? file1 : file2);
PsiElement other = file1 instanceof JavaDummyHolder ? file2 : file1;
return dummyHolder.isSamePackage(other);
}
if (!(file1 instanceof PsiClassOwner)) return false;
if (!(file2 instanceof PsiClassOwner)) return false;
String package1 = ((PsiClassOwner) file1).getPackageName();
String package2 = ((PsiClassOwner) file2).getPackageName();
return Comparing.equal(package1, package2);
}
项目:intellij-ce-playground
文件:ConflictsUtil.java
@NotNull
public static PsiElement getContainer(PsiElement place) {
PsiElement parent = place;
while (true) {
if (parent instanceof PsiMember && !(parent instanceof PsiTypeParameter)) {
return parent;
}
if (parent instanceof PsiFile) {
PsiElement host = FileContextUtil.getFileContext((PsiFile)parent);
if (host == null) {
return parent;
}
parent = host;
}
parent = parent.getParent();
}
}
项目:intellij-ce-playground
文件:MultiHostRegistrarImpl.java
private static boolean cacheEverything(@NotNull Place place,
@NotNull DocumentWindowImpl documentWindow,
@NotNull InjectedFileViewProvider viewProvider,
@NotNull PsiFile psiFile,
@NotNull SmartPsiElementPointer<PsiLanguageInjectionHost> pointer) {
FileDocumentManagerImpl.registerDocument(documentWindow, viewProvider.getVirtualFile());
DebugUtil.startPsiModification("MultiHostRegistrar cacheEverything");
try {
viewProvider.forceCachedPsi(psiFile);
}
finally {
DebugUtil.finishPsiModification();
}
psiFile.putUserData(FileContextUtil.INJECTED_IN_ELEMENT, pointer);
PsiDocumentManagerBase.cachePsi(documentWindow, psiFile);
keepTreeFromChameleoningBack(psiFile);
return viewProvider.setShreds(place, psiFile.getProject());
}
项目:intellij-ce-playground
文件:DtdParsing.java
public DtdParsing(CharSequence chars,
final IElementType type,
final XmlEntityDecl.EntityContextType contextType,
PsiFile contextFile
) {
this(
type,
contextType,
PsiBuilderFactory.getInstance().createBuilder(
LanguageParserDefinitions.INSTANCE.forLanguage(DTDLanguage.INSTANCE),
new DtdLexer(false) {
final int myInitialState = getLexerInitialState(type, contextType);
@Override
public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) {
super.start(buffer, startOffset, endOffset, myInitialState);
}
}, chars
)
);
if (contextFile != null) myBuilder.putUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY, contextFile);
}
项目:tools-idea
文件:JavaPsiFacadeImpl.java
@Override
public boolean arePackagesTheSame(@NotNull PsiElement element1, @NotNull PsiElement element2) {
PsiFile file1 = FileContextUtil.getContextFile(element1);
PsiFile file2 = FileContextUtil.getContextFile(element2);
if (Comparing.equal(file1, file2)) return true;
if (file1 instanceof JavaDummyHolder && file2 instanceof JavaDummyHolder) return true;
if (file1 instanceof JavaDummyHolder || file2 instanceof JavaDummyHolder) {
JavaDummyHolder dummyHolder = (JavaDummyHolder) (file1 instanceof JavaDummyHolder ? file1 : file2);
PsiElement other = file1 instanceof JavaDummyHolder ? file2 : file1;
return dummyHolder.isSamePackage(other);
}
if (!(file1 instanceof PsiClassOwner)) return false;
if (!(file2 instanceof PsiClassOwner)) return false;
String package1 = ((PsiClassOwner) file1).getPackageName();
String package2 = ((PsiClassOwner) file2).getPackageName();
return Comparing.equal(package1, package2);
}
项目:tools-idea
文件:ConflictsUtil.java
@NotNull
public static PsiElement getContainer(PsiElement place) {
PsiElement parent = place;
while (true) {
if (parent instanceof PsiMember && !(parent instanceof PsiTypeParameter)) {
return parent;
}
if (parent instanceof PsiFile) {
PsiElement host = FileContextUtil.getFileContext((PsiFile)parent);
if (host == null) {
return parent;
}
parent = host;
}
parent = parent.getParent();
}
}
项目:tools-idea
文件:QuickEditHandler.java
private void commitToOriginal() {
if (!isValid()) return;
final PsiFile origFile = (PsiFile)myNewFile.getUserData(FileContextUtil.INJECTED_IN_ELEMENT).getElement();
VirtualFile origFileVirtualFile = origFile != null? origFile.getVirtualFile() : null;
myCommittingToOriginal = true;
try {
if (origFileVirtualFile == null || !ReadonlyStatusHandler.getInstance(myProject).ensureFilesWritable(origFileVirtualFile).hasReadonlyFiles()) {
PostprocessReformattingAspect.getInstance(myProject).disablePostprocessFormattingInside(new Runnable() {
@Override
public void run() {
if (myAltFullRange != null) {
altCommitToOriginal();
return;
}
commitToOriginalInner();
}
});
}
}
finally {
myCommittingToOriginal = false;
}
}
项目:tools-idea
文件:MultiHostRegistrarImpl.java
private static boolean cacheEverything(@NotNull Place place,
@NotNull DocumentWindowImpl documentWindow,
@NotNull InjectedFileViewProvider viewProvider,
@NotNull PsiFile psiFile,
@NotNull SmartPsiElementPointer<PsiLanguageInjectionHost> pointer) {
FileDocumentManagerImpl.registerDocument(documentWindow, viewProvider.getVirtualFile());
viewProvider.forceCachedPsi(psiFile);
psiFile.putUserData(FileContextUtil.INJECTED_IN_ELEMENT, pointer);
PsiDocumentManagerImpl.cachePsi(documentWindow, psiFile);
keepTreeFromChameleoningBack(psiFile);
return viewProvider.setShreds(place, psiFile.getProject());
}
项目:tools-idea
文件:DtdParsing.java
public DtdParsing(CharSequence chars,
final IElementType type,
final XmlEntityDecl.EntityContextType contextType,
PsiFile contextFile
) {
this(
type,
contextType,
PsiBuilderFactory.getInstance().createBuilder(
LanguageParserDefinitions.INSTANCE.forLanguage(DTDLanguage.INSTANCE),
new DtdLexer(false) {
final int myInitialState = getLexerInitialState(type, contextType);
@Override
public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) {
super.start(buffer, startOffset, endOffset, myInitialState);
}
}, chars
)
);
if (contextFile != null) myBuilder.putUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY, contextFile);
}
项目:intellij-haxe
文件:HaxeParserWrapper.java
@Override
public ASTNode parse(IElementType t, PsiBuilder b) {
if (debugging) {
HaxeDebugTimeLog timeLog = null;
// The file is attached to the user data. :/ I suspect this was a hack, but it's what we've got available.
PsiFile file = b.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
String description = null != file ? file.getName() : t.toString();
timeLog = HaxeDebugTimeLog.startNew("HaxeParser " + description, HaxeDebugTimeLog.Since.StartAndPrevious);
ASTNode node = super.parse(t, b);
timeLog.stamp("Finished parsing.");
timeLog.printIfTimeExceeds(20 /* milliseconds */);
return node;
}
return super.parse(t,b);
}
项目:consulo-xml
文件:DtdParsing.java
public DtdParsing(CharSequence chars,
final IElementType type,
final XmlEntityDecl.EntityContextType contextType,
PsiFile contextFile
) {
this(
type,
contextType,
PsiBuilderFactory.getInstance().createBuilder(
LanguageParserDefinitions.INSTANCE.forLanguage(DTDLanguage.INSTANCE),
new DtdLexer(false) {
final int myInitialState = getLexerInitialState(type, contextType);
@Override
public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) {
super.start(buffer, startOffset, endOffset, myInitialState);
}
}, LanguageVersionUtil.findDefaultVersion(DTDLanguage.INSTANCE), chars
)
);
if (contextFile != null) myBuilder.putUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY, contextFile);
}
项目:consulo-java
文件:ConflictsUtil.java
@NotNull
public static PsiElement getContainer(PsiElement place) {
PsiElement parent = place;
while (true) {
if (parent instanceof PsiMember && !(parent instanceof PsiTypeParameter)) {
return parent;
}
if (parent instanceof PsiFile) {
PsiElement host = FileContextUtil.getFileContext((PsiFile)parent);
if (host == null) {
return parent;
}
parent = host;
}
parent = parent.getParent();
}
}
项目:manifold-ij
文件:FileUtil.java
public static VirtualFile toVirtualFile( PsiFile file )
{
VirtualFile vfile = file.getUserData( IndexingDataKeys.VIRTUAL_FILE );
if( vfile == null )
{
vfile = file.getVirtualFile();
if( vfile == null )
{
vfile = file.getOriginalFile().getVirtualFile();
if( vfile == null )
{
vfile = file.getViewProvider().getVirtualFile();
}
}
else if( vfile instanceof LightVirtualFile )
{
PsiFile containingFile = file.getContainingFile();
if( containingFile != null && containingFile != file )
{
PsiFile originalFile = containingFile.getOriginalFile();
SmartPsiElementPointer owningFile = originalFile.getUserData( FileContextUtil.INJECTED_IN_ELEMENT );
if( owningFile != null )
{
vfile = owningFile.getVirtualFile();
}
}
}
}
return vfile;
}
项目:intellij-ce-playground
文件:JavaPsiFacadeImpl.java
@Override
public boolean isInPackage(@NotNull PsiElement element, @NotNull PsiPackage aPackage) {
final PsiFile file = FileContextUtil.getContextFile(element);
if (file instanceof JavaDummyHolder) {
return ((JavaDummyHolder) file).isInPackage(aPackage);
}
if (file instanceof PsiJavaFile) {
final String packageName = ((PsiJavaFile) file).getPackageName();
return packageName.equals(aPackage.getQualifiedName());
}
return false;
}
项目:intellij-ce-playground
文件:PsiBuilderImpl.java
@Override
public <T> void putUserDataUnprotected(@NotNull final Key<T> key, @Nullable final T value) {
if (key == FileContextUtil.CONTAINING_FILE_KEY) {
myFile = (PsiFile)value;
return;
}
if (myUserData == null) myUserData = ContainerUtil.newHashMap();
myUserData.put(key, value);
}
项目:intellij-ce-playground
文件:GeneratedParserUtilBase.java
public static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:intellij-ce-playground
文件:InjectedLanguageManagerImpl.java
@Override
public PsiLanguageInjectionHost getInjectionHost(@NotNull PsiElement element) {
final PsiFile file = element.getContainingFile();
final VirtualFile virtualFile = file == null ? null : file.getVirtualFile();
if (virtualFile instanceof VirtualFileWindow) {
PsiElement host = FileContextUtil.getFileContext(file); // use utility method in case the file's overridden getContext()
if (host instanceof PsiLanguageInjectionHost) {
return (PsiLanguageInjectionHost)host;
}
}
return null;
}
项目:intellij-ce-playground
文件:PlatformPackageUtil.java
@Nullable
public static PsiDirectory getDirectory(@Nullable PsiElement element) {
if (element == null) return null;
// handle injection and fragment editor
PsiFile file = FileContextUtil.getContextFile(element);
return file == null ? null : file.getContainingDirectory();
}
项目:intellij-ce-playground
文件:CompleteReferenceExpression.java
private void getBindings() {
final PsiClass containingClass = PsiTreeUtil.getParentOfType(myRefExpr, PsiClass.class);
if (containingClass != null) return;
final PsiFile file = FileContextUtil.getContextFile(myRefExpr);
if (file instanceof GroovyFile) {
((GroovyFile)file).accept(new GroovyRecursiveElementVisitor() {
@Override
public void visitAssignmentExpression(GrAssignmentExpression expression) {
super.visitAssignmentExpression(expression);
final GrExpression value = expression.getLValue();
if (value instanceof GrReferenceExpression && !((GrReferenceExpression)value).isQualified()) {
final PsiElement resolved = ((GrReferenceExpression)value).resolve();
if (resolved instanceof GrBindingVariable) {
myProcessor.execute(resolved, ResolveState.initial());
}
else if (resolved == null) {
myProcessor.execute(new GrBindingVariable((GroovyFile)file, ((GrReferenceExpression)value).getReferenceName(), true),
ResolveState.initial());
}
}
}
@Override
public void visitTypeDefinition(GrTypeDefinition typeDefinition) {
//don't go into classes
}
});
}
}
项目:intellij
文件:BuildParserDefinition.java
@Override
public ASTNode parse(IElementType root, PsiBuilder builder) {
if (debug.getValue()) {
System.err.println(builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY));
}
PsiBuilder.Marker rootMarker = builder.mark();
ParsingContext context = new ParsingContext(builder);
context.statementParser.parseFileInput();
rootMarker.done(root);
return builder.getTreeBuilt();
}
项目:coocoo-idea-plugin
文件:GeneratedParserUtilBase.java
private static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:firstspiritlanguagesupport
文件:GeneratedParserUtilBase.java
public static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:tools-idea
文件:JavaPsiFacadeImpl.java
@Override
public boolean isInPackage(@NotNull PsiElement element, @NotNull PsiPackage aPackage) {
final PsiFile file = FileContextUtil.getContextFile(element);
if (file instanceof JavaDummyHolder) {
return ((JavaDummyHolder) file).isInPackage(aPackage);
}
if (file instanceof PsiJavaFile) {
final String packageName = ((PsiJavaFile) file).getPackageName();
return packageName.equals(aPackage.getQualifiedName());
}
return false;
}
项目:tools-idea
文件:ResolveScopeManagerImpl.java
@Override
@NotNull
public GlobalSearchScope getResolveScope(@NotNull PsiElement element) {
ProgressIndicatorProvider.checkCanceled();
VirtualFile vFile;
final PsiFile contextFile;
if (element instanceof PsiDirectory) {
vFile = ((PsiDirectory)element).getVirtualFile();
contextFile = null;
}
else {
final PsiFile containingFile = element.getContainingFile();
if (containingFile instanceof PsiCodeFragment) {
final GlobalSearchScope forcedScope = ((PsiCodeFragment)containingFile).getForcedResolveScope();
if (forcedScope != null) {
return forcedScope;
}
final PsiElement context = containingFile.getContext();
if (context == null) {
return GlobalSearchScope.allScope(myProject);
}
return getResolveScope(context);
}
contextFile = containingFile != null ? FileContextUtil.getContextFile(containingFile) : null;
if (contextFile == null) {
return GlobalSearchScope.allScope(myProject);
}
else if (contextFile instanceof FileResolveScopeProvider) {
return ((FileResolveScopeProvider) contextFile).getFileResolveScope();
}
vFile = contextFile.getOriginalFile().getVirtualFile();
}
if (vFile == null || contextFile == null) {
return GlobalSearchScope.allScope(myProject);
}
return getDefaultResolveScope(contextFile, vFile);
}
项目:tools-idea
文件:PsiBuilderImpl.java
@Override
public <T> void putUserDataUnprotected(@NotNull final Key<T> key, @Nullable final T value) {
if (key == FileContextUtil.CONTAINING_FILE_KEY) {
myFile = (PsiFile)value;
return;
}
if (myUserData == null) myUserData = ContainerUtil.newHashMap();
myUserData.put(key, value);
}
项目:tools-idea
文件:GeneratedParserUtilBase.java
private static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:tools-idea
文件:InjectedLanguageManagerImpl.java
@Override
public PsiLanguageInjectionHost getInjectionHost(@NotNull PsiElement element) {
final PsiFile file = element.getContainingFile();
final VirtualFile virtualFile = file == null ? null : file.getVirtualFile();
if (virtualFile instanceof VirtualFileWindow) {
PsiElement host = FileContextUtil.getFileContext(file); // use utility method in case the file's overridden getContext()
if (host instanceof PsiLanguageInjectionHost) {
return (PsiLanguageInjectionHost)host;
}
}
return null;
}
项目:intellij-latte
文件:GeneratedParserUtilBase.java
public static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:intellij-xquery
文件:GeneratedParserUtilBase.java
public static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:DeftIDEA
文件:GeneratedParserUtilBase.java
private static void initState(IElementType root, PsiBuilder builder, ErrorState state) {
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language);
if (parserDefinition != null) {
state.commentTokens = parserDefinition.getCommentTokens();
state.whitespaceTokens = parserDefinition.getWhitespaceTokens();
}
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:consulo
文件:ResolveScopeManagerImpl.java
@Override
@Nonnull
public GlobalSearchScope getResolveScope(@Nonnull PsiElement element) {
ProgressIndicatorProvider.checkCanceled();
VirtualFile vFile;
final PsiFile contextFile;
if (element instanceof PsiDirectory) {
vFile = ((PsiDirectory)element).getVirtualFile();
contextFile = null;
}
else {
final PsiFile containingFile = element.getContainingFile();
if (containingFile instanceof PsiCodeFragment) {
final GlobalSearchScope forcedScope = ((PsiCodeFragment)containingFile).getForcedResolveScope();
if (forcedScope != null) {
return forcedScope;
}
final PsiElement context = containingFile.getContext();
if (context == null) {
return GlobalSearchScope.allScope(myProject);
}
return getResolveScope(context);
}
contextFile = containingFile != null ? FileContextUtil.getContextFile(containingFile) : null;
if (contextFile == null) {
return GlobalSearchScope.allScope(myProject);
}
else if (contextFile instanceof FileResolveScopeProvider) {
return ((FileResolveScopeProvider)contextFile).getFileResolveScope();
}
vFile = contextFile.getOriginalFile().getVirtualFile();
}
if (vFile == null || contextFile == null) {
return GlobalSearchScope.allScope(myProject);
}
return myDefaultResolveScopesCache.get(vFile);
}
项目:consulo
文件:PsiBuilderImpl.java
@Override
public <T> void putUserDataUnprotected(@Nonnull final Key<T> key, @Nullable final T value) {
if (key == FileContextUtil.CONTAINING_FILE_KEY) {
myFile = (PsiFile)value;
return;
}
if (myUserData == null) myUserData = ContainerUtil.newHashMap();
myUserData.put(key, value);
}
项目:consulo
文件:GeneratedParserUtilBase.java
public static void initState(ErrorState state, PsiBuilder builder, IElementType root, TokenSet[] extendsSets) {
state.extendsSets = extendsSets;
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:consulo
文件:InjectedLanguageManagerImpl.java
@Override
public PsiLanguageInjectionHost getInjectionHost(@Nonnull PsiElement element) {
final PsiFile file = element.getContainingFile();
final VirtualFile virtualFile = file == null ? null : file.getVirtualFile();
if (virtualFile instanceof VirtualFileWindow) {
PsiElement host = FileContextUtil.getFileContext(file); // use utility method in case the file's overridden getContext()
if (host instanceof PsiLanguageInjectionHost) {
return (PsiLanguageInjectionHost)host;
}
}
return null;
}
项目:consulo
文件:PlatformPackageUtil.java
@Nullable
public static PsiDirectory getDirectory(@Nullable PsiElement element) {
if (element == null) return null;
// handle injection and fragment editor
PsiFile file = FileContextUtil.getContextFile(element);
return file == null ? null : file.getContainingDirectory();
}
项目:Intellij-Dust
文件:GeneratedParserUtilBase.java
private static void initState(IElementType root, PsiBuilder builder, ErrorState state) {
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language);
if (parserDefinition != null) {
state.commentTokens = parserDefinition.getCommentTokens();
state.whitespaceTokens = parserDefinition.getWhitespaceTokens();
}
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:consulo-java
文件:JavaPsiFacadeImpl.java
@Override
public boolean isInPackage(@NotNull PsiElement element, @NotNull PsiJavaPackage aPackage)
{
final PsiFile file = FileContextUtil.getContextFile(element);
if(file instanceof JavaDummyHolder)
{
return ((JavaDummyHolder) file).isInPackage(aPackage);
}
if(file instanceof PsiJavaFile)
{
final String packageName = ((PsiJavaFile) file).getPackageName();
return packageName.equals(aPackage.getQualifiedName());
}
return false;
}
项目:consulo-java
文件:JavaPsiFacadeImpl.java
@Override
public boolean arePackagesTheSame(@NotNull PsiElement element1, @NotNull PsiElement element2)
{
PsiFile file1 = FileContextUtil.getContextFile(element1);
PsiFile file2 = FileContextUtil.getContextFile(element2);
if(Comparing.equal(file1, file2))
{
return true;
}
if(file1 instanceof JavaDummyHolder && file2 instanceof JavaDummyHolder)
{
return true;
}
if(file1 instanceof JavaDummyHolder || file2 instanceof JavaDummyHolder)
{
JavaDummyHolder dummyHolder = (JavaDummyHolder) (file1 instanceof JavaDummyHolder ? file1 : file2);
PsiElement other = file1 instanceof JavaDummyHolder ? file2 : file1;
return dummyHolder.isSamePackage(other);
}
if(!(file1 instanceof PsiClassOwner))
{
return false;
}
if(!(file2 instanceof PsiClassOwner))
{
return false;
}
String package1 = ((PsiClassOwner) file1).getPackageName();
String package2 = ((PsiClassOwner) file2).getPackageName();
return Comparing.equal(package1, package2);
}
项目:coqidea
文件:GeneratedParserUtilBase.java
private static void initState(IElementType root, PsiBuilder builder, ErrorState state) {
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language);
if (parserDefinition != null) {
state.commentTokens = parserDefinition.getCommentTokens();
state.whitespaceTokens = parserDefinition.getWhitespaceTokens();
}
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}
项目:IntelliFrog
文件:GeneratedParserUtilBase.java
private static void initState(IElementType root, PsiBuilder builder, ErrorState state) {
PsiFile file = builder.getUserDataUnprotected(FileContextUtil.CONTAINING_FILE_KEY);
state.completionState = file == null? null: file.getUserData(COMPLETION_STATE_KEY);
Language language = file == null? root.getLanguage() : file.getLanguage();
state.caseSensitive = language.isCaseSensitive();
ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language);
if (parserDefinition != null) {
state.commentTokens = parserDefinition.getCommentTokens();
state.whitespaceTokens = parserDefinition.getWhitespaceTokens();
}
PairedBraceMatcher matcher = LanguageBraceMatching.INSTANCE.forLanguage(language);
state.braces = matcher == null ? null : matcher.getPairs();
if (state.braces != null && state.braces.length == 0) state.braces = null;
}