下面列出了怎么用com.intellij.psi.impl.AnyPsiChangeListener的API类实例代码及写法,或者点击链接到github查看源代码。
@Inject
public CSharpPartialElementManager(@Nonnull Project project)
{
myProject = project;
project.getMessageBus().connect().subscribe(PsiManagerImpl.ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener.Adapter()
{
@Override
public void beforePsiChanged(boolean isPhysical)
{
myCache.clear();
}
});
project.getMessageBus().connect().subscribe(ProjectTopics.PROJECT_ROOTS, new ModuleRootAdapter()
{
@Override
public void rootsChanged(ModuleRootEvent event)
{
myCache.clear();
}
});
}
public GraphQLPsiSearchHelper(@NotNull final Project project) {
myProject = project;
mySettings = GraphQLSettings.getSettings(project);
psiManager = PsiManager.getInstance(myProject);
graphQLInjectionSearchHelper = ServiceManager.getService(GraphQLInjectionSearchHelper.class);
injectedLanguageManager = InjectedLanguageManager.getInstance(myProject);
graphQLConfigManager = GraphQLConfigManager.getService(myProject);
pluginDescriptor = PluginManager.getPlugin(PluginId.getId("com.intellij.lang.jsgraphql"));
final PsiFileFactory psiFileFactory = PsiFileFactory.getInstance(myProject);
defaultProjectFile = (GraphQLFile) psiFileFactory.createFileFromText("Default schema file", GraphQLLanguage.INSTANCE, "");
GlobalSearchScope defaultProjectFileScope = GlobalSearchScope.fileScope(defaultProjectFile);
GlobalSearchScope builtInSchemaScope = GlobalSearchScope.fileScope(project, getBuiltInSchema().getVirtualFile());
GlobalSearchScope builtInRelaySchemaScope = GlobalSearchScope.fileScope(project, getRelayModernDirectivesSchema().getVirtualFile());
allBuiltInSchemaScopes = builtInSchemaScope
.union(new ConditionalGlobalSearchScope(builtInRelaySchemaScope, mySettings::isEnableRelayModernFrameworkSupport))
.union(defaultProjectFileScope)
;
final FileType[] searchScopeFileTypes = GraphQLFindUsagesUtil.getService().getIncludedFileTypes().toArray(FileType.EMPTY_ARRAY);
searchScope = GlobalSearchScope.getScopeRestrictedByFileTypes(GlobalSearchScope.projectScope(myProject), searchScopeFileTypes).union(allBuiltInSchemaScopes);
project.getMessageBus().connect().subscribe(PsiManagerImpl.ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener.Adapter() {
@Override
public void beforePsiChanged(boolean isPhysical) {
// clear the cache on each PSI change
fileNameToSchemaScope.clear();
}
});
}
public GraphQLReferenceService(@NotNull final Project project) {
psiSearchHelper = GraphQLPsiSearchHelper.getService(project);
project.getMessageBus().connect().subscribe(PsiManagerImpl.ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener.Adapter() {
@Override
public void beforePsiChanged(boolean isPhysical) {
// clear the cache on each PSI change
logicalTypeNameToReference.clear();
}
});
}
@Inject
public ResolveCache(@Nonnull Project project) {
project.getMessageBus().connect().subscribe(PsiManagerImpl.ANY_PSI_CHANGE_TOPIC, new AnyPsiChangeListener.Adapter() {
@Override
public void beforePsiChanged(boolean isPhysical) {
clearCache(isPhysical);
}
});
}