Extend VSCode without the ceremony of making a full extension! Just write your code anywhere and it'll be part of VSCode!
π VSCode is itself a JavaScript REPL π:
- New keybinding:
cmd+E
to evaluate a selection of JavaScript, or the entirety of the current line.- Use
shift+cmd+E
to insert the result onto the next line.
- Use
- New keybinding:
cmd+H
to provide a command pallet for user-defined commands using this extension. - The easy-extensibility Extension API, or βE APIβ, which acts as a high-level user-friendly alterative to the default vscode Extension API.
- π΄ Open the tutorial to learn more about using
cmd+E
by invokingcmd+h tutorial
- π To learn about βsaving reusable functions and having them load automaticallyβ, please invoke
cmd+h find users init.js file, or provide a template
The E API
is well-documented; for example the E.readInput
method's docs even suggest an example user extension. π
The current implementation treats VSCode as if it were dynamically-scoped: Any open editor may mention E, commands, vscode
with no ceremonial import of any kind!
- This is similar to the use of the keyword
this
in object-oriented programming: It's an implicitly introduced argument!
However, for discovarability and example uses, it would be nice
to have code completetion: Just write E.
and wait a second to
see possible completions ---or write the name of the method you
want to use and if it's part of the E
API, you'll also get completion as shown below.
There is essentially only one step (β) to making an extension. π€ Sharing an extension, such as a tiny 5-line command, should be as easy as having that defintion code readily available.
In constrast, the default approach to making a VSCode extension is as follows:
- π± Make a new NodeJS project, say with
yo code
as per https://code.visualstudio.com/api/get-started/your-first-extension - β Actually write your extension's code
- π± Run your code in a dedicated sandbox with
F5
, far from your code - π± Try your extension; stop the sandbox; alter your code; repeat.
- Now to actually make use of your extension, you should pacakge it with
vsce package
- To share it with others, you'll need to:
- π± Make a Microsoft account
- π± Make a new Azure organisation, as in https://dev.azure.com/alhassy
- π± Create a Personal Access Token for use in the extension marketplace; as per https://code.visualstudio.com/api/working-with-extensions/publishing-extension
- To share it with others, you'll need to:
This approach doesn't encourage making extensions ---since there's so much ceremony--- and it, likewise, doesn't encourage sharing/packaging up the resulting (tiny) extensions.
π₯ Invoke cmd+h tutorial
to see the tutorial, which
concludes with a comparison of our
init.js
-style extensions
versuses thats of the default VSCode style.