package org.angularjs.service; import com.intellij.lang.javascript.service.JSLanguageServiceProvider; import com.intellij.lang.typescript.compiler.TypeScriptCompilerSettings; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.NotNullLazyValue; import org.jetbrains.annotations.NotNull; public class Angular2LanguageServiceProvider implements JSLanguageServiceProvider { private final NotNullLazyValue<Angular2LanguageService> myLanguageService; public Angular2LanguageServiceProvider(Project project) { myLanguageService = NotNullLazyValue.createValue(() -> { Angular2LanguageService service = new Angular2LanguageService(project, TypeScriptCompilerSettings.getSettings(project)); Disposer.register(project, service); return service; }); } @NotNull @Override public Angular2LanguageService getService() { return myLanguageService.getValue(); } }