-
Notifications
You must be signed in to change notification settings - Fork 183
Simple "Hello World" extension
ScanuNicco edited this page Sep 25, 2021
·
26 revisions
Choose Help > Show Extensions Folder, save this file as extensions/user/HelloWorld/main.js
, then restart Brackets to see it in effect. Choose File > Hello World. An alert dialog should appear.
/*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-W");
// (Note: "Ctrl" is automatically mapped to "Cmd" on Mac)
});
Extensions should also include a package.json file when ready to share with others.
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);
});