Domain Specific Language
This document provides a reference on the DSL.
Declare a package with the given name, version, and description:
(package "ert-runner" "0.7.0" "Opinionated Ert testing workflow")
All arguments are strings. The version must be a version understood by Emacs'
built-in version-to-list
.
Declare the package website.
(website-url "https://github.com/owner/repo.git")
Declare package keywords.
(keywords "tool" "utility" "emacs")
Declare package’s author.
(author "USER NAME" "user.name@example.com")
Declare package’s author.
(license "GPLv3")
Define this package and its runtime dependencies from the package headers of a file (used only for package development).
(package-file "foo.el")
Declare all package metadata directly by specifying a package descriptor contained in file with name given by file.
(package-descriptor "foo-pkg.el")
Specify list of files that are included in this project.
(files "foo.el")
(files "*.el" "core/*.el")
Add built-in scripts and their preset life cycle event as well as arbitrary scripts.
(script "test" "echo This is a test!")
Add a package archive to install dependencies from.
(source "gnu")
(source "gnu" "https://elpa.gnu.org/packages/")
Available aliases:
gnu
(https://elpa.gnu.org/packages/)nongnu
(https://elpa.nongnu.org/nongnu/)celpa
(https://celpa.conao3.com/)jcs-elpa
(https://jcs-emacs.github.io/jcs-elpa/packages/)marmalade
(https://marmalade-repo.org/packages/)melpa
(https://melpa.org/packages/)melpa-stable
(https://stable.melpa.org/packages/)org
(https://orgmode.org/elpa/)shmelpa
(https://shmelpa.commandlinesystems.com/packages/)ublt
(https://elpa.ubolonton.org/packages/)
Available devel
aliases:
gnu-devel
(https://elpa.gnu.org/devel/)nongnu-devel
(https://elpa.nongnu.org/nongnu-devel/)
π‘ Use –insecure to make https to http, but not recommended!
Set archive priority.
(source-priority "gnu" 5)
Specify a dependency of this package.
Specify dependencies that are listed in archives:
(depends-on "emacs" "26.1")
(depends-on "dash")
(depends-on "company")
Specify dependencies in recipe format:
(depends-on "auto-rename-tag"
:repo "jcs-elpa/auto-rename-tag"
:fetcher 'github)
(depends-on "lsp-ui"
:repo "emacs-lsp/lsp-ui"
:fetcher 'github
:files '(:defaults "lsp-ui-doc.html" "resources"))
π‘ Install dependencies with command eask install-deps!
Scope all depends-on
expressions in body to development.
(development
(depends-on "ert-runner")
(depends-on "elsa"))
π‘ You would need to specify the –dev option for development dependencies!
Specify paths to add to load-path
.
(load-paths "/lisp/")
Specify paths to add to exec-path
.
(load-paths "/bin/")