Releases
v0.1.1
Compare
Sorry, something went wrong.
No results found
Highlights
Pickers update as files, Git changes, diagnostics, and search results change, while preserving your selection and navigation.
Inline Git blame shows who last changed a line. A new blame popup provides full commit details, and changed-file pickers include staged files.
Language servers can provide inline completion suggestions and code lenses, such as run and test actions beside your code.
Debugging gains session switching, inline runtime values, expandable variables, and more reliable breakpoint tracking.
More UI customization: configurable statusline layouts, component keybindings, menu labels, and border styles. Pickers have clearer titles, and the active buffer stays visible in the buffer bar.
Updated language grammars and syntax queries, broader language-server configuration, and support for choosing the first available server.
Shell commands and more language-server and debugger operations run without blocking editing. Startup performance also improves.
Added shell and PowerShell installers, improved terminal detection, and reorganized documentation.
Extensive internal restructuring separates editor features from the terminal interface, alongside fixes to saving, formatting, completion, clipboard handling, and asynchronous operations.
Upgrade notes
Configuration is now grouped by feature. Older setting names still work; :config-migrate updates them after confirmation and creates a backup.
Rounded borders and visible trailing whitespace are now the defaults.
Space E opens the current folder.
Installed grammars now use the user data runtime directory. Existing configuration runtime overrides remain supported and take priority.
Added
(bufferline) keep the active buffer visible (#543 )
(editor) render trailing whitespace independently (#540 )
(picker) label built-in pickers with titles (#541 )
(commands) evaluate shell expansions without blocking the editor
(debugger) show inline runtime values in source (#511 )
(debugger) inspect evaluated values through owned variable pages
(debugger) support breakpoints in adapter-owned sources
(debugger) page variable children on demand
(debugger) refresh invalidated inspection data in place
(debugger) browse scopes and nested variables lazily
(debugger) add session switching and selected-session status
(picker) refresh symbols and unsaved search results
(picker) refresh buffers and diagnostics from editor state
(picker) refresh search matches and changed-file status
(picker) refresh file lists without losing selection
(vcs) add blame details and clarify change restoration (#388 )
(lsp) add ordered server alternatives and expand language coverage (#342 )
inline git blame (#107 )
(keymap) add configurable menu and command labels (#134 )
(all) restructure configuration (#122 )
(ui) make statusline layout configurable (#127 )
add component keymaps and buffer picker close action (#126 )
(lsp) code lenses (#121 )
(lsp) support inline completion ghost text (#117 )
(view) support undoable document-only transactions (#303 )
(loader) discover runtimes in the user data directory
(lsp) cancel abandoned and timed-out requests (#298 )
(theme) add border style support (#517 )
(debugger) make session selection explicit across adapter lifetimes
(terminal) detect Kitty and Alacritty launchers (#315 )
(config) configure zellij as terminal.launcher if running inside it (#314 )
(xtask) automate weekly grammar updates (#294 )
Fixed
(editing) propagate interactive edit failures before follow-up effects
(completion) preview additional text edits (#561 )
(ui) keep key help above the statusline (#551 )
(editor) scope file preflight guards to affected documents
(grammar) write installed grammars to the user data runtime
(debugger) integrate frame paging and adapter sources into main
(debugger) map source breakpoints through document edits
(debugger) wait for managed TCP adapter readiness
(debugger) model thread execution and honor continue responses (#460 )
(debugger) normalize UTF-16 source locations and validate lines (#461 )
(debugger) own reverse requests and support stdio child sessions
(debugger) end sessions when adapter transports close
(picker) preserve navigation during background refreshes
(watcher) track Git index changes without polling
(picker) publish refresh results during continuous changes (#428 )
(keymap) use space "E" to open current folder (reverts space ".") (#427 )
(picker) refresh cached previews after filesystem changes
(vcs) include staged changes in changed-file pickers (#401 )
(indent) in gdscript newline after a block's last line had no indent (#374 )
(term) bind queued UI work to its originating session (#354 )
(lsp) open documents after editor initialization exactly once (#351 )
(save) drain accepted jobs and writes after failures (#305 )
(format) reject callbacks after view rebinding (#301 )
(term) initialize frontend destinations and hooks once (#331 )
(term) race condition on config tests
(palette) deliver command continuations after closing (#304 )
(config) make configuration migration explicit (#135 )
(lsp) clear diagnostics when restarting or stopping servers (#118 )
(buffer) advance text and history revisions together during replay
(dap) preserve and format structured request errors
(dap) sequence all outgoing messages in queue order
(debugger) apply session capability updates
(debugger) synchronize breakpoints with saved and renamed sources
(editor) enforce resource destination policies (#507 )
(formatting) capture expansion context from the target document
(formatting) own external-tool processes through cancellation
(editor) reserve save paths through completion delivery
(editor) reject malformed document edit groups (#508 )
(debugger) suspend configuration work during shutdown
(debugger) reject and cancel launch requests during shutdown (#481 )
(debugger) isolate asynchronous results across session switches
(registers) preserve clipboard contents and failed-write state (#412 )
(view) preserve document lifecycle event identities (#300 )
detect file encoding using only bytes actually read (#114 )
Other
(editor) share mode entry and scope append restoration to views
(registers) share editor operations and preflight edits
(editing) extract selection transformation transactions
(editing) share surround edits and validate replacement previews
(editing) share structural selection and navigation
(textobjects) move range collection into core and language
(editing) use document-owned syntax resources
(movement) share visual motion and viewport operations
(layout) prepare view layout once per operation
(annotations) pass explicit diagnostic and preview inputs
(syntax) give documents explicit resource snapshots
(rendering) extract the text-render crate
(rendering) pass explicit text rendering inputs
(application) separate startup configuration and protocol adapters
(navigation) share server-requested document opening
(lsp) coordinate work progress in the shared editor
(gutters) keep terminal presentation with the frontend
(rendering) share document highlighting outside EditorView
(workspace) share change tracking across caches and pickers (#536 )
(layout) extract document-independent pane layout
(picker) give result publication a dedicated owner (#529 )
(search) move workspace requests into shared editor features (#530 )
(config) separate schema composition and trusted loading (#523 )
(symbols) separate syntax queries from picker presentation
(search) share workspace traversal policy
(config) move border style to editor settings (#521 )
(editor) clarify file mutation outcomes and effects
(debugger) share adapter protocol fixtures and request gates
(debugger) share launch template resolution across frontends (#479 )
(ui) settle picker renders and wait for completion providers (#472 )
(debugger) separate launch configuration from DAP types
(debugger) keep adapter clients behind the session API
generate the default keymap reference (#463 )
(completion) own menu and preview lifecycle in the shared service (#445 )
(debugger) own adapter lifetimes and execution state in editor sessions
(debugger) connect and initialize adapters without blocking the editor
Use binary placeholders when image protocols are unavailable (#444 )
(symbols) own document picker queries in the editor
(symbols) own workspace providers and cancel picker queries
(actions) coordinate interactive providers in the editor
(rename) own asynchronous preparation and document-bound edits
(completion) centralize preview and acceptance edits (#438 )
(search) share execution for picker queries and refreshes
(debugger) synchronize source breakpoints asynchronously
(shell) run selection filters as owned asynchronous tasks (#437 )
(completion) resolve accepted edits asynchronously (#435 )
(files) coordinate language-server preflight asynchronously (#434 )
(words) extract incremental Unicode word indexing (#414 )
(debugger) own asynchronous controls and session-bound inspection
(debugger) validate and launch sessions through editor operations
(fuzzy) extract matching policies and reusable consumer state (#409 )
(editor) own document language and dictionary changes
(diagnostics) extract shared values and edit-mapped collections
(diagnostics) own storage mapping and protocol publication
(registers) separate storage from editor context resolution (#410 )
(document) encapsulate file state and persistence (#405 )
(language) own query feature metadata (#404 )
(language-config) own spelling settings and dictionary identifiers (#403 )
(theme) own icon lookup and presentation values (#400 )
(completion) own provider-bound item models in editor feature (#396 )
(editing) share paste and register replacement operations (#399 )
(layout) distinguish display positions from document coordinates
(config) extract editor settings into editor-config
(config) separate settings data from editor runtime behavior
(selection) share document selection transformations (#392 )
(buffer) own text history implementation and navigation types (#375 )
(layout) extract renderer-independent text layout (#384 )
(core) separate text and display coordinates (#383 )
(lsp) keep server selection and roots in editor integration
(lsp) move editor edit and snippet conversions into view
(language) extract parser-independent configuration crate
(editor) restrict structural document and view mutations (#386 )
(editing) share insertion and deletion operations (#385 )
(editing) share transformations and language-aware operations (#380 )
(document) own state for each document and view together
(text-io) extract stream encoding and decoding (#363 )
(search) extract workspace search engine (#362 )
(clipboard) extract provider settings and native backends (#361 )
(grammar) separate native grammar build tooling (#360 )
(language) extract syntax and structural editing from core
(core) separate text primitives from structural editing
(theme) extract theme interpretation from editor state
(workspace) extract root discovery and trust policy
(debugger) delegate terminal launches to the frontend (#353 )
(view) own mode transitions and session effects in the editor (#352 )
(view) coordinate scratch-file loading through the editor (#349 )
(picker) own preview loading and rendering in one module (#346 )
(navigation) share file-link resolution and validate its origin (#350 )
(save) own ordered write queues and completion accounting (#324 )
(view) own workspace edits and preserve rejection causes (#337 )
(term) own goto previews in command prompt sessions (#339 )
(spelling) own dictionary resources in feature handler (#338 )
(editing) separate document history from view selections (#336 )
(save) own the complete save pipeline in view (#319 )
(view) finish feature ownership and remove handler aliases (#333 )
own editor status and redraw signals (#326 )
(view) share view-bound request snapshots (#330 )
(view) coordinate language navigation requests (#325 )
(view) establish document invariants before observers (#321 )
own frontend callbacks and event subscriptions (#318 )
(view) group feature state and coordination (#320 )
(view) own hover and inlay hint requests (#317 )
(view) own debugger state and breakpoint mutations (#316 )
startup optimization (#119 )
(buffer) share immutable snapshots across document work
(buffer) extract text state and undo ownership into a crate
(diff) extract text comparison and reusable line differencing (#413 )
(document) own EditorConfig discovery outside text core (#397 )
(dap) exercise a pinned Delve adapter in CI
(dap) validate typed replies for standard commands
(debugger) own capabilities and launch settings in sessions
(debugger) bind source operations to live document identities
(debugger) make session lifecycle transitions explicit (#477 )
(debugger) depend on protocol types without the async client
(debugger) extract editor-independent state models
(language) separate semantic coverage from interactive parse deadlines
(language) drop serialization dependencies owned by configuration
(language) resolve parser state through its owning loader
(loader) compare runtime override paths by directory identity
(deps) bump the rust-dependencies group across 1 directory with 31 updates (#129 )
(lsp) organize client lifecycle and protocol implementations (#418 )
(lsp) keep configured feature selection in editor integration (#393 )
(lsp) restrict registry key dependency to tests
(lsp) clarify ownership of language server identities
(lsp) make registry lifecycle state explicit (#345 )
(spelling) scan explicit text regions without parser dependencies (#398 )
(stdx) isolate current-directory mutations (#296 )
(ui) depend on ratatui-core for shared rendering types (#526 )
(view) reuse resolved paths between workspace changes (#572 )
(watcher) extract native file watching into file-watch (#525 )
(debugger) separate request ownership from commands
(debugger) separate session and inspection request lifetimes
(debugger) process execution events asynchronously
(debugger) separate source breakpoints from adapter bindings
(buffer) return applied changes before document effects
(document) encapsulate buffer text state and history
(editor) group document lifecycle and filesystem operations (#340 )
(view) co-locate cached document features (#329 )
(view) separate document text encoding from model state (#328 )
(diagnostics) replace language-server findings by provider (#299 )
(word-index) check cancellation during input scanning (#575 )
(config) default to rounded borders and trailing whitespace (#577 )
You can’t perform that action at this time.