forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
1 lines (1 loc) · 6.53 KB
/
Copy pathmain.js
File metadata and controls
1 lines (1 loc) · 6.53 KB
1
define(function(require,exports,module){const AppInit=require("utils/AppInit"),CommandManager=require("command/CommandManager"),Menus=require("command/Menus"),Commands=require("command/Commands"),WorkspaceManager=require("view/WorkspaceManager"),Strings=require("strings"),Mustache=require("thirdparty/mustache/mustache"),Metrics=require("utils/Metrics"),Driver=require("./driver"),SnippetsList=require("./snippetsList"),CodeHintIntegration=require("./codeHintIntegration"),Helper=require("./helper"),UIHelper=require("./UIHelper"),SnippetsState=require("./snippetsState"),SnippetCursorManager=require("./snippetCursorManager"),Global=require("./global"),snippetsPanelTpl=require("text!./htmlContent/snippets-panel.html");let $snippetsPanel;const MY_COMMAND_ID="custom_snippets",PANEL_ID="customSnippets.panel",MENU_ITEM_NAME=Strings.CUSTOM_SNIPPETS_MENU_ITEM_NAME,PANEL_MIN_SIZE=340;let customSnippetsPanel;function _createPanel(){customSnippetsPanel=WorkspaceManager.createBottomPanel(PANEL_ID,$snippetsPanel,PANEL_MIN_SIZE,Strings.CUSTOM_SNIPPETS_PANEL_TITLE,{iconSvg:"styles/images/panel-icon-snippets.svg"}),UIHelper.init(customSnippetsPanel),customSnippetsPanel.show(),_registerHandlers(),$("#filter-snippets-input").val(""),UIHelper.initializeListViewToolbarTitle(),SnippetsList.showSnippetsList()}function _togglePanelVisibility(){customSnippetsPanel.isVisible()?(customSnippetsPanel.hide(),CommandManager.get(MY_COMMAND_ID).setChecked(!1)):(customSnippetsPanel.show(),CommandManager.get(MY_COMMAND_ID).setChecked(!0),$("#filter-snippets-input").val(""),UIHelper.initializeListViewToolbarTitle(),SnippetsList.showSnippetsList())}function _hidePanel(){customSnippetsPanel.hide(),CommandManager.get(MY_COMMAND_ID).setChecked(!1)}function showCustomSnippetsPanel(){customSnippetsPanel?_togglePanelVisibility():(_createPanel(),CommandManager.get(MY_COMMAND_ID).setChecked(!0))}function _addToMenu(){const menu=Menus.getMenu(Menus.AppMenuBar.FILE_MENU);menu.addMenuItem(MY_COMMAND_ID,"",Menus.BEFORE,Commands.FILE_EXTENSION_MANAGER)}function _registerHandlers(){const $saveCustomSnippetBtn=$("#save-custom-snippet-btn"),$cancelCustomSnippetBtn=$("#cancel-custom-snippet-btn"),$abbrInput=$("#abbr-box"),$descInput=$("#desc-box"),$templateInput=$("#template-text-box"),$fileExtnInput=$("#file-extn-box"),$addSnippetBtn=$("#add-snippet-btn"),$addNewSnippetBtn=$("#add-new-snippet-btn"),$backToListMenuBtn=$("#back-to-list-menu-btn"),$filterInput=$("#filter-snippets-input"),$editAbbrInput=$("#edit-abbr-box"),$editDescInput=$("#edit-desc-box"),$editTemplateInput=$("#edit-template-text-box"),$editFileExtnInput=$("#edit-file-extn-box"),$saveEditSnippetBtn=$("#save-edit-snippet-btn"),$cancelEditSnippetBtn=$("#cancel-edit-snippet-btn");$addSnippetBtn.on("click",function(){UIHelper.showAddSnippetMenu()}),$addNewSnippetBtn.on("click",function(){UIHelper.showAddSnippetMenu()}),$backToListMenuBtn.on("click",function(){UIHelper.showSnippetListMenu(),SnippetsList.showSnippetsList()}),$saveCustomSnippetBtn.on("click",function(){Driver.handleSaveBtnClick()}),$cancelCustomSnippetBtn.on("click",function(){UIHelper.showSnippetListMenu(),SnippetsList.showSnippetsList()}),$abbrInput.on("input",Helper.toggleSaveButtonDisability),$templateInput.on("input",Helper.toggleSaveButtonDisability),$abbrInput.on("keydown",function(e){Helper.validateAbbrInput(e,this)}),$abbrInput.on("paste",function(e){Helper.handleAbbrPaste(e,$(this))}),$descInput.on("keydown",function(e){Helper.validateDescInput(e,this)}),$descInput.on("paste",function(e){Helper.handleDescPaste(e,$(this))}),$templateInput.on("keydown",function(e){Helper.handleTextareaTabKey(e,this)}),$fileExtnInput.on("input",function(){Helper.handleFileExtensionInput($(this))}),$fileExtnInput.on("keypress",function(e){Helper.handleFileExtensionKeypress(e,this)}),$fileExtnInput.on("paste",function(e){Helper.handleFileExtensionPaste(e,$(this))}),$editAbbrInput.on("input",Helper.toggleEditSaveButtonDisability),$editDescInput.on("input",Helper.toggleEditSaveButtonDisability),$editTemplateInput.on("input",Helper.toggleEditSaveButtonDisability),$editFileExtnInput.on("input",Helper.toggleEditSaveButtonDisability),$editAbbrInput.on("keydown",function(e){Helper.validateAbbrInput(e,this)}),$editAbbrInput.on("paste",function(e){Helper.handleAbbrPaste(e,$(this))}),$editDescInput.on("keydown",function(e){Helper.validateDescInput(e,this)}),$editDescInput.on("paste",function(e){Helper.handleDescPaste(e,$(this))}),$editTemplateInput.on("keydown",function(e){Helper.handleTextareaTabKey(e,this)}),$editFileExtnInput.on("input",function(){Helper.handleFileExtensionInput($(this))}),$editFileExtnInput.on("keypress",function(e){Helper.handleFileExtensionKeypress(e,this)}),$editFileExtnInput.on("paste",function(e){Helper.handleFileExtensionPaste(e,$(this))}),$saveEditSnippetBtn.on("click",function(){Driver.handleEditSaveBtnClick()}),$cancelEditSnippetBtn.on("click",function(){Driver.handleCancelEditBtnClick()}),$filterInput.on("keyup input",function(event){if(event&&"Escape"===event.key)return $(this).val(""),void SnippetsList.showSnippetsList();SnippetsList.showSnippetsList()})}let _snippetsTabOpen=!1;WorkspaceManager.on(WorkspaceManager.EVENT_WORKSPACE_PANEL_HIDDEN,function(event,panelID){panelID===PANEL_ID&&customSnippetsPanel&&(_snippetsTabOpen=!1,CommandManager.get(MY_COMMAND_ID).setChecked(!1)),panelID===WorkspaceManager.DEFAULT_PANEL_ID&&CommandManager.get(MY_COMMAND_ID).setChecked(!1)}),WorkspaceManager.on(WorkspaceManager.EVENT_WORKSPACE_PANEL_SHOWN,function(event,panelID){panelID===PANEL_ID&&(_snippetsTabOpen=!0),_snippetsTabOpen&&CommandManager.get(MY_COMMAND_ID).setChecked(!0)}),AppInit.appReady(function(){CommandManager.register(MENU_ITEM_NAME,MY_COMMAND_ID,showCustomSnippetsPanel);const renderedHtml=Mustache.render(snippetsPanelTpl,{Strings:Strings});$snippetsPanel=$(renderedHtml),_addToMenu(),CodeHintIntegration.init();const _snippetsLoadedPromise=SnippetsState.loadSnippetsFromState().then(function(){const snippetCount=Global.SnippetHintsList.length;if(snippetCount>0){const countRange=Metrics.getRangeName(snippetCount);Metrics.countEvent(Metrics.EVENT_TYPE.EDITOR,"snipt",`boot.${countRange}`)}}).catch(function(error){logger.reportError(error,"Custom Snippets: didn't load on app init")});brackets.test&&(brackets.test.CustomSnippetsGlobal=Global,brackets.test.CustomSnippetsHelper=Helper,brackets.test.CustomSnippetsCursorManager=SnippetCursorManager,brackets.test.CustomSnippetsCodeHintHandler=CodeHintIntegration._CustomSnippetsHandler,brackets.test.CustomSnippetsDriver=Driver,brackets.test.CustomSnippetsState=SnippetsState,brackets.test._customSnippetsLoadedPromise=_snippetsLoadedPromise)})});