-
-
Notifications
You must be signed in to change notification settings - Fork 12
User Guide
This guide is for version 0.3.0 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)
To find out which release applies to you check this table:
Jetbrains IDE Variant | Plugin name pattern |
---|---|
CLion | slt-version-signed-CL.zip |
GoLand | slt-version-signed-GO.zip |
Intellij Community | slt-version-signed-IC.zip |
Intellij Ultimate | slt-version-signed-IU.zip |
PyCharm | slt-version-signed-PY.zip |
PyCharm Community | slt-version-signed-PC.zip |
Rider | slt-version-signed-RD.zip |
PhpStorm is coming when I read how to build it correctly since just swapping the type does not work.
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
Project: <yourprojectname> > Common Lisp SDK
and click the refresh icon and select your installed SDK from the menu and hitApply
- Done!
Since I don't own Mac you are on your own. But brew
can probably be used or you can google how to get sbcl on mac. Rest should be the same as for linux version.
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.
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 cursor is in. 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.
todo add example from linux, I have no sources on windows
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:
If the call is a macro, hovering again will also show macro expansion of that macro:
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
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 "Project > Common Lisp Indentation (Project)"
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.