Entrypoint for main clojure-lsp features
Entrypoint for main clojure-lsp features
(analyze-project! {:keys [project-root settings] :as options})
Analyze project caching analysis for future API calls. Useful for REPL usage for example.
This will analyze the whole project and external dependencies with clj-kondo caching its analysis for next other API calls. All features need analysis and will call this internally if the project was not analyzed before.
Options
:project-root
a java.io.File representing the project root.
settings
map of settings following https://clojure-lsp.io/settings/
Example
(clojure-lsp.api/analyze-project! {:project-root (io/file ".")
:settings {:classpath-config-paths ["other-company/other-project"]}})
Analyze project caching analysis for future API calls. Useful for REPL usage for example. This will analyze the whole project and external dependencies with clj-kondo caching its analysis for next other API calls. All features need analysis and will call this internally if the project was not analyzed before. **Options** `:project-root` a java.io.File representing the project root. `settings` map of settings following https://clojure-lsp.io/settings/ **Example** ```clojure (clojure-lsp.api/analyze-project! {:project-root (io/file ".") :settings {:classpath-config-paths ["other-company/other-project"]}}) ```
(clean-ns! {:keys [project-root settings namespace ns-exclude-regex]
:as options})
Organize ns
form, removing unused requires/refers/imports and sorting
alphabetically by default.
Options
:project-root
a java.io.File representing the project root.
:namespace
a coll of symbols representing the namespaces which should be cleaned,
if empty all project namespaces will be considered.
:ns-exclude-regex
a string regex representing the namespaces that should be excluded during this call.
dry?
a boolean, when enabled make no side-effects (no changes to files), only report.
settings
map of settings following https://clojure-lsp.io/settings/
Example
(clojure-lsp.api/clean-ns! {:namespace '[my-project.foo my-project.bar]})
Organize `ns` form, removing unused requires/refers/imports and sorting alphabetically by default. **Options** `:project-root` a java.io.File representing the project root. `:namespace` a coll of symbols representing the namespaces which should be cleaned, if empty all project namespaces will be considered. `:ns-exclude-regex` a string regex representing the namespaces that should be excluded during this call. `dry?` a boolean, when enabled make no side-effects (no changes to files), only report. `settings` map of settings following https://clojure-lsp.io/settings/ **Example** ```clojure (clojure-lsp.api/clean-ns! {:namespace '[my-project.foo my-project.bar]}) ```
(diagnostics {:keys [project-root settings] :as options})
Find all project diagnostics (warnings, errors and infos). Returns all clj-kondo lint plus custom linters configured by clojure-lsp like clojure-lsp/unused-public-var for example.
Options
:project-root
a java.io.File representing the project root.
:namespace
a coll of symbols representing the namespaces which should be cleaned,
if empty all project namespaces will be considered.
:ns-exclude-regex
a string regex representing the namespaces that should be excluded during this call.
:output
a map with options on how the result should be printed, available values are:
:canonical-paths
a boolean if the path should be absolute or not, defaults to false.
settings
map of settings following https://clojure-lsp.github.io/clojure-lsp/settings/
Example
(clojure-lsp.api/diagnostics {:namespace '[my-project.foo my-project.bar]
:output {:canonical-paths true}})
Find all project diagnostics (warnings, errors and infos). Returns all clj-kondo lint plus custom linters configured by clojure-lsp like clojure-lsp/unused-public-var for example. **Options** `:project-root` a java.io.File representing the project root. `:namespace` a coll of symbols representing the namespaces which should be cleaned, if empty all project namespaces will be considered. `:ns-exclude-regex` a string regex representing the namespaces that should be excluded during this call. `:output` a map with options on how the result should be printed, available values are: `:canonical-paths` a boolean if the path should be absolute or not, defaults to false. `settings` map of settings following https://clojure-lsp.github.io/clojure-lsp/settings/ **Example** ```clojure (clojure-lsp.api/diagnostics {:namespace '[my-project.foo my-project.bar] :output {:canonical-paths true}}) ```
(format! {:keys [project-root settings namespace ns-exclude-regex] :as options})
Format one or more namespaces using cljfmt internally.
Options
:project-root
a java.io.File representing the project root.
:namespace
a coll of symbols representing the namespaces which should be cleaned,
if empty all project namespaces will be considered.
dry?
a boolean, when enabled make no side-effects (no changes to files), only report.
:ns-exclude-regex
a string regex representing the namespaces that should be excluded during this call.
settings
map of settings following https://clojure-lsp.io/settings/
Example
(clojure-lsp.api/format! {:namespace '[my-project.foo my-project.bar]})
Format one or more namespaces using cljfmt internally. **Options** `:project-root` a java.io.File representing the project root. `:namespace` a coll of symbols representing the namespaces which should be cleaned, if empty all project namespaces will be considered. `dry?` a boolean, when enabled make no side-effects (no changes to files), only report. `:ns-exclude-regex` a string regex representing the namespaces that should be excluded during this call. `settings` map of settings following https://clojure-lsp.io/settings/ **Example** ```clojure (clojure-lsp.api/format! {:namespace '[my-project.foo my-project.bar]}) ```
(rename! {:keys [project-root settings from to] :as options})
Rename a symbol and its definitions across the project. The symbol can be a full qualified symbol or a namespace only.
Options
:project-root
a java.io.File representing the project root.
:from
the full qualified symbol origin name that should be renamed. e.g. my-project.foo/my-var or my-project.foo for namespaces
:to
the full qualified symbol that will replace the original symbol. e.g. my-project.bar/my-var-2 or my-project.bar for namespaces
dry?
a boolean, when enabled make no side-effects (no changes to files), only report.
settings
map of settings following https://clojure-lsp.io/settings/
Example
(clojure-lsp.api/rename! {:from 'my-project.some/foo
:to 'my-project.some/bar})
Rename a symbol and its definitions across the project. The symbol can be a full qualified symbol or a namespace only. **Options** `:project-root` a java.io.File representing the project root. `:from` the full qualified symbol origin name that should be renamed. e.g. my-project.foo/my-var or my-project.foo for namespaces `:to` the full qualified symbol that will replace the original symbol. e.g. my-project.bar/my-var-2 or my-project.bar for namespaces `dry?` a boolean, when enabled make no side-effects (no changes to files), only report. `settings` map of settings following https://clojure-lsp.io/settings/ **Example** ```clojure (clojure-lsp.api/rename! {:from 'my-project.some/foo :to 'my-project.some/bar}) ```
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close