diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-22 17:17:05 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-22 17:17:05 -0500 |
| commit | f8ed7eb315a22b2201f66a75593a641fb8e40b73 (patch) | |
| tree | c878f03abc082f0e407a5197d6f4e9ab35f7dbad /modules/coverage-core.el | |
| parent | f9cdb7a26e00fd45f254c93568ad9c7ddec094f8 (diff) | |
| download | dotemacs-f8ed7eb315a22b2201f66a75593a641fb8e40b73.tar.gz dotemacs-f8ed7eb315a22b2201f66a75593a641fb8e40b73.zip | |
feat(coverage): add elisp backend
First of the pluggable coverage backends. Registers itself with coverage-core on load.
- :name is elisp
- :detect returns non-nil when the project root has a Makefile, Eask, or Cask alongside .el files at root or under modules/. The heuristic is deliberately loose. For anything unusual, .dir-locals.el can pin the backend with cj/coverage-backend.
- :run invokes make coverage in a compilation buffer. On success the callback fires with the LCOV path. On failure the buffer stays visible so the user can read the error.
- :lcov-path resolves to <project-root>/.coverage/lcov.info.
undercover is declared via use-package with :defer t so it's installed but not loaded at Emacs startup. The make coverage target will require it explicitly.
Tests cover Normal (Makefile + modules/, Eask + root .el, Cask + modules/), Boundary (no build file, Makefile without .el, empty directory), and Error (nonexistent root returns nil). The registration-on-load case is also verified.
The Makefile coverage target and the cj/coverage-report user command arrive in follow-up commits.
Diffstat (limited to 'modules/coverage-core.el')
0 files changed, 0 insertions, 0 deletions
