Skip to content

Commit e68d571

Browse files
authored
Merge branch 'clojure-emacs:master' into fix-remote-enrich-classpath-init
2 parents 8183c2b + 7b051c4 commit e68d571

File tree

124 files changed

+2958
-1439
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+2958
-1439
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ commands:
4848
steps:
4949
- run:
5050
name: Run Elisp-lint
51-
command: eldev lint
51+
command: eldev lint -c
5252
- run:
5353
name: Byte-compile .el files
5454
command: eldev -dtT compile --warnings-as-errors
@@ -106,7 +106,7 @@ jobs:
106106
- run:
107107
name: Install Emacs latest
108108
command: |
109-
choco install emacs
109+
choco install emacs -y
110110
- setup-windows
111111
- test
112112

.github/workflows/test.yml

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,23 @@ jobs:
2121

2222
strategy:
2323
matrix:
24-
os: [macos-latest, ubuntu-latest, windows-latest]
25-
emacs_version: ['26.3', '27.2', '28.2', '29.1']
24+
os: [macos-13, ubuntu-latest, windows-latest]
25+
emacs_version: ['26.3', '27.2', '28.2', '29.3']
2626
java_version: ['11', '17']
27+
include:
28+
# aarch64 (macos-13 is Intel)
29+
- os: macos-latest
30+
emacs_version: '29.3'
31+
java_version: '11'
32+
- os: macos-latest
33+
emacs_version: '28.2'
34+
java_version: '11'
35+
- os: macos-latest
36+
emacs_version: '29.3'
37+
java_version: '17'
38+
- os: macos-latest
39+
emacs_version: '28.2'
40+
java_version: '17'
2741

2842
steps:
2943
- name: Set up Emacs
@@ -86,17 +100,27 @@ jobs:
86100
- run: npm install [email protected] -g
87101
- run: npm install [email protected] -g
88102

103+
- uses: actions/setup-python@v5
104+
with:
105+
python-version: '3.12'
106+
- run: |
107+
pip install basilisp==0.1.0b2
108+
89109
- name: Test integration
90110
run: |
91111
# The tests occasionally fail on macos&win in what is seems to
92112
# be GH connectivity runner issues. We attempt to address this
93113
# problem by rerunning the tests more than once.
94114
eldev -p -dtTC test --test-type integration || eldev -p -dtTC test --test-type integration
95-
115+
96116
- name: Run tests that need enrich-classpath
97-
if: "!startsWith(matrix.os, 'windows')"
117+
if: "!startsWith(matrix.os, 'windows') && (matrix.java_version != '11')"
98118
run: |
99119
cd dev; ../clojure.sh clojure -M:gen; cd -
100120
wc -l test/File.edn
101121
eldev -p -dtTC test --test-type enrich || eldev -p -dtTC test --test-type enrich
102-
122+
123+
- name: Test clojure-ts-mode
124+
if: startsWith (matrix.emacs_version, '29')
125+
run: |
126+
eldev -p -dtTC test --test-type clojure-ts-mode || eldev -p -dtTC test --test-type clojure-ts-mode

CHANGELOG.md

Lines changed: 152 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,153 @@
22

33
## master (unreleased)
44

5+
### Changes
6+
7+
- [#3746](https://github.com/clojure-emacs/cider/issues/3746): Bring back `cider` completion style for activating backend-driven completion.
8+
9+
### Bugs fixed
10+
11+
- [#3742](https://github.com/clojure-emacs/cider/issues/3742): Restore syntax highlighting in result minibuffer.
12+
- [#3747](https://github.com/clojure-emacs/cider/issues/3747): Fix errors when docstring is nil.
13+
14+
## 1.16.0 (2024-09-24)
15+
16+
### Changes
17+
18+
- Bump the injected nREPL version to [1.3](https://github.com/nrepl/nrepl/releases/tag/v1.3.0).
19+
- [#3733](https://github.com/clojure-emacs/cider/issues/3733): Remove support for sideloading. (this experimental feature was removed from nREPL 1.3)
20+
- Bump the injected `cider-nrepl` to [0.50.2](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0502-2024-09-03).
21+
* Introduce new backend for CIDER tracing functionality (replacing `tools.trace`).
22+
* Remove special handling of Boot classpath.
23+
24+
### Bugs fixed
25+
26+
- [#3722](https://github.com/clojure-emacs/cider/pull/3722): Call `cider-docstring--format` after checking argument is not `nil`.
27+
- [#3739](https://github.com/clojure-emacs/cider/pull/3739): Leiningen jack-in fails when `cider-enable-nrepl-jvmti-agent` is enabled.
28+
29+
## 1.15.1 (2024-07-01)
30+
31+
### Changes
32+
33+
- [#3714](https://github.com/clojure-emacs/cider/pull/3714): Show progress when evaluating files using `cider-load-all-files`.
34+
- [#3713](https://github.com/clojure-emacs/cider/pull/3713): Optimize `nrepl-dict-get` and deprecate its 3-argument arity.
35+
- [#3719](https://github.com/clojure-emacs/cider/pull/3719): Remove duplicated keybinding.
36+
- Bump the injected `cider-nrepl` to [0.49.1](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0491-2024-06-30).
37+
- Reduces the minimal supported Clojure version to 1.10.0 (from 1.10.3).
38+
39+
## 1.15.0 (2024-06-10)
40+
41+
### New features
42+
43+
- [#3692](https://github.com/clojure-emacs/cider/pull/3692): Add ability to switch view modes in the inspector (bound to `v`).
44+
- [#3693](https://github.com/clojure-emacs/cider/pull/3693): Add `cider-enable-nrepl-jvmti-agent` defcustom to enable loading native nREPL JVMTI agent which restores thread stop ability on Java 21+.
45+
46+
### Changes
47+
48+
- [#3691](https://github.com/clojure-emacs/cider/pull/3691): Deprecate `cider-sync-request:inspect-set-*` functions in favor of generic `inspect-refresh` op.
49+
- Bump the injected `cider-nrepl` to [0.49.0](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0490-2024-06-02).
50+
- Bump the injected nREPL version to 1.2.0.
51+
52+
### Bugs fixed
53+
54+
- [#3696](https://github.com/clojure-emacs/cider/pull/3696): Don't eagerly complete a candidate if there are other candidates matching `flex` style.
55+
- [#3698](https://github.com/clojure-emacs/cider/pull/3698): Fix error messages in non-JVM runtimes being suppressed when `cider-show-error-buffer` is set to `nil`.
56+
57+
## 1.14.0 (2024-05-30)
58+
59+
### New features
60+
61+
- [#3681](https://github.com/clojure-emacs/cider/pull/3681): Add an alternative way to display cheatsheet in a buffer and make it the default.
62+
- Current `cider-cheatsheet` command is renamed to `cider-cheatsheet-select`.
63+
- New way to display cheatsheet in a buffer is available with `cider-cheatsheet` command.
64+
- [#3686](https://github.com/clojure-emacs/cider/pull/3686): Add an alternative way to display `cider-cheatsheet-select` when called with a prefix argument.
65+
- [#3632](https://github.com/clojure-emacs/cider/pull/3623): Add new configuration variable `cider-clojure-cli-global-aliases`.
66+
- [#3366](https://github.com/clojure-emacs/cider/pull/3366): Support display of error overlays with `#dbg!` and `#break!` reader macros.
67+
- [#3622](https://github.com/clojure-emacs/cider/pull/3461): Basic support for using CIDER from [clojure-ts-mode](https://github.com/clojure-emacs/clojure-ts-mode).
68+
- The `clojure-mode` dependency is still required for CIDER to function.
69+
- Some features like `cider-dynamic-indentation` and `cider-font-lock-dynamically` do not work with `clojure-ts-mode` (yet).
70+
- [#3624](https://github.com/clojure-emacs/cider/pull/3624): Support new `cider.clj-reload/reload` cider-nrepl middleware.
71+
- adds `cider-ns-code-reload-tool` defcustom, defaulting to `'tools.namespace`.
72+
- you can change it to `'clj-reload` to use [clj-reload](https://github.com/tonsky/clj-reload) instead of [tools.namespace](https://github.com/clojure/tools.namespace).
73+
- [#3682](https://github.com/clojure-emacs/cider/issues/3682): Add `cider-jack-in` support for [Basilisp](https://github.com/basilisp-lang/basilisp) (Python).
74+
- [#3664](https://github.com/clojure-emacs/cider/issues/3664): Add customization inspector op to change max nested collection depth.
75+
76+
### Changes
77+
78+
- [#3626](https://github.com/clojure-emacs/cider/issues/3626): `cider-ns-refresh`: jump to the relevant file/line on errors.
79+
- [#3628](https://github.com/clojure-emacs/cider/issues/3628): `cider-ns-refresh`: summarize errors as an overlay.
80+
- [#3660](https://github.com/clojure-emacs/cider/issues/3660): Fix `cider-inspector-def-current-val` always defining in `user` namespace.
81+
- [#3661](https://github.com/clojure-emacs/cider/issues/3661): Truncate echo area output ahead of time.
82+
- Bump the injected `enrich-classpath` to [1.19.3](https://github.com/clojure-emacs/enrich-classpath/compare/v1.19.0...v1.19.3).
83+
- Bump the injected nREPL to [1.1.2](https://github.com/nrepl/nrepl/releases/tag/v1.1.2).
84+
- Bump the injected `cider-nrepl` to [0.48.0](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0480-2024-05-13).
85+
- Updates [clj-reload](https://github.com/tonsky/clj-reload/blob/0.6.0/CHANGELOG.md#060---may-3-2024).
86+
- Updates [tools.reader](https://github.com/clojure/tools.reader/blob/master/CHANGELOG.md).
87+
- Updates [nREPL](https://github.com/nrepl/nrepl/blob/master/CHANGELOG.md#111-2024-02-20).
88+
- Updates [Orchard](https://github.com/clojure-emacs/orchard/blob/master/CHANGELOG.md#0250-2024-05-03).
89+
- Updates [Logjam](https://github.com/clojure-emacs/logjam/blob/v0.3.0/CHANGELOG.md#030-2024-03-03).
90+
- Updates [Compliment](https://github.com/alexander-yakushev/compliment/blob/master/CHANGELOG.md#055-2024-05-06).
91+
- [orchard#245](https://github.com/clojure-emacs/orchard/pull/245), [cider-nrepl#868](https://github.com/clojure-emacs/cider-nrepl/pull/868): Drop support for Clojure 1.9.
92+
93+
### Bugs fixed
94+
95+
- [#3689](https://github.com/clojure-emacs/cider/pull/3689): Fix `cider-clojuredocs-lookup` to show friendly error message if symbol is not found on ClojureDocs.
96+
- [#3673](https://github.com/clojure-emacs/cider/pull/3673): Fix buggy `special-display-buffer-names` check.
97+
- [#3659](https://github.com/clojure-emacs/cider/pull/3659): Fixes completions when using `flex`-like completion styles.
98+
- [#3600](https://github.com/clojure-emacs/cider/pull/3600): Fix scittle jack-in when using `cider-jack-in-clj`.
99+
- [#3663](https://github.com/clojure-emacs/cider/issues/3663): Fix `cider-interactive-eval-override` invocation.
100+
101+
## 1.13.1 (2024-02-01)
102+
103+
### Bugs fixed
104+
105+
- [#3605](https://github.com/clojure-emacs/cider/issues/3605): Avoid `cider--error-phase-of-last-exception` recursive loop.
106+
- [#3613](https://github.com/clojure-emacs/cider/issues/3613): Adapt `cider-completion-context.el` to upstream changes in Compliment.
107+
- [#3587](https://github.com/clojure-emacs/cider/issues/3587): Avoid overlays and `message`s on stderr that is unrelated to exception handling.
108+
109+
## 1.13.0 (2024-01-14)
110+
111+
### Changes
112+
113+
- [#3588](https://github.com/clojure-emacs/cider/issues/3588): Compatibility with pwsh 7.3 quoting rules.
114+
- Introduce the `cider-log-show` function.
115+
- Please refer to the (slightly revamped) [CIDER Log Mode guide](https://docs.cider.mx/cider/debugging/logging.html).
116+
- Bump the injected `enrich-classpath` to [1.19.0](https://github.com/clojure-emacs/enrich-classpath/compare/v1.18.6...v1.19.0).
117+
- Bump the `parseedn` required version to 1.2.1.
118+
- Bump the injected `cider-nrepl` to [0.45.0](https://github.com/clojure-emacs/cider-nrepl/blob/v0.45.0/CHANGELOG.md#0450-2024-01-14).
119+
- Introduces Timbre compatibility for [CIDER Log Mode](https://docs.cider.mx/cider/debugging/logging.html).
120+
- Fixes JS completions for nested objects.
121+
- Bundles other fixes and reliability improvements.
122+
- [cider-nrepl#840](https://github.com/clojure-emacs/cider-nrepl/pull/840): Drop support for Clojure 1.8.
123+
124+
## 1.12.0 (2023-11-24)
125+
126+
### Changes
127+
128+
- [#3576](https://github.com/clojure-emacs/cider/issues/3576): CIDER [Inspector](https://docs.cider.mx/cider/debugging/inspector.html): display Java class/method/field block tags (Returns/Throws/Params info) when available.
129+
- CIDER [Inspector](https://docs.cider.mx/cider/debugging/inspector.html#usage): introduce `1` keybinding which performs `cider-inspector-tap-at-point`.
130+
- CIDER [Inspector](https://docs.cider.mx/cider/debugging/inspector.html#usage): introduce `o` keybinding which performs `cider-inspector-open-thing-at-point`.
131+
- CIDER [Inspector](https://docs.cider.mx/cider/debugging/inspector.html#usage): introduce `:` keybinding which performs `cider-inspect-expr-from-inspector`.
132+
- CIDER [Inspector](https://docs.cider.mx/cider/debugging/inspector.html): retain [`truncate-lines`](https://www.gnu.org/software/emacs/manual/html_node/emacs/Line-Truncation.html) values across screens.
133+
- [#3580](https://github.com/clojure-emacs/cider/issues/3580): `cider-test`: make test vars in [test results reports](https://docs.cider.mx/cider/testing/test_reports.html) clickable.
134+
- As defined in the newly introduced `cider-test-var-keymap` var.
135+
- [#3582](https://github.com/clojure-emacs/cider/issues/3582): Handle `cider-clojure-compilation-error-phases` values that have been customized to `t`.
136+
- [#3581](https://github.com/clojure-emacs/cider/issues/3581): Bump the injected `enrich-classpath` to [1.18.6](https://github.com/clojure-emacs/enrich-classpath/compare/v1.18.4...v1.18.6).
137+
- Handles Clojure CLI `:paths` directly defined as `:aliases`.
138+
- Bump the `clojure-mode` required version to [5.18.1](https://github.com/clojure-emacs/clojure-mode/blob/v5.18.1/CHANGELOG.md#5181-2023-11-24).
139+
- Bump the injected `cider-nrepl` to [0.44.0](https://github.com/clojure-emacs/cider-nrepl/blob/44da162f51765464192ba04102398c5982f01638/CHANGELOG.md#0440-2023-11-24).
140+
141+
## 1.11.1 (2023-11-11)
142+
143+
### Changes
144+
145+
- Bump the injected `cider-nrepl` to [0.43.3](https://github.com/clojure-emacs/cider-nrepl/blob/v0.43.3/CHANGELOG.md#0433-2023-11-11).
146+
- Improves performance for error-handling functionality.
147+
- Bump the injected `enrich-classpath` to [1.18.4](https://github.com/clojure-emacs/enrich-classpath/compare/v1.18.2...v1.18.4).
148+
- Handles a Clojure CLI edge case.
149+
150+
## 1.11.0 (2023-11-07)
151+
5152
### New features
6153

7154
- [#3565](https://github.com/clojure-emacs/cider/issues/3565): [`*cider-error*`](https://docs.cider.mx/cider/usage/dealing_with_errors.html#inspector-integration): open a given Exception in the [Inspector](https://docs.cider.mx/cider/debugging/inspector.html) by clicking it, or hitting <kbd>p</kbd>.
@@ -13,9 +160,11 @@
13160
- This info is available when [enrich-classpath](https://docs.cider.mx/cider/config/basic_config.html#use-enrich-classpath) is active.
14161
- [#3495](https://github.com/clojure-emacs/cider/issues/3495): possibly display error overlays on [`cider-load-buffer`](https://docs.cider.mx/cider/usage/code_evaluation.html#basic-evaluation).
15162
- `cider-popup-buffer-display`: honor `special-display-buffer-names` if customized for a given CIDER buffer name (e.g. `*cider-inspect*`), avoiding the double-rendering of the given buffer.
16-
- [#3572](https://github.com/clojure-emacs/cider/issues/3572): `lein.sh`: honor `XDG_CACHE_HOME`.
17-
- Bump the injected `cider-nrepl` to [0.43.0](https://github.com/clojure-emacs/cider-nrepl/blob/v0.43.0/CHANGELOG.md#0430-2023-11-04).
163+
- [#3572](https://github.com/clojure-emacs/cider/issues/3572): `lein.sh`: honor `XDG_CACHE_HOME`.
164+
- Bump the injected `cider-nrepl` to [0.43.1](https://github.com/clojure-emacs/cider-nrepl/blob/v0.43.1/CHANGELOG.md#0431-2023-11-07).
18165
- Improves performance for exception handling and other use cases.
166+
- Fixes [`cider-inspector-refresh`](https://docs.cider.mx/cider/debugging/inspector.html#usage)
167+
- Offers better completions related to `:as-alias` under ClojureScript.
19168

20169
## 1.10.0 (2023-10-31)
21170

@@ -153,7 +302,7 @@ but without connecting to the started nREPL server.
153302
- Improve `nrepl-dict` error reporting.
154303
- Bump the injected `piggieback` to [0.5.3](https://github.com/nrepl/piggieback/blob/0.5.3/CHANGES.md#053-2021-10-26).
155304
- Bump the `clojure-mode` required version to [5.17.1](https://github.com/clojure-emacs/clojure-mode/blob/v5.17.1/CHANGELOG.md#5171-2023-09-12), and use `clojure-find-ns` more safely, which fixes issues such as #[2849](https://github.com/clojure-emacs/cider/issues/2849).
156-
- Bump the `parseedn` require version, and wrap its usage with a more informative `user-error`.
305+
- Bump the `parseedn` required version, and wrap its usage with a more informative `user-error`.
157306
- Bump the injected `cider-nrepl` to [0.39.1](https://github.com/clojure-emacs/cider-nrepl/blob/v0.39.1/CHANGELOG.md#0391-2023-10-12).
158307
- Improves indentation, font-locking and other metadata support for ClojureScript.
159308
- Updates [Orchard](https://github.com/clojure-emacs/orchard/blob/v0.16.1/CHANGELOG.md#0161-2023-10-05)

Eldev

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
; -*- mode: emacs-lisp; lexical-binding: t; no-byte-compile: t -*-
1+
; -*- mode: emacs-lisp; lexical-binding: t -*-
22

3-
(eldev-require-version "0.6")
3+
(eldev-require-version "1.8.2")
44

55
(eldev-use-package-archive 'gnu)
6+
67
;; For compatibility; e.g. with MELPA Stable one test fails.
78
(eldev-use-package-archive 'melpa-unstable)
89

910
(eldev-use-plugin 'autoloads)
1011

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

1416
;; slightly increase the maximum (applies to checkdoc and the byte compiler alike)
1517
(setq byte-compile-docstring-max-column 100)
@@ -21,25 +23,34 @@
2123
(setf eldev-standard-excludes `(:or ,eldev-standard-excludes
2224
;; Avoid including files in test "projects".
2325
(eldev-pcase-exhaustive cider-test-type
24-
(`main "./test/*/")
25-
(`integration '("./test/" "!./test/integration"))
26-
(`enrich '("./test/" "!./test/enrich"))
27-
(`all '("./test/*/" "!./test/integration")))
26+
(`main "./test/*/")
27+
(`integration '("./test/" "!./test/integration"))
28+
(`enrich '("./test/" "!./test/enrich"))
29+
(`clojure-ts-mode '("./test/*/" "!./test/clojure-ts-mode"))
30+
(`all '("./test/*/" "!./test/integration")))
2831
"test/integration/projects"
2932
;; This file is _supposed_ to be excluded
3033
;; from automated testing.
3134
"test/cider-tests--no-auto.el"))
3235

3336
(eldev-defoption cider-test-selection (type)
34-
"Select tests to run; type can be `main', `integration', `enrich' or `all'"
37+
"Select tests to run; type can be `main', `integration', `enrich', `clojure-ts-mode' or `all'"
3538
:options (-T --test-type)
3639
:for-command test
3740
:value TYPE
3841
:default-value cider-test-type
39-
(unless (memq (intern type) '(main integration enrich all))
42+
(unless (memq (intern type) '(main integration enrich clojure-ts-mode all))
4043
(signal 'eldev-wrong-option-usage `("unknown test type `%s'" ,type)))
4144
(setf cider-test-type (intern type)))
4245

46+
(add-hook 'eldev-load-dependencies-hook
47+
(lambda (type additional-sets)
48+
(when (and (eq cider-test-type 'clojure-ts-mode)
49+
(member 'runtime additional-sets))
50+
(message "Installing tree-sitter grammars")
51+
(require 'clojure-ts-mode)
52+
(clojure-ts--ensure-grammars))))
53+
4354
(add-hook 'eldev-test-hook
4455
(lambda ()
4556
(eldev-verbose "Using cider tests of type `%s'" cider-test-type)))

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77

88
# Remove byte-compilation artifacts, which can alter the result of the test suite:
99
clean:
10-
cd ~/.emacs.d; find . -type f -name "*.elc" -exec rm {} +
10+
eldev clean
1111

1212
# You can find a generic `eldev` installation script in https://github.com/emacs-eldev/eldev/blob/master/webinstall/eldev
1313
# (Don't use the one defined for CircleCI in your local machine)
1414

1515
lint: clean
16-
eldev lint
16+
eldev lint -c
1717

1818
# Checks for byte-compilation warnings.
1919
compile: clean

0 commit comments

Comments
 (0)