Skip to content

jasom/geany-lisp

Repository files navigation

Geany Development Plugin for Common Lisp

This "works on my machine" but is not well tested. Use at your own risk

Requirements

  • Linux (may work on other *nix, but is untested)
  • [[http://geany.org/ | geany]] the oldest version I've tested with is 1.26
  • You will need the plugin-dev headers for the above as well.
  • A lisp executable (currently only tested with sbcl)
  • GNU Emacs
  • A working network connection is required when configuring a project in Geany
    • The plugin downloads a local quicklisp install to the project directory

Installing

PREFIX=$HOME ./configure
./build
./install
  • Enable the plugin from the geany plugin manager
  • Configure keybindings from the geany plugin manager
  • If you wish the "Compile" command to work, copy the filetypes.lisp to ~/.config/geany/filedefs If you do not currently have a filetypes.lisp file in that directory, this will be done automatically the first time you use the plugin.

Current Features

  • Automatic Setup of ASDF and quicklisp for new projects
  • Default the "Make' command to load the project's system into connected image
  • Jump to symbol definition
  • Smart indenting
  • Compile current file
    • Highlight errors and warnings
  • Completion of symbols
  • REPL

Using

This plugin will not do anything until a project has been configured to use the plugin. To do so, open the project you wish to enable to do so and select "Project->Enable GLisp on project" from the menu. This will install a local quicklisp to PROJECT_ROOT/quicklisp, and create an ASDF template using quickproject in PROJECT_ROOT/lisp. It will then alter the project file with an option that includes the command for launching your lisp executable. This defaults to "sbcl --no-sysinit --no-userinit" if you change to a different lisp implementation, ensure that similar options are passed to prevent personal and system configuration initialization scripts from runing.

Known Bugs

  • Tabstop for indentation is hard-coded to 8. It is strongly recommended that you configure geany to use spaces only for indentation for the time being.
    • Note that geany autodetects indentation, so if you open up a file with tabs it may locally use tabs for indentation
    • You can select "Project->Apply default indentation" to set the local file's indentation to be the same as your project's settings.

Unknown Bugs

Probably a lot.