Clojure Extension Pack for Vscode
Essential Clojure & ClojureScript development environment for VSCode - comprehensive REPL-driven development tooling
📦 What's Included
This extension pack includes 5 carefully selected extensions to enhance your clojure development experience in vscode.
✅ Core Extensions (2)
These extensions are essential for clojure development:
- Calva - Clojure & ClojureScript Interactive Programming
- Clojure LSP - Language Server Protocol support for Clojure
💡 Additional Extensions (3)
These extensions provide extra functionality and convenience:
🚀 Installation
Method 1: Install from Marketplace
- Open Vscode
- Go to Extensions view (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Clojure Extension Pack for Vscode"
- Click "Install"
Method 2: Install via Command Line
code --install-extension @templ-project/clojure-extension-pack
Method 3: Install from VSIX
- Download the latest
.vsix file from Releases
- Open Vscode
- Run
Extensions: Install from VSIX... command
- Select the downloaded file
⚙️ Configuration
After installation, you may want to configure some settings for optimal clojure development:
calva.autoConnectRepl
{
"calva.autoConnectRepl": true
}
Automatically connect to REPL when project is opened
calva.connectSequence
{
"calva.connectSequence": "ask"
}
How to select connect sequence (ask, default, or custom name)
calva.paredit.defaultKeyMap
{
"calva.paredit.defaultKeyMap": "original"
}
Default Paredit key bindings (original, strict, or none)
calva.paredit.hijackVSCodeDefaults
{
"calva.paredit.hijackVSCodeDefaults": true
}
Let Paredit override some default VS Code keybindings for better structural editing
{
"calva.fmt.formatOnSave": true
}
Format Clojure code on save
calva.fmt.align
{
"calva.fmt.align": true
}
Align map values and function arguments
calva.fmt.indents
{
"calva.fmt.indents": {}
}
Custom indentation rules for specific forms
calva.fmt.newIndentEngine
{
"calva.fmt.newIndentEngine": true
}
Use the new indentation engine for better formatting
calva.evalOnSave
{
"calva.evalOnSave": false
}
Automatically evaluate file on save
calva.showDocstringInParameterHelp
{
"calva.showDocstringInParameterHelp": true
}
Show function docstrings in parameter hints
calva.autoOpenREPLWindow
{
"calva.autoOpenREPLWindow": true
}
Automatically open REPL window when connecting
calva.prettyPrintingOptions
{
"calva.prettyPrintingOptions": {"enabled":true,"printEngine":"pprint","width":80}
}
Pretty printing configuration for REPL output
calva.referencesCodeLens.enabled
{
"calva.referencesCodeLens.enabled": true
}
Show references code lens above symbols
calva.enableJSCompletions
{
"calva.enableJSCompletions": true
}
Enable JavaScript completions in ClojureScript files
calva.jackInEnv
{
"calva.jackInEnv": {}
}
Environment variables for jack-in process
calva.customREPLCommandSnippets
{
"calva.customREPLCommandSnippets": []
}
Custom REPL command snippets
clojure-lsp.enable
{
"clojure-lsp.enable": true
}
Enable clojure-lsp integration
clojure-lsp.server-path
{
"clojure-lsp.server-path": ""
}
Path to clojure-lsp executable (empty = use bundled)
clojure-lsp.trace.server
{
"clojure-lsp.trace.server": "off"
}
Trace communication between VS Code and clojure-lsp (off, messages, verbose)
clojure-lsp.semantic-tokens?
{
"clojure-lsp.semantic-tokens?": true
}
Enable semantic tokens for better syntax highlighting
clojure-lsp.clean.ns.on-save?
{
"clojure-lsp.clean.ns.on-save?": true
}
Clean namespace form on save (remove unused requires, sort)
clojure-lsp.use-source-paths-from-classpath?
{
"clojure-lsp.use-source-paths-from-classpath?": true
}
Use source paths from classpath for analysis
clojure-lsp.lens.enable?
{
"clojure-lsp.lens.enable?": true
}
Enable code lenses
clojure-lsp.lens.show-references?
{
"clojure-lsp.lens.show-references?": true
}
Show references code lens
[clojure]
{
"[clojure]": {"editor.defaultFormatter":"betterthantomorrow.calva","editor.formatOnSave":true,"editor.autoClosingBrackets":"never","editor.autoClosingQuotes":"never","editor.autoIndent":"full","editor.parameterHints.enabled":true,"editor.quickSuggestions":{"other":true,"comments":false,"strings":true},"editor.wordSeparators":"`()[]{}\",'","editor.rulers":[80,100],"editor.semanticHighlighting.enabled":true}
}
Editor configuration for Clojure files
[clojurescript]
{
"[clojurescript]": {"editor.defaultFormatter":"betterthantomorrow.calva","editor.formatOnSave":true,"editor.autoClosingBrackets":"never","editor.autoClosingQuotes":"never","editor.autoIndent":"full","editor.parameterHints.enabled":true,"editor.quickSuggestions":{"other":true,"comments":false,"strings":true},"editor.wordSeparators":"`()[]{}\",'","editor.rulers":[80,100],"editor.semanticHighlighting.enabled":true}
}
Editor configuration for ClojureScript files
files.associations
{
"files.associations": {"*.clj":"clojure","*.cljs":"clojurescript","*.cljc":"clojure","*.edn":"clojure","*.bb":"clojure","deps.edn":"clojure","shadow-cljs.edn":"clojure"}
}
File associations for Clojure files
rainbowBrackets.activeScopeCSS
{
"rainbowBrackets.activeScopeCSS": ["borderColor: {color}; borderWidth: 1px; borderStyle: solid;"]
}
CSS for active bracket scope highlighting
rainbowBrackets.forceUniqueOpeningColor
{
"rainbowBrackets.forceUniqueOpeningColor": true
}
Force different colors for each bracket level
⌨️ Recommended Keybindings
- Jack-in: Start REPL and connect:
ctrl+alt+c enter
- Connect to running REPL:
ctrl+alt+c ctrl+alt+c
- Evaluate top-level form:
ctrl+enter
- Evaluate selection or current form:
ctrl+alt+c space
- Load/evaluate current file:
ctrl+alt+c ctrl+alt+n
- Run tests in current namespace:
ctrl+alt+c t
- Run all tests:
ctrl+alt+c ctrl+t
📝 Extension Details
| Extension |
Publisher |
Description |
| Calva |
betterthantomorrow |
Clojure & ClojureScript Interactive Programming |
| Clojure LSP |
betterthantomorrow |
Language Server Protocol support for Clojure |
| Parinfer |
shaunlebron |
Simplifies Lisp parentheses editing |
| Rainbow Brackets |
2gua |
Colorizes matching brackets |
| Clojure Snippets |
rafaeldelboni |
Code snippets for Clojure |
🏷️ Categories
clojure clojurescript lisp repl functional-programming interactive-development
📄 License
Extension Pack License
This extension pack is licensed under the MIT License - see LICENSE.md for details.
Third-Party Extension Licenses
Important: Each extension included in this pack has its own license terms. templ-project is not responsible for the licensing, functionality, or security of third-party extensions.
| Extension |
Publisher |
License |
Description |
| Calva |
betterthantomorrow |
MIT |
Clojure & ClojureScript Interactive Programming |
| Clojure LSP |
betterthantomorrow |
MIT |
Language Server Protocol support for Clojure |
| Parinfer |
shaunlebron |
MIT |
Simplifies Lisp parentheses editing |
| Rainbow Brackets |
2gua |
MIT |
Colorizes matching brackets |
| Clojure Snippets |
rafaeldelboni |
MIT |
Code snippets for Clojure |
Disclaimer
- We do not guarantee the functionality, security, or compatibility of included extensions
- We are not responsible for any issues caused by third-party extensions
- Users install and use extensions at their own risk
- Please review each extension's license and privacy policy before use
🤝 Contributing
Found an issue or want to suggest an extension? Please open an issue or submit a pull request.
📊 Extension Pack Stats
- Total Extensions: 5
- Required Extensions: 2
- Optional Extensions: 3
- Target IDE: vscode
- Language Focus: clojure
This extension pack is maintained by templ-project and updated regularly to include the most useful clojure development extensions.