Superpowers
This VSCode extension gives you superpowers in the form of JavaScript expressions, that can be used to map or sort multi-selections.
Preview
Features
- 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
Map/Sort operation usage
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;
Custom map function
Type a JavaScript map callback function and press enter. Your function will get applied to each selection.
Map Presets
Pick a preset to use as the map function.
Custom sort function
Type a JavaScript sort comparison function and press enter to sort the selections.
Sort Presets
Pick a preset to use as the sort function.
Custom reduce function
Type a JavaScript reduce function and press enter to output the result after the selections.
Sort Presets
Pick a preset to use as the reduce function.
Dynamic snippets / completion
Currently, only plaintext and markdown documents are supported, and only two snippets are available;
RT - Inserts the current time, rounded to 15 minutes
TD - Calculates the time delta between two times
Type a snippet, and the autocompletion menu should appear.
Extension Settings
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)"
}
Known Issues
Please report issues via issue tracker.
Release Notes
Extension is still in early phases of development. Expect things to change or be broken.
Development
- Open project in VS Code
- Select
Debug > Start Debugging [F5]
- ¯\_(ツ)_/¯ hack away!
Building
Ensure all changes have been committed.
-
$ vsce package
$ vsce publish [patch/major/minor]
| |