easy-extensibility
Extend VSCode without the ceremony of making a full extension! Just write your code anywhere and it'll be part of VSCode!
Features
- 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.
Accessibility
-
๐ด Open the tutorial to learn more about usingcmd+E
by invokingcmd+h tutorial
-
๐ To learn about โsaving reusable functions and having them load automaticallyโ, please invokecmd+h find users init.js file, or provide a template
Extensive Docs
The E API
is well-documented; for example the E.readInput
method's docs even suggest an example user extension.
Anaphoric Usage (with code completion & docstrings)
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.
A growing user-friendly API!
Why this (meta)extension?
There is essentially only one step (
In constrast, the default approach to making a VSCode extension is as follows:
-
๐ฑ Make a new NodeJS project, say withyo 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 withF5
, 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.
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.