-
-
Notifications
You must be signed in to change notification settings - Fork 12
User Guide
This guide is for version 0.3.1 and up unless mentioned otherwise!
Download plugin for your IDE from releases and install it via file.
ie File->Settings->Plugin, click on gear icon and then 'Install plugin from disk' and then select the downloaded zip (do not unzip the zip)
You no longer need different plugin versions!
Continue with installation of SDK below:
- In the IDE open
Settings > Languages & Frameworks > Common Lisp SDKs
, then click onDownload New SBCL SDK (Windows Only)
- It just works!™ --Todd Howard (cca 2015, colorized)
- Download SBCL from http://prdownloads.sourceforge.net/sbcl/sbcl-2.3.0-x86-64-windows-binary.msi and install it.
- Download quicklisp from https://beta.quicklisp.org/quicklisp.lisp and save it to some folder, in my example
D:\lisp
- Start command line and navigate to folder with
quicklisp.lisp
(ie in my exampleD:\lisp
(D:
andcd lisp
)) - Type
sbcl
- it should be on path if you installed it via msi binary - Type
(load "quicklisp.lisp")
and press enter
- It should end with
T
. Then type(quicklisp-quickstart:install)
end press enter. After download it should look like this:
-
Quicklisp is now installed in your home directory (
C:\Users\<name>\quicklisp
) -
In the IDE open
Settings > Languages & Frameworks > Common Lisp SDKs
, then click onAdd New SBCL SDK
- Then locate sbcl.exe for SBCL executable.
- You can do same with SBCL.core file but it is optional, alternatively you can supply your own core. Then find your
setup.lisp
insidequicklisp
folder in your home and add it to the sdk. Should look like this when filled:
-
Clicking on
Verify SBCL SDK
will download all necessary libraries requires and will verify the SDK. Wait until verification is finished, it can take some time to download all dependencies. ClickSave
and thenApply
to add your SDK. -
Then go to
Languages And Settings > Common Lisp SDK
and click the refresh icon and select your installed SDK from the menu and hitApply
This is a change from 0.3.0! to accommodate deprecated Project
setting
- Done!
- Install SBCL by simply using brew
brew install sbcl
- Second step is to install QuickLisp. The official site has a detailed instruction just for MacOS users. Below I'm presenting the steps I've taken to install it.
curl -O https://beta.quicklisp.org/quicklisp.lisp # Best way is to download to your home directory
curl -O https://beta.quicklisp.org/quicklisp.lisp.asc
gpg --verify quicklisp.lisp.asc quicklisp.lisp # Did not work due to missing gpg command, but that's not critical
sbcl --load quicklisp.lisp
After issuing last command REPL is opened, and installation is as simple as just following the instructions. The ones that are mentioned in the Windows installation section seems to be exactly the same as for MacOS.
- In order to setup the plugin you need to add SBCL to the list of the existing SDKs, the same way as in the Windows installation steps. IMPORTANT! Even after I've added SBCL executables to the config, provided QuickLisp path, verifying the whole thing, Intellij still did not was able to see the SDK in the toolbar or specific SDK config. I had to restart IDE in order for it to refresh the list. After that, SBCL is present in the SDK lists, and can be chosen as a default one.
Installing SBCL from repo works and usually all you need to enter into path is sbcl. Install quicklisp via
$ curl -o /tmp/ql.lisp http://beta.quicklisp.org/quicklisp.lisp
$ sbcl --no-sysinit --no-userinit --load /tmp/ql.lisp --eval '(quicklisp-quickstart:install :path "~/.quicklisp") --quit
To set up SDK, follow Windows
guide above but usually if sbcl is in path, simple sbcl
is all that is required. Quicklisp path must be filled though, which, if you used previous commands to install quicklisp is ~/.quicklisp/setup.lisp
.
To unlock most potential out of plugin you have to start sbcl instance. This is done on Common Lisp toolbar, green icon "Start SBCL Instance".
You can stop the instance by following red button. If you get this error you need to setup SDK, see above.
Click on the "Create Lisp REPL" +
button in Common Lisp
toolbar.
To evaluate expression add one blank line at the end. You can use arrows to get to previous expressions and such.
new from 0.5.1
You can click on result to see it in inspector.
Right click on folder and then "New > Asdf system/Common Lisp Lisp File/Common Lisp CL File" to create basic template
Right click on a file in project explorer and pick Evaluate File option:
Alternatively, you can right click in any opened file and then select "Evaluate Current File"
There are options when you right click:
-
Evaluate Selected Region
will evaluate selected region as an expression. You can evaluate parts of toplevel expressions and inside comments. -
- Default key combination: Ctrl+Alt+R
-
Evaluate This S-Expression
will evaluate S-Expression cursor is in. Only right this expression will be evaluated, not whole toplevel. Will also select the evaluated expression. -
- Default key combination: Ctrl+Alt+F
-
Evaluate Previous S-Expression
will evaluate S-Expression left of cursor. Will also select the evaluated expression. -
- Default key combination: Ctrl+Alt+E
-
Evaluate Next S-Expression
will evaluate S-Expression to the right of the cursor. Will also select the evaluated expression. -
- Default key combination: Ctrl+Alt+Q
As of 0.3.0, only interactive debugger is implemented. If failure happens, SBCL Debuggers
panel will be selected and Debugger #N
will be there:
You can select actions what to do on the left. If actions require parameters you will be prompted to input them:
You can also click on frames to see variables. Click on frame will also open up source location, if available.
this example is from linux where I have SBCL sources available
You can use Frame REPL
to evaluate code in that frame. Alternatively, you can click on locals to enter inspector:
In inspector you can click on more links and/or use arrows to move in history. Refresh will refresh inspector contents on change.
Hovering over a symbol will show documentation retrieved from SBCL:
new from 0.5.1
You can macroexpand by right clicking in editor in a form and then choose Macroexpand option. Result will be show in the popup.
Ctrl+Click on a symbol will open new editor with a file containing source, if there is such file
When you are typing, you get automatic contextual help of available functions and macros
Shift+shift gives context help.
For coloring to work completely, SBCL has to be running. This is also reason default color preview in Jetbrains IDE won't preview correctly.
- Open the Settings Menu,
- Navigate to Editor > Color Scheme > Common Lisp
- Change colors to your liking (if need more help check Intellij help)
You can change some indentation settings for every common lisp project in "Settings > Editor > Common Lisp Indentation"
Or you can also change project specific ones in "Editor > Common Lisp Indentation (Project)"
This is a change from 0.3.0! to accommodate deprecated Project
setting
If "Apply indentation rules" is checked, SLT will try to indent according to simplified slime indentation rules. It will also work with user generated macros and their &body
argument position.
Click on Lisp Instance Information
You can select a thread and stop/kill it with buttons.
If you are inside function call, you can press Ctrl+P
to show argument list:
new from 0.4.0
Spell checking is enabled by default but file has to be under content root (File>Project Structure>Modules)
new from 0.4.0
SLT works with these implementations to a degree: SBCL, ABCL, CCL, Allegro CL, CMUCL. Each version is configured as SDK. You can check FEATURES.md file to see which parts of SLT are supported for that implementation.
You can use roswell in case of binary executable for executable path. Just use ros run
instead of path to sbcl
and it will work just fine.
new from 0.5.0
You can open CLHS tab to see hyperspec (Of course, you need internet because CLHS is not distributed). Alternatively, you can right click on any symbol to search it via Show Symbol In CLHS
or if you have cursor in symbol you can press default Ctrl+Alt+H
.
Example: