Supercollider emacs package
Go to file
2021-08-10 21:04:10 -04:00
.github/workflows Enable github CI workflow 2021-08-09 16:07:01 -04:00
el Combine sclang-mode into the main sclang file 2021-08-09 22:34:47 -04:00
HelpSource/Classes Fix typo 2019-12-22 23:31:55 +01:00
sc Allow serialisation of SCDocNode trees to Emacs Lisp 2019-12-15 08:02:03 +01:00
.gitignore Add test to expose a load-time issue 2021-08-09 11:57:27 -04:00
CHANGELOG.md Update installation docs 2021-08-10 21:04:10 -04:00
CMakeLists.txt Create a HelpSource directory and document the EmacsBuffer class 2019-12-15 19:51:40 +01:00
README.md Update installation docs 2021-08-10 21:04:10 -04:00
scel.quark Add quark file 2021-07-25 19:54:35 -04:00

scel - sclang-mode for emacs

SuperCollider/Emacs interface

Installation

The repository contains two subprojects. /sc contains the SuperCollider code required to implement the emacs interface. /el contains the emacs-lisp implementation of the mode. Emacs and SuperCollider each have their own package managers, so it is required to install each half separately.

Installing scel quark

The scel Quark is required for emacs to communicate with sclang. Evaluate this in the SuperCollider GUI:

Quarks.install("https://github.com/supercollider/scel");

Installing the emacs mode

Using straight.el

(straight-use-package
 '(sclang :type git 
          :host github 
          :repo "supercollider/scel" 
          :files ("el/*.el")))

Or download the repo directly to your user config directory

git clone https://github.com/supercollider/scel.git ~/.emacs.d/scel
(add-to-list 'load-path "~/.emacs.d/scel/el/")
(require 'sclang)

On MacOS

If sclang executable is not on your path, you may need to add it to your exec-path.

(setq exec-path (append exec-path '("/Applications/SuperCollider.app/Contents/MacOS/")))

On Linux

If you are building SuperCollider from source on Linux, this library (both .el and .sc files) will be installed by default. To disable it pass the flag -DSC_EL=OFF as a cmake option. See the supercollider readme for more info.

Installation requirements

For the HTML help system, you will need emacs-w3m support, but you can still use without that.

(require 'w3m)

Configuration

To fine-tune the installation from within emacs' graphical customization interface, type:

M-x sclang-customize

Usage

M-x sclang-start or open a .scd file and press C-c C-o

You're now ready to edit, inspect and execute sclang code!

Getting help

Inside an sclang-mode buffer (e.g. by editing a .sc file), execute

C-h m

and a window with key bindings in sclang-mode will pop up.

C-x C-h lets you search for a help file

C-M-h opens or switches to the Help browser (if no Help file has been opened, the default Help file will be opened).

E copies the buffer, puts it in text mode and sclang-minor-mode, to enable you to edit the code parts to try out variations of the provided code in the help file. With C-M-h you can then return to the Help browser and browse further from the Help file.

C-c C-e allows you to edit the source of the HTML file, for example if you want to improve it and commit it to the repository.

To enable moving around in the help file with arrow keys add the following in your ~/.emacs:

(eval-after-load "w3m"
 '(progn
 (define-key w3m-mode-map [left] 'backward-char)
 (define-key w3m-mode-map [right] 'forward-char)
 (define-key w3m-mode-map [up] 'previous-line)
 (define-key w3m-mode-map [down] 'next-line)))

This ensures that the arrow keys are just for moving through the document, and not from hyperlink to hyperlink, which is the default in w3m-mode.

Server control

In the post buffer window, right-click on the server name; by default the two servers internal and localhost are available. You will get a menu with common server control operations.

To select another server, step through the server list by left-clicking on the server name.

Servers instantiated from the language will automatically be available in the mode line.