Skip to content

Focus 0.3.0

Compare
Choose a tag to compare
@focus-editor focus-editor released this 30 Dec 05:24
· 619 commits to main since this release
  • New features:

    • An automatic config migration system. All configs will be bumped to version [2], with new things added or renamed where needed.
    • Windows 11+: New config option: colored_titlebar. Sets the color of the title bar to the background color (thanks @amasondev)
    • New option: hide_mouse_when_typing (currently Windows/Mac only). Set to true to hide the mouse cursor when entering text (thanks @amasondev)
    • New commands: add_cursors_to_line_ends (Alt-Shift-I) and add_cursors_to_line_starts (Alt-Shift-Ctrl-I)
    • New command: align_cursors (Alt-A). Can be used to align the indentation for multiple cursors (thanks @hfr4)
    • New command: show_default_config. Can be used to view the default editor config for your reference (readonly)
    • New command: select_all_occurrences. Used to create a cursor on each selection occurrence (thanks @hfr4)
    • New command: toggle_fullscreen. Defaults to F11 (thanks @ustance)
    • New command: close_project. Can be used to (surprise!) close the active project
    • New command: swap_selections. Can swap two selected pieces of text (thanks @hfr4)
    • New command: escape. Tries to close dialogs, remove additional cursors, etc. You can just bind it to Escape in [common] and forget.
    • New option: highlight_line_with_cursor (thanks @SentientCoffee)
    • New option: draw_indent_guides. Set to true to draw a vertical guide line at every indent level (determined by tab size)
    • New option: auto_surround_with_brackets_and_quotes to enable auto-surrounding (thanks @hfr4)
    • New option: scroll_beyond_last_line (defaults to true). Disable to prevent scrolling past the editor's last line
    • New option: show_cursors_off_screen (defaults to true). If enabled, displays a warning in the footer if there are cursors off screen (only when more than one is used)
    • New option: persist_local_search_results (defaults to false). If enabled, search highlights will persist even when the search bar is closed. Press escape to dismiss (you might need to bind the escape action for it to work). (thanks @amasondev)
    • Added support for regular expressions in file/project search
    • Added a built-in 'save file' dialog (it will be on by default). To use the system dialogs on Windows, use prefer_system_file_dialogs: true
    • Dragging with the middle mouse button will create cursors (thanks @hfr4)
    • Added an indicator showing if there are any cursors off screen (if you have more than one)
    • Mac: You can now set maximize_on_start in your global config to true, and Focus will launch in fullscreen.
    • New syntax highlighting:
    • Numpad keys can now be used in key mappings.
      The editor now recognizes the following new key names:
      Numpad0 - Numpad9
      NumpadMultiply
      NumpadDivide
      NumpadAdd
      NumpadSubtract
      NumpadDecimal
      NumpadEnter
    • Scopes in Jai are now highlighted. See the default config for the new color options (region_scope_*)
    • Build system:
      • New config options:
        • build_panel_width_percent, build_panel_height_percent - how much space the build panel occupies. Both default to 50%.
        • build_panel_stays_in_one_place. Defaults to false. If disabled, then the panel will flip to the other side of the active pane.
      • Check an example build configuration in the example project or in the default config (use the show default config command)
      • Thanks to the Jai beta user Jakob for writing the first version of the build system
    • New code color: code_warning. Used to highlight things such as duplicate key binding etc.
    • New dialog: Switch Between Open Files (defaults to Ctrl-Tab)
    • Windows/Linux: Support horizontal scrolling with trackpads/mice with horizontal scroll wheels.
  • Bug fixes:

    • Mac: Fixed intermittent crashing on launch
    • It should now be possible to scroll the viewport by dragging outside it in all cases (previously it wasn't always possible - see issue #101)
    • Duplicating a line near the end now duplicates a line as expected
    • Fixed a bug with multi-cursor copying/pasting when some of the cursors don't have a selection
    • Fixed a bug with multi-cursor range replace by typing
    • Fixed a bug with move_lines_up/down near EOF whilst using multi-cursor
    • Fixed visual bug where tabs would align to the wrong columns
    • Fix toggle_comment command when tabs are enabled (thanks @Sanian-Creations)
    • Linux: fixed selection while scrolling due to "stuck" START and END states of the mouse button presses.
    • Linux: Clipboard handling should become way faster on X11 because we let event loop to handle more requests before drawing.
    • Linux: fix drag-n-drop crash caused by calling Basic.free on the memory allocated with temp allocator
    • Fix for stuck keys when the editor loses window focus (such as alt-tabbing or moving to other workspaces on Linux)
    • Improved scrolling smoothness (thanks @Sanian-Creations)
    • Parent directories of files outside of project directories are no longer recursively watched for changes. The editor should no longer hang for a long time when opening a file inside a large directory.
    • Directories created within the project shouldn't get themselves any buffers any more
    • Newer user messages will stop dismissing older ones which have a longer lifetime
    • Fixed a crash when trying to rewind editor history after reloading workspace
    • Fixed a crash when searching with whole word match on
    • Aligned missing shortcuts on the welcome screen
  • Other changes:

    • When the workspace is done scanning, the open file dialog input will no longer be cleared
    • Limited Windows 7 support (no dpi awareness)
    • Better word detection by commands that move cursors by word
    • Config highlighting has become smarter and hopefully more helpful
    • Improved CPU usage when selecting text by mouse
    • Tab characters are now only shown when they are within selection
    • Windows: better handling of Unicode input (thanks @ostef)
    • Fuzzy match improvements in dialogs