From abafa52257a60688dd5e36167f6ef152925dcb8a Mon Sep 17 00:00:00 2001 From: Rudi Schlatte Date: Tue, 10 Feb 2026 09:26:29 +0100 Subject: [PATCH] replace cask with eldev ... also fix regex error found by `eldev lint` --- .dir-locals.el | 6 ++-- .emacs/dependencies.el | 15 ---------- .emacs/init.el | 57 ------------------------------------- .github/workflows/check.yml | 36 +++++++++++++---------- .gitignore | 9 +++--- Cask | 8 ------ Eldev | 8 ++++++ Makefile | 27 ------------------ abs-mode.el | 8 +++--- ob-abs.el | 2 +- 10 files changed, 40 insertions(+), 136 deletions(-) delete mode 100644 .emacs/dependencies.el delete mode 100644 .emacs/init.el delete mode 100644 Cask create mode 100644 Eldev delete mode 100644 Makefile diff --git a/.dir-locals.el b/.dir-locals.el index 51457e0..9de6a4c 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -2,8 +2,6 @@ ;;; For more information see (info "(emacs) Directory Variables") ((emacs-lisp-mode - (elisp-lint-ignored-validators . ("fill-column")) (fill-column . 78) - (indent-tabs-mode))) - - + (indent-tabs-mode) + (elisp-lint-ignored-validators . ("fill-column")))) diff --git a/.emacs/dependencies.el b/.emacs/dependencies.el deleted file mode 100644 index 32dd403..0000000 --- a/.emacs/dependencies.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; dependencies.el - project specific package dependencies - -(use-package elisp-lint :ensure t) - -(use-package cc-mode) - -(use-package cc-langs) - -(use-package erlang-start :ensure erlang) - -(use-package cov :ensure t) - -(use-package org :ensure t) - -;;; dependencies.el ends here diff --git a/.emacs/init.el b/.emacs/init.el deleted file mode 100644 index 4266ebd..0000000 --- a/.emacs/init.el +++ /dev/null @@ -1,57 +0,0 @@ -;;; Copied from https://github.com/gonewest818/elisp-lint -;;; init.el - Emacs initialization for isolated package testing -;; -;; Usage: emacs -q -l $project_root/emacs/init.el - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Set `user-emacs-directory' to avoid overwriting $HOME/.emacs.d -;; See also: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=15539#66 - -(setq user-init-file (or load-file-name (buffer-file-name))) -(setq user-emacs-directory (file-name-directory user-init-file)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Make sure customize data doesn't land in this file - -(setq custom-file (concat user-emacs-directory ".emacs-custom.el")) -(when (file-readable-p custom-file) (load custom-file)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Set load-path to include the .el files for the project under development, -;; which reside in the parent of `user-emacs-directory'. Adding this path -;; permits tests to require this package itself. -(add-to-list 'load-path (expand-file-name ".." user-emacs-directory)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Configure melpa and melpa-stable - -(require 'package) -(add-to-list 'package-archives - '("melpa-stable" . "https://stable.melpa.org/packages/") t) -(add-to-list 'package-archives - '("melpa" . "https://melpa.org/packages/") t) -(setq package-enable-at-startup nil) -(package-initialize) -(when (not package-archive-contents) - (package-refresh-contents)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Bootstrap `use-package' - -;; By default these will install from melpa anyway, but using -;; `package-pinned-packages' allows one to pin to melpa-stable -;; if necessary - -(setq package-pinned-packages - '((use-package . "melpa"))) - -(dolist (p (mapcar 'car package-pinned-packages)) - (unless (package-installed-p p) - (package-install p))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Load project dependencies from elsewhere - -(load (concat user-emacs-directory "dependencies.el")) - -;;; init.el ends here diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 50bcc62..a4f1fd7 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -2,31 +2,37 @@ name: check on: pull_request: + paths-ignore: + - '**.md' push: + paths-ignore: + - '**.md' jobs: check: runs-on: ubuntu-latest strategy: - fail-fast: false matrix: emacs_version: - - 26.1 - - 26.2 - - 26.3 - - 27.1 - 27.2 - - 28.1 - 28.2 - - 29.1 - - 29.2 - 29.3 + - 30.2 steps: - - uses: actions/checkout@v2 - - uses: purcell/setup-emacs@master - with: - version: ${{ matrix.emacs_version }} - - uses: leotaku/elisp-check@master + + - name: Set up Emacs + uses: jcs090218/setup-emacs@master with: - # check: melpa - file: abs-mode.el + version: ${{matrix.emacs_version}} + + - name: Install Eldev + uses: emacs-eldev/setup-eldev@v1 + + - name: Check out the source code + uses: actions/checkout@v4 + + - name: Test the project + run: | + eldev -p -dtT doctor + # eldev -p -dtT lint # complains about too-long lines, ignoring .dir-locals.el + eldev -p -dtT test diff --git a/.gitignore b/.gitignore index e0f273e..99f93ef 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,7 @@ # generated files abs-mode-autoloads.el -.cask -.emacs/elpa/ -.emacs/quelpa/ -.emacs/.emacs-custom.el -.elpa + +# Added automatically by ‘eldev init’. +/.eldev +/Eldev-local diff --git a/Cask b/Cask deleted file mode 100644 index da90d3a..0000000 --- a/Cask +++ /dev/null @@ -1,8 +0,0 @@ - -(source gnu) -(source melpa) - -(package-file "abs-mode.el") - -(development - (depends-on "erlang")) diff --git a/Eldev b/Eldev new file mode 100644 index 0000000..af25ca7 --- /dev/null +++ b/Eldev @@ -0,0 +1,8 @@ +; -*- mode: emacs-lisp; lexical-binding: t -*- + +(eldev-use-package-archive 'gnu-elpa) +(eldev-use-package-archive 'melpa) +(eldev-use-plugin 'autoloads) +(eldev-use-plugin 'maintainer) +(setq eldev-main-fileset '("abs-mode.el")) ; ignore ob-abs.el for now +(setq eldev-project-main-file "abs-mode.el") ; eldev doctor complains otherwise diff --git a/Makefile b/Makefile deleted file mode 100644 index 0d648c3..0000000 --- a/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -export EMACS ?= emacs -export BATCH = --batch -q -l .emacs/init.el - -# FIXME: do not hardcode the path to elisp-lint.el -ELL = .emacs/elpa/elisp-lint-20211018.212/elisp-lint.el -# ELS = $(filter-out abs-mode-autoloads.el,$(wildcard *.el)) -ELS = abs-mode.el -OBJECTS = $(ELS:.el=.elc) -BACKUPS = $(ELS:.el=.el~) - -.PHONY: version lint clean cleanelpa - -.elpa: - $(EMACS) $(BATCH) - touch .elpa - -version: .elpa - $(EMACS) $(BATCH) --version - -lint: .elpa - $(EMACS) $(BATCH) -l $(ELL) -f elisp-lint-files-batch $(ELS) - -clean: - rm -f $(OBJECTS) $(BACKUPS) abs-mode-autoloads.el* - -cleanelpa: clean - rm -rf .emacs/elpa .emacs/quelpa .emacs/.emacs-custom.el* .elpa diff --git a/abs-mode.el b/abs-mode.el index a3e5130..0103651 100644 --- a/abs-mode.el +++ b/abs-mode.el @@ -1,11 +1,11 @@ ;;; abs-mode.el --- Major mode for the modeling language Abs -*- lexical-binding: t; -*- -;; Copyright (C) 2010-2022 Rudolf Schlatte +;; Copyright (C) 2010-2022, 2026 Rudolf Schlatte ;; Author: Rudi Schlatte ;; URL: https://github.com/abstools/abs-mode ;; Version: 1.7 -;; Package-Requires: ((emacs "26.1") (erlang "2.8") (maude-mode "0.3") (flymake "1.0") (yasnippet "0.14.0")) +;; Package-Requires: ((emacs "27.1") (erlang "2.8") (maude-mode "0.3") (flymake "1.0") (yasnippet "0.14.0")) ;; Keywords: languages ;; This program is free software; you can redistribute it and/or modify @@ -244,7 +244,7 @@ base model.") (list (concat "\\(" abs--id-regexp "\\)[[:space:]]*(") 1 'abs-function-name-face) (cons (concat "\\(" abs--id-regexp "\\)") 'abs-variable-name-face) - (list "\\<\\(# \w+\\)\\>" 1 'font-lock-warning-face t)) + (list "\\<\\(# \\w+\\)\\>" 1 'font-lock-warning-face t)) "Abs keywords.") ;;; cc-mode wants different fontification levels, but we only offer one. @@ -347,7 +347,7 @@ base model.") (defvar abs--outline-level (lambda () (1+ (/ (current-indentation) abs-indent)))) (defun abs--read-backend () - (interactive) + "Prompt the user to choose a backend." (let ((backend-name (completing-read "Backend: " abs--backends nil t nil nil abs-backend))) (intern-soft backend-name))) ;;; Minimal auto-insert mode support diff --git a/ob-abs.el b/ob-abs.el index cec8e29..73c07c5 100644 --- a/ob-abs.el +++ b/ob-abs.el @@ -1,6 +1,6 @@ ;;; ob-abs.el --- org-babel functions for Abs -*- lexical-binding: t; -*- -;; Copyright (C) 2018 Rudolf Schlatte +;; Copyright (C) 2018, 2026 Rudolf Schlatte ;; Author: Rudi Schlatte ;; URL: https://github.com/abstools/abs-mode