GitHub - purcell/package-lint: A linting library for elisp package metadata
source link: https://github.com/purcell/package-lint
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
package-lint
This library provides a linter for the metadata in Emacs Lisp files which are intended to be packages. You can integrate it into your build process.
package-lint
detects various issues that may make your package
uninstallable or unusable for some users, and it warns about
significant deviations from the Elisp coding
conventions,
such as non-compliant symbol naming, and use of reserved
keybindings. Among other community uses, package-lint
is a
prerequisite for submission of packages to MELPA.
package-lint
can be used standalone, but see also the
flycheck-package and
package-lint-flymake
packages, which both use package-lint
to
conveniently display packaging errors directly in the buffer while
writing elisp packages.
Installation
The recommended way to get
package-lint
is as a package from the MELPA
repository. The version of package-lint
there will always be
up-to-date. There are also packages in MELPA Stable, which
track the latest numbered tag.
Usage
Use the command package-lint-current-buffer
interactively, or use
package-lint-buffer
if linting programmatically.
If you're a package author, you can include package-lint
in your
build process by ensuring that the package is installed, and then
using the function package-lint-batch-and-exit
to lint your files --
see run-tests.sh
in this repo for an example.
Roadmap
Additional checks for future versions:
- WARN: header line formatting / capitalisation
- trailing line presence / formatting
- WARN: library is called *-mode but doesn't provide a major mode
- checkdoc failures for interactive functions / defcustoms
- trailing whitespace?
- themes which aren't in a matching *-theme.el file
- use of unsafe local variables
- local variable set in header line
- using commentary to talk about load[- ]path and installation
- lack of autoloads
- references to README files which won't be bundled in a package
- use of CamelCase identifiers
- Defining a
-mode
function directly instead of usingdefine-derived-mode
ordefine-minor-mode
- Referring to
display-graphic-p
orwindow-system
in-theme.el
files
License
Please refer to the file LICENSE
.
Credits
package-lint
was written by
Steve Purcell with significant
contributions from Fanael Linithien.
Author links:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK