From aa80d05aef6fc7f96ebdc243334bb0258760e1a4 Mon Sep 17 00:00:00 2001 From: Martin Zagora Date: Sun, 16 Mar 2014 12:59:59 +1100 Subject: [PATCH 1/4] Code refactoring and various algorithm fixing --- .jshintrc | 6 +- CHANGELOG.md | 3 + LICENSE | 3 +- README.md | 11 +- data/javascript.json | 3 +- main.js | 440 +++++------------------------ package.json | 2 +- src/InlineSnippetForm.js | 81 ++---- src/Preferences.js | 14 +- src/SettingsDialog.js | 18 +- src/SnippetInsertion.js | 323 +++++++++++++++++++++ src/SnippetPanel.js | 85 ++++++ src/SnippetPresets.js | 36 +-- strings.js | 2 - templates/snippets-table.html | 4 +- {src => thirdparty}/date-format.js | 15 +- 16 files changed, 565 insertions(+), 481 deletions(-) create mode 100644 src/SnippetInsertion.js create mode 100644 src/SnippetPanel.js rename {src => thirdparty}/date-format.js (92%) diff --git a/.jshintrc b/.jshintrc index 3dd023a..5adcad8 100644 --- a/.jshintrc +++ b/.jshintrc @@ -9,7 +9,7 @@ "noarg": true, "noempty": true, "nonew": true, - "quotmark": false, + "quotmark": "double", "undef": true, "unused": true, "strict": false, @@ -31,6 +31,8 @@ "white": true, "globals": { - + "define": true, + "brackets": true, + "Mustache": true } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 952da65..3c814aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 1.2.0 +* Added support for snippet keyboard shortcuts + ## 1.1.0 * Added new settings panel - [#34](https://github.com/jrowny/brackets-snippets/pull/34) * Added support for inline snippets - [#15](https://github.com/jrowny/brackets-snippets/issues/15) diff --git a/LICENSE b/LICENSE index f8d2466..63338f5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,8 @@ The MIT License (MIT) Copyright (c) 2014 Jonathan Rowny and other contributors -https://github.com/jrowny/brackets-snippets/graphs/contributors +http://www.jonathanrowny.com +http://github.com/jrowny/brackets-snippets/graphs/contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.md b/README.md index 9b77fc0..4f3965c 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,11 @@ for (x = 0; x < myArray.length; x++) { If you omit parameters, an inline form will appear. Use `ESC` to close the inline form or `ENTER` to complete the insertion. -Adding Snippets -=============== -You can create new JSON files in the ```data``` directory or you can edit the existing ```javascript.json``` file. Your JSON files can reference template files if they have a `.snippet` extension and are in the `data\snippets` directory. See html5.snippet for an example. +Own snippets +============ + +It's recommended to copy data directory from extension to your own place and link to it through settings dialog. +You can edit the data directory inside the extension __but this will be overridden on every extension update__. + +You can create new JSON files in the ```data``` directory or you can edit the existing ```javascript.json``` file. +Your JSON files can reference template files if they have a `.snippet` extension and are in the `data\snippets` directory. See html5.snippet for an example. diff --git a/data/javascript.json b/data/javascript.json index 432ca97..72e258e 100644 --- a/data/javascript.json +++ b/data/javascript.json @@ -40,6 +40,7 @@ "usage": "log x", "description": "Log a message into console", "template": "console.log($${message});!!{cursor}", - "inline": true + "inline": true, + "shortcut": "Alt-L" } ] diff --git a/main.js b/main.js index fe65b43..96b1751 100644 --- a/main.js +++ b/main.js @@ -1,377 +1,88 @@ -/* - * Copyright (c) 2013 Jonathan Rowny. All rights reserved. - * http://www.jonathanrowny.com - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ -/*global define, brackets, $, Mustache */ - define(function (require, exports, module) { - var _ = brackets.getModule("thirdparty/lodash"), - AppInit = brackets.getModule("utils/AppInit"), - Commands = brackets.getModule("command/Commands"), - CommandManager = brackets.getModule("command/CommandManager"), - EditorManager = brackets.getModule("editor/EditorManager"), - DocumentManager = brackets.getModule("document/DocumentManager"), - ExtensionUtils = brackets.getModule("utils/ExtensionUtils"), - FileSystem = brackets.getModule("filesystem/FileSystem"), - KeyBindingManager = brackets.getModule("command/KeyBindingManager"), - FileUtils = brackets.getModule("file/FileUtils"), - Menus = brackets.getModule("command/Menus"), - PanelManager = brackets.getModule("view/PanelManager"); - - // Local modules - var InlineSnippetForm = require("src/InlineSnippetForm"), - Preferences = require("src/Preferences"), - SettingsDialog = require("src/SettingsDialog"), - SnippetPresets = require("src/SnippetPresets"), - panelHtml = require("text!templates/bottom-panel.html"), - snippetsHTML = require("text!templates/snippets-table.html"); - - //Snippets array - var snippets = [], - //directory where snippets are - snippetsDirectory = Preferences.get("snippetsDirectory").replace(/\\/g, "/"), - $snippetsPanel, - $snippetsContent, - panel; - - //commands - var SNIPPET_EXECUTE = "snippets.execute", - VIEW_HIDE_SNIPPETS = "snippets.hideSnippets"; - - function _handleHideSnippets() { - if (panel.isVisible()) { - panel.hide(); - CommandManager.get(VIEW_HIDE_SNIPPETS).setChecked(false); - } else { - panel.show(); - CommandManager.get(VIEW_HIDE_SNIPPETS).setChecked(true); - } - EditorManager.resizeEditor(); - } - - function inlineSnippetFormProvider(hostEditor, props, snippet) { - var result = new $.Deferred(); - - var snippetForm = new InlineSnippetForm(props, snippet); - snippetForm.load(hostEditor); - result.resolve(snippetForm); - - return result.promise(); - } - - function _parseArgs(str) { - str = str.trim(); - - var result = [], - current = "", - inQuotes = false, - quotes = ['"', "'"]; - - for (var i = 0, l = str.length; i < l; i++) { - if (str[i] === " " && inQuotes === false) { - if (current.length > 0) { - result.push(current); - current = ""; - } - continue; - } - if (inQuotes && str[i] === inQuotes) { - inQuotes = false; - } - if (current.length === 0 && quotes.indexOf(str[i]) !== -1) { - inQuotes = str[i]; - } - current += str[i]; - } - result.push(current); - - return result; - } - - function _handleSnippet(props) { - var editor = EditorManager.getCurrentFullEditor(), - document = DocumentManager.getCurrentDocument(), - pos = editor.getCursorPos(), - line = document.getLine(pos.line), - preInline = null, - postInline = null; - - if (!props) { - props = _parseArgs(line); - } - - function completeInsert(editor, pos, output) { - var s, - x, - cursorPos, - cursorOffset; - - // add back text that was found before inline snippet - if (preInline) { - output = preInline.join(" ") + " " + output; - } - if (postInline) { - output = output + " " + postInline.join(" "); - } - - var lines = output.split("\n"); - - //figure out cursor pos, remove cursor marker - for (s = 0; s < lines.length; s++) { - cursorOffset = lines[s].indexOf('!!{cursor}'); - if (cursorOffset >= 0) { - cursorPos = s; - output = output.replace('!!{cursor}', ''); - break; - } - } - - //do insertion - document.replaceRange(output + "\n", {line: pos.line, ch: 0}, {line: pos.line, ch: 0}); - - //set cursor - editor._codeMirror.setCursor(pos.line + cursorPos, cursorOffset); - - //indent lines - for (x = 0; x < lines.length; x++) { - editor._codeMirror.indentLine(pos.line + x); - } - - //give focus back - EditorManager.focusEditor(); - } - function startInsert(output) { - //we don't need to see the trigger text - CommandManager.execute(Commands.EDIT_DELETE_LINES); - - //find variables - var tmp = output.match(/\$\$\{[0-9A-Z_a-z]{1,32}\}/g); - //remove duplicate variables - var snippetVariables = [], - j; - - if (tmp && tmp.length > 0) { - for (j = 0; j < tmp.length; j++) { - if ($.inArray(tmp[j], snippetVariables) === -1) { - snippetVariables.push(tmp[j]); - } - } - } - - var variablesDifference = props.length - 1 - snippetVariables.length; - - if (variablesDifference > 0) { - // we have more variables than we require - var mid = snippetVariables.length + 1; - postInline = props.slice(mid); - props = props.slice(0, mid); - variablesDifference = 0; - } - - if (variablesDifference === 0) { - // we have exactly as many variables as we need - for (var x = 0; x < snippetVariables.length; x++) { - //even my escapes have escapes - var re = new RegExp(snippetVariables[x].replace('$${', '\\$\\$\\{').replace('}', '\\}'), 'g'); - output = output.replace(re, props[x + 1]); - } - completeInsert(editor, pos, output); - } else { - // we have less variables than we need - var snippetPromise, - result = new $.Deferred(); - snippetPromise = inlineSnippetFormProvider(editor, snippetVariables, output); - - snippetPromise.done(function (inlineWidget) { - var newPos = {line: pos.line - 1, ch: pos.ch}; - editor.addInlineWidget(newPos, inlineWidget); - var inlineComplete = function () { - var z; - for (z = 0; z < snippetVariables.length; z++) { - //even my escapes have escapes - var re = new RegExp(snippetVariables[z].replace('$${', '\\$\\$\\{').replace('}', '\\}'), 'g'); - output = output.replace(re, inlineWidget.$form.find('.snipvar-' + snippetVariables[z].replace('$${', '').replace('}', '')).val()); - } - - completeInsert(editor, pos, output); - }; - inlineWidget.$form.on('complete', function () { - inlineComplete(); - inlineWidget.close(); - }); - }).fail(function () { - result.reject(); - console.log("Can't create inline snippet form"); - }); - } - } - - function readSnippetFromFile(fileName) { - var snippetFilePath = snippetsDirectory + '/snippets/' + fileName; - FileSystem.resolve(snippetFilePath, function (err, snippetFile) { - if (err) { - FileUtils.showFileOpenError(err, snippetFilePath); - return; - } - - snippetFile.read(function (err, text) { - if (err) { - FileUtils.showFileOpenError(err, snippetFile.fullPath); - return; - } - - startInsert(SnippetPresets.execute(text)); - }); + // Brackets modules + var _ = brackets.getModule("thirdparty/lodash"), + AppInit = brackets.getModule("utils/AppInit"), + CommandManager = brackets.getModule("command/CommandManager"), + ExtensionUtils = brackets.getModule("utils/ExtensionUtils"), + FileSystem = brackets.getModule("filesystem/FileSystem"), + FileUtils = brackets.getModule("file/FileUtils"), + KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + + // Dependencies + var Preferences = require("src/Preferences"), + SnippetPanel = require("src/SnippetPanel"), + SnippetInsertion = require("src/SnippetInsertion"); + + function finalizeSnippetsLoading(arrays) { + // merge all results into snippets array + var snippets = arrays.reduce(function (snippets, arr) { + return snippets.concat(arr); + }, []); + + // register keyboard shortcuts for snippets + _.filter(snippets, function (snippet) { + return typeof snippet.shortcut === "string"; + }).forEach(function (snippet) { + var commandName = "Run snippet " + snippet.trigger, + commandString = "snippets.execute." + snippet.trigger; + CommandManager.register(commandName, commandString, function () { + SnippetInsertion.triggerSnippet(snippet); }); - } - - if (props.length) { - //try to find the snippet, given the trigger text - var i, - triggers = _.pluck(snippets, "trigger"); - //go in backwards order for a case there is an inline snippet along the way - for (i = props.length - 1; i > 0; i--) { - - var io, - requireInline = true; - - // launch non-inline in inline mode snippets when %trigger is found - if (props[i][0] === "%") { - requireInline = false; - io = triggers.indexOf(props[i].substring(1)); - } else { - io = triggers.indexOf(props[i]); - } - - if (io !== -1 && (snippets[io].inline || !requireInline)) { - // found inline snippet - preInline = props.slice(0, i); - props = props.slice(i); - startInsert(SnippetPresets.execute(snippets[io].template)); - return; - } - } - //no inline snippet found so look for any snippet that matches props[0] - //it can also have % as a prefix so remove - if (props[0][0] === "%") { - props[0] = props[0].substring(1); - } - var snippet = _.find(snippets, function (s) { - return s.trigger === props[0]; - }); - if (snippet) { - var output = snippet.template; - if (output.indexOf('.snippet') === output.length - 8) { - readSnippetFromFile(output); - } else { - startInsert(SnippetPresets.execute(output)); - } - } - } - } - - //builds the snippets table - function setupSnippets() { - var s = Mustache.render(panelHtml); - panel = PanelManager.createBottomPanel(VIEW_HIDE_SNIPPETS, $(s), 100); - panel.hide(); - - $snippetsPanel = $('#snippets'); - $snippetsContent = $snippetsPanel.find(".resizable-content"); - $snippetsPanel - .on("click", ".snippets-settings", function () { - SettingsDialog.show(); - }) - .on("click", ".snippets-close", function () { - CommandManager.execute(VIEW_HIDE_SNIPPETS); - }); - } - - function finalizeSnippetsTable() { - var i, - len, - $snippetsTable; - for (i = 0, len = arguments.length; i < len; i++) { - if (arguments[i] && arguments[i].length) { - snippets = snippets.concat(arguments[i]); - } - } - $snippetsTable = Mustache.render(snippetsHTML, {"snippets" : snippets}); - $snippetsPanel.find('.resizable-content').append($snippetsTable); - $snippetsPanel.find('.snippets-trigger').on('click', function () { - CommandManager.execute(SNIPPET_EXECUTE, [$(this).attr('data-trigger')]); - }); - $snippetsPanel.find('.snippets-source').on('click', function () { - CommandManager.execute(Commands.FILE_OPEN, { fullPath: snippetsDirectory + "/" + $(this).attr('data-source') }); + KeyBindingManager.addBinding(commandString, snippet.shortcut); }); + + return snippets; } - - //parse a JSON file with a snippet in it - function loadSnippet(fileEntry) { - var result = new $.Deferred(); + + function loadSnippetsFromFile(fileEntry) { + var deferred = new $.Deferred(); fileEntry.read(function (err, text) { if (err) { FileUtils.showFileOpenError(err, fileEntry.fullPath); - result.reject(err); - return; + return deferred.reject(err); } + var newSnippets; + //TODO: a better check for valid snippets try { - //TODO: a better check for valid snippets - var newSnippets = JSON.parse(text); - newSnippets.forEach(function (item) { - item.source = fileEntry.name; - }); - result.resolve(newSnippets); + newSnippets = JSON.parse(text); } catch (err) { console.error("Can't parse snippets from " + fileEntry.fullPath + " - " + err); - result.reject(err); + return deferred.reject(err); } + + newSnippets.forEach(function (item) { + item.source = fileEntry.name; + }); + deferred.resolve(newSnippets); }); - return result; + return deferred.promise(); } - CommandManager.register("Run Snippet", SNIPPET_EXECUTE, _handleSnippet); - CommandManager.register("Show Snippets", VIEW_HIDE_SNIPPETS, _handleHideSnippets); - - function loadSnippets() { + function getSnippetsDirectory() { + var snippetsDirectory = Preferences.get("snippetsDirectory").replace(/\\/g, "/"); if (!FileSystem.isAbsolutePath(snippetsDirectory)) { snippetsDirectory = FileUtils.getNativeModuleDirectoryPath(module) + "/" + snippetsDirectory; } + return snippetsDirectory; + } + + function loadAllSnippetsFromDataDirectory() { + var deferred = new $.Deferred(), + snippetsDirectory = getSnippetsDirectory(); + //loop through the directory to load snippets FileSystem.resolve(snippetsDirectory, function (err, rootEntry) { if (err) { console.error("[Snippets] Error -- could not open snippets directory: " + snippetsDirectory); - console.error(err); - return; + return deferred.reject(err); } rootEntry.getContents(function (err, entries) { if (err) { console.error("[Snippets] Error -- could not read snippets directory: " + snippetsDirectory); - console.error(err); - return; + return deferred.reject(err); } var loading = _.compact(entries.map(function (entry) { @@ -383,39 +94,28 @@ define(function (require, exports, module) { //ignore directories return; } - return loadSnippet(entry); + return loadSnippetsFromFile(entry); })); - $.when.apply(module, loading).done(finalizeSnippetsTable); + $.when.apply(module, loading).done(function () { + deferred.resolve(finalizeSnippetsLoading(_.toArray(arguments))); + }); }); }); + return deferred.promise(); } AppInit.appReady(function () { - //add the HTML UI - setupSnippets(); - - //load css ExtensionUtils.loadStyleSheet(module, "styles/snippets.css"); - - //add the menu and keybinding for view/hide - var menu = Menus.getMenu(Menus.AppMenuBar.VIEW_MENU); - menu.addMenuItem(VIEW_HIDE_SNIPPETS, Preferences.get("showSnippetsPanelShortcut"), Menus.AFTER, Commands.VIEW_HIDE_SIDEBAR); - - // Add toolbar icon - $("") - .attr({ - id: "snippets-enable-icon", - href: "#" - }) - .click(_handleHideSnippets) - .appendTo($("#main-toolbar .buttons")); - - //add the keybinding - KeyBindingManager.addBinding(SNIPPET_EXECUTE, Preferences.get("triggerSnippetShortcut")); - - //load snippets - loadSnippets(); + SnippetPanel.init(); + loadAllSnippetsFromDataDirectory().done(function (snippets) { + SnippetPanel.renderTable(snippets); + SnippetInsertion.init(snippets); + }).fail(function (err) { + console.error(err); + }); }); + // Public API + exports.getSnippetsDirectory = getSnippetsDirectory; }); diff --git a/package.json b/package.json index bb527bd..6fd3d77 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "MIT", "author": "Jonathan Rowny", - "version": "1.1.0-dev", + "version": "1.2.0", "engines": { "brackets": ">=0.36" }, "devDependencies": { diff --git a/src/InlineSnippetForm.js b/src/InlineSnippetForm.js index b5c4c35..01e3024 100644 --- a/src/InlineSnippetForm.js +++ b/src/InlineSnippetForm.js @@ -1,34 +1,9 @@ -/* - * Copyright (c) 2013 Jonathan Rowny. All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ - - -/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ -/*global define, brackets, $, window */ - define(function (require, exports, module) { - 'use strict'; - // Load Brackets modules + "use strict"; + + // Brackets modules var InlineWidget = brackets.getModule("editor/InlineWidget").InlineWidget; + function InlineSnippetForm(props, snippet) { this.props = props; this.snippet = snippet; @@ -37,8 +12,8 @@ define(function (require, exports, module) { } function textWidth(text) { - var html = $('' + text + ''); - $('body').append(html); + var html = $("" + text + ""); + $("body").append(html); var width = html.width(); html.remove(); return width; @@ -59,20 +34,20 @@ define(function (require, exports, module) { x; this.parentClass.load.call(this, hostEditor); - this.$form = $('
'); + this.$form = $("
"); function formElement(property) { - property = property.replace('$${', '').replace('}', ''); - return ''; + property = property.replace("$${", "").replace("}", ""); + return ""; } //make our snippet look nice in the editor - htmlOutput = htmlOutput.replace(//g, '>') - .replace(/(\r\n|\n|\r)/gm, '
') - .replace(/\t/g, ' ') - .replace('!!{cursor}', '') - .replace(/ /g, ' '); + htmlOutput = htmlOutput.replace(//g, ">") + .replace(/(\r\n|\n|\r)/gm, "
") + .replace(/\t/g, " ") + .replace("!!{cursor}", "") + .replace(/ /g, " "); //turn the snippets into form fields for (x = 0; x < this.props.length; x++) { @@ -82,20 +57,20 @@ define(function (require, exports, module) { this.$form.append(htmlOutput); //size the inputs to the placeholders and changing text - this.$form.find('input').each(function () { + this.$form.find("input").each(function () { var $input = $(this); var newWidth = 0; - $input.width(textWidth($(this).attr('placeholder'))); + $input.width(textWidth($(this).attr("placeholder"))); $input.keyup(function () { - if ($input.is(':focus')) { + if ($input.is(":focus")) { if ($(this).val() === "") { - newWidth = textWidth($(this).attr('placeholder')); + newWidth = textWidth($(this).attr("placeholder")); } else { //dash gives it some extra space while typing newWidth = textWidth($(this).val()); } - $input.parent().find('.snipvar-' + $(this).attr('data-snippet')).width(newWidth); - $input.parent().find('.snipvar-' + $(this).attr('data-snippet')).not(this).val($(this).val()); + $input.parent().find(".snipvar-" + $(this).attr("data-snippet")).width(newWidth); + $input.parent().find(".snipvar-" + $(this).attr("data-snippet")).not(this).val($(this).val()); } }); }); @@ -106,24 +81,26 @@ define(function (require, exports, module) { if (e.which === 13) { e.stopImmediatePropagation(); e.preventDefault(); - $(this).trigger('complete'); + $(this).trigger("complete"); } else if (e.which === 9) { //we will control the tabing e.stopImmediatePropagation(); e.preventDefault(); //select the next empty element unless there is no next element... or the next element is the current element - var next = $(this).find('input').filter(function () { return $(this).val() === ""; }); - if (next.length && !$(next[0]).is(':focus')) { + var next = $(this).find("input").filter(function () { return $(this).val() === ""; }); + if (next.length && !$(next[0]).is(":focus")) { $(next[0]).focus(); } else { - $(this).trigger('complete'); + $(this).trigger("complete"); } } }); - this.$htmlContent.addClass('snippet-form-widget'); + this.$htmlContent.addClass("snippet-form-widget"); this.$htmlContent.append(this.$form); + + return this; }; InlineSnippetForm.prototype.close = function () { @@ -132,7 +109,7 @@ define(function (require, exports, module) { InlineSnippetForm.prototype.onAdded = function () { InlineSnippetForm.prototype.parentClass.onAdded.apply(this, arguments); window.setTimeout(this._sizeEditorToContent.bind(this)); - this.$form.find('input').first().focus(); + this.$form.find("input").first().focus(); }; InlineSnippetForm.prototype._sizeEditorToContent = function () { diff --git a/src/Preferences.js b/src/Preferences.js index 646bf78..158131b 100644 --- a/src/Preferences.js +++ b/src/Preferences.js @@ -1,13 +1,15 @@ -/*global brackets, define */ - define(function (require, exports, module) { "use strict"; - var PREFERENCES_KEY = "brackets-snippets", - _ = brackets.getModule("thirdparty/lodash"), - PreferencesManager = brackets.getModule("preferences/PreferencesManager"), - prefs = PreferencesManager.getExtensionPrefs(PREFERENCES_KEY); + // Brackets modules + var _ = brackets.getModule("thirdparty/lodash"), + PreferencesManager = brackets.getModule("preferences/PreferencesManager"); + + // Module constants + var PREFERENCES_KEY = "brackets-snippets"; + // Module variables + var prefs = PreferencesManager.getExtensionPrefs(PREFERENCES_KEY); var defaultPreferences = { "snippetsDirectory": { "type": "string", "value": "data" }, "triggerSnippetShortcut": { "type": "string", "value": "Ctrl-Alt-Space" }, diff --git a/src/SettingsDialog.js b/src/SettingsDialog.js index 5249b5a..62c239d 100644 --- a/src/SettingsDialog.js +++ b/src/SettingsDialog.js @@ -1,15 +1,17 @@ -/*global $, brackets, define, Mustache */ - define(function (require, exports) { "use strict"; - var CommandManager = brackets.getModule("command/CommandManager"), - Dialogs = brackets.getModule("widgets/Dialogs"), - Preferences = require("./Preferences"), - Strings = require("../strings"), - settingsDialogTemplate = require("text!templates/settings-dialog.html"), - questionDialogTemplate = require("text!templates/question-dialog.html"); + // Brackets modules + var CommandManager = brackets.getModule("command/CommandManager"), + Dialogs = brackets.getModule("widgets/Dialogs"); + + // Dependencies + var Preferences = require("./Preferences"), + Strings = require("../strings"), + settingsDialogTemplate = require("text!templates/settings-dialog.html"), + questionDialogTemplate = require("text!templates/question-dialog.html"); + // Module variables var dialog, $dialog; diff --git a/src/SnippetInsertion.js b/src/SnippetInsertion.js new file mode 100644 index 0000000..3df16ad --- /dev/null +++ b/src/SnippetInsertion.js @@ -0,0 +1,323 @@ +define(function (require, exports) { + "use strict"; + + // Brackets modules + var _ = brackets.getModule("thirdparty/lodash"), + Commands = brackets.getModule("command/Commands"), + CommandManager = brackets.getModule("command/CommandManager"), + DocumentManager = brackets.getModule("document/DocumentManager"), + EditorManager = brackets.getModule("editor/EditorManager"), + FileSystem = brackets.getModule("filesystem/FileSystem"), + FileUtils = brackets.getModule("file/FileUtils"), + KeyBindingManager = brackets.getModule("command/KeyBindingManager"); + + // Dependencies + var Main = require("main"), + InlineSnippetForm = require("src/InlineSnippetForm"), + Preferences = require("src/Preferences"), + SnippetPresets = require("src/SnippetPresets"); + + // Module variables + var snippets; + + // create context for inserting snippets that is passed between the functions + function _createContext() { + var editor = EditorManager.getCurrentFullEditor(), + pos = editor.getCursorPos(), + document = DocumentManager.getCurrentDocument(), + line = document.getLine(pos.line); + return { + editor: editor, + pos: pos, + document: document, + line: line + }; + } + + // parse parts of the line as possible arguments or snippet triggers + function _parseArgs(str) { + var result = [], + current = "", + inQuotes = false, + quotes = ["\"", "'"]; + for (var i = 0, l = str.length; i < l; i++) { + if (str[i] === " " && inQuotes === false) { + if (current.length > 0) { + result.push({ + str: current, + ch: i - current.length + }); + current = ""; + } + continue; + } + if (inQuotes && str[i] === inQuotes) { + inQuotes = false; + } + if (current.length === 0 && quotes.indexOf(str[i]) !== -1) { + inQuotes = str[i]; + } + current += str[i]; + } + if (current) { + result.push({ + str: current, + ch: i - current.length + }); + } + return result; + } + + // loads snippets by filename from snippets directory, currently hard-coded + function _readSnippetFromFile(fileName) { + var deferred = new $.Deferred(), + snippetFilePath = Main.getSnippetsDirectory() + "/snippets/" + fileName; + FileSystem.resolve(snippetFilePath, function (err, snippetFile) { + if (err) { + FileUtils.showFileOpenError(err, snippetFilePath); + return deferred.reject(err); + } + + snippetFile.read(function (err, text) { + if (err) { + FileUtils.showFileOpenError(err, snippetFile.fullPath); + return deferred.reject(err); + } + + deferred.resolve(text); + }); + }); + return deferred.promise(); + } + + // loads snippet from file if required, or resolves immediately + function _loadSnippetTemplate(template) { + if (template.indexOf(".snippet") === template.length - 8) { + return _readSnippetFromFile(template); + } else { + return $.Deferred().resolve(template).promise(); + } + } + + function _getVariablesFromTemplate(template) { + var snippetVariables = []; + + // find variables + var tmp = template.match(/\$\$\{[0-9A-Z_a-z]{1,32}\}/g); + // remove duplicate variables + if (tmp && tmp.length > 0) { + for (var j = 0; j < tmp.length; j++) { + if ($.inArray(tmp[j], snippetVariables) === -1) { + snippetVariables.push(tmp[j]); + } + } + } + + return snippetVariables; + } + + function _getInlineSnippetForm(context) { + var hostEditor = context.editor; + var props = context.templateVariables; + var snippet = context.template; + return $.when(new InlineSnippetForm(props, snippet).load(hostEditor)); + } + + // finishes snippet insertion + function _insertSnippet(context) { + var cursorOffsetLine, + cursorOffsetChar, + template = context.template, + snippetLines = template.split("\n"); + + // figure out cursor pos, remove cursor marker + for (var s = 0; s < snippetLines.length; s++) { + cursorOffsetChar = snippetLines[s].indexOf("!!{cursor}"); + if (cursorOffsetChar >= 0) { + cursorOffsetLine = s; + template = template.replace("!!{cursor}", ""); + break; + } + } + + var line = context.pos.line, + chFrom = context.snippetTrigger.ch, + chTo = context.snippetTrigger.ch + context.snippetTrigger.str.length; + + // include used arguments in replace range + if (context.snippetArgs.length > 0) { + var firstStart = _.first(context.snippetArgs).ch; + if (firstStart < chFrom) { + chFrom = firstStart; + } + var last = _.last(context.snippetArgs), + lastEnd = last.ch + last.str.length; + if (lastEnd > chTo) { + chTo = lastEnd; + } + } + + // do insertion + context.document.replaceRange(template, {line: line, ch: chFrom}, {line: line, ch: chTo}); + + // set cursor + context.editor._codeMirror.setCursor(line + cursorOffsetLine, chFrom + cursorOffsetChar); + + // indent lines + for (var x = 0; x < snippetLines.length; x++) { + context.editor._codeMirror.indentLine(line + x); + } + + // give focus back + EditorManager.focusEditor(); + } + + // expects snippet, snippetTrigger, snippetArgs in context + function _executeSnippet(context) { + // load snippet from file if required + return _loadSnippetTemplate(context.snippet.template).done(function (template) { + context.template = template; + // prefill standard variables + context.template = SnippetPresets.execute(context.template); + // we need to find out if our snippet needs any more variables to fill + context.templateVariables = _getVariablesFromTemplate(context.template); + + var variablesDifference = context.snippetArgs.length - context.templateVariables.length; + if (variablesDifference > 0) { + // we have more variables than we require so we need to drop excess + if (context.snippetTrigger.str) { + // if we have trigger string we want variables right of it + context.snippetArgs = context.snippetArgs.slice(0, context.templateVariables.length); + } else { + // if we don't have trigger string we want variables before cursor position + context.snippetArgs = context.snippetArgs.slice(context.snippetArgs.length - context.templateVariables.length); + } + } + + if (variablesDifference >= 0) { + // we can now fill all our variables without the need for insert form + context.templateVariables.forEach(function (variable, index) { + // even my escapes have escapes + var re = new RegExp(variable.replace("$${", "\\$\\$\\{").replace("}", "\\}"), "g"); + context.template = context.template.replace(re, context.snippetArgs[index].str); + }); + return _insertSnippet(context); + } else { + // snippet form has to be triggered + + // we are not using any variables from line + context.snippetArgs = []; + + return _getInlineSnippetForm(context).done(function (inlineWidget) { + // decite a position for the widget + var newPos = { + line: context.pos.line - 1, + ch: context.pos.ch + }; + + context.editor.addInlineWidget(newPos, inlineWidget); + + var inlineComplete = function () { + context.templateVariables.forEach(function (variable, index) { + var re = new RegExp(variable.replace("$${", "\\$\\$\\{").replace("}", "\\}"), "g"), + variableNormalized = variable.replace("$${", "").replace("}", ""), + variableValue = inlineWidget.$form.find(".snipvar-" + variableNormalized).val(); + context.template = context.template.replace(re, variableValue); + }); + return _insertSnippet(context); + }; + + inlineWidget.$form.on("complete", function () { + inlineComplete(); + inlineWidget.close(); + }); + + }).fail(function (err) { + console.error(err); + }); + } + }); + } + + // triggers passed snippet on current cursor position + function triggerSnippet(snippet) { + var context = _createContext(); + context.snippet = snippet; + context.snippetTrigger = { + str: "", + ch: context.pos.ch + }; + // we need to get arguments before cursor position and fill snippetArgs + var props = _parseArgs(context.line); + context.snippetArgs = _.filter(props, function (prop) { return prop.ch <= context.pos.ch; }); + return _executeSnippet(context); + } + + // parses snippet from current line and triggers it + function triggerSnippetOnLine() { + var context = _createContext(); + + // find arguments on the line to identify a snippet to trigger + var props = _parseArgs(context.line); + if (props.length === 0) { return; } + + // try to find the snippet, given the trigger text + var triggers = _.pluck(snippets, "trigger"); + + // go in backwards order for a case there is an inline snippet along the way + for (var i = props.length - 1; i > 0; i--) { + + var io, + requireInline = true; + + // launch non-inline in inline mode snippets when %trigger is found + if (props[i].str[0] === "%") { + requireInline = false; + io = triggers.indexOf(props[i].str.substring(1)); + } else { + io = triggers.indexOf(props[i].str); + } + + if (io !== -1 && (snippets[io].inline || !requireInline)) { + // found inline snippet + context.snippet = snippets[io]; + context.snippetTrigger = props[i]; + context.snippetArgs = props.slice(i + 1); + return _executeSnippet(context); + } + } + + //no inline snippet found so look for any snippet that matches props[0] + //it can also have % as a prefix so remove + var lookFor = props[0].str; + if (lookFor[0] === "%") { + lookFor = lookFor.substring(1); + } + var snippet = _.find(snippets, function (s) { + return s.trigger === lookFor; + }); + if (snippet) { + context.snippet = snippet; + context.snippetTrigger = props[0]; + context.snippetArgs = props.slice(1); + return _executeSnippet(context); + } + } + + function init(_snippets) { + console.log(_snippets); + + // fill module variable + snippets = _snippets; + + //add the keybinding + var SNIPPET_EXECUTE_CMD = "snippets.execute"; + CommandManager.register("Run Snippet", SNIPPET_EXECUTE_CMD, triggerSnippetOnLine); + KeyBindingManager.addBinding(SNIPPET_EXECUTE_CMD, Preferences.get("triggerSnippetShortcut")); + } + + // Public API + exports.triggerSnippet = triggerSnippet; + exports.triggerSnippetOnLine = triggerSnippetOnLine; + exports.init = init; +}); diff --git a/src/SnippetPanel.js b/src/SnippetPanel.js new file mode 100644 index 0000000..314a22c --- /dev/null +++ b/src/SnippetPanel.js @@ -0,0 +1,85 @@ +define(function (require, exports) { + "use strict"; + + // Brackets modules + var CommandManager = brackets.getModule("command/CommandManager"), + Commands = brackets.getModule("command/Commands"), + EditorManager = brackets.getModule("editor/EditorManager"), + Menus = brackets.getModule("command/Menus"), + PanelManager = brackets.getModule("view/PanelManager"); + + // Dependencies + var Main = require("main"), + Preferences = require("src/Preferences"), + SettingsDialog = require("src/SettingsDialog"), + panelHtml = require("text!templates/bottom-panel.html"), + snippetsHTML = require("text!templates/snippets-table.html"); + + // Module constants + var SNIPPET_EXECUTE = "snippets.execute", + VIEW_HIDE_SNIPPETS = "snippets.hideSnippets"; + + // Module variables + var panel, + $panel; + + function renderTable(snippets) { + // render snippets table + var $snippetsTable = Mustache.render(snippetsHTML, {"snippets" : snippets}); + $panel.find(".resizable-content").append($snippetsTable); + $panel.find(".snippets-trigger").on("click", function () { + CommandManager.execute(SNIPPET_EXECUTE, [$(this).attr("data-trigger")]); + }); + $panel.find(".snippets-source").on("click", function () { + CommandManager.execute(Commands.FILE_OPEN, { fullPath: Main.getSnippetsDirectory() + "/" + $(this).attr("data-source") }); + }); + } + + function toggleSnippetPanel() { + var isVisible = !panel.isVisible(); + + if (isVisible) { + panel.show(); + } else { + panel.hide(); + } + + CommandManager.get(VIEW_HIDE_SNIPPETS).setChecked(isVisible); + EditorManager.resizeEditor(); + } + + function init() { + var s = Mustache.render(panelHtml); + panel = PanelManager.createBottomPanel(VIEW_HIDE_SNIPPETS, $(s), 100); + panel.hide(); + + $panel = $("#snippets"); + $panel + .on("click", ".snippets-settings", function () { + SettingsDialog.show(); + }) + .on("click", ".snippets-close", function () { + CommandManager.execute(VIEW_HIDE_SNIPPETS); + }); + + // Add toolbar icon + $("
") + .attr({ + id: "snippets-enable-icon", + href: "#" + }) + .click(toggleSnippetPanel) + .appendTo($("#main-toolbar .buttons")); + + // Add menu entry + var menu = Menus.getMenu(Menus.AppMenuBar.VIEW_MENU); + menu.addMenuItem(VIEW_HIDE_SNIPPETS, Preferences.get("showSnippetsPanelShortcut"), Menus.AFTER, Commands.VIEW_HIDE_SIDEBAR); + } + + // Register command + CommandManager.register("Show Snippets", VIEW_HIDE_SNIPPETS, toggleSnippetPanel); + + // Public API + exports.renderTable = renderTable; + exports.init = init; +}); diff --git a/src/SnippetPresets.js b/src/SnippetPresets.js index af62bfc..8015c0f 100644 --- a/src/SnippetPresets.js +++ b/src/SnippetPresets.js @@ -1,35 +1,13 @@ -/* - * Copyright (c) 2013 Jonathan Rowny - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - */ - -/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ -/*global define, brackets */ - define(function (require, exports) { - 'use strict'; + "use strict"; + + // Brackets modules var DocumentManager = brackets.getModule("document/DocumentManager"); - require("./date-format"); + // Dependencies + require("thirdparty/date-format"); + // Module variables var now, doc, presets = { @@ -116,6 +94,8 @@ define(function (require, exports) { } return input; } + + // Public API exports.execute = _execute; }); diff --git a/strings.js b/strings.js index 009acf0..603a3df 100644 --- a/strings.js +++ b/strings.js @@ -1,5 +1,3 @@ -/*global define */ - /** * This file provides the interface to user visible strings in Brackets. Code that needs * to display strings should should load this module by calling var Strings = require("strings"). diff --git a/templates/snippets-table.html b/templates/snippets-table.html index c93a65f..e7b80f4 100644 --- a/templates/snippets-table.html +++ b/templates/snippets-table.html @@ -4,6 +4,7 @@ Description Trigger Usage + Shortcut Source {{#snippets}} @@ -12,7 +13,8 @@ {{description}} {{trigger}} {{usage}} + {{shortcut}} {{source}} {{/snippets}} - \ No newline at end of file + diff --git a/src/date-format.js b/thirdparty/date-format.js similarity index 92% rename from src/date-format.js rename to thirdparty/date-format.js index 4ef392b..fc54df1 100644 --- a/src/date-format.js +++ b/thirdparty/date-format.js @@ -12,14 +12,14 @@ * The mask defaults to dateFormat.masks.default. */ -var dateFormat = function () { +var dateFormat = (function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; - while (val.length < len) val = "0" + val; + while (val.length < len) { val = "0" + val; } return val; }; @@ -34,8 +34,8 @@ var dateFormat = function () { } // Passing date through Date applies Date.parse, if necessary - date = date ? new Date(date) : new Date; - if (isNaN(date)) throw SyntaxError("invalid date"); + date = date ? new Date(date) : new Date(); + if (isNaN(date)) { throw new SyntaxError("invalid date"); } mask = String(dF.masks[mask] || mask || dF.masks["default"]); @@ -89,7 +89,7 @@ var dateFormat = function () { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; -}(); +}()); // Some common format strings dateFormat.masks = { @@ -120,6 +120,9 @@ dateFormat.i18n = { }; // For convenience... +if (Date.prototype.format) { + throw new Error("Date.prototype.format is already defined!"); +} Date.prototype.format = function (mask, utc) { return dateFormat(this, mask, utc); -}; \ No newline at end of file +}; From 7ca05563af076bf76817bf56e99d504e3a28368b Mon Sep 17 00:00:00 2001 From: Martin Zagora Date: Mon, 17 Mar 2014 11:06:39 +1100 Subject: [PATCH 2/4] Add to documentation --- README.md | 25 +++++++++++++++++++++++++ docs/snippetShortcutArgs.gif | Bin 0 -> 26786 bytes docs/snippetShortcutWidget.gif | Bin 0 -> 30297 bytes 3 files changed, 25 insertions(+) create mode 100644 docs/snippetShortcutArgs.gif create mode 100644 docs/snippetShortcutWidget.gif diff --git a/README.md b/README.md index 4f3965c..d0348af 100644 --- a/README.md +++ b/README.md @@ -40,3 +40,28 @@ You can edit the data directory inside the extension __but this will be overridd You can create new JSON files in the ```data``` directory or you can edit the existing ```javascript.json``` file. Your JSON files can reference template files if they have a `.snippet` extension and are in the `data\snippets` directory. See html5.snippet for an example. + +Snippets with keyboard shortcuts +================================ + +You can defined own shortcuts for immediate snippet execution on current cursor position like this: + +``` +{ + "name": "Sample inline script for console logging", + "trigger": "log", + "usage": "log x", + "description": "Log a message into console", + "template": "console.log($${message});!!{cursor}", + "inline": true, + "shortcut": "Alt-L" +} +``` + +And then simply use it while working on your code: + +- using arguments on the line: +![Shortcut sample animation](https://raw.github.com/jrowny/brackets-snippets/master/docs/snippetShortcutArgs.gif) + +- or using snippet widget: +![Shortcut sample animation 2](https://raw.github.com/jrowny/brackets-snippets/master/docs/snippetShortcutWidget.gif) diff --git a/docs/snippetShortcutArgs.gif b/docs/snippetShortcutArgs.gif new file mode 100644 index 0000000000000000000000000000000000000000..dffcccc72d8be40376901d7a709e87b3706fc331 GIT binary patch literal 26786 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 literal 0 HcmV?d00001 diff --git a/docs/snippetShortcutWidget.gif b/docs/snippetShortcutWidget.gif new file mode 100644 index 0000000000000000000000000000000000000000..31af73deac3fd4658567e60e0d8c62ac12b99db8 GIT binary patch literal 30297 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 Date: Mon, 17 Mar 2014 11:38:21 +1100 Subject: [PATCH 3/4] One more image to docs from #29 --- README.md | 4 ++++ docs/angularExample.gif | Bin 0 -> 195748 bytes src/SnippetInsertion.js | 3 +-- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 docs/angularExample.gif diff --git a/README.md b/README.md index d0348af..9c66b30 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ for (x = 0; x < myArray.length; x++) { If you omit parameters, an inline form will appear. Use `ESC` to close the inline form or `ENTER` to complete the insertion. +![Example animation](https://raw.github.com/jrowny/brackets-snippets/master/docs/angularExample.gif) + Own snippets ============ @@ -61,7 +63,9 @@ You can defined own shortcuts for immediate snippet execution on current cursor And then simply use it while working on your code: - using arguments on the line: + ![Shortcut sample animation](https://raw.github.com/jrowny/brackets-snippets/master/docs/snippetShortcutArgs.gif) - or using snippet widget: + ![Shortcut sample animation 2](https://raw.github.com/jrowny/brackets-snippets/master/docs/snippetShortcutWidget.gif) diff --git a/docs/angularExample.gif b/docs/angularExample.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0a82b72b8e4285948747bccbd4a2d753646f44f GIT binary patch literal 195748 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�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 F{{`2 Date: Mon, 17 Mar 2014 13:10:09 +1100 Subject: [PATCH 4/4] Remove console.log --- src/SnippetInsertion.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/SnippetInsertion.js b/src/SnippetInsertion.js index ad0c1e1..4e4eff7 100644 --- a/src/SnippetInsertion.js +++ b/src/SnippetInsertion.js @@ -304,11 +304,8 @@ define(function (require, exports) { } function init(_snippets) { - console.log(_snippets); - // fill module variable snippets = _snippets; - //add the keybinding var SNIPPET_EXECUTE_CMD = "snippets.execute"; CommandManager.register("Run Snippet", SNIPPET_EXECUTE_CMD, triggerSnippetOnLine);