Liking cljdoc? Tell your friends :D

clojure-lsp.api

Entrypoint for main clojure-lsp features

Entrypoint for main clojure-lsp features

analyze-project!

(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"]}})
```
sourceraw docstring

clean-ns!

(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]})
```
sourceraw docstring

diagnostics

(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}})
```
sourceraw docstring

format!

(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]})
```
sourceraw docstring

rename!

(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})
```
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close