This VSCode extension gives you superpowers in the form of JavaScript expressions, that can be used to map or sort multi-selections.
- Perform map operations on a selection or multiple selections
- Perform sort operations on multiple selections
- Perform reduce operations on multiple selections
- Generate text via JavaScript expressions
- Save your expressions as presets for easy access
- Support for dynamic snippets / completions
-
Select some text. Optionally, use
Cmd
to select multiple regions. -
Press
Cmd
+Shift
+P
to open the command palette. -
Type "super" to show a list of available commands;
Type a JavaScript map callback function and press enter. Your function will get applied to each selection.
Pick a preset to use as the map function.
Type a JavaScript sort comparison function and press enter to sort the selections.
Pick a preset to use as the sort function.
Type a JavaScript reduce function and press enter to output the result after the selections.
Pick a preset to use as the reduce function.
Currently, only plaintext and markdown documents are supported, and only two snippets are available;
RT
- Inserts the current time, rounded to 15 minutesTD
- Calculates the time delta between two times
Type a snippet, and the autocompletion menu should appear.
This extension contributes the following settings:
-
superpowers.mapPresets
: List of map presets as an array of objects.Example:
{ "name": "replace with index", "function": "(_, i) => i + 1" }
-
superpowers.sortPresets
: List of sort presets as an array of objects.Example:
{ "name": "sort by codepoint", "function": "(a, b) => a.charCodeAt(0) - b.charCodeAt(0)" }
-
superpowers.reducePresets
: List of reduce presets as an array of objects.Example:
{ "name": "sum numbers", "function": "(sum, val) => parseFloat(sum) + parseFloat(val)" }
Please report issues via issue tracker.
Extension is still in early phases of development. Expect things to change or be broken.
- Open project in VS Code
- Select
Debug
>Start Debugging [F5]
- ¯\_(ツ)_/¯ hack away!
-
Ensure all changes have been committed.
-
$ npm i -g vsce $ vsce package $ vsce publish [patch/major/minor]