An Extempore language extension for Visual Studio Code.
Install it through the Extensions view (View > Extensions
); search for "vscode-extempore".
-
open up an Extempore file (with an
.xtm
) file extension -
start Extempore with
Extempore Start
(use the Command Palette) -
connect VSCode to the Extempore process with
Extempore Connect
-
move your cursor into an Extempore expression and evaluate it with
Extempore Eval
(default keybinding: ctrl+enter on Win/Linux, cmd+enter on macOS)
Only Extempore Eval
has a keybinding by default---although you should
obviously feel free to add your own
keybindings
for other commands.
The extempore "share directory" is just your extempore
folder---the one with
libs
, examples
, runtime
etc. For Extempore Start
to be able to
automatically start Extempore in a new terminal, it needs to know where this
folder is. It tries to figure this out by:
-
if you've added a user setting for
extempore.sharedir
then it'll use that path -
if you opened the root
extempore
folder as your workspace folder in VSCode (e.g. if you're just messing with the examples) then it'll use that -
otherwise, it gives up and bombs out (you can still start extempore however you like, it's just that
Extempore Start
won't do it for you automagically)
If you're planning on doing a lot of Extempore coding, it's not a bad idea to
set that in your user settings. Open your user settings with Preferences: Open User Settings
and add a config entry which looks something like this:
"extempore.sharedir": "/Users/ben/extempore"
Don't forget to replace /Users/ben/extempore
(or C:\Users\ben\extempore
or
whatever) with the path to the extempore
folder on your machine. Also,
make sure your user settings file is still valid
JSON
after you've made your edits.
- start & manage Extempore processes using the built-in terminal
- syntax highlighting
- auto-indent on return
- snippets (see snippets file)
- allow for multiple simultaneous connections (on different host/port)
- more snippets
-
0.0.1
: initial release -
0.0.2
: prompt for host/port -
0.0.3
: addExtempore Start
, send selected region (if selection is active) -
0.0.4
: top-level eval, pretty blinking on eval, sharedir stuff -
0.0.5
:- improved formatting (sets
editor.formatOnType: true
by default) - use
EXTEMPORE_PATH
env var if set - add
Extempore Help
command to jump to docs website - plays nicer with paredit/parinfer
- improved formatting (sets
-
0.0.6
: more robust top-level eval (ignores brackets in strings/comments) -
0.0.7
: more robust top-level eval -
0.0.8
: actually robust top-level eval (honestly ;) -
0.0.9
:- fixed some indenting problems
- added selection formatting
- added snippets for play, mplay, loop, eloop, mloop, mcc
-
0.1.0
:- change "connect" command to just use default host/port---there's a new "connect to host/port" port when you need something other than the defauly
- add an "Extempore: download binary" command (for macOS/Win, anyway)
- make "eval" command work when cursor is just after an s-expression
-
0.2.0
:- fix bug where the "download binary" command wasn't activated properly
-
0.2.1
: automatically detect & download the latest release with the "Download Binary" command -
0.2.2
: no functional changes, but the extension is now bundled by webpack (should be leaner) -
0.2.3
:- bugfix for broken folder paths (when using the "Download Binary" command)
- add "do you want to download this large file" confirmation for Download Binary command
-
0.2.4
: bugfixes for misleading "secondary" error messages -
0.2.5
: bugfix for incorrect download path in "Download Binary" -
0.2.6
: make Extempore extension compatible with older VSCode versions -
0.2.7
: add "start with CLI options" command -
0.2.8
: refactor Extempore start command -
0.2.9
: implementedvscode.DocumentLinkProvider
for links passed tosys:load
(thanks @stellartux) -
0.2.10
: fix broken "Download Binary" command (download paths had changed)
To work on this VSCode extension (any help is appreciated!) you need to:
- install the deps with
npm install
- activate the extension
- make it better
- submit a pull request
MIT