THIS PLUGIN IS EXPERIMENTAL and can crash at any time! Please report all bugs!
This plugin is providing support for Common Lisp for JetBrains IDEs. Using modified SLIME/Swank protocol to commmunicate with SBCL providing IDE capabilities for Common Lisp.
- Intellij based IDE - tested on
Intellij Idea Community/Ultimate
but should work on all major IDEs- Versions supported are from 2022.2 and upwards
- Steel Bank Common Lisp installed
- Quicklisp
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.
For the first time use, I recommend installing swank and eclector dependencies manually from sbcl because there is 10 seconds timeout to see if swank has initialized,and it might terminate before quicklisp has initialized.
Start sbcl and run this script:
On linux and default quicklisp path:
(load "~/quicklisp/setup.lisp")
(ql:quickload :swank)
(ql:quickload :eclector)
Plugin has 2 options right now. These are accessible in Settings>SLT Configuration
- SBCL executable: Full path to sbcl or if sbcl is in path just
sbcl
is fine.- on windows, you might need .exe or even full path to .exe
- Quicklisp path: path to the
setup.lisp
file of quicklisp. Defaults to~/quicklisp/setup.lisp
Clone the repository and change gradle.properties for your IDE. Then use gradle to build the plugin. You can also open this as a project in Intellij Idea.
- Upload to marketplace when it has enough features
- Automatic indentation
- REPL
- Interactive debugging
- Inspection
- Basic inspection
- Actions
- Inspection eval
- Walkable debugger without actions
- Breakpoints
- Documentation
- Macro expand in documentation
- Macro expand requires you to hover element twice for now
- Find function by symbol name
- Search for symbols
- Back references
- Refactoring
- List of quicklisp installed packages / ASDF packages
- List of modified top level forms that are yet to be evaluated
- Actually make an IDE, ie just plugin with dependencies as one application, not a plugin
- SDK Support
- Automatic download of lisp interpret and quicklisp
- Different lisp interpreter support
- Remote connections to interpreters
- Rewrite everything into ABCL just for purity sake lol
This project is licensed under Apache License v2.
SLT - Speech Language Therapy. Only cure for LISP!