Skip to content

Commit f146d97

Browse files
committed
clojure-mode
1 parent d7b54ad commit f146d97

2 files changed

Lines changed: 48 additions & 1 deletion

File tree

content/en/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ Terminal integration, multiple cursors, interactive grep, directory mode, tabs,
9090

9191
and support for:
9292

93-
C, Scheme, Go, JavaScript, TypeScript, Python, Rust, Elixir, Haskell, Java, Nim, Dart, OCaml, Scala, Swift, Lua, Ruby, shell, asm
93+
C, Clojure, Scheme, Go, JavaScript, Kotlin, TypeScript, Python, Rust, Elixir, Haskell, Java, Nim, Dart, OCaml, Scala, Swift, Lua, Perl, Ruby, Zig, WAT, shell, asm
9494

9595
Markdown, ASCII, JSON, HTML and CSS, Vue, SQL…
9696

content/en/modes/clojure.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
title: Clojure
3+
---
4+
5+
Lem's `clojure-mode` provides **syntax highlighting**, **LSP** support and **nREPL** integration:
6+
7+
- full-featured Clojure language mode with syntax highlighting, indentation, and LSP integration
8+
- nREPL client for interactive development with eval, macroexpand, and documentation commands
9+
- REPL mode with history, namespace tracking, and connection management
10+
- Clojure-specific **tools**: inspector, test runner, stacktrace navigation, and detective integration
11+
12+
- Add comprehensive test suite covering bencode protocol, indentation, and mode functionality
13+
14+
## Features
15+
16+
### Core Mode (`clojure-mode.lisp`)
17+
18+
- syntax highlighting for Clojure/ClojureScript/EDN files
19+
- Clojure-specific indentation with customizable rules
20+
- rainbow parentheses support
21+
- namespace detection and tracking
22+
- file type support: `.clj`, `.cljs`, `.cljc`, `.cljx`, `.edn`
23+
24+
### nREPL Integration (`nrepl-client.lisp`, `repl.lisp`)
25+
26+
- full nREPL protocol implementation using bencode
27+
- interactive REPL with command history
28+
- eval commands: `clojure-eval-last-sexp`, `clojure-eval-defun`, `clojure-eval-region`, `clojure-eval-buffer`
29+
- macroexpand support: `clojure-macroexpand-1`, `clojure-macroexpand-all`
30+
- documentation lookup: `clojure-describe-symbol`
31+
32+
### Development Tools
33+
34+
- **Inspector** (`inspector.lisp`): Browse Clojure data structures interactively
35+
- **Test Runner** (`test-runner.lisp`): Run tests with results display and navigation
36+
- **Stacktrace** (`stacktrace.lisp`): Navigate exceptions with source jumping
37+
- **Detective** (`detective.lisp`): Context menu integration for Clojure-specific actions
38+
- **Tools** (`tools.lisp`): Code actions, refactoring, and utilities
39+
40+
### LSP Support (`lsp-config.lisp`)
41+
42+
- integration with clojure-lsp for advanced IDE features
43+
- root patterns: `deps.edn`, `project.clj`, `build.boot`, `shadow-cljs.edn`
44+
45+
The original [PR](https://github.com/lem-project/lem/pull/2068) comes with a full test suite.
46+
47+
It was done with the help of Claude Code.

0 commit comments

Comments
 (0)