Skip to content

Mitos 0.1.1

Choose a tag to compare

@matoous matoous released this 20 Oct 19:49
· 55 commits to main since this release
cb76b73

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)