Managing your personal configuration for development tools and applications is much more effective when adopting the XDG basedir standard, which defines separate locations to store user configurations, data files and caches.
Without the XDG standard, these files and directories are often mixed together and stored in the $HOME
of the users account, making it more challenging to backup or version control.
Development tools such as NeoVim, Emacs, Clojure CLI and Clojure LSP support the XDG specification, although some tools like Leiningen required a little help. There are simple approaches to work-around the limitations of tools that don't conform.
Continue reading →Practicalli content plans for Spring 2022
Much more content is coming in the Spring of 2022, thanks to Clojurists Together funding. To ensure the most useful content is provides, Practicalli would value feedback on the planned topics.
The submitted plan to Clojurists Together is to extend existing guides and code examples, as well as adding new content to the existing Practicalli books. Additional video content will be added across the Practicall Books, updating existing video content where it has become dated.
Continue reading →Due to continued Covid symptoms, work is being done over 2022 and 2023 as health conditions allow
Java 17 JDK for Clojure development
Java JDK 17 is the latest Long Term Support version and ideally should be the default JVM for developing and deploying new Clojure projects (and existing projects after testing). There should be little risk upgrading, especially from Java 11 onward. The 17.0.2 version has just been release, so has been tested by many development teams already.
Although the language features are of less interest, the security and performance improvements over the last 3 years (since Java 11) or 6 years (since Java 8) are valuable to Clojure development.
Oracle JDK 17 is free again for use in production and to redistribute, under the No-Fee Terms and Conditions License. However, Practicalli recommends using OpenJDK anyway.
Continue reading →Code Snippets for Clojure LSP
Clojure LSP snippets are an editor agnostic approach to expanding common code forms from snippet names, saving typing and acting as a guide to the syntax of a Clojure form. Practicalli also uses snippets for rich comments, documentation and highlighting logical sections of code in a namespace.
Clojure LSP snippets are defined using the EDN syntax and have the same tab stop syntax as Yasnippets and other snippet tools.
Continue reading →Clojure LSP snippets are covered in Practiclli Spacemacs, including a large number of examples of custom snippets. Install practicalli/clojure-lsp-config for additions to the built-in snippets.
Emacs CIDER removing old cider-compat namespace
The latest snapshot of CIDER includes some welcome tidy up of the code. One notable removal is cider-compat
which was added to support Emacs versions previous to 25. As most of the Emacs world is on version 27 (or 28 / 29) then there is no need to include cider-compat
any more.
However, some Emacs packages that haven't change in a while may still used cider-compat
, although the only one to date that has been found is helm-cider
. Unfortunately is causing Clojure file to fail to load when used with the latest CIDER snapshot.
When helm-cider is enabled, Emacs is unable to load Clojure files. The error reported is:
Continue reading →