{"id":28254839,"url":"https://github.com/practicalli/clojure-lsp-config","last_synced_at":"2025-06-16T04:31:02.778Z","repository":{"id":44684909,"uuid":"451622877","full_name":"practicalli/clojure-lsp-config","owner":"practicalli","description":"User level configuration for Clojure LSP","archived":false,"fork":false,"pushed_at":"2024-01-21T23:38:59.000Z","size":57,"stargazers_count":6,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-19T20:18:24.583Z","etag":null,"topics":["clojure"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/practicalli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["practicalli-johnny"]}},"created_at":"2022-01-24T20:30:42.000Z","updated_at":"2025-05-16T16:41:00.000Z","dependencies_parsed_at":"2024-01-07T18:48:36.897Z","dependency_job_id":null,"html_url":"https://github.com/practicalli/clojure-lsp-config","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/practicalli/clojure-lsp-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practicalli%2Fclojure-lsp-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practicalli%2Fclojure-lsp-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practicalli%2Fclojure-lsp-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practicalli%2Fclojure-lsp-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/practicalli","download_url":"https://codeload.github.com/practicalli/clojure-lsp-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practicalli%2Fclojure-lsp-config/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260096618,"owners_count":22958083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure"],"created_at":"2025-05-19T20:15:59.601Z","updated_at":"2025-06-16T04:31:02.767Z","avatar_url":"https://github.com/practicalli.png","language":null,"funding_links":["https://github.com/sponsors/practicalli-johnny"],"categories":[],"sub_categories":[],"readme":"## Practicalli Clojure LSP Configuration\n\nCustom snippets in Clojure LSP format (EDN).  Practicalli designed snippets to encourage communication of the code purpose.\n\n## Install\n\nClone the repository to the user level configuration location for Clojure LSP, either `$XDG_CONFIG_HOME/clojure-lsp` or if `XDG_CONFIG_HOME` is not set, `$HOME/.config/clojure-lsp`\n\n\n## Clojure LSP configuration\n\nInclude `:extra-paths` and `:extra-deps` from project \u0026 user level aliases in LSP classpath.  e.g. support a custom `user` namespace in `dev/user.clj`\n\n```clojure\n :source-aliases #{:dev :test :env/dev :env/test :lib/reloaded}\n```\n\nInclude Java Sources installed via Debian / Ubuntu package `openjdk-17-source` to support calls to Java Objects and Methods.\n\n```clojure\n :java\n {:jdk-source-uri       \"file:///usr/lib/jvm/openjdk-17/lib/src.zip\" ;;\n  :home-path            nil ;; jdk-source-uri takes precedence\n  :download-jdk-source? false}\n```\n\nClean namespace `ns` forms but do not sort require names\n\n```clojure\n :clean {:automatically-after-ns-refactor true\n         :ns-inner-blocks-indentation     :next-line\n         :ns-import-classes-indentation   :next-line\n         :sort {:ns      false\n                :require false\n                :import  false\n                :import-classes {:classes-per-line 3} ;; -1 for all in single line\n                :refer {:max-line-length 80}}}\n```\n\n\nUse `^private` metadata for private function definitions rather than `defn-`\n\n```clojure\n :use-metadata-for-privacy? true\n```\n\nLocation of [cljfmt configuration](cljfmt.edn) for formatting, path relative to project root.  The defaults for cljfmt are used, except `:remove-consecutive-blank-lines?` which is set to false to enable more readable code.\n\n```clojure\n :cljfmt-config-path \"cljfmt.edn\"\n```\n\n\u003e [cljfmt configuration](cljfmt.edn) included example `:indents` rules for clojure.core, compojure, fuzzy rules and examples used by the Clojure LSP maintainer.\n\n\n## Custom snippets\n\n[Snippets created by Practicalli](https://practical.li/spacemacs/snippets/clojure-lsp/practicalli-snippets.html) are documents in [Practicalli Spacemacs](https://practical.li/spacemacs/snippets/clojure-lsp/practicalli-snippets.html)\n\n### Docs / comments\n* `comment-heading` - describe purpose of the namespace\n* `comment-separator` - logically separate code sections, helps identify opportunities to refactor to other name spaces\n* `comment-section` - logically separate large code sections with start and end line comments\n* `wrap-reader-comment` - insert reader comment macro, `#_` before current form, informing Clojure reader to ignore next form\n\n### Repl Driven Development\n* `rich-comment` - comment block\n* `rich-comment-rdd` - comment block with ignore :redefined-var for repl experiments\n* `rich-comment-hotload` - comment block with add-libs code for hotloading libraries in Clojure CLI repl\n* `wrap-rich-comment` - wrap current form with comment reader macro\n* `require-rdd` - add a require expression, for adding a require in a rich comment block for RDD\n\n### Standard library functions\n* `def` - def with docstring\n* `def-` - private def with docstring\n* `defn` - defn with docstring\n* `defn-` private defn with docstring\n* `ns` - namespace form with docstring\n\n### Clojure CLI deps.edn aliases\n* `deps-alias` - add Clojure CLI alias\n* `deps-maven` - add a maven style dependency\n* `deps-git` - add a git style dependency using `:git/sha`\n* `deps-git-tag` - as above including `:git/tag`\n* `deps-git-url` - add git style dependency using git url (url taken from dependency name as it is typed - mirrored placeholder)\n* `deps-local` - add a `:local/root` dependency\n\n### Requiring dependencies\n* `require-rdd` - add a require expression, for adding a require in a rich comment block for RDD\n* `require` - simple require\n* `require-refer` - require with `:refer`\n* `require-as` - require with `:as` alias\n* `use` - creates a require rather than the more troublesome use\n\n### Unit testing\n* `deftest` - creates a deftest with testing directive and one assertion\n* `testing` - creates a testing testing directive and one assertion\n* `is` - an assertion with placeholders for test function and expected results\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpracticalli%2Fclojure-lsp-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpracticalli%2Fclojure-lsp-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpracticalli%2Fclojure-lsp-config/lists"}