forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFindReferencesManager.js
More file actions
1 lines (1 loc) · 4.67 KB
/
FindReferencesManager.js
File metadata and controls
1 lines (1 loc) · 4.67 KB
1
define(function(require,exports,module){var AppInit=require("utils/AppInit"),CommandManager=require("command/CommandManager"),MainViewManager=require("view/MainViewManager"),LanguageManager=require("language/LanguageManager"),DocumentManager=require("document/DocumentManager"),Commands=require("command/Commands"),EditorManager=require("editor/EditorManager"),ProjectManager=require("project/ProjectManager"),ProviderRegistrationHandler=require("features/PriorityBasedRegistration").RegistrationHandler,SearchResultsView=require("search/SearchResultsView").SearchResultsView,SearchModel=require("search/SearchModel").SearchModel,Strings=require("strings"),_providerRegistrationHandler=new ProviderRegistrationHandler,registerFindReferencesProvider=_providerRegistrationHandler.registerProvider.bind(_providerRegistrationHandler),removeFindReferencesProvider=_providerRegistrationHandler.removeProvider.bind(_providerRegistrationHandler),searchModel=new SearchModel,_resultsView;function _getReferences(provider,hostEditor,pos){var result=new $.Deferred;return provider?(provider.getReferences(hostEditor,pos).done(function(rcvdObj){searchModel.results=rcvdObj.results,searchModel.numFiles=rcvdObj.numFiles,searchModel.numMatches=rcvdObj.numMatches,searchModel.allResultsAvailable=!0,searchModel.setQueryInfo({query:rcvdObj.queryInfo,caseSensitive:!0,isRegExp:!1}),result.resolve()}).fail(function(){result.reject()}),result.promise()):result.reject()}function _openReferencesPanel(){var editor=EditorManager.getActiveEditor(),pos=editor?editor.getCursorPos():null,referencesPromise,result=new $.Deferred,errorMsg=Strings.REFERENCES_NO_RESULTS,referencesProvider,language=editor.getLanguageForSelection(),enabledProviders;return _providerRegistrationHandler.getProvidersForLanguageId(language.getId()).some(function(item,index){if(item.provider.hasReferences(editor))return referencesProvider=item.provider,!0}),(referencesPromise=_getReferences(referencesProvider,editor,pos))?referencesPromise.done(function(){_resultsView&&_resultsView.open()}).fail(function(){_resultsView&&_resultsView.close(),editor.displayErrorMessageAtCursor(errorMsg),result.reject()}):(_resultsView&&_resultsView.close(),editor.displayErrorMessageAtCursor(errorMsg),result.reject()),result.promise()}function _clearSearch(){searchModel.clear()}function closeReferencesPanel(){_resultsView&&_resultsView.close()}function setMenuItemStateForLanguage(languageId){if(CommandManager.get(Commands.CMD_FIND_ALL_REFERENCES).setEnabled(!1),!languageId){var editor=EditorManager.getActiveEditor();editor&&(languageId=LanguageManager.getLanguageForPath(editor.document.file._path).getId())}var enabledProviders,referencesProvider;_providerRegistrationHandler.getProvidersForLanguageId(languageId).some(function(item,index){if(item.provider.hasReferences())return referencesProvider=item.provider,!0}),referencesProvider&&CommandManager.get(Commands.CMD_FIND_ALL_REFERENCES).setEnabled(!0)}MainViewManager.on("currentFileChange",function(event,newFile,newPaneId,oldFile,oldPaneId){if(newFile){var newFilePath=newFile.fullPath,newLanguage=LanguageManager.getLanguageForPath(newFilePath),newLanguageId=newLanguage.getId();if(newLanguage.isBinary())CommandManager.get(Commands.CMD_FIND_ALL_REFERENCES).setEnabled(!1);else if(setMenuItemStateForLanguage(newLanguageId),DocumentManager.getDocumentForPath(newFilePath).done(function(newDoc){newDoc.off("languageChanged.reference-in-files"),newDoc.on("languageChanged.reference-in-files",function(){var changedLanguageId;setMenuItemStateForLanguage(LanguageManager.getLanguageForPath(newDoc.file.fullPath).getId())})}),oldFile){var oldFilePath=oldFile.fullPath;DocumentManager.getDocumentForPath(oldFilePath).done(function(oldDoc){oldDoc.off("languageChanged.reference-in-files")})}}else CommandManager.get(Commands.CMD_FIND_ALL_REFERENCES).setEnabled(!1)}),AppInit.htmlReady(function(){(_resultsView=new SearchResultsView(searchModel,"reference-in-files-results","reference-in-files.results","reference",Strings.REFERENCES_PANEL_TITLE))&&_resultsView.on("close",function(){_clearSearch()}).on("getNextPage",function(){searchModel.hasResults()&&_resultsView.showNextPage()}).on("getLastPage",function(){searchModel.hasResults()&&_resultsView.showLastPage()})}),ProjectManager.on("beforeProjectClose",function(){_resultsView&&_resultsView.close()}),CommandManager.register(Strings.FIND_ALL_REFERENCES,Commands.CMD_FIND_ALL_REFERENCES,_openReferencesPanel),CommandManager.get(Commands.CMD_FIND_ALL_REFERENCES).setEnabled(!1),exports.registerFindReferencesProvider=registerFindReferencesProvider,exports.removeFindReferencesProvider=removeFindReferencesProvider,exports.setMenuItemStateForLanguage=setMenuItemStateForLanguage,exports.closeReferencesPanel=closeReferencesPanel});