Introducing nvim-cmp-vlime

I am glad to announce a new Neovim plugin: nvim-cmp-vlime (GitHub mirror). It is a completion source for nvim-cmp which uses the Vlime plugin to fetch completion candidates from a running Common Lisp process. Vlime is a plugin similar to Slime for Emacs, it lets the editor communicate with a running Lisp process so we can evaluate code at runtime, debug, inspect values, and of course get auto-completion. In fact, Vlime uses the same Backend, Swank, as Slime, so the results should be equally good.

While I was at it I decided to try something novel: the changelog is part of the documentation. Run :h cmp-vlime-changelog to open the changelog from within Neovim. The changelog is a simple Vim help file, so all the syntax highlighting and key mappings will work. Here is a small excerpt:

*cmp-vlime-changelog.txt*	Changelog for |cmp-vlime|

All notable changes to this project will be documented in this file.  The
format is based on Keep a Changelog and this project adheres to Semantic

Keep a Changelog:

Semantic Versioning:

Version 0.4.0                                                *cmp-vlime-0.4.0*
Released 2022-11-22


  - Documentation for completion items based on docstring
  - Changelog included in manual (|cmp-vlime-changelog|)


  - Place two spaces between sentences in documentation

Version 0.3.1                                                *cmp-vlime-0.3.1*
Released 2022-11-21


  - Removed dummy information from completion items

There are a couple of thing to note:

  • The gO combo populates the location list with all version numbers so we can jump to a particular version directly

  • We can use references like |cmp-vlime-changelog| to jump to other manuals

  • Each release has a tag like *cmp-vlime-0.3.1* so we can jump to it directly with :h cmp-vlime-0.3.1 or reference it within a manual like |cmp-vlime-0.3.1|.

  • The help index (:help) will reference the changelog

I think it's a pretty cool idea and I would like to adopt it in other plugins as well.