The missing workspace tool for clojure tools.deps projects
Kmono is a suite of tools and API's for working in Clojure (mono)repos. It aims to meet Clojure where it's at by providing a better understanding of deps.edn projects.
This project was built with a focus on improving the experience of working in Clojure monorepos but works great in standalone projects too.
deps.edn
config during local developmentbrew install kepler16/tap/kmono
You can use the below script to automatically install the latest release
bash < <(curl -s https://raw.githubusercontent.com/kepler16/kmono/master/install.sh)
Or alternatively binaries for various platforms can be pulled directly from the Releases page.
One of the things that kmono enables is integration into your editor by acting as a drop-in replacement for clojure -Spath
which is used by default by clojure-lsp.
If we instead use kmono cp
to generate the classpath then your clojure-lsp server will be able to provide better
analysis.
;; .lsp/config.edn
{:project-specs [{:project-path "deps.edn"
:classpath-cmd ["kmono" "cp"]}]}
local lspconfig = require('lspconfig')
lspconfig.clojure_lsp.setup {
init_options = {
["project-specs"] = {
{
["project-path"] = "deps.edn",
["classpath-cmd"] = { "kmono", "cp" },
},
},
},
}
Package-specific configurations are done within each deps.edn
file under the :kmono/package
key:
:kmono/package {;; maven artifact's group
:group com.example
;; the package name which is also used as maven's artifactId
;; this is optional and inferred from a package's dir name
:name my-lib}
Can you improve this documentation? These fine people already did:
Artem Medeu, Julien Vincent & Alexis VincentEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close