-
Notifications
You must be signed in to change notification settings - Fork 183
Simple "Hello World" extension
peterflynn edited this page Mar 9, 2013
·
26 revisions
Choose Help > Show Extensions Folder, save this file as extensions/user/HelloWorld/main.js
, then restart Brackets to see it in effect.
/*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
/*global define, $, brackets, window */
/** Simple extension that adds a "File > Hello World" menu item */
define(function (require, exports, module) {
"use strict";
var CommandManager = brackets.getModule("command/CommandManager"),
Menus = brackets.getModule("command/Menus");
// Function to run when the menu item is clicked
function handleHelloWorld() {
window.alert("Hello, world!");
}
// First, register a command - a UI-less object associating an id to a handler
var MY_COMMAND_ID = "helloworld.sayhello"; // package-style naming to avoid collisions
CommandManager.register("Hello World", MY_COMMAND_ID, handleHelloWorld);
// Then create a menu item bound to the command
// The label of the menu item is the name we gave the command (see above)
var menu = Menus.getMenu(Menus.AppMenuBar.FILE_MENU);
menu.addMenuItem(MY_COMMAND_ID);
// We could also add a key binding at the same time:
//menu.addMenuItem(MY_COMMAND_ID, "Ctrl-Alt-H");
// (Note: "Ctrl" is automatically mapped to "Cmd" on Mac)
});
Looking for more detailed information? Check out How to write extensions, or look up the above APIs in the Brackets source code for complete docs.
Here's a slightly fancier version that changes the text in the editor instead of showing an alert() dialog:
/*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
/*global define, $, brackets */
/** Simple extension that adds a "File > Hello World" menu item. Inserts "Hello, world!" at cursor pos. */
define(function (require, exports, module) {
"use strict";
var CommandManager = brackets.getModule("command/CommandManager"),
EditorManager = brackets.getModule("editor/EditorManager"),
Menus = brackets.getModule("command/Menus");
// Function to run when the menu item is clicked
function handleHelloWorld() {
var editor = EditorManager.getFocusedEditor();
if (editor) {
var insertionPos = editor.getCursorPos();
editor.document.replaceRange("Hello, world!", insertionPos);
}
}
// First, register a command - a UI-less object associating an id to a handler
var MY_COMMAND_ID = "helloworld.writehello"; // package-style naming to avoid collisions
CommandManager.register("Hello World 2", MY_COMMAND_ID, handleHelloWorld);
// Then create a menu item bound to the command
// The label of the menu item is the name we gave the command (see above)
var menu = Menus.getMenu(Menus.AppMenuBar.FILE_MENU);
menu.addMenuItem(MY_COMMAND_ID);
});