- New
Align Cursors
command - Color scheme adjustments
- Clarified some symbol/keyword edge cases in syntax
- Add
clojure_sublimed_select_topmost_form
command - Add
|
to the allowed symbols chars #132
- Fixed evaluation of
()
#131
- Pretty print selection #123
- Execute code from inside top-level
; ...
and#_...
#124 Toggle Comment
command that uses#_
instead of;;
- Remove background color on quoted strings inside metadata
- Better handle eval of
#_
forms in nREPL JVM - Made line numbers much more transparent
- cljfmt correctly indents forms with custom rules - again
- cljfmt correctly indents forms with custom rules
- Simplified formatting rules: if list's first form is a symbol, indent next line by +2 spaces, in all other cases, indent to opening paren (1 space)
- We now provide
cljfmt.edn
that tries to match our default formatting - Better handle selection after formatting with cljfmt
- Highlight namespace name as
entity.name
, same as defs - No exceptions on disconnect
- Removed background on unused symbols inside quotes
- Support Clojure 1.12 array type annotations
- Eval previous form at current level #118
- Auto-detect UNIX sockets, support relative paths
- Correctly parse escaped comma #120 via @oakmac
Syntax has been significantly reworked.
- New syntax that can highlight reader comments
comment.reader
together with the following form - Highlight
(comment ...)
blocks ascomment.form
- Highlight namespaces in symbols as
meta.namespace.symbol
- Highlight unused symbols as
source.symbol.unused
- Properly highlight
entity.name
indef*
forms only at second position, skipping all meta/comments - Quote & syntax quote highlight following form as
meta.quoted
andmeta.quoted.syntax
- Metadata highlights following form as
meta.metadata
- Octal & arbitrary radix integers #71
- Better keyword detection
Other changes:
- Built-in color scheme to utilize REPL and new syntax features.
- Allow using
cljfmt
for formatting (requirescljfmt
binary on$PATH
) - Removed separate EDN syntax, merged with main Clojure (Sublimed)
- Settings can now be specified in main
Preferences.sublime-settings
as well. Just prependclojure_sublimed_
to each setting’s name. - REPL can detect namespaces with meta on ns form #116
- Detect
.shadow-cljs/nrepl.port
and.shadow-cljs/socket-repl.port
#114 - Connect commands now accept
timeout
argument for automation scenarios like “start clojure, start trying to connect to REPL until port is available”
clojure_sublimed_reindent
command that reindents entire buffer if selection is empty and only selected lines if not
- Fixed Socket REPL not working on Windows #95
- Fixed Exception in settings on first install #109
- Some defensive coding around default settings fallback #109
- Added
expand
argument toclojure_sublimed_eval
command
- New feature: Watches! Added
Add Watch
command - Added
output.repl
panel for raw nREPL output #104 - Added
Toggle Output Panel
command for raw nREPL connections #104 - Fixed
Reconnect
command - Added optional
on_finish
argument tocs_conn.eval
- Added
print_quota
as a setting and as an argument tocs_conn.eval
- Added optional
transform
argument toclojure_sublimed_eval
#101 #102 - Display failed test reports as red
- Socket REPL: fixed escaping in
clojure_sublimed_eval_code
#103 via @KGOH
- Detect namespace from in-ns forms
- Fixed status eval not clearing on disconnect
- Support multiple windows, one connection per widnow
- Support .repl-port files for Socket REPL
- Eval inside already evaled region re-evals same region instead of going to top form
- Printer can display newlines
- Socket: Report number of reflection warnings in status bar
- Socket REPL: handle exceptions in lookup
- Do not silence exception during lazy seq printing
- Show file/line/column information when
clojure_sublimed_eval_code
fails
- Fixed indenting of reader conditionals
- Fixed perf degradation on reindent #96
- Socket: Fixed status_eval, bind *1/*2/*3/*e for e.g. tools.namespace
- Do not fail because of styles #91
- Huge refactoring, easier to add new REPLs
- REPLs do not depend on syntax highlighting anymore, will work with any syntax
- new REPL: Raw nREPL
- new REPL: Socket REPL (no external dependencies, faster to start than nREPL)
- Report results of different forms in the same selection separately (Socket REPL only)
- Removed
clojure_sublimed_require_namespace
command - Implemented pretty-printing of expanded results in Python, removing clojure.pprint dependency
- Added
wrap_width
setting
- Connect command accepts 'auto' (will look for
.nrepl-port
file) #82
- Do not move cursor if error region visible on screen #73
- Fixed: Wrong highlight of the source of error #79
- Render sequential spaces #78
- Fixed: Exceptions from evaluating buffer without a file name are not processed #18
- Special case when CompilerError has wrong location info
- Select whole line on error
- Added Main.sublime-menu #85 via @wundervaflja
- Allow connection through UNIX domain socket #80 via @tribals
- Allow specifying
ns
inclojure-sublimed-eval-code
- Shadow-cljs support #43 #77 via @sainadh-d
- Added
eval_shared
- Added
format_on_save
option #76 thx @sainadh-d
- Fixed clojure_sublimed_eval_code #75
- Fixed clojure_sublimed_insert_newline with multicursor #72
- Fixed indent on Enter
- Pretty print returned values. Toggle with Toggle Info (Ctrl + I)
- Do not reindent blank lines
- Proper
messages.json
and install message.
New commands:
- Reindent Buffer
- Reindent Lines
- Insert Newline
- A command to require namespace of symbol #12 #59 via @jaihindhreddy
- Fixed regions returning on undo #22 #60 via @jaihindhreddy
- Fixed AttributeError: 'Connection' object has no attribute 'eval_in_session'
- Do clone, eval and close in a single middleware #20 via @jaihindhreddy and @tonsky
- Auto-close sessions cloned by eval #48 #49 #50 via @tonsky
- Interrupt pending eval when region is erased #16 #58 via @jaihindhreddy and @tonsky
- An option to use nREPL session for eval #9 #57 via @jaihindhreddy
- Optimize region invalidation #19 #54 via @jaihindhreddy
- Optimise iterating through evals by maintaining evals by view #23 #51 #55 #56 via @jaihindhreddy
- Use ephemeral sessions instead of cloning for each eval #20 #48 #50 via @jaihindhreddy
- Renamed to Clojure Sublimed due to Package Control policy. Thanks @YurySolovyov for the name
- Toggle symbol info works on def/defn #44 #45
- Escape HTML in evaluation results #35 #38 thx @jaihindhreddy
- Measure time-taken in nREPL middleware #13 #39 thx @jaihindhreddy
- Eval form on the left if between forms #10 #42 thx @jaihindhreddy
- Fixed Ctrl+I at the last position in the file #17
- Copy evaluation result #37
- Fixed runtime error on startup #32
- Clear Eval Code status in non-active views #32
- When evaluating buffer fails, scroll to error line #28
- Fixed exception in eval code command handling excetpion response
- Automatically detect port from .nrepl-port #5
- Do not bundle any key bindings by default
- Bind keys to eval arbitrary code #25
- Remove phantom if region is fully removed #21
- Initial release
- Renamed syntaxes to
Clojure (Sublime Clojure)
andEDN (Sublime Clojure)
- Added nREPL client
- Clojure syntax: quotes, reader conditionals, operators, better whitespace handling.
- Clojure syntax: regexps.
- Supported namespaced
/
symbol. - Tokens can end directly with
;
, without any whitespace in between. - Content of
()[]{}
is marked withmeta.parens
/.brackets
/.braces
, making possible nested brackets highlighting. - Bracket/paren/braces classes replaced with
punctuation.section.(parens|brackets|braces).begin
/...end
. - Keywords use
constant.other.keyword
instead ofconstant.keyword
. - Beginning of Clojure syntax, highlighting
entity.name
in alldef*
/ns
forms.
- Instants, uuids, custom reader tags;
- punctuation class for colons and slashes in symbols/keywords, comma, backslash in strings/chars;
- allow single quote in keywords;
- more conventional class names;
- automated tests.
- Inital version.