diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 8bbe234c0..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,62 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 90 - -# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. -# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: 30 - -# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) -onlyLabels: [] - -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - "high priority" - - "good first issue" - - "pinned" - -# Set to true to ignore issues in a project (defaults to false) -exemptProjects: false - -# Set to true to ignore issues in a milestone (defaults to false) -exemptMilestones: true - -# Set to true to ignore issues with an assignee (defaults to false) -exemptAssignees: true - -# Label to use when marking as stale -staleLabel: stale - -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contribution and understanding! - -# Comment to post when removing the stale label. -# unmarkComment: > -# Your comment here. - -# Comment to post when closing a stale Issue or Pull Request. -closeComment: > - This issues been automatically closed due to lack of activity. Feel free to re-open it - if you ever come back to it. - -# Limit the number of actions per hour, from 1-30. Default is 30 -limitPerRun: 30 - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': -# pulls: -# daysUntilStale: 30 -# markComment: > -# This pull request has been automatically marked as stale because it has not had -# recent activity. It will be closed if no further activity occurs. Thank you -# for your contributions. - -# issues: -# exemptLabels: -# - confirmed diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..05e690f47 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,36 @@ +name: Close inactive issues and pull requests +on: + schedule: + - cron: "30 1 * * *" + +jobs: + close-issues: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/stale@v9 + with: + days-before-issue-stale: 30 + days-before-issue-close: 30 + stale-issue-label: "stale" + exempt-issue-labels: "high priority, good first issue, pinned" + stale-issue-message: >- + This issue has been automatically marked as stale because it has not + had any recent activity. It will be closed soon if no further + activity occurs. Thank you for your contribution and understanding! + close-issue-message: >- + This issue been automatically closed due to lack of activity. Feel free to re-open it + if you ever come back to it. + days-before-pr-stale: 30 + days-before-pr-close: 30 + exempt-pr-labels: "high priority, good first issue, pinned" + stale-pr-message: >- + This pull request has been automatically marked as stale because it has not + had any recent activity. It will be closed soon if no further + activity occurs. Thank you for your contribution and understanding! + close-pr-message: >- + This issue been automatically closed due to lack of activity. Feel free to re-open it + if you ever come back to it. + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 66efda114..6a33b16ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,14 @@ ## master (unreleased) ### New features + +- Automatic downloading of third-party Java sources for better Java documentation and jump-to-definition functionality. See [Obtaining source JARs](https://docs.cider.mx/cider/usage/working_with_documentation.html#obtaining-source-jars). - CIDER [History](https://docs.cider.mx/cider/repl/history.html): Add a command to delete history item at point. ### Changes - Bump the injected nREPL version to [1.3.1](https://github.com/nrepl/nrepl/blob/master/CHANGELOG.md#131-2025-01-01). -- Bump the injected `cider-nrepl` to [0.51.0](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0510-2025-01-01). +- Bump the injected `cider-nrepl` to [0.52.0](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0520-2025-01-10). - [#3574](https://github.com/clojure-emacs/cider/issues/3574): New value `per-project` for `cider-repl-history-file` to save the history on a per-project basis. ### Bugs fixed diff --git a/README.md b/README.md index b5156e501..cb25a2f10 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,7 @@ site. [[Become a sponsor](https://opencollective.com/cider#sponsor)] CIDER is distributed under the GNU General Public License, version 3. -Copyright © 2012-2024 Bozhidar Batsov, Artur Malabarba, Tim King, Phil Hagelberg and +Copyright © 2012-2025 Bozhidar Batsov, Artur Malabarba, Tim King, Phil Hagelberg and [contributors](https://github.com/clojure-emacs/cider/contributors). [badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg diff --git a/cider-apropos.el b/cider-apropos.el index b94e27ed8..1cf50647c 100644 --- a/cider-apropos.el +++ b/cider-apropos.el @@ -1,6 +1,6 @@ ;;; cider-apropos.el --- Apropos functionality for Clojure -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Jeff Valk, Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Jeff Valk, Bozhidar Batsov and CIDER contributors ;; ;; Author: Jeff Valk diff --git a/cider-browse-ns.el b/cider-browse-ns.el index 4e9e6be79..ce35b5a62 100644 --- a/cider-browse-ns.el +++ b/cider-browse-ns.el @@ -1,6 +1,6 @@ ;;; cider-browse-ns.el --- CIDER namespace browser -*- lexical-binding: t; -*- -;; Copyright © 2014-2024 John Andrews, Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 John Andrews, Bozhidar Batsov and CIDER contributors ;; Author: John Andrews diff --git a/cider-browse-spec.el b/cider-browse-spec.el index 7163a25f1..eb9d28166 100644 --- a/cider-browse-spec.el +++ b/cider-browse-spec.el @@ -1,6 +1,6 @@ ;;; cider-browse-spec.el --- CIDER spec browser -*- lexical-binding: t; -*- -;; Copyright © 2017-2024 Juan Monetta, Bozhidar Batsov and CIDER contributors +;; Copyright © 2017-2025 Juan Monetta, Bozhidar Batsov and CIDER contributors ;; Author: Juan Monetta diff --git a/cider-cheatsheet.el b/cider-cheatsheet.el index fbc07dad6..6babaebcb 100644 --- a/cider-cheatsheet.el +++ b/cider-cheatsheet.el @@ -1,6 +1,6 @@ ;;; cider-cheatsheet.el --- Quick reference for Clojure -*- lexical-binding: t -*- -;; Copyright © 2019-2024 Kris Jenkins, Bozhidar Batsov and CIDER contributors +;; Copyright © 2019-2025 Kris Jenkins, Bozhidar Batsov and CIDER contributors ;; ;; Author: Kris Jenkins ;; Kato Muso diff --git a/cider-classpath.el b/cider-classpath.el index 3ebe86502..55ed6ac6b 100644 --- a/cider-classpath.el +++ b/cider-classpath.el @@ -1,6 +1,6 @@ ;;; cider-classpath.el --- Basic Java classpath browser -*- lexical-binding: t; -*- -;; Copyright © 2014-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Bozhidar Batsov and CIDER contributors ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/cider-client.el b/cider-client.el index 26b222998..b72ccf371 100644 --- a/cider-client.el +++ b/cider-client.el @@ -1,6 +1,6 @@ ;;; cider-client.el --- A layer of abstraction above low-level nREPL client code. -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov ;; ;; Author: Bozhidar Batsov @@ -189,16 +189,20 @@ the current connection. Return the id of the sent message. If TOOLING is truthy then the tooling session is used." (nrepl-send-request request callback (or connection (cider-current-repl 'any 'ensure)) tooling)) -(defun cider-nrepl-send-sync-request (request &optional connection abort-on-input) +(defun cider-nrepl-send-sync-request (request &optional connection + abort-on-input callback) "Send REQUEST to the nREPL server synchronously using CONNECTION. Hold till final \"done\" message has arrived and join all response messages of the same \"op\" that came along and return the accumulated response. If ABORT-ON-INPUT is non-nil, the function will return nil at the first sign of user input, so as not to hang the -interface." +interface. +if CALLBACK is non-nil, it will additionally be called on all received messages." (nrepl-send-sync-request request (or connection (cider-current-repl 'any 'ensure)) - abort-on-input)) + abort-on-input + nil + callback)) (defun cider-nrepl-send-unhandled-request (request &optional connection) "Send REQUEST to the nREPL CONNECTION and ignore any responses. @@ -342,6 +346,17 @@ The default value in nREPL is 1024." :group 'cider :package-version '(cider . "0.25.0")) +(defcustom cider-download-java-sources nil + "Whether to automatically download source artifacts for 3rd-party Java classes. + +When enabled, CIDER will attempt to download source JARs from Maven for +Java classes if the source file is not found locally. This downloading only +happens once per artifact, and only when the user jumps to definition or +requests `cider-doc' on a Java class or a member of the class." + :type 'boolean + :group 'cider + :package-version '(cider . "1.17.0")) + (defun cider--print-fn () "Return the value to send in the nrepl.middleware.print/print slot." (pcase cider-print-fn @@ -681,13 +696,25 @@ CONTEXT represents a completion context for compliment." (defun cider-sync-request:info (symbol &optional class member context) "Send \"info\" op with parameters SYMBOL or CLASS and MEMBER, honor CONTEXT." - (let ((var-info (thread-first `("op" "info" - "ns" ,(cider-current-ns) - ,@(when symbol `("sym" ,symbol)) - ,@(when class `("class" ,class)) - ,@(when member `("member" ,member)) - ,@(when context `("context" ,context))) - (cider-nrepl-send-sync-request (cider-current-repl))))) + (let* ((req + `("op" "info" + "ns" ,(cider-current-ns) + ,@(when symbol `("sym" ,symbol)) + ,@(when class `("class" ,class)) + ,@(when member `("member" ,member)) + ,@(when context `("context" ,context)) + ,@(when cider-download-java-sources `("download-sources-jar" "1")))) + (callback + (lambda (resp) + (let ((status (nrepl-dict-get resp "status")) + (coords (nrepl-dict-get resp "coords"))) + (when (member "download-sources-jar" status) + (message "Local source not found, downloading Java sources for artifact %s/%s %s..." + (nrepl-dict-get coords "group") + (nrepl-dict-get coords "artifact") + (nrepl-dict-get coords "version")))))) + (var-info + (cider-nrepl-send-sync-request req (cider-current-repl) nil callback))) (if (member "no-info" (nrepl-dict-get var-info "status")) nil var-info))) diff --git a/cider-clojuredocs.el b/cider-clojuredocs.el index bfe8800de..0cbb99706 100644 --- a/cider-clojuredocs.el +++ b/cider-clojuredocs.el @@ -1,6 +1,6 @@ ;;; cider-clojuredocs.el --- ClojureDocs integration -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Bozhidar Batsov and CIDER contributors ;; ;; Author: Bozhidar Batsov diff --git a/cider-common.el b/cider-common.el index f3e6582f9..e038d209f 100644 --- a/cider-common.el +++ b/cider-common.el @@ -1,6 +1,6 @@ ;;; cider-common.el --- Common use functions -*- lexical-binding: t; -*- -;; Copyright © 2015-2024 Artur Malabarba +;; Copyright © 2015-2025 Artur Malabarba ;; Author: Artur Malabarba diff --git a/cider-completion-context.el b/cider-completion-context.el index 3ebbf203f..7eca77cf8 100644 --- a/cider-completion-context.el +++ b/cider-completion-context.el @@ -1,6 +1,6 @@ ;;; cider-completion-context.el --- Context parsing -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-completion.el b/cider-completion.el index 1e89adca2..78e64fd10 100644 --- a/cider-completion.el +++ b/cider-completion.el @@ -1,6 +1,6 @@ ;;; cider-completion.el --- Smart REPL-powered code completion -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-connection.el b/cider-connection.el index 35a8f2f04..e1db6c595 100644 --- a/cider-connection.el +++ b/cider-connection.el @@ -1,6 +1,6 @@ ;;; cider-connection.el --- Connection and session life-cycle management for CIDER -*- lexical-binding: t -*- ;; -;; Copyright © 2019-2024 Artur Malabarba, Bozhidar Batsov, Vitalie Spinu and CIDER contributors +;; Copyright © 2019-2025 Artur Malabarba, Bozhidar Batsov, Vitalie Spinu and CIDER contributors ;; ;; Author: Artur Malabarba ;; Bozhidar Batsov diff --git a/cider-debug.el b/cider-debug.el index 5b9a69b38..15ccd2720 100644 --- a/cider-debug.el +++ b/cider-debug.el @@ -1,6 +1,6 @@ ;;; cider-debug.el --- CIDER interaction with the cider.debug nREPL middleware -*- lexical-binding: t; -*- -;; Copyright © 2015-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2015-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; Author: Artur Malabarba diff --git a/cider-doc.el b/cider-doc.el index d76c205e2..d9d4d6466 100644 --- a/cider-doc.el +++ b/cider-doc.el @@ -1,6 +1,6 @@ ;;; cider-doc.el --- CIDER documentation functionality -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Bozhidar Batsov, Jeff Valk and CIDER contributors +;; Copyright © 2014-2025 Bozhidar Batsov, Jeff Valk and CIDER contributors ;; Author: Jeff Valk diff --git a/cider-docstring.el b/cider-docstring.el index 2ff46e1e4..73b29ad24 100644 --- a/cider-docstring.el +++ b/cider-docstring.el @@ -1,6 +1,6 @@ ;;; cider-docstring.el --- Docstring rendering -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov and CIDER contributors ;; ;; Author: Bozhidar Batsov @@ -157,7 +157,8 @@ that it usually has two spaces before each line used for indentation \(see https://guide.clojure.style/#docstring-indentation). While displaying the docstring to the user, we usually want to control indentation and other aspects of the presentation, so we format it before displaying." - (replace-regexp-in-string "\n " "\n" string)) + (when string + (replace-regexp-in-string "\n " "\n" string))) (provide 'cider-docstring) ;;; cider-docstring.el ends here diff --git a/cider-eldoc.el b/cider-eldoc.el index 1137046bb..a787393ba 100644 --- a/cider-eldoc.el +++ b/cider-eldoc.el @@ -1,7 +1,7 @@ ;;; cider-eldoc.el --- eldoc support for Clojure -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-eval.el b/cider-eval.el index e5a68c464..8ca344525 100644 --- a/cider-eval.el +++ b/cider-eval.el @@ -1,7 +1,7 @@ ;;; cider-eval.el --- Interactive evaluation (compilation) functionality -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-find.el b/cider-find.el index 0af706e24..baabf8bf1 100644 --- a/cider-find.el +++ b/cider-find.el @@ -1,6 +1,6 @@ ;;; cider-find.el --- Functionality for finding things -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-format.el b/cider-format.el index 2673430f5..a2b0bcb45 100644 --- a/cider-format.el +++ b/cider-format.el @@ -1,6 +1,6 @@ ;;; cider-format.el --- Code and EDN formatting functionality -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-inspector.el b/cider-inspector.el index 17567b555..dd24103ad 100644 --- a/cider-inspector.el +++ b/cider-inspector.el @@ -1,7 +1,7 @@ ;;; cider-inspector.el --- Object inspector -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Vital Reactor, LLC -;; Copyright © 2014-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2013-2025 Vital Reactor, LLC +;; Copyright © 2014-2025 Bozhidar Batsov and CIDER contributors ;; Author: Ian Eslick ;; Bozhidar Batsov diff --git a/cider-jar.el b/cider-jar.el index 006ad7ec8..49eb6b4ad 100644 --- a/cider-jar.el +++ b/cider-jar.el @@ -1,6 +1,6 @@ ;;; cider-jar.el --- Jar functionality for Clojure -*- lexical-binding: t -*- -;; Copyright © 2022-2024 Arne Brasseur +;; Copyright © 2022-2025 Arne Brasseur ;; ;; Author: Arne Brasseur diff --git a/cider-log.el b/cider-log.el index 4f01f41cd..3a304507e 100644 --- a/cider-log.el +++ b/cider-log.el @@ -1,6 +1,6 @@ ;;; cider-log.el --- Log inspection functionality for Clojure -*- lexical-binding: t -*- -;; Copyright © 2023-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2023-2025 Bozhidar Batsov and CIDER contributors ;; Author: r0man diff --git a/cider-macroexpansion.el b/cider-macroexpansion.el index e445c4331..484827273 100644 --- a/cider-macroexpansion.el +++ b/cider-macroexpansion.el @@ -1,7 +1,7 @@ ;;; cider-macroexpansion.el --- Macro expansion support -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-mode.el b/cider-mode.el index 780a77ca2..64567b46a 100644 --- a/cider-mode.el +++ b/cider-mode.el @@ -1,7 +1,7 @@ ;;; cider-mode.el --- Minor mode for REPL interactions -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-ns.el b/cider-ns.el index 70e06d0be..31018b76f 100644 --- a/cider-ns.el +++ b/cider-ns.el @@ -1,6 +1,6 @@ ;;; cider-ns.el --- Namespace manipulation functionality -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-overlays.el b/cider-overlays.el index 511f89a19..f1808fafc 100644 --- a/cider-overlays.el +++ b/cider-overlays.el @@ -1,6 +1,6 @@ ;;; cider-overlays.el --- Managing CIDER overlays -*- lexical-binding: t; -*- -;; Copyright © 2015-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2015-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; Author: Artur Malabarba diff --git a/cider-popup.el b/cider-popup.el index 0f0e43e0b..316b6a2b3 100644 --- a/cider-popup.el +++ b/cider-popup.el @@ -1,6 +1,6 @@ ;;; cider-popup.el --- Creating and quitting popup buffers -*- lexical-binding: t; -*- -;; Copyright © 2015-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2015-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; Author: Artur Malabarba diff --git a/cider-profile.el b/cider-profile.el index 792d4b54e..3f38bda57 100644 --- a/cider-profile.el +++ b/cider-profile.el @@ -1,6 +1,6 @@ ;;; cider-profile.el --- CIDER support for profiling -*- lexical-binding: t; -*- -;; Copyright © 2014-2024 Edwin Watkeys and CIDER contributors +;; Copyright © 2014-2025 Edwin Watkeys and CIDER contributors ;; Author: Edwin Watkeys ;; Juan E. Maya diff --git a/cider-repl-history.el b/cider-repl-history.el index c205b6502..618cadb62 100644 --- a/cider-repl-history.el +++ b/cider-repl-history.el @@ -1,6 +1,6 @@ ;;; cider-repl-history.el --- REPL input history browser -*- lexical-binding: t; -*- -;; Copyright (c) 2017-2024 John Valente and browse-kill-ring authors +;; Copyright (c) 2017-2025 John Valente and browse-kill-ring authors ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/cider-repl.el b/cider-repl.el index 6c89426fb..c03a050f9 100644 --- a/cider-repl.el +++ b/cider-repl.el @@ -1,7 +1,7 @@ ;;; cider-repl.el --- CIDER REPL mode interactions -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-resolve.el b/cider-resolve.el index eaa49d630..421242078 100644 --- a/cider-resolve.el +++ b/cider-resolve.el @@ -1,6 +1,6 @@ ;;; cider-resolve.el --- Resolve clojure symbols according to current nREPL connection -*- lexical-binding: t; -*- -;; Copyright © 2015-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2015-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; Author: Artur Malabarba diff --git a/cider-scratch.el b/cider-scratch.el index 07de719c6..d82699ba9 100644 --- a/cider-scratch.el +++ b/cider-scratch.el @@ -1,6 +1,6 @@ ;;; cider-scratch.el --- *scratch* buffer for Clojure -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Bozhidar Batsov and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-selector.el b/cider-selector.el index ec4a6503d..e729a8a30 100644 --- a/cider-selector.el +++ b/cider-selector.el @@ -1,7 +1,7 @@ ;;; cider-selector.el --- Buffer selection command inspired by SLIME's selector -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-stacktrace.el b/cider-stacktrace.el index 930193897..41f9b3628 100644 --- a/cider-stacktrace.el +++ b/cider-stacktrace.el @@ -1,6 +1,6 @@ ;;; cider-stacktrace.el --- Stacktrace navigator -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Jeff Valk, Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Jeff Valk, Bozhidar Batsov and CIDER contributors ;; Author: Jeff Valk diff --git a/cider-test.el b/cider-test.el index b67021cea..5190fb9d0 100644 --- a/cider-test.el +++ b/cider-test.el @@ -1,6 +1,6 @@ ;;; cider-test.el --- Test result viewer -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Jeff Valk, Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Jeff Valk, Bozhidar Batsov and CIDER contributors ;; Author: Jeff Valk diff --git a/cider-tracing.el b/cider-tracing.el index f466fc8f9..bccaea407 100644 --- a/cider-tracing.el +++ b/cider-tracing.el @@ -1,6 +1,6 @@ ;;; cider-tracing.el --- Executing tracing functionality -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-util.el b/cider-util.el index 7d4fd6211..6b47086f1 100644 --- a/cider-util.el +++ b/cider-util.el @@ -1,7 +1,7 @@ ;; cider-util.el --- Common utility functions that don't belong anywhere else -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/cider-xref-backend.el b/cider-xref-backend.el index 4b3ca4b0d..0d6a4ca9c 100644 --- a/cider-xref-backend.el +++ b/cider-xref-backend.el @@ -1,6 +1,6 @@ ;;; cider-xref-backend.el --- CIDER's backend for Emacs' xref functionality -*- lexical-binding: t -*- -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Bozhidar Batsov ;; Artur Malabarba diff --git a/cider-xref.el b/cider-xref.el index 453d1ef41..0d49073ac 100644 --- a/cider-xref.el +++ b/cider-xref.el @@ -1,6 +1,6 @@ ;;; cider-xref.el --- Xref functionality for Clojure -*- lexical-binding: t -*- -;; Copyright © 2019-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2019-2025 Bozhidar Batsov and CIDER contributors ;; ;; Author: Bozhidar Batsov diff --git a/cider.el b/cider.el index 4f197ac3e..e4621ca3c 100644 --- a/cider.el +++ b/cider.el @@ -1,7 +1,7 @@ ;;; cider.el --- Clojure Interactive Development Environment that Rocks -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg @@ -11,7 +11,7 @@ ;; Steve Purcell ;; Maintainer: Bozhidar Batsov ;; URL: https://www.github.com/clojure-emacs/cider -;; Version: 1.16.1 +;; Version: 1.17.0-snapshot ;; Package-Requires: ((emacs "26") (clojure-mode "5.19") (parseedn "1.2.1") (queue "0.2") (spinner "1.7") (seq "2.22") (sesman "0.3.2") (transient "0.4.1")) ;; Keywords: languages, clojure, cider @@ -93,7 +93,7 @@ (require 'sesman) (require 'package) -(defconst cider-version "1.16.1" +(defconst cider-version "1.17.0-snapshot" "The current version of CIDER.") (defconst cider-codename "Kherson" @@ -591,7 +591,7 @@ the artifact.") Used when `cider-jack-in-auto-inject-clojure' is set to `latest'.") -(defconst cider-required-middleware-version "0.51.0" +(defconst cider-required-middleware-version "0.52.0" "The CIDER nREPL version that's known to work properly with CIDER.") (defcustom cider-injected-middleware-version cider-required-middleware-version diff --git a/dev/docker-sample-project/project.clj b/dev/docker-sample-project/project.clj index f2f559c05..caa543382 100644 --- a/dev/docker-sample-project/project.clj +++ b/dev/docker-sample-project/project.clj @@ -2,4 +2,4 @@ :dependencies [[org.clojure/clojure "1.11.1"] [clj-http "3.12.3"]] :source-paths ["src"] - :plugins [[cider/cider-nrepl "0.51.0"]]) + :plugins [[cider/cider-nrepl "0.52.0"]]) diff --git a/dev/tramp-sample-project/project.clj b/dev/tramp-sample-project/project.clj index ca5e187f8..5521907a8 100644 --- a/dev/tramp-sample-project/project.clj +++ b/dev/tramp-sample-project/project.clj @@ -2,5 +2,5 @@ :dependencies [[org.clojure/clojure "1.11.1"] [clj-http "3.12.3"]] :source-paths ["src"] - :plugins [[cider/cider-nrepl "0.51.0"] + :plugins [[cider/cider-nrepl "0.52.0"] [refactor-nrepl "3.9.0"]]) diff --git a/doc/modules/ROOT/pages/about/compatibility.adoc b/doc/modules/ROOT/pages/about/compatibility.adoc index f8ea78c5d..310360536 100644 --- a/doc/modules/ROOT/pages/about/compatibility.adoc +++ b/doc/modules/ROOT/pages/about/compatibility.adoc @@ -16,15 +16,17 @@ NOTE: We pay special attention to supporting whatever nREPL is bundled with the == Java -CIDER officially targets Java 8, Java 11, Java 17, Java 21 and the most recent rapid -release version (e.g. Java 22). Generally speaking, we aim -to support all Java releases that are currently officially supported -by Oracle.footnote:[You can find more information about the supported Java releases https://www.oracle.com/java/technologies/java-se-support-roadmap.html[here].] +CIDER officially targets Java 8, Java 11, Java 17, Java 21, and the most recent +non-LTS version. Generally speaking, we aim to support all Java releases that +are currently officially supported by Oracle.footnote:[You can find more +information about the supported Java releases +https://www.oracle.com/java/technologies/java-se-support-roadmap.html[here].] NOTE: The requirements for Java are pretty much ``cider-nrepl``'s requirements. -On Linux you are also required to make sure that JDK sources and javadocs are installed. -You can find example commands in xref:troubleshooting.adoc#navigation-to-jdk-sources-doesnt-work[Troubleshooting]. +While CIDER can work with +https://www.ibm.com/think/topics/jvm-vs-jre-vs-jdk[JRE], it is recommended to +use the full JDK distribution. == Clojure @@ -46,58 +48,12 @@ Currently we apply the same policy for Clojure and ClojureScript support. == Compatibility Matrix -NOTE: For a very long time CIDER and cider-nrepl were released in lock-step, but -this changed in CIDER 0.18. The actual releases diverged for the first time in -CIDER 0.23. - Below you can find the official compatibility matrix for CIDER. .Compatibility Matrix |=== | CIDER | Emacs | nREPL | cider-nrepl | Required JDK | Required Clojure -| 0.22 -| 25.1 -| 0.6 -| 0.22 -| 8 -| 1.8 - -| 0.23 -| 25.1 -| 0.6 -| 0.22 -| 8 -| 1.8 - -| 0.24 -| 25.1 -| 0.6 -| 0.24 -| 8 -| 1.8 - -| 0.25 -| 25.1 -| 0.6 -| 0.25 -| 8 -| 1.8 - -| 0.26 -| 25.1 -| 0.6 -| 0.25 -| 8 -| 1.8 - -| 1.0 -| 25.1 -| 0.6 -| 0.25 -| 8 -| 1.8 - | 1.1 | 25.1 | 0.6 @@ -105,55 +61,6 @@ Below you can find the official compatibility matrix for CIDER. | 8 | 1.8 -| 1.2 -| 26.1 -| 0.9 -| 0.27 -| 8 -| 1.8 - -| 1.3 -| 26.1 -| 0.9 -| 0.28 -| 8 -| 1.8 - -| 1.4 -| 26.1 -| 0.9 -| 0.28 -| 8 -| 1.8 - -| 1.5 -| 26.1 -| 0.9 -| 0.28 -| 8 -| 1.8 - -| 1.6 -| 26.1 -| 1.0 -| 0.29 -| 8 -| 1.8 - -| 1.7 -| 26.1 -| 1.0 -| 0.30 -| 8 -| 1.8 - -| 1.8 -| 26.1 -| 1.0 -| 0.40 -| 8 -| 1.8 - | 1.9 | 26.1 | 1.0 @@ -161,13 +68,6 @@ Below you can find the official compatibility matrix for CIDER. | 8 | 1.8 -| 1.12 -| 26.1 -| 1.0 -| 0.44 -| 8 -| 1.9 - | 1.13 | 26.1 | 1.0 @@ -175,20 +75,6 @@ Below you can find the official compatibility matrix for CIDER. | 8 | 1.9 -| 1.14 -| 26.1 -| 1.0 -| 0.47 -| 8 -| 1.10 - -| 1.15 -| 26.1 -| 1.0 -| 0.49 -| 8 -| 1.10 - | 1.16 | 26.1 | 1.0 diff --git a/doc/modules/ROOT/pages/about/license.adoc b/doc/modules/ROOT/pages/about/license.adoc index afc25969e..fa68717cc 100644 --- a/doc/modules/ROOT/pages/about/license.adoc +++ b/doc/modules/ROOT/pages/about/license.adoc @@ -21,4 +21,4 @@ NOTE: Reach out to Bozhidar if you have any questions about licensing. == Copyright -© 2012-2024 Bozhidar Batsov, Artur Malabarba, Tim King, Phil Hagelberg and CIDER contributors. +© 2012-2025 Bozhidar Batsov, Artur Malabarba, Tim King, Phil Hagelberg and CIDER contributors. diff --git a/doc/modules/ROOT/pages/basics/installation.adoc b/doc/modules/ROOT/pages/basics/installation.adoc index 182906cbb..8e17b377f 100644 --- a/doc/modules/ROOT/pages/basics/installation.adoc +++ b/doc/modules/ROOT/pages/basics/installation.adoc @@ -12,17 +12,14 @@ release. If you're new to Emacs you might want to go through https://www.gnu.org/software/emacs/tour/index.html[the guided tour of Emacs] and the built-in tutorial (just press kbd:[C-h t]). -CIDER officially supports Emacs 26.1+, Java 8+ and Clojure(Script) -1.8+. CIDER 0.17 (Andalucía) was the final release which supported -Java 7 and Clojure(Script) 1.7. +CIDER officially supports Emacs 26.1+, Java 8+, and Clojure(Script) 1.10+. If +you need to work with earlier versions, check +xref:about/compatibility.adoc#compatibility-matrix[compatibility matrix]. You'll also need a recent version of either the Clojure CLI tools or your favorite build tool (Leiningen, Boot, or Gradle) to be able to start CIDER via `cider-jack-in`. Generally it's a good idea to use the latest stable versions. -On Linux you are also required to make sure that JDK sources and javadocs are installed. -You can find example commands in xref:troubleshooting.adoc#navigation-to-jdk-sources-doesnt-work[Troubleshooting]. - == Installation via package.el CIDER is available on all major `package.el` community diff --git a/doc/modules/ROOT/pages/basics/middleware_setup.adoc b/doc/modules/ROOT/pages/basics/middleware_setup.adoc index 77c5ff5b2..255eac6a5 100644 --- a/doc/modules/ROOT/pages/basics/middleware_setup.adoc +++ b/doc/modules/ROOT/pages/basics/middleware_setup.adoc @@ -4,69 +4,36 @@ NOTE: You can skip this section if you don't plan to use `cider-connect` or don't care about the advanced functionality that requires `cider-nrepl`. -Much of CIDER's functionality depends on its own https://github.com/clojure-emacs/cider-nrepl[nREPL -middleware]. Starting -with version 0.11, `cider-jack-in` (kbd:[C-c C-x (C-)j (C-)j]) -automatically injects this middleware and other dependencies as required. - -NOTE: In the past, if you were setting up CIDER, you might have had to -modify `profiles.clj` or `profile.boot`. CIDER now handles -everything automatically and you don't need to add anything -special to these files. The same is true of your `deps.edn` file and -your `build.gradle` (as of Clojurephant 0.7.0-alpha.6). - -If you prefer a standalone REPL, you will need to invoke -`cider-connect` instead of `cider-jack-in` and manually add the -dependencies to your Clojure project (explained in the following -sections). +Much of CIDER's functionality depends on its own +https://github.com/clojure-emacs/cider-nrepl[nREPL middleware]. `cider-jack-in` +(kbd:[C-c C-x (C-)j (C-)j]) automatically injects this middleware and other +dependencies as required. But if you prefer a standalone REPL, you will need to +invoke `cider-connect` instead of `cider-jack-in` and manually add the +dependencies to your Clojure project (explained in the following sections). == Setting Up a Standalone REPL === Using Leiningen -NOTE: Make sure you're using Leiningen 2.9.0 or newer, as 2.9.0 is the first -release to ship with nREPL 0.6. - Use the convenient plugin for defaults, either in your project's -`project.clj` file or in the :repl profile in `~/.lein/profiles.clj`. +`project.clj` file or in the `:repl` profile in `~/.lein/profiles.clj`. [source,clojure] ---- -:plugins [[cider/cider-nrepl "0.51.0"]] +:plugins [[cider/cider-nrepl "0.52.0"]] ---- A minimal `profiles.clj` for CIDER would be: [source,clojure] ---- -{:repl {:plugins [[cider/cider-nrepl "0.51.0"]]}} +{:repl {:plugins [[cider/cider-nrepl "0.52.0"]]}} ---- WARNING: Be careful not to place this in the `:user` profile, as this way CIDER's middleware will always get loaded, causing `lein` to start slower. You really need it just for `lein repl` and this is what the `:repl` profile is for. -=== Using Boot - -NOTE: Make sure you're using Boot 2.8.3 or newer, as 2.8.3 is the first -release to ship with nREPL 0.6. - -Boot users can configure the tool to include the middleware automatically in -all of their projects using a `~/.boot/profile.boot` file like so: - -[source,clojure] ----- -(require 'boot.repl) - -(swap! boot.repl/*default-dependencies* - concat '[[cider/cider-nrepl "0.51.0"]]) - -(swap! boot.repl/*default-middleware* - conj 'cider.nrepl/cider-middleware) ----- - -For more information visit https://github.com/boot-clj/boot/wiki/Cider-REPL[boot-clj wiki]. - === Using tools.deps You can add the following aliases to your deps.edn in order to launch @@ -76,12 +43,12 @@ run `cider-connect` or `cider-connect-cljs`. [source,clojure] ---- - :cider-clj {:extra-deps {cider/cider-nrepl {:mvn/version "0.51.0"}} + :cider-clj {:extra-deps {cider/cider-nrepl {:mvn/version "0.52.0"}} :main-opts ["-m" "nrepl.cmdline" "--middleware" "[cider.nrepl/cider-middleware]"]} :cider-cljs {:extra-deps {org.clojure/clojurescript {:mvn/version "1.10.339"} - cider/cider-nrepl {:mvn/version "0.51.0"} - cider/piggieback {:mvn/version "0.5.3"}} + cider/cider-nrepl {:mvn/version "0.52.0"} + cider/piggieback {:mvn/version "0.6.0"}} :main-opts ["-m" "nrepl.cmdline" "--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]} ---- @@ -99,7 +66,7 @@ NOTE: Make sure you're using https://github.com/clojurephant/clojurephant[Clojur ---- dependencies { devImplementation 'nrepl:nrepl:0.9.0' - devImplementation 'cider:cider-nrepl:0.51.0' + devImplementation 'cider:cider-nrepl:0.52.0' } tasks.named('clojureRepl') { @@ -133,11 +100,10 @@ server with CIDER's own nREPL handler. It goes without saying that your project should depend on `cider-nrepl`. -NOTE: Prior to CIDER 0.18, CIDER and cider-nrepl were always released together -and their versions had to match for things to work (e.g. CIDER 0.15 required -cider-nrepl 0.15). But as the prominence of cider-nrepl grew and many other -tools started using it, the two projects evolved separately and are no longer in -tight lock-step. Usually, any recent version of cider-nrepl should be (mostly) -compatible with a recent version of CIDER. You can check the required version of -cider-nrepl for your version of CIDER by looking at -`cider-required-middleware-version`. +NOTE: CIDER and cider-nrepl projects are co-developed, but are not released in a +lock-step — they have differing versions. Usually, any recent version of +cider-nrepl should be (mostly) compatible with a recent version of CIDER. You +can check the required version of cider-nrepl for your version of CIDER by +looking at `cider-required-middleware-version`. See also the +xref:about/compatibility.adoc#compatibility-matrix[compatibility +matrix]. diff --git a/doc/modules/ROOT/pages/basics/up_and_running.adoc b/doc/modules/ROOT/pages/basics/up_and_running.adoc index 52aa1757d..49d88233a 100644 --- a/doc/modules/ROOT/pages/basics/up_and_running.adoc +++ b/doc/modules/ROOT/pages/basics/up_and_running.adoc @@ -3,13 +3,13 @@ To use CIDER, you'll need to connect it to a running nREPL server that is associated with your program. Most Clojure developers use standard -build tooling such as Leiningen, Boot, or Gradle, and CIDER can +build tooling such as tools.deps, Leiningen, or Gradle, and CIDER can automatically work with those tools to get you up and running quickly. But those tools are not required; CIDER can connect to an nREPL server that is already started and is managed separately. -NOTE: CIDER will automatically work with Leiningen 2.9.0+ or Boot -2.8.3+. Older versions are not supported. +NOTE: CIDER will automatically work with Leiningen 2.9.0+ or a recent +tools.deps. Older versions are not supported. There are two ways to connect CIDER to an nREPL server: @@ -56,29 +56,27 @@ NOTE: `cider-jack-in` is mainly designed for local development (with files on a local machine and the nREPL process running on the same machine). It does support various common remote/container scenarios, as documented later in this section. Due to the large variation of remote scenarios it cannot support all of them, so in -some cases a manual nREPL start and usage of `cider-connect` might be a better option. +some cases, a better option would be to start nREPL manually and connect to it with `cider-connect`. === Auto-Injecting Dependencies While CIDER's core functionality requires nothing more than an nREPL server, -there are many advanced features that depend on the presence of additional -nREPL middleware. In the early versions of CIDER (up to CIDER 0.11) users had -to add those dependencies themselves, which was a painful and error-prone process. -Fortunately today that's handled auto-magically when you're using `cider-jack-in`. +there are many advanced features that depend on the presence of additional nREPL +middleware. Fortunately, if you're using `cider-jack-in`, that's handled +auto-magically. -If your project uses `lein`, `boot` or `tools.deps` (`deps.edn`), CIDER will +If your project uses `lein` or `tools.deps` (`deps.edn`), CIDER will automatically inject all the necessary nREPL dependencies (e.g. `cider-nrepl` or `piggieback`) when it starts the server. The injection process is extremely -simple - CIDER simply passes the extra dependencies and nREPL configuration to +simple - CIDER passes the extra dependencies and nREPL configuration to your build tool in the command it runs to start the nREPL server. Here's how this looks for `tools.deps`: - $ clojure -Sdeps '{:deps {nrepl {:mvn/version "1.3.1"} cider/cider-nrepl {:mvn/version "0.51.0"}}}' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]' + $ clojure -Sdeps '{:deps {nrepl {:mvn/version "1.3.1"} cider/cider-nrepl {:mvn/version "0.52.0"}}}' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]' TIP: If you don't want `cider-jack-in` to inject dependencies automatically, set `cider-inject-dependencies-at-jack-in` to `nil`. Note that you'll have to setup -the dependencies yourself (see xref:basics/middleware_setup.adoc[nREPL Middleware Setup]), -just as in CIDER 0.10 and older. +the dependencies yourself (see xref:basics/middleware_setup.adoc[nREPL Middleware Setup]). Normally `cider-jack-in` would inject only `cider-nrepl` and `cider-jack-in-cljs` would add `piggieback` as well. The injection mechanism is configurable and @@ -119,14 +117,43 @@ for example, if your project defaults to an older version of Clojure than that supported by the CIDER middleware. Set `cider-jack-in-auto-inject-clojure` appropriately to enable this. +=== Enabling nREPL JVMTI agent + +Since version 1.2.0, nREPL includes a native JVMTI agent which makes the eval +interrupts work properly on Java 21 and later. To enable the agent, the Java +process should be launched with `-Djdk.attach.allowAttachSelf`. CIDER will do it +automatically during jack-in if `cider-enable-nrepl-jvmti-agent` variable is set +to `t`. + +[IMPORTANT] +==== +`cider-enable-nrepl-jvmti-agent` has no effect if you start a REPL +process outside of Emacs and connect to it with `cider-connect`. In that +scenario, you have to add `-Djdk.attach.allowAttachSelf` Java property manually +through the means of the build tool. In Leiningen, add this to `project.clj`: + +[source,lisp] +---- +:jvm-opts ["-Djdk.attach.allowAttachSelf"] +---- + +In tools.deps, add this to one of the aliases that you enable with the REPL: + +[source,lisp] +---- +:aliases {:dev + {:jvm-opts ["-Djdk.attach.allowAttachSelf"] + ...}} +---- +==== + === Jacking-in without a Project If you try to run `cider-jack-in` outside a project directory, CIDER will warn you and ask you to confirm whether you really want to do this; more often than not, this is an accident. If you decide to proceed, CIDER will invoke the command configured in -`cider-jack-in-default`. Prior to CIDER 0.17, this defaulted to `lein` -but was subsequently switched to `clj`, Clojure's basic startup command. +`cider-jack-in-default` (defaults to `clj`, Clojure's basic startup command). TIP: You can set `cider-allow-jack-in-without-project` to `t` if you'd like to disable the warning displayed when jacking-in outside a project. @@ -185,17 +212,16 @@ with === Customizing the Jack-in Command Behavior -You can use kbd:[C-u M-x] `cider-jack-in` kbd:[RET] to -specify the exact command that `cider-jack-in` would run. -This option is very useful is you want to specify a something like a `lein` -or `deps.edn` profile. +You can use kbd:[C-u M-x] `cider-jack-in` kbd:[RET] to specify the exact command +that `cider-jack-in` would run. This option is very useful is you want to e.g. +specify extra Leiningen profiles or `deps.edn` aliases. Alternatively you can kbd:[C-u C-u M-x] `cider-jack-in` kbd:[RET], which is a variation of the previous command. This command will first prompt you for the project you want to launch `cider-jack-in` in, which is pretty handy if you're in some other directory currently. This option is also useful if your project -contains some combination of project.clj, build.boot and deps.edn and you want -to launch a REPL for one or the other. +contains some combination of `project.clj` and `deps.edn` and you want to launch +a REPL for one or the other. NOTE: The examples use only `cider-jack-in`, but this behavior is consistent for all `cider-jack-in-\*` commands. @@ -204,36 +230,6 @@ You can further customize the command line CIDER uses for `cider-jack-in` by modifying the some options. Those differ a bit between the various tools, so we'll examine them tool by tool. -==== Enabling nREPL JVMTI agent - -Since version 1.2.0, nREPL includes a native JVMTI agent which makes the eval -interrupts work properly on Java 21 and later. To enable the agent, the Java -process should be launched with `-Djdk.attach.allowAttachSelf`. CIDER will do it -automatically during jack-in if `cider-enable-nrepl-jvmti-agent` variable is set -to `t`. - -[IMPORTANT] -==== -`cider-enable-nrepl-jvmti-agent` has no effect if you start a REPL -process outside of Emacs and connect to it with `cider-connect`. In that -scenario, you have to add `-Djdk.attach.allowAttachSelf` Java property manually -through the means of the build tool. In Leiningen, add this to `project.clj`: - -[source,lisp] ----- -:jvm-opts ["-Djdk.attach.allowAttachSelf"] ----- - -In tools.deps, add this to one of the aliases that you enable with the REPL: - -[source,lisp] ----- -:aliases {:dev - {:jvm-opts ["-Djdk.attach.allowAttachSelf"] - ...}} ----- -==== - ==== Leiningen Options * `cider-lein-command` - the name of the Leiningen executable (`lein` by default) @@ -264,13 +260,6 @@ with the following alternatives NOTE: Alternatively you can use WSL (e.g. to run nREPL and Emacs there), which will likely result in a better overall development experience. -==== Boot Options - -* `cider-boot-command` - the name of the Boot executable (`boot` by default) -* `cider-boot-parameters` - these are usually task names and their parameters -(e.g., `dev` for launching boot's dev task instead of the standard `repl -s -wait`) - ==== Gradle Options * `cider-gradle-command` - the name of the Gradle executable (`./gradlew` by default) @@ -287,9 +276,9 @@ Which Jack-In Command is used is based on the project type. You can override the This allows for fine-grained control over how cider starts the nrepl-server. The precedence order for determining the Jack-In Command is: -1) :jack-in-cmd if provided as a parameter, -2) `cider-jack-in-command` if set as a directory local variable, and -3) inferred from the project type (the default). +1. `:jack-in-cmd` if provided as a parameter, +2. `cider-jack-in-command` if set as a directory local variable, and +3. Inferred from the project type (the default). ==== Setting a project-wide command @@ -339,18 +328,11 @@ $ lein repl :headless This will start the project's nREPL server. -If your project uses `boot`, do this instead: - -[source,sh] ----- -$ boot repl -s wait (or whatever task launches a repl) ----- - It is also possible for plain `clj`, although the command is somewhat longer: [source,sh] ---- -$ clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.51.0"}}}' -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]" +$ clj -Sdeps '{:deps {cider/cider-nrepl {:mvn/version "0.52.0"}}}' -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]" ---- Alternatively, you can start nREPL either manually or using the facilities @@ -390,7 +372,7 @@ connect via ssh to remote hosts when unable to connect directly. It's There's also `nrepl-force-ssh-for-remote-hosts` which will force the use of ssh for remote connection unconditionally. -WARNING: As nREPL connections are insecure by default you're encouraged to use only SSH +WARNING: As nREPL connections are insecure by default, you're encouraged to use only SSH tunneling when connecting to servers running outside of your network. There's a another case in which CIDER may optionally leverage the `ssh` command - when diff --git a/doc/modules/ROOT/pages/cljs/shadow-cljs.adoc b/doc/modules/ROOT/pages/cljs/shadow-cljs.adoc index 2c67bf95e..28a20e06a 100644 --- a/doc/modules/ROOT/pages/cljs/shadow-cljs.adoc +++ b/doc/modules/ROOT/pages/cljs/shadow-cljs.adoc @@ -62,7 +62,7 @@ And connect to it with `cider-connect`. ...For that to work, `shadow-cljs.edn` contents like the following are assumed: ```clj - :dependencies [[cider/cider-nrepl "0.51.0"] ;; mandatory (unless it's inherited from deps.edn or otherwise present in the classpath of shadow-cljs's JVM process) + :dependencies [[cider/cider-nrepl "0.52.0"] ;; mandatory (unless it's inherited from deps.edn or otherwise present in the classpath of shadow-cljs's JVM process) [refactor-nrepl/refactor-nrepl "3.9.0"]] ;; refactor-nrepl is optional :nrepl {:middleware [cider.nrepl/cider-middleware ;; it's advisable to explicitly add this middleware. It's automatically added by shadow-cljs (if available in the classpath), unless `:nrepl {:cider false}` diff --git a/doc/modules/ROOT/pages/cljs/up_and_running.adoc b/doc/modules/ROOT/pages/cljs/up_and_running.adoc index b0cf32066..6625e8144 100644 --- a/doc/modules/ROOT/pages/cljs/up_and_running.adoc +++ b/doc/modules/ROOT/pages/cljs/up_and_running.adoc @@ -61,7 +61,7 @@ or in `build.gradle`: ---- dependencies { devImplementation 'nrepl:nrepl:1.3.1' - devImplementation 'cider:cider-nrepl:0.51.0' + devImplementation 'cider:cider-nrepl:0.52.0' devImplementation 'cider:cider-piggieback:0.5.3' } diff --git a/doc/modules/ROOT/pages/index.adoc b/doc/modules/ROOT/pages/index.adoc index b1cb104b3..63234e4ac 100644 --- a/doc/modules/ROOT/pages/index.adoc +++ b/doc/modules/ROOT/pages/index.adoc @@ -73,7 +73,7 @@ CIDER packs plenty of features. Here are some of them (in no particular order): * `clojure.test` integration * `clojure.spec` integration * Interactive debugger -* Data Inspector +* Data inspector * Integration with Java logging frameworks * Profiling & tracing * ClojureScript support diff --git a/doc/modules/ROOT/pages/platforms/basilisp.adoc b/doc/modules/ROOT/pages/platforms/basilisp.adoc index 1859f5d80..79d9b519f 100644 --- a/doc/modules/ROOT/pages/platforms/basilisp.adoc +++ b/doc/modules/ROOT/pages/platforms/basilisp.adoc @@ -1,7 +1,7 @@ = Basilisp Integration with CIDER https://github.com/basilisp-lang/basilisp[basilisp] -since CIDER 1.14 +NOTE: Basilisp support was added in CIDER 1.14. == Overview @@ -28,7 +28,7 @@ If you don't have or want a basilisp project file, you can use universal jack in NOTE: an alternative to kbd:[M-5] is kbd:[C-u 5] -You can also bind the universal jack-in to Basilisp to a function to use as a shortcut, for example +You can also bind the universal jack-in to Basilisp to a function to use as a shortcut, for example: [source,lisp] ---- @@ -51,7 +51,7 @@ To see available options, type `basilisp nrepl-server -h` in a shell prompt. == Configuration -The jack-in command can be configured with the following defcustoms +The jack-in command can be configured with the following defcustoms: === `cider-basilisp-command` @@ -81,7 +81,7 @@ For example, to set the path to the basilisp executable within a virtual environ - kbd:[M-x add-dir-local-variable] - Mode or subdirectory: `clojure-mode` - Add directory-local variable: `cider-basilisp-command` -- Add cider-basilisp-command with value: `"c:/dev/venvs/312/Scripts/basilisp"` +- Add `cider-basilisp-command` with value: `"c:/dev/venvs/312/Scripts/basilisp"` This should result to updating or creating a `.dir-local.el` file like below diff --git a/doc/modules/ROOT/pages/usage/working_with_documentation.adoc b/doc/modules/ROOT/pages/usage/working_with_documentation.adoc index fe72f33f5..72dc04654 100644 --- a/doc/modules/ROOT/pages/usage/working_with_documentation.adoc +++ b/doc/modules/ROOT/pages/usage/working_with_documentation.adoc @@ -17,11 +17,21 @@ as some people prefer to keep holding `Control` and some don't. Normally the command operates on the symbol at point. If invoked with a prefix argument, or no symbol is found at point, it will prompt for a symbol. -NOTE: If using `enrich-classpath`, Java doc comments are available and rendered in the same way that Clojure docstrings are. -They're often much more handy than opening Javadoc in a browser. Starting from CIDER 1.8.0, -the HTML-like language that they use is nicely rendered into syntax-colored strings, well-aligned tables, etc +== Local JavaDoc -== JavaDoc +Most JDK distributions ship with a `src.zip` file (an archive with all base Java source files). If you have such archive present in your JDK, CIDER will automatically parse the source file when you query the documentation for a Java class (e.g. `java.lang.Thread`) or a method (e.g. `java.lang.Thread/currentThread`) and will display the properly formatted JavaDoc in the documentation buffer. You will also see better Eldoc documentation (minibuffer hints) for Java methods. If the source file are present, you are able to jump to class or method definition by pressing kbd:[M-.] on the class name or method name. + +Furthermore, CIDER is able to parse JavaDoc source files and jump to definitions for third-party Java libraries if you have downloaded the special `-sources.jar` file for that library. See the next section on how to download source JARs. + +== Obtaining source JARs + +Since version 1.17, CIDER is able to download the necessary source JAR file automatically when you either request the documentation for a Java class/method or when you jump to the definition of a Java class/method. In order for the sources to be downloaded, you need to enable custom variable `cider-download-java-sources`. When the download triggers, CIDER displays a minibuffer message about that. Fetching a single source JAR usually takes a few seconds. CIDER will make only one attempt to download the source JAR for a particular dependency per process — if it failed to download (usually, because the dependency doesn't have a source JAR published to Maven), CIDER will not retry that until the next restart. + +NOTE: While Eldoc functionality benefits from having Java sources, the eldoc itself will not trigger the downloading of Java source JARs. You will have to lookup the documentation once manually or jump to the definition in order for the JAR is downloaded. After that, Eldoc will pick up the Java sources and display better hints. + +Alternatively, you can use https://github.com/clojure-emacs/enrich-classpath[`enrich-classpath`] to download all source JARs used by your current project at once. This will incur longer startup time, but will not trigger individual JARs fetching at the runtime. + +== Online JavaDoc CIDER provides a quick access to the online Javadoc documentation via the command `cider-javadoc` (kbd:[C-c C-d j] or kbd:[C-c C-d C-j]), using your default browser. diff --git a/nrepl-client.el b/nrepl-client.el index ed29fc8a1..00a4c143e 100644 --- a/nrepl-client.el +++ b/nrepl-client.el @@ -1,7 +1,7 @@ ;;; nrepl-client.el --- Client for Clojure nREPL -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg @@ -939,21 +939,30 @@ the standard session." (declare-function cider-repl-emit-interactive-stderr "cider-repl") (declare-function cider--render-stacktrace-causes "cider-eval") -(defun nrepl-send-sync-request (request connection &optional abort-on-input tooling) +(defun nrepl-send-sync-request (request connection &optional abort-on-input + tooling callback) "Send REQUEST to the nREPL server synchronously using CONNECTION. Hold till final \"done\" message has arrived and join all response messages of the same \"op\" that came along. If ABORT-ON-INPUT is non-nil, the function will return nil at the first sign of user input, so as not to hang the interface. -If TOOLING, use the tooling session rather than the standard session." +If TOOLING, use the tooling session rather than the standard session. + +If CALLBACK is non-nil, it will additionally be called on all received +messages. This shouldn't be used this for any control logic — use the +asynchronous `nrepl-send-request' directly for that. CALLBACK here should +be used to react to some intermediate events in an otherwise synchronous +command and e.g. notify the user about them." (let* ((time0 (current-time)) (response (cons 'dict nil)) (nrepl-ongoing-sync-request t) + (cb (lambda (resp) + ;; If caller has provided `callback', call it on the response. + (when callback + (funcall callback resp)) + (nrepl--merge response resp))) status) - (nrepl-send-request request - (lambda (resp) (nrepl--merge response resp)) - connection - tooling) + (nrepl-send-request request cb connection tooling) (while (and (not (member "done" status)) (not (and abort-on-input (input-pending-p)))) @@ -962,7 +971,7 @@ If TOOLING, use the tooling session rather than the standard session." ;; anywhere, and we'll just timeout. So we forward it to the user. (if (member "need-input" status) (progn (cider-need-input (current-buffer)) - ;; If the used took a few seconds to respond, we might + ;; If the user took a few seconds to respond, we might ;; unnecessarily timeout, so let's reset the timer. (setq time0 (current-time))) ;; break out in case we don't receive a response for a while diff --git a/nrepl-dict.el b/nrepl-dict.el index d8daeb5cf..97f8c9e45 100644 --- a/nrepl-dict.el +++ b/nrepl-dict.el @@ -1,7 +1,7 @@ ;;; nrepl-dict.el --- Dictionary functions for Clojure nREPL -*- lexical-binding: t -*- -;; Copyright © 2012-2024 Tim King, Phil Hagelberg, Bozhidar Batsov -;; Copyright © 2013-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2012-2025 Tim King, Phil Hagelberg, Bozhidar Batsov +;; Copyright © 2013-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; ;; Author: Tim King ;; Phil Hagelberg diff --git a/test/cider-apropos-tests.el b/test/cider-apropos-tests.el index c8114459b..0d3f04b41 100644 --- a/test/cider-apropos-tests.el +++ b/test/cider-apropos-tests.el @@ -1,6 +1,6 @@ ;;; cider-apropos-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-browse-ns-tests.el b/test/cider-browse-ns-tests.el index 7fe5cf226..fa6c4a156 100644 --- a/test/cider-browse-ns-tests.el +++ b/test/cider-browse-ns-tests.el @@ -1,6 +1,6 @@ ;;; cider-browse-ns-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-browse-spec-tests.el b/test/cider-browse-spec-tests.el index df359d792..58e66f382 100644 --- a/test/cider-browse-spec-tests.el +++ b/test/cider-browse-spec-tests.el @@ -1,6 +1,6 @@ ;;; cider-browse-spec-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 r0man, Bozhidar Batsov +;; Copyright © 2012-2025 r0man, Bozhidar Batsov ;; Author: r0man ;; Bozhidar Batsov diff --git a/test/cider-classpath-tests.el b/test/cider-classpath-tests.el index 99aaf9857..a72d73061 100644 --- a/test/cider-classpath-tests.el +++ b/test/cider-classpath-tests.el @@ -1,6 +1,6 @@ ;;; cider-classpath-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-client-tests.el b/test/cider-client-tests.el index 7fbf8360c..b83b2494d 100644 --- a/test/cider-client-tests.el +++ b/test/cider-client-tests.el @@ -1,6 +1,6 @@ ;;; cider-client-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-clojuredocs-tests.el b/test/cider-clojuredocs-tests.el index bac2a4e2e..564dec73f 100644 --- a/test/cider-clojuredocs-tests.el +++ b/test/cider-clojuredocs-tests.el @@ -1,6 +1,6 @@ ;;; cider-clojuredocs-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-common-tests.el b/test/cider-common-tests.el index 3d42e0a41..2f1666bf6 100644 --- a/test/cider-common-tests.el +++ b/test/cider-common-tests.el @@ -1,6 +1,6 @@ ;;; cider-common-tests.el --- -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-completion-context-tests.el b/test/cider-completion-context-tests.el index e1e970451..9bd40b0db 100644 --- a/test/cider-completion-context-tests.el +++ b/test/cider-completion-context-tests.el @@ -1,6 +1,6 @@ ;;; cider-completion-context-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Bozhidar Batsov +;; Copyright © 2012-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-completion-tests.el b/test/cider-completion-tests.el index a8f58f798..f8368c39d 100644 --- a/test/cider-completion-tests.el +++ b/test/cider-completion-tests.el @@ -1,6 +1,6 @@ ;;; cider-completion-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Bozhidar Batsov +;; Copyright © 2012-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-connection-tests.el b/test/cider-connection-tests.el index 37875eddc..60a6765e2 100644 --- a/test/cider-connection-tests.el +++ b/test/cider-connection-tests.el @@ -1,7 +1,7 @@ ;; -*- lexical-binding: t; -*- ;;; cider-connection-tests.el -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov, Vitalie Spinu +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov, Vitalie Spinu ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-debug-tests.el b/test/cider-debug-tests.el index 2bb5d6e60..ecdfe553a 100644 --- a/test/cider-debug-tests.el +++ b/test/cider-debug-tests.el @@ -1,6 +1,6 @@ ;;; cider-debug-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-doc-tests.el b/test/cider-doc-tests.el index bc272dc08..6abae8137 100644 --- a/test/cider-doc-tests.el +++ b/test/cider-doc-tests.el @@ -1,6 +1,6 @@ ;;; cider-doc-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2023-2024 Bozhidar Batsov +;; Copyright © 2023-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-eldoc-tests.el b/test/cider-eldoc-tests.el index 5611df447..143be9baf 100644 --- a/test/cider-eldoc-tests.el +++ b/test/cider-eldoc-tests.el @@ -1,6 +1,6 @@ ;;; cider-eldoc-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-error-parsing-tests.el b/test/cider-error-parsing-tests.el index a4361ac3f..7400b6525 100644 --- a/test/cider-error-parsing-tests.el +++ b/test/cider-error-parsing-tests.el @@ -1,6 +1,6 @@ ;;; cider-error-parsing-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-eval-tests.el b/test/cider-eval-tests.el index fda7b7a23..8f638e664 100644 --- a/test/cider-eval-tests.el +++ b/test/cider-eval-tests.el @@ -1,6 +1,6 @@ ;;; cider-eval-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Arne Brasseur +;; Copyright © 2012-2025 Arne Brasseur ;; Author: Arne Brasseur diff --git a/test/cider-find-tests.el b/test/cider-find-tests.el index 465dfc5dc..96a5fbf37 100644 --- a/test/cider-find-tests.el +++ b/test/cider-find-tests.el @@ -1,6 +1,6 @@ ;;; cider-find-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Bozhidar Batsov +;; Copyright © 2012-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-inspector-tests.el b/test/cider-inspector-tests.el index 0d2060de5..a2c2b1106 100644 --- a/test/cider-inspector-tests.el +++ b/test/cider-inspector-tests.el @@ -1,6 +1,6 @@ ;;; cider-inspectors-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Bozhidar Batsov +;; Copyright © 2012-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-interaction-tests.el b/test/cider-interaction-tests.el index f511267c8..ad9f30edc 100644 --- a/test/cider-interaction-tests.el +++ b/test/cider-interaction-tests.el @@ -1,6 +1,6 @@ ;;; cider-eval-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-jar-tests.el b/test/cider-jar-tests.el index faf173109..0892eba3c 100644 --- a/test/cider-jar-tests.el +++ b/test/cider-jar-tests.el @@ -1,6 +1,6 @@ ;;; cider-jar-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Arne Brasseur +;; Copyright © 2012-2025 Arne Brasseur ;; Author: Arne Brasseur diff --git a/test/cider-log-tests.el b/test/cider-log-tests.el index 200874c60..e83eafee1 100644 --- a/test/cider-log-tests.el +++ b/test/cider-log-tests.el @@ -1,6 +1,6 @@ ;;; cider-log-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2023-2024 Bozhidar Batsov and CIDER contributors +;; Copyright © 2023-2025 Bozhidar Batsov and CIDER contributors ;; Author: r0man diff --git a/test/cider-ns-tests.el b/test/cider-ns-tests.el index ab98499be..2bfedf333 100644 --- a/test/cider-ns-tests.el +++ b/test/cider-ns-tests.el @@ -1,6 +1,6 @@ ;;; cider-ns-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2019-2024 Bozhidar Batsov +;; Copyright © 2019-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-overlay-tests.el b/test/cider-overlay-tests.el index 362e472ed..f7102ecd0 100644 --- a/test/cider-overlay-tests.el +++ b/test/cider-overlay-tests.el @@ -1,6 +1,6 @@ ;;; cider-overlay-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2015-2024 Bozhidar Batsov, Artur Malabarba and CIDER contributors +;; Copyright © 2015-2025 Bozhidar Batsov, Artur Malabarba and CIDER contributors ;; Author: Artur Malabarba diff --git a/test/cider-repl-tests.el b/test/cider-repl-tests.el index 9d7535d30..250c32181 100644 --- a/test/cider-repl-tests.el +++ b/test/cider-repl-tests.el @@ -1,6 +1,6 @@ ;;; cider-repl-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-selector-tests.el b/test/cider-selector-tests.el index 76243e68f..ed579895c 100644 --- a/test/cider-selector-tests.el +++ b/test/cider-selector-tests.el @@ -1,6 +1,6 @@ ;;; cider-selector-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-stacktrace-tests.el b/test/cider-stacktrace-tests.el index d531a32df..7c0c9d8fc 100644 --- a/test/cider-stacktrace-tests.el +++ b/test/cider-stacktrace-tests.el @@ -1,6 +1,6 @@ ;;; cider-stacktrace-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/cider-test-tests.el b/test/cider-test-tests.el index 4e636407f..a090b8a06 100644 --- a/test/cider-test-tests.el +++ b/test/cider-test-tests.el @@ -1,6 +1,6 @@ ;;; cider-test-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2023-2024 Bozhidar Batsov +;; Copyright © 2023-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/cider-tests--no-auto.el b/test/cider-tests--no-auto.el index 9a5851a95..53961d5fa 100644 --- a/test/cider-tests--no-auto.el +++ b/test/cider-tests--no-auto.el @@ -1,6 +1,6 @@ ;;; cider-tests--no-auto.el --- Non-automated tests -*- lexical-binding: t -*- -;; Copyright © 2014-2024 Jeff Valk, Bozhidar Batsov and CIDER contributors +;; Copyright © 2014-2025 Jeff Valk, Bozhidar Batsov and CIDER contributors ;; Author: Jeff Valk diff --git a/test/cider-tests.el b/test/cider-tests.el index 7aba7a6e6..95fd9c0ed 100644 --- a/test/cider-tests.el +++ b/test/cider-tests.el @@ -1,6 +1,6 @@ ;;; cider-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov @@ -175,7 +175,7 @@ (describe "when there is a single dependency" (before-each (setq-local cider-injected-nrepl-version "0.9.0") - (setq-local cider-injected-middleware-version "0.51.0") + (setq-local cider-injected-middleware-version "0.52.0") (setq-local cider-jack-in-nrepl-middlewares '("cider.nrepl/cider-middleware")) (setq-local cider-jack-in-dependencies-exclusions '()) (setq-local cider-enrich-classpath t) @@ -186,7 +186,7 @@ :to-equal (concat "update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\"]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.51.0\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.52.0\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/lein-enrich-classpath \"1.19.3\"]") " -- update-in :jvm-opts conj '\"-Djdk.attach.allowAttachSelf\"'" @@ -200,7 +200,7 @@ "update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\" :exclusions [org.clojure/clojure]]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.51.0\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.52.0\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/lein-enrich-classpath \"1.19.3\"]") " -- update-in :jvm-opts conj '\"-Djdk.attach.allowAttachSelf\"'" @@ -213,7 +213,7 @@ :to-equal (concat "update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\" :exclusions [org.clojure/clojure foo.bar/baz]]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.51.0\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.52.0\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/lein-enrich-classpath \"1.19.3\"]") " -- update-in :jvm-opts conj '\"-Djdk.attach.allowAttachSelf\"'" @@ -227,7 +227,7 @@ " -d " (shell-quote-argument "nrepl/nrepl:0.9.0") " -d " - (shell-quote-argument "cider/cider-nrepl:0.51.0") + (shell-quote-argument "cider/cider-nrepl:0.52.0") " cider.tasks/add-middleware" " -m " (shell-quote-argument "cider.nrepl/cider-middleware") @@ -237,7 +237,7 @@ (expect (cider-inject-jack-in-dependencies "--no-daemon" ":clojureRepl" 'gradle) :to-equal (concat "--no-daemon " "-Pjdk.attach.allowAttachSelf " - (shell-quote-argument "-Pdev.clojurephant.jack-in.nrepl=nrepl:nrepl:0.9.0,cider:cider-nrepl:0.51.0") + (shell-quote-argument "-Pdev.clojurephant.jack-in.nrepl=nrepl:nrepl:0.9.0,cider:cider-nrepl:0.52.0") " :clojureRepl " (shell-quote-argument "--middleware=cider.nrepl/cider-middleware"))))) @@ -254,7 +254,7 @@ " -- update-in :plugins conj " (shell-quote-argument "[refactor-nrepl \"2.0.0\"]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.51.0\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.52.0\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/lein-enrich-classpath \"1.19.3\"]") " -- update-in :jvm-opts conj '\"-Djdk.attach.allowAttachSelf\"'" @@ -268,7 +268,7 @@ " -d " (shell-quote-argument "nrepl/nrepl:0.9.0") " -d " - (shell-quote-argument "cider/cider-nrepl:0.51.0") + (shell-quote-argument "cider/cider-nrepl:0.52.0") " -d " (shell-quote-argument "refactor-nrepl:2.0.0") " cider.tasks/add-middleware" @@ -290,7 +290,7 @@ :to-equal (concat "-o -U update-in :dependencies conj " (shell-quote-argument "[nrepl/nrepl \"0.9.0\"]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.51.0\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.52.0\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/lein-enrich-classpath \"1.19.3\"]") " -- update-in :jvm-opts conj '\"-Djdk.attach.allowAttachSelf\"'" @@ -302,7 +302,7 @@ " -d " (shell-quote-argument "nrepl/nrepl:0.9.0") " -d " - (shell-quote-argument "cider/cider-nrepl:0.51.0") + (shell-quote-argument "cider/cider-nrepl:0.52.0") " cider.tasks/add-middleware" " -m " (shell-quote-argument "cider.nrepl/cider-middleware") @@ -311,7 +311,7 @@ (expect (cider-inject-jack-in-dependencies "--no-daemon" ":clojureRepl" 'gradle) :to-equal (concat "--no-daemon " "-Pjdk.attach.allowAttachSelf " - (shell-quote-argument "-Pdev.clojurephant.jack-in.nrepl=nrepl:nrepl:0.9.0,cider:cider-nrepl:0.51.0") + (shell-quote-argument "-Pdev.clojurephant.jack-in.nrepl=nrepl:nrepl:0.9.0,cider:cider-nrepl:0.52.0") " :clojureRepl " (shell-quote-argument "--middleware=cider.nrepl/cider-middleware"))))) @@ -326,14 +326,14 @@ (setq-local cider-jack-in-nrepl-middlewares '(("refactor-nrepl.middleware/wrap-refactor" :predicate middlewares-predicate) "cider.nrepl/cider-middleware" ("another/middleware")))) (it "includes plugins whose predicates return true" (expect (cider-jack-in-normalized-lein-plugins) - :to-equal '(("refactor-nrepl" "2.0.0") ("cider/cider-nrepl" "0.51.0")))) + :to-equal '(("refactor-nrepl" "2.0.0") ("cider/cider-nrepl" "0.52.0")))) (it "includes middlewares whose predicates return true" (expect (cider-jack-in-normalized-nrepl-middlewares) :to-equal '("refactor-nrepl.middleware/wrap-refactor" "cider.nrepl/cider-middleware" "another/middleware"))) (it "ignores plugins whose predicates return false" (spy-on 'plugins-predicate :and-return-value nil) (expect (cider-jack-in-normalized-lein-plugins) - :to-equal '(("cider/cider-nrepl" "0.51.0"))) + :to-equal '(("cider/cider-nrepl" "0.52.0"))) (spy-on 'middlewares-predicate :and-return-value nil) (expect (cider-jack-in-normalized-nrepl-middlewares) :to-equal '("cider.nrepl/cider-middleware" "another/middleware"))) @@ -362,7 +362,7 @@ :and-return-value '("refactor-nrepl.middleware/wrap-refactor" "cider.nrepl/cider-middleware")) (spy-on 'cider-jack-in-normalized-lein-plugins :and-return-value '(("refactor-nrepl" "2.0.0") - ("cider/cider-nrepl" "0.51.0") + ("cider/cider-nrepl" "0.52.0") ("mx.cider/lein-enrich-classpath" "1.19.3"))) (setq-local cider-jack-in-dependencies-exclusions '()) (setq-local cider-enrich-classpath t)) @@ -373,7 +373,7 @@ " -- update-in :plugins conj " (shell-quote-argument "[refactor-nrepl \"2.0.0\"]") " -- update-in :plugins conj " - (shell-quote-argument "[cider/cider-nrepl \"0.51.0\"]") + (shell-quote-argument "[cider/cider-nrepl \"0.52.0\"]") " -- update-in :plugins conj " (shell-quote-argument "[mx.cider/lein-enrich-classpath \"1.19.3\"]") " -- update-in :jvm-opts conj '\"-Djdk.attach.allowAttachSelf\"'" @@ -392,7 +392,7 @@ " -d " (shell-quote-argument "nrepl/nrepl:0.9.0") " -d " - (shell-quote-argument "cider/cider-nrepl:0.51.0") + (shell-quote-argument "cider/cider-nrepl:0.52.0") " -d " (shell-quote-argument "refactor-nrepl:2.0.0") " cider.tasks/add-middleware" @@ -487,7 +487,7 @@ (setq-local cider-jack-in-dependencies nil) (setq-local cider-jack-in-nrepl-middlewares '("cider.nrepl/cider-middleware")) (let ((expected (string-join `("clojure -Sdeps " - ,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.51.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") + ,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.52.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") " -M:cider/nrepl") ""))) (setq-local cider-allow-jack-in-without-project t) @@ -502,7 +502,7 @@ (it "allows specifying custom aliases with `cider-clojure-cli-aliases`" (let ((expected (string-join `("clojure -Sdeps " - ,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.51.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") + ,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.52.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") " -M:dev:test:cider/nrepl") ""))) (setq-local cider-jack-in-dependencies nil) @@ -520,7 +520,7 @@ (it (format "should remove duplicates, yielding the same result (for %S command invocation)" command) ;; repeat the same test for PowerShell too (let ((expected (string-join `("-Sdeps " - ,(cider--shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.51.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}" + ,(cider--shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.52.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}" command) " -M:dev:test:cider/nrepl") ""))) @@ -530,7 +530,7 @@ :to-equal expected)))) (it "handles aliases correctly" (let ((expected (string-join `("-Sdeps " - ,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.51.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") + ,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.52.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") " -M:test:cider/nrepl") "")) (deps '(("nrepl/nrepl" "0.9.0")))) @@ -558,7 +558,7 @@ :to-equal expected))))) (it "allows for global options" (let ((expected (string-join `("-J-Xverify:none -Sdeps " - ,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.51.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") + ,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.52.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") " -M:test:cider/nrepl") "")) (deps '(("nrepl/nrepl" "0.9.0")))) @@ -569,7 +569,7 @@ (setq-local cider-jack-in-dependencies '(("org.clojure/tools.deps" (("git/sha" . "6ae2b6f71773de7549d7f22759e8b09fec27f0d9") ("git/url" . "https://github.com/clojure/tools.deps/"))))) (let ((expected (string-join `("clojure -Sdeps " - ,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.51.0\"} org.clojure/tools.deps { :git/sha \"6ae2b6f71773de7549d7f22759e8b09fec27f0d9\" :git/url \"https://github.com/clojure/tools.deps/\" }} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") + ,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.52.0\"} org.clojure/tools.deps { :git/sha \"6ae2b6f71773de7549d7f22759e8b09fec27f0d9\" :git/url \"https://github.com/clojure/tools.deps/\" }} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}") " -M:cider/nrepl") ""))) (setq-local cider-allow-jack-in-without-project t) diff --git a/test/cider-util-tests.el b/test/cider-util-tests.el index 9c2e612e0..656e7f2db 100644 --- a/test/cider-util-tests.el +++ b/test/cider-util-tests.el @@ -1,6 +1,6 @@ ;;; cider-util-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/enrich/cider-docstring-tests.el b/test/enrich/cider-docstring-tests.el index fa5de1709..ab5dcc14d 100644 --- a/test/enrich/cider-docstring-tests.el +++ b/test/enrich/cider-docstring-tests.el @@ -1,7 +1,7 @@ ;; -*- lexical-binding: t; -*- ;;; cider-docstring-tests.el -;; Copyright © 2012-2024 Bozhidar Batsov +;; Copyright © 2012-2025 Bozhidar Batsov ;; Author: Bozhidar Batsov diff --git a/test/integration/integration-test-utils.el b/test/integration/integration-test-utils.el index e31c757d3..bdefeba83 100644 --- a/test/integration/integration-test-utils.el +++ b/test/integration/integration-test-utils.el @@ -1,6 +1,6 @@ ;;; integration-test-utils.el -*- lexical-binding: t; -*- -;; Copyright © 2022-2024 Ioannis Kappas +;; Copyright © 2022-2025 Ioannis Kappas ;; This file is NOT part of GNU Emacs. diff --git a/test/integration/integration-tests.el b/test/integration/integration-tests.el index 1bfa2baaf..71081a995 100644 --- a/test/integration/integration-tests.el +++ b/test/integration/integration-tests.el @@ -1,6 +1,6 @@ ;;; integration-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2022-2024 Ioannis Kappas +;; Copyright © 2022-2025 Ioannis Kappas ;; This file is NOT part of GNU Emacs. diff --git a/test/nrepl-bencode-tests.el b/test/nrepl-bencode-tests.el index cb7b7d2ac..a4e3e59cb 100644 --- a/test/nrepl-bencode-tests.el +++ b/test/nrepl-bencode-tests.el @@ -1,6 +1,6 @@ ;;; nrepl-bencode-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/nrepl-client-tests.el b/test/nrepl-client-tests.el index 43c776e95..3df845181 100644 --- a/test/nrepl-client-tests.el +++ b/test/nrepl-client-tests.el @@ -1,6 +1,6 @@ ;;; nrepl-client-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/nrepl-dict-tests.el b/test/nrepl-dict-tests.el index 5337eec0d..b84c7cd42 100644 --- a/test/nrepl-dict-tests.el +++ b/test/nrepl-dict-tests.el @@ -1,6 +1,6 @@ ;;; nrepl-dict-tests.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/nrepl-server-mock.el b/test/nrepl-server-mock.el index 4f5c96d66..e2724b09d 100644 --- a/test/nrepl-server-mock.el +++ b/test/nrepl-server-mock.el @@ -1,6 +1,6 @@ ;; nrepl-server-mock.el -*- lexical-binding: t; -*- -;; Copyright © 2021-2024 Ioannis Kappas +;; Copyright © 2021-2025 Ioannis Kappas ;; This file is NOT part of GNU Emacs. diff --git a/test/utils/cider-connection-test-utils.el b/test/utils/cider-connection-test-utils.el index c6d8a1f7d..b6da58e03 100644 --- a/test/utils/cider-connection-test-utils.el +++ b/test/utils/cider-connection-test-utils.el @@ -1,6 +1,6 @@ ;;; cider-connection-test-utils.el -*- lexical-binding: t; -*- -;; Copyright © 2012-2024 Tim King, Bozhidar Batsov +;; Copyright © 2012-2025 Tim King, Bozhidar Batsov ;; Author: Tim King ;; Bozhidar Batsov diff --git a/test/utils/nrepl-tests-utils.el b/test/utils/nrepl-tests-utils.el index 956fd91ab..11ec71f3e 100644 --- a/test/utils/nrepl-tests-utils.el +++ b/test/utils/nrepl-tests-utils.el @@ -1,6 +1,6 @@ ;;; nrepl-test-utils.el -*- lexical-binding: t; -*- -;; Copyright © 2021-2024 Ioannis Kappas +;; Copyright © 2021-2025 Ioannis Kappas ;; This file is NOT part of GNU Emacs.