Skip to content

Commit

Permalink
Address Linting warnings
Browse files Browse the repository at this point in the history
Address cl-flet lint warning

... with a simpler implementation of cider--setup-clojure-major-mode.
Can't have cl-flet lint warnings if I don't use cl-flet.

Add clojure-ts-mode dependency to Eldev

Silence byte-compiler when optional clojure-ts-mode is not available

The linter throws a warning when byte-compiling. Eldev doesn't support
pulling in dependencies declared with `eldev-add-extra-dependencies`
while running the `eldev compile` command. See
https://emacs-eldev.github.io/eldev/#additional-dependencies

This makes sense. If a user is byte compiling cider and they don't have
clojure-ts-mode installed, they shouldn't see a byte compile warning for
it.

Make clojure-ts-mode dependency optional

Tests will fail when using Emacs versions less than 29 because
clojure-ts-mode requires Emacs 29 to work properly. That could be why
tests fail in CI. This probably won't help with the linting issue
  • Loading branch information
dannyfreeman authored and bbatsov committed Feb 18, 2024
1 parent fd4862a commit c0bdf94
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 21 deletions.
1 change: 1 addition & 0 deletions Eldev
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

(eldev-add-loading-roots 'test "test/utils")
(eldev-add-extra-dependencies 'runtime '(:package logview :optional t))
(eldev-add-extra-dependencies 'runtime '(:package clojure-ts-mode :optional t))

;; slightly increase the maximum (applies to checkdoc and the byte compiler alike)
(setq byte-compile-docstring-max-column 100)
Expand Down
4 changes: 3 additions & 1 deletion cider-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,9 @@ loaded yet, this will be shown in Clojure buffers next to the Clojure menu."

;;;###autoload
(with-eval-after-load 'clojure-ts-mode
(cider--setup-menu-for-clojure-major-mode clojure-ts-mode-map))
(cider--setup-menu-for-clojure-major-mode
(with-suppressed-warnings ((free-vars clojure-ts-mode-map))
clojure-ts-mode-map)))

;;; Dynamic indentation
(defcustom cider-dynamic-indentation t
Expand Down
4 changes: 2 additions & 2 deletions cider-selector.el
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ is visible, but not focused."
(null (get-buffer-window buffer 'visible))))
return buffer
finally (if consider-visible-p
(error "Can't find unshown buffer in %S" mode)
(cider-selector--recently-visited-buffer mode t))))
(error "Can't find unshown buffer in %S" modes)
(cider-selector--recently-visited-buffer modes t))))

;;;###autoload
(defun cider-selector (&optional other-window)
Expand Down
35 changes: 17 additions & 18 deletions cider.el
Original file line number Diff line number Diff line change
Expand Up @@ -2136,30 +2136,29 @@ alternative to the default is `cider-random-tip'."
(add-hook 'cider-connected-hook #'cider--maybe-inspire-on-connect)

;;;###autoload
(defun cider--setup-clojure-major-mode (mode)
"Setup Cider key bindings and hooks for a Clojure major MODE."
(cl-flet ((concat-symbol (symbol suffix)
(intern (concat (symbol-name mode) suffix))))
(let ((mode-map (eval (concat-symbol mode "-map"))))
(define-key mode-map (kbd "C-c M-x") #'cider)
(define-key mode-map (kbd "C-c M-j") #'cider-jack-in-clj)
(define-key mode-map (kbd "C-c M-J") #'cider-jack-in-cljs)
(define-key mode-map (kbd "C-c M-c") #'cider-connect-clj)
(define-key mode-map (kbd "C-c M-C") #'cider-connect-cljs)
(define-key mode-map (kbd "C-c C-x") 'cider-start-map)
(define-key mode-map (kbd "C-c C-s") 'sesman-map)
(require 'sesman)
(sesman-install-menu mode-map)
(add-hook (concat-symbol mode "-hook")
(lambda () (setq-local sesman-system 'CIDER))))))
(defun cider--setup-clojure-major-mode (mode-map mode-hook)
"Setup Cider key bindings on a Clojure mode's MODE-MAP and hooks in MODE-HOOK."
(define-key mode-map (kbd "C-c M-x") #'cider)
(define-key mode-map (kbd "C-c M-j") #'cider-jack-in-clj)
(define-key mode-map (kbd "C-c M-J") #'cider-jack-in-cljs)
(define-key mode-map (kbd "C-c M-c") #'cider-connect-clj)
(define-key mode-map (kbd "C-c M-C") #'cider-connect-cljs)
(define-key mode-map (kbd "C-c C-x") 'cider-start-map)
(define-key mode-map (kbd "C-c C-s") 'sesman-map)
(require 'sesman)
(sesman-install-menu mode-map)
(add-hook mode-hook (lambda () (setq-local sesman-system 'CIDER))))

;;;###autoload
(with-eval-after-load 'clojure-mode
(cider--setup-clojure-major-mode 'clojure-mode))
(cider--setup-clojure-major-mode clojure-mode-map 'clojure-mode-hook))

;;;###autoload
(with-eval-after-load 'clojure-ts-mode
(cider--setup-clojure-major-mode 'clojure-ts-mode))
(cider--setup-clojure-major-mode
(with-suppressed-warnings ((free-vars clojure-ts-mode-map))
clojure-ts-mode-map)
'clojure-ts-mode-hook))

(provide 'cider)

Expand Down

0 comments on commit c0bdf94

Please sign in to comment.