/SLT

SLT is an IDE Plugin for Itellij/Jetbrains IDE lineup implementing support for Common Lisp via SBCL and Slime/Swank

Primary LanguageJavaApache License 2.0Apache-2.0

SLT - A Common Lisp Language Plugin for Jetbrains IDE lineup

License: APACHE 0.1.0 0.2.0

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.

Image

Requirements

  1. Intellij based IDE - tested on Intellij Idea Community/Ultimate but should workd on all major IDEs
    1. Versions supported are from 2022.2 and upwards
  2. Steel Bank Common Lisp installed
  3. Quicklisp

Getting started

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'

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 options

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

Compiling source

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.

Planned features / goals

  • Upload to marketplace when it has enough features
  • REPL
  • Interactive debugging
  • Walkable debugger without actions
  • Breakpoints
  • Documentation
  • Macro expand in documentation
  • 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

Far futures / possible goals

  • Virtual Environment à la pycharm so you can specify which interpret instance you want
  • Automatic download of lisp interpret and quicklisp
  • Different lisp interpreter support
  • Remote connections to interpreters

License

This project is licensed under Apache License v2.