This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-04-18
Channels
- # announcements (1)
- # babashka (39)
- # babashka-sci-dev (59)
- # beginners (60)
- # calva (14)
- # circleci (1)
- # clj-kondo (16)
- # clj-on-windows (1)
- # clojure (95)
- # clojure-europe (5)
- # clojure-norway (2)
- # clojurescript (34)
- # conjure (2)
- # core-async (55)
- # datomic (4)
- # emacs (54)
- # holy-lambda (5)
- # hyperfiddle (2)
- # interop (4)
- # lsp (8)
- # malli (3)
- # nrepl (4)
- # off-topic (34)
- # polylith (5)
- # reitit (3)
- # releases (2)
- # shadow-cljs (85)
- # specter (2)
- # testing (8)
- # tools-deps (12)
Released clojure-lsp 2022.04.18-00.59.32 including fixes and improvements!
• General
◦ Improve settings documentation.
◦ Fix completion performance regression from previous release.
◦ Consider .bb
and .cljd
files as clj files. https://github.com/clojure-lsp/clojure-lsp/issues/906
◦ Bump to clojure 1.11.0
◦ Improve analysis query performance as a whole for lots of features. https://github.com/clojure-lsp/clojure-lsp/pull/916
◦ Bump clj-kondo to 2022.04.09-20220414.123207-3
fixing semantic tokens for :require
, :refer
and :as
. https://github.com/clj-kondo/clj-kondo/issues/1609
◦ Move lsp4clj
to outside clojure-lsp to its own repo/jar release.
◦ Fix local files outside source-paths not being linted even if opened/changed.
◦ Consider filename + lastModified as checksum for external files, avoiding analyzing it if analysis is already present.
◦ graalvm: Compile static linux with --musl for better compatibility. https://github.com/clojure-lsp/clojure-lsp/issues/868
◦ java: Use XDG_CACHE_HOME
or .cache/clojure-lsp
instead of config files for JDK cache.
◦ java: Cache JDK analysis globally avoiding high CPU usages after startup.
◦ java: Add :java :home-path
setting for easier way to specify java location for JDK source analysis. https://github.com/clojure-lsp/clojure-lsp/issues/907
• Editor
◦ Introduce ALPHA move-form command. https://github.com/clojure-lsp/clojure-lsp/issues/566
◦ Rename "Move coll entry up/down" to "Drag forward/backward", matching Calva/Paredit terminology
◦ drag: clauses move intuitively in clojure.test/are
◦ drag: top-level forms can be dragged https://github.com/clojure-lsp/clojure-lsp/issues/891
◦ Improve completion performance for most cases, reducing time to compute clj/cljs core symbols.
◦ completion: suggest functions defined in Clojure 1.10 and 1.11
◦ completion: Fix to no require extra ns when alias is already required. https://github.com/clojure-lsp/clojure-lsp/issues/920
• promote-fn: new feature Promote a fn to a top-level defn. https://github.com/clojure-lsp/clojure-lsp/issues/783 https://github.com/mainej
◦ promote-fn can also promote a literal #() to a fn
◦ demote-fn: Demote a fn to a literal #()
◦ breaking remove cycle-fn-literal, since the same refactorings can be performed with the more clearly named promote-fn and demote-fn
◦ drag: Fix to drag element-wise in destructured keys, not pair-wise. https://github.com/clojure-lsp/clojure-lsp/issues/927
◦ test-tree: reduce CPU usage, especially during startup
• CLI
◦ Reduce CPU and wall-clock time in cli commands clean-ns and diagnostics
The main highlight for sure is performance overall, we had lots of changes focusing on performance,
• huge changes on how we manage analysis improving almost all features performance
• CLI features are faster, we scan all project ns faster to then clean-ns/diagnostics
• we now cache JDK analysis after startup which was hitting some CPU spikes.
• Probably the most important, we not only cache external analysis after a clean startup, but we now cache it external jar, so if you change anything on project.clj/deps.edn, a clj-kondo config or anything that would trigger a full analysis, clojure-lsp will be smart enough to know most jars didn't change and it won't re-lint again, becoming quite faster on startup.
• Test-tree calculation is faster after startup, reducing CPU spike too
• huge performance improvements on completion, if you had any issues with completion before, you should try this release!
Besides all of that, we have new code actions/commands to promote and demote a fn!
Kudos to @jacob.maine who helped a lot with discussions and contributions of this new feature and performance improvements!
Oh, and of course, we now officially support #clojuredart 🎯
This release was supported by https://www.clojuriststogether.org/