package org.angularjs.service; import com.intellij.lang.javascript.service.JSLanguageService; import com.intellij.lang.javascript.service.highlighting.JSLanguageServiceFilter; import com.intellij.lang.typescript.compiler.languageService.TypeScriptServerServiceImpl; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import org.angularjs.settings.AngularSettings; import org.jetbrains.annotations.NotNull; import static org.angularjs.service.Angular2LanguageService.isEnabledAngularService; public class Angular2LanguageServiceFilter implements JSLanguageServiceFilter { @Override public boolean isAvailable(Project project, @NotNull JSLanguageService service, @NotNull VirtualFile file) { if (!(service instanceof TypeScriptServerServiceImpl)) { return true; } if (!AngularSettings.get(project).isUseService()) { return !(service instanceof Angular2LanguageService); } //we don't know which service we need if (DumbService.isDumb(project)) { return false; } return service instanceof Angular2LanguageService == isEnabledAngularService(project); } }