Skip to content

Mitos 0.1.2

Latest

Choose a tag to compare

@matoous matoous released this 23 Oct 14:36
· 116 commits to main since this release
b93fcc2

Highlights

  • Define your own snippets without a language server. Insert them through completion, a picker, or keybindings, split collections across files, and share project snippets through trusted workspaces.
  • User-defined and language-server snippets can insert selected text, filenames, workspace paths, clipboard contents, dates, and random values, with support for variable transforms.
  • More UI customization: native terminal block cursors, centered pickers at any terminal size, and glyph rulers with configurable characters.
  • Picker matching ignores decorative icons, icon spacing is tighter, and previews show unsaved changes when opening relative paths.
  • Save-and-quit stays responsive while formatting and writing, preserves unsaved edits when writes fail, and waits for saves to finish before closing. External formatters have a configurable timeout, and LSP formatting uses the document's indentation width.
  • Completion previews, repeated insertion, and nested snippet placeholders preserve edits, cursor positions, and navigation more reliably.
  • Path-based settings refresh more consistently, and workspace symbol searches use the same case-matching rules for open buffers and files.
  • Further internal restructuring shares editing, movement, search, and pane operations across frontends, separates rendering from input, and updates the text engine to Ropey 2.

Upgrade notes

  • Ruler settings now use [editor.rulers], with columns, style, and character options. Existing editor.rulers = [...] arrays still work; :config-migrate updates them to the new format.

Added

  • (quicklist) add locations and remove entries from picker (#638)
  • (snippets) support split collections and punctuation triggers
  • (snippets) complete native insertion, workspace scopes, and variables
  • (snippets) load user definitions into native completion
  • (editor) support native block cursors (#623)
  • (rulers) port configurable foreground rulers from Helix (#630)
  • (picker) add centered layout preference (#624)
  • (picker) refresh buffers and diagnostics from editor state
  • (debugger) support breakpoints in adapter-owned sources
  • (debugger) refresh invalidated inspection data in place
  • (debugger) show inline runtime values in source (#511)
  • (snippets) resolve document variables from insertion snapshots (#642)
  • (theme) add border style support (#517)
  • (editor) render trailing whitespace independently (#540)
  • (debugger) add session switching and selected-session status

Fixed

  • (picker) preview unsaved buffers for relative paths (#641)
  • (picker) remove extra left padding when using icons (#640)
  • (picker) exclude decorative icons from fuzzy matching (#637)
  • (rulers) preserve background rulers with explicit styles (#633)
  • save and format (#76)
  • (completion) replay snippet edits and cursor state (#601)
  • (buffer) advance text and history revisions together during replay
  • (debugger) integrate frame paging and adapter sources into main
  • (debugger) synchronize breakpoints with saved and renamed sources
  • (debugger) map source breakpoints through document edits
  • (grammar) write installed grammars to the user data runtime
  • (indent) in gdscript newline after a block's last line had no indent (#374)
  • (snippets) skip nested defaults removed by placeholder edits
  • (snippets) preserve nested navigation and validate placeholder graphs
  • (settings) refresh path overrides through one document owner (#612)
  • (symbols) apply one case policy to buffers and files

Other

  • (snippets) clarify ownership and consolidate editing state
  • (completion) isolate previews from live document edits
  • (lsp) keep registry mutation inside the editor
  • (reload) own file notifications in editor operations
  • (panes) complete splits and scroll explicit views (#614)
  • (editor) own document setting operations (#603)
  • (search) share buffer matching and editor coordination (#587)
  • (editing) separate view synchronization from text operations
  • (editor) share snippet session operations (#588)
  • (movement) share ordinary text motions
  • (movement) share character finds and primary selection rotation
  • (ui) separate pane rendering from editor input
  • (input) isolate checked insert replay
  • (buffer) own text savepoint tracking
  • (editor) share successful input effects
  • (editing) use one fallible mutation contract
  • (text) migrate the workspace to Ropey 2 (#583)
  • (buffer) own text history implementation and navigation types (#375)
  • (buffer) share immutable snapshots across document work
  • (buffer) extract text state and undo ownership into a crate
  • (clipboard) extract provider settings and native backends (#361)
  • (diagnostics) extract shared values and edit-mapped collections
  • (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
  • (grammar) separate native grammar build tooling (#360)
  • (textobjects) move range collection into core and language
  • (symbols) separate syntax queries from picker presentation
  • (language) separate semantic coverage from interactive parse deadlines
  • (language) own query feature metadata (#404)
  • (core) separate text and display coordinates (#383)
  • (language) drop serialization dependencies owned by configuration
  • (language) extract parser-independent configuration crate
  • (language) resolve parser state through its owning loader
  • (language) extract syntax and structural editing from core
  • (debugger) share launch template resolution across frontends (#479)
  • (debugger) separate launch configuration from DAP types
  • (language-config) own spelling settings and dictionary identifiers (#403)
  • (snippets) use native path components in collection assertions
  • (search) share workspace traversal policy
  • (search) extract workspace search engine (#362)
  • (text-io) extract stream encoding and decoding (#363)
  • (config) move border style to editor settings (#521)
  • (theme) own icon lookup and presentation values (#400)
  • (core) separate text primitives from structural editing
  • (theme) extract theme interpretation from editor state
  • (snippets) derive workspace source paths from the document
  • (completion) index the latest document snapshots
  • reuse default documents and debugger message framing (#622)
  • (symbols) extract syntax-symbols engine crate (#613)
  • (symbols) separate blocking workspace scans
  • (workspace) extract root discovery and trust policy
  • (word-index) check cancellation during input scanning (#575)
  • (words) extract incremental Unicode word indexing (#414)
  • (watcher) extract native file watching into file-watch (#525)
  • (layout) extract document-independent pane layout
  • (layout) distinguish display positions from document coordinates
  • (layout) extract renderer-independent text layout (#384)
  • (config) default to rounded borders and trailing whitespace (#577)
  • (rendering) extract the text-render crate
  • (config) extract editor settings into editor-config
  • (fuzzy) extract matching policies and reusable consumer state (#409)
  • (diff) extract text comparison and reusable line differencing (#413)