This repository contains a collection features for developing Common Lisp software. Each sub-section below shows a sample devcontainer.json
alongside example usage of the Feature.
Use Devcontainers to quickly spawn containers and work on Common Lisp projects without polluting your user configuration.
Create a project folder and put the following to .devcontainer/devcontainer.json:
{
"image": "mcr.microsoft.com/devcontainers/base:alpine",
"features": {
"ghcr.io/egao1980/features/lem:1": {
"version": "latest"
}
}
}
Then install Devcontainers CLI:
npm install -g @devcontainers/cli
... build container for your project:
devcontainer up --workspace-folder <project-folder>
Now you can run Lem Project editor up and running with latest Roswell, Qlot and SBCL installed:
devcontainer exec --workspace-folder <project-folder> lem
This feature will install and configure roswell
tool with the requested Common Lisp implementation and extra tools. A specific version of Quicklisp distribution could be specified. Ultralisp distribution can be added as well.
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/egao1980/features/roswell:1": {
"version": "latest",
}
}
}
$ ros
Common Lisp environment setup Utility.
Usage:
ros [options] Command [arguments...]
or
ros [options] [[--] script-path arguments...]
commands:
run Run repl
install Install a given implementation or a system for roswell environment
...
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/egao1980/features/roswell:1": {
"version": "latest",
"installLisp": "sbcl/2.5.0",
"useLisp": "sbcl/2.5.0",
"installTools": true,
"installUltralisp": true
}
}
}
This feature provides a Lem project's lem
editor. The feature depends on roswell
with qlot
installed and will automatically install the corresponding feature if not already present in the Devcontainer definition.
{
"image": "mcr.microsoft.com/devcontainers/base:alpine",
"features": {
"ghcr.io/egao1980/features/lem:1": {
"version": "latest"
}
}
}
This uses version
option to select git tag / branch name to install.
{
"image": "mcr.microsoft.com/devcontainers/base:alpine",
"features": {
"ghcr.io/egao1980/features/lem:1": {
"version": "v2.2.0"
}
}
}