Release 0.2.1
Features
-
Experimental Session Persistence: Fresh now supports a client/server mode, attach/detach/reattach to editor sessions with full state preservation. Start with
fresh -a <name>orfresh -a(directory-based), detach via File menu or command palette. Sessions persist across terminal disconnections. Usefresh --cmd session list/kill/attachandfresh --cmd session open-file NAME FILESto manage sessions from the command line. Allows using Fresh like tmux, or by opening files across other applications, e.g. yazi edit action triggers a file open in Fresh. -
Keybinding Editor: Full-featured editor for customizing keybindings. Search by text or record key, filter by context/source, add/edit/delete bindings with conflict detection and autocomplete. Try menus: Edit..Keybinding Editor, or command palette. Changes are saved in config.json
Improvements
-
Line Editing: Move lines up/down and duplicate lines, matching modern editor behavior. Multi-cursor support (@Asuka-Minato).
-
Triple-Click Selection: Triple-click selects entire line (#597).
-
Vietnamese Localization: Full Vietnamese (Tiếng Việt) language support.
-
Typst Language Support: Syntax highlighting and tinymist LSP configuration for
.typfiles (#944). -
LSP Improvements:
- Per-buffer LSP toggle command to enable/disable LSP for individual files
- Default LSP configs for bash, lua, ruby, php, yaml, toml (#946)
Bug Fixes
-
LSP Document Sync: Fixed document corruption when LSP servers received didChange after didOpen, and when bulk edits (selection replacement, multi-cursor) bypassed LSP notifications.
-
LSP Completion Popup: Fixed popup swallowing non-word characters, arrow keys, and other keys. Popup now dismisses correctly allowing keystrokes to pass through (#931)
-
LSP Diagnostics: Fixed diagnostic gutter markers not appearing on implicit trailing lines with zero-width ranges (clangd-style diagnostics).
-
Line Wrapping: End/Home keys now navigate by visual line when wrapping is enabled, matching VS Code/Notepad behavior (#979).
-
Syntax Highlighting: Fixed highlighting lost when saving files without extension (shebang detection) outside working directory (#978).
-
Buffer Settings: User-configured tab size, indentation, and line numbers now preserved across auto-revert.
-
Terminal Scrollback: Any character key exits scrollback mode instead of just 'q' (#863).
-
32-bit ARM Build: Fixed setrlimit type mismatch on ARMv7l platforms (#957).
Configuration
- Added C++20 module extensions (.cppm, .ixx) for C++ syntax highlighting (#955).
Documentation
- Added FreeBSD installation note (@lwhsu).
Internal
- Build time & RAM reduced