forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLanguageTools.js
More file actions
1 lines (1 loc) · 2.85 KB
/
LanguageTools.js
File metadata and controls
1 lines (1 loc) · 2.85 KB
1
define(function(require,exports,module){var ClientLoader=require("languageTools/ClientLoader"),EditorManager=require("editor/EditorManager"),ProjectManager=require("project/ProjectManager"),DocumentManager=require("document/DocumentManager"),DocumentModule=require("document/Document"),PreferencesManager=require("preferences/PreferencesManager"),Strings=require("strings"),LanguageClientWrapper=require("languageTools/LanguageClientWrapper").LanguageClientWrapper,languageClients=new Map,languageToolsPrefs={showServerLogsInConsole:!1},BRACKETS_EVENTS_NAMES={EDITOR_CHANGE_EVENT:"activeEditorChange",PROJECT_OPEN_EVENT:"projectOpen",PROJECT_CLOSE_EVENT:"beforeProjectClose",DOCUMENT_DIRTY_EVENT:"dirtyFlagChange",DOCUMENT_CHANGE_EVENT:"documentChange",FILE_RENAME_EVENT:"fileNameChange",BEFORE_APP_CLOSE:"beforeAppClose"};function registerLanguageClient(clientName,languageClient){languageClients.set(clientName,languageClient)}function _withNamespace(event){return event.split(" ").filter(value=>!!value).map(value=>value+".language-tools").join(" ")}function _eventHandler(){var eventArgs=arguments;languageClients.forEach(function(client){client.triggerEvent.apply(client,eventArgs)})}function _attachEventHandlers(){EditorManager.on(_withNamespace(BRACKETS_EVENTS_NAMES.EDITOR_CHANGE_EVENT),_eventHandler),ProjectManager.on(_withNamespace(BRACKETS_EVENTS_NAMES.PROJECT_OPEN_EVENT),_eventHandler),ProjectManager.on(_withNamespace(BRACKETS_EVENTS_NAMES.PROJECT_CLOSE_EVENT),_eventHandler),DocumentManager.on(_withNamespace(BRACKETS_EVENTS_NAMES.DOCUMENT_DIRTY_EVENT),_eventHandler),DocumentModule.on(_withNamespace(BRACKETS_EVENTS_NAMES.DOCUMENT_CHANGE_EVENT),_eventHandler),DocumentManager.on(_withNamespace(BRACKETS_EVENTS_NAMES.FILE_RENAME_EVENT),_eventHandler),ProjectManager.on(_withNamespace(BRACKETS_EVENTS_NAMES.BEFORE_APP_CLOSE),_eventHandler)}function listenToCustomEvent(eventModule,eventName){eventModule.on(_withNamespace(eventName),_eventHandler)}function initiateToolingService(clientName,clientFilePath,languages){var result=$.Deferred();return ClientLoader.initiateLanguageClient(clientName,clientFilePath).done(function(languageClientInfo){var languageClientName=languageClientInfo.name,languageClientInterface=languageClientInfo.interface,languageClient=new LanguageClientWrapper(languageClientName,clientFilePath,languageClientInterface,languages);registerLanguageClient(languageClientName,languageClient),result.resolve(languageClient)}).fail(result.reject),result}PreferencesManager.definePreference("languageTools","object",languageToolsPrefs,{description:Strings.LANGUAGE_TOOLS_PREFERENCES}),PreferencesManager.on("change","languageTools",function(){languageToolsPrefs=PreferencesManager.get("languageTools"),ClientLoader.syncPrefsWithDomain(languageToolsPrefs)}),_attachEventHandlers(),exports.initiateToolingService=initiateToolingService,exports.listenToCustomEvent=listenToCustomEvent});