ecode: add centralized settings panel

Introduce modal user and project settings panels with searchable tree navigation and live configuration updates.

  - centralize settings registration and presentation
  - add user and project settings commands and shortcuts
  - preserve operational actions in the existing settings menu
  - support boolean, choice, numeric, and action-based settings
  - restore renderer notifications and choice descriptions
  - persist settings when closing the panel
  - add translated settings strings for all supported locales
  - fix live color preview updates
This commit is contained in:
Martín Lucas Golini
2026-08-24 02:34:14 -03:00
parent 6b27ea2dc8
commit 288aa931fe
9 changed files with 2532 additions and 3 deletions

View File

@@ -953,4 +953,168 @@ Uses strftime format specifiers. The file extension follows the selected screens
<string name="tab_out_desc">Pressing Tab before a configured character moves the cursor past it. Only applies to a single cursor without a selection.</string>
<string name="set_tab_out_characters">Set Tab Out Characters</string>
<string name="set_tab_out_characters_message">Set the characters the cursor can move past when pressing Tab.</string>
<string name="open_settings_ellipsis">Open Settings...</string>
<string name="open_project_settings_ellipsis">Open Project Settings...</string>
<string name="project_settings">Project Settings</string>
<string name="search_settings">Search settings...</string>
<string name="show_line_numbers_desc">Display line numbers beside the editor.</string>
<string name="show_white_spaces_desc">Display visible markers for whitespace characters.</string>
<string name="highlight_current_line_desc">Highlight the line containing the primary cursor.</string>
<string name="trim_trailing_whitespaces_desc">Remove trailing whitespace when saving files.</string>
<string name="force_new_line_at_end_of_file_desc">Ensure saved files end with a newline.</string>
<string name="search_results">Search Results</string>
<string name="line_wrap_desc">Controls how long lines wrap in the editor.</string>
<string name="line_breaking_column_desc">Column used for wrapping and the editor width guide. Set 0 to disable.</string>
<string name="indent_width_desc">Number of columns inserted for one indentation level.</string>
<string name="tab_width_desc">Number of columns used to display a tab character.</string>
<string name="general">General</string>
<string name="behavior">Behavior</string>
<string name="welcome_screen_enable_desc">Show the welcome screen when no document or folder is open.</string>
<string name="appearance">Appearance</string>
<string name="navigation">Navigation</string>
<string name="formatting">Formatting</string>
<string name="workspace">Workspace</string>
<string name="document_defaults">Document Defaults</string>
<string name="wrap_type_desc">Choose whether lines wrap at the viewport or line breaking column.</string>
<string name="keep_indentation_desc">Preserve indentation on wrapped continuation lines.</string>
<string name="code_folding_enabled_desc">Enable syntax-aware code folding.</string>
<string name="code_folding_always_visible_desc">Always display fold controls in the editor gutter.</string>
<string name="new_tab_position_desc">Choose where newly opened tabs are inserted.</string>
<string name="auto_detect_indent_type_desc">Detect indentation settings when opening each document.</string>
<string name="indent_spaces">Indent Using Spaces</string>
<string name="indent_spaces_desc">Insert spaces instead of tab characters for indentation.</string>
<string name="write_unicode_bom_desc">Write a Unicode byte-order mark when saving.</string>
<string name="auto_close_xml_tags_desc">Automatically insert closing XML tags.</string>
<string name="autoreload_on_disk_change_desc">Reload unmodified documents when their files change on disk.</string>
<string name="line_endings_desc">Default line-ending sequence for new files.</string>
<string name="use_global_settings_desc">Inherit document defaults from the user settings.</string>
<string name="restore_last_session">Restore Last Session</string>
<string name="restore_last_session_desc">Reopen the previous workspace and documents at startup.</string>
<string name="check_updates_at_startup">Check for Updates at Startup</string>
<string name="check_updates_at_startup_desc">Check whether a newer ecode release is available after startup.</string>
<string name="new_terminal_behavior_desc">Choose where newly created terminal sessions are opened.</string>
<string name="scrollbar_type_desc">Place the terminal scrollbar over or outside its content.</string>
<string name="scrollbar_mode_desc">Control when the terminal scrollbar is visible.</string>
<string name="advanced">Advanced</string>
<string name="configure">Configure...</string>
<string name="fonts_and_scale">Fonts &amp; Scale</string>
<string name="screenshots">Screenshots</string>
<string name="renderer">Renderer</string>
<string name="show_doc_info_desc">Display document encoding and line-ending information.</string>
<string name="open_documents_in_main_split_desc">Open externally requested documents in the main editor split.</string>
<string name="tab_jump_mode_desc">Choose how keyboard navigation cycles through tabs.</string>
<string name="editor_font_in_input_fields_desc">Use the editor font for text input controls.</string>
<string name="ui_font_size_desc">Set the font size used by the application UI.</string>
<string name="ui_panel_font_size_desc">Set the font size used by side panels.</string>
<string name="editor_font_size_desc">Set the default code editor font size.</string>
<string name="terminal_font_size_desc">Set the default integrated terminal font size.</string>
<string name="ui_scale_factor_desc">Scale the complete user interface.</string>
<string name="line_spacing_desc">Set additional vertical spacing between editor lines.</string>
<string name="cursor_blinking_time_desc">Set the text cursor blink interval.</string>
<string name="folds_refresh_freq_desc">Set how frequently code folding ranges are recalculated.</string>
<string name="screenshot_save_path_desc">Choose where screenshots are saved.</string>
<string name="screenshot_filename_pattern_desc">Configure the timestamp-based screenshot filename pattern.</string>
<string name="screenshot_save_format_desc">Choose the image format for screenshots.</string>
<string name="frame_rate_limit_desc">Limit rendered frames per second. Set 0 to disable.</string>
<string name="ui_multisamples_level_desc">Set renderer multisampling. Restart required.</string>
<string name="configure_terminal_shell_desc">Set the shell executable and command-line arguments.</string>
<string name="configure_terminal_scrollback_desc">Set the number of terminal history lines retained.</string>
<string name="configure_terminal_working_dir_desc">Choose the working directory used by new terminals.</string>
<string name="cursor_style_desc">Choose the terminal cursor shape and animation.</string>
<string name="theme_and_language">Theme &amp; Language</string>
<string name="ui_prefers_color_scheme_desc">Choose whether the interface follows the system, light, or dark appearance.</string>
<string name="ui_theme_desc">Choose the stylesheet used by the application interface.</string>
<string name="ui_language_desc">Choose the interface language. Restart required.</string>
<string name="choose_font">Choose Font...</string>
<string name="ui_font_desc">Choose the proportional font used by the interface.</string>
<string name="editor_font_desc">Choose the monospace font used by code editors.</string>
<string name="terminal_font_desc">Choose the monospace font used by terminals.</string>
<string name="fallback_font_desc">Choose the font used for missing glyphs.</string>
<string name="syntax_color_scheme_desc">Choose the colors used for syntax highlighting and editor surfaces.</string>
<string name="terminal_color_scheme_desc">Choose the colors used by integrated terminals.</string>
<string name="ui_renderer_version_desc">Select the graphics API version used by ecode. Restart required.</string>
<string name="multisamples_disabled_desc">Disable multisample anti-aliasing.</string>
<string name="multisamples_2x_desc">Use 2x multisample anti-aliasing.</string>
<string name="multisamples_4x_desc">Use 4x multisample anti-aliasing.</string>
<string name="multisamples_8x_desc">Use 8x multisample anti-aliasing.</string>
<string name="multisamples_16x_desc">Use 16x multisample anti-aliasing.</string>
<string name="auto_indent_none_desc">No automatic indentation.</string>
<string name="auto_indent_preserve_desc">Preserve the indentation level of the previous line.</string>
<string name="auto_indent_smart_desc">Preserve indentation and indent between auto-closed brackets.</string>
<string name="prefers_color_scheme_light_tooltip">Always use the light interface color scheme.</string>
<string name="prefers_color_scheme_dark_tooltip">Always use the dark interface color scheme.</string>
<string name="scrollbar_mode_always_visible_tooltip">Keep the terminal scrollbar visible.</string>
<string name="scrollbar_mode_always_hidden_tooltip">Keep the terminal scrollbar hidden.</string>
<string name="always_hidden">Always Hidden</string>
<string name="always_visible">Always Visible</string>
<string name="auto">Auto</string>
<string name="auto_close_pair_desc">Automatically insert the matching closing character.</string>
<string name="auto-detect">Auto-Detect</string>
<string name="auto_indent">Auto-Indent</string>
<string name="auto_indent_none">None</string>
<string name="auto_indent_preserve">Preserve</string>
<string name="auto_indent_smart">Smart</string>
<string name="auto_indent_tooltip">Control indentation added after pressing Enter.</string>
<string name="blink_bar">Blinking Bar</string>
<string name="blinking_block">Blinking Block</string>
<string name="blink_underline">Blinking Underline</string>
<string name="chronological">Chronological</string>
<string name="close_terminal_tab_on_exit">Close Terminal Tab on Exit</string>
<string name="close_terminal_tab_on_exit_tooltip">Close a terminal tab when its main process exits.</string>
<string name="configure_terminal_working_dir">Configure Terminal Default Working Directory</string>
<string name="cursor_style">Cursor Style</string>
<string name="display_tab_switcher">Display Tab Switcher</string>
<string name="display_tab_switcher_tooltip">Display a tab switcher in the center of each tab widget.</string>
<string name="editor">Editor</string>
<string name="editor_font_in_input_fields">Editor Font in Input Fields</string>
<string name="enable_exclusive_mode_by_default">Enable Exclusive Mode by Default</string>
<string name="enable_exclusive_mode_by_default_tooltip">Disable global keybindings in newly created terminals.</string>
<string name="file_associations">File Associations</string>
<string name="full">Full</string>
<string name="grayscale">Grayscale</string>
<string name="hide_tabbar">Hide Tab Bar</string>
<string name="hide_tabbar_tooltip">Always hide the tab bar.</string>
<string name="indent_tab_alignment_desc">Align text within the visual width of indentation tabs.</string>
<string name="indent_tab_character_desc">Choose the character inserted when indenting with Tab.</string>
<string name="jump_mode_linear_tooltip">Linear Jump Mode switches tabs in their displayed order.</string>
<string name="languages">Languages</string>
<string name="linear">Linear</string>
<string name="new_tab_position">New Tab Position</string>
<string name="new_tab_position_after_active">After Active Tab</string>
<string name="new_tab_position_first">First</string>
<string name="new_tab_position_last">Last</string>
<string name="new_tab_position_left_of_active">Left of Active Tab</string>
<string name="open_documents_in_main_split">Open Documents in Main Split</string>
<string name="open_in_statusbar_panel">Open in Status Bar Panel</string>
<string name="open_project_in_new_window">Open Project in New Window</string>
<string name="open_project_in_new_window_tooltip">Open folders in a new window when another project is already loaded.</string>
<string name="outside">Outside</string>
<string name="overlay">Overlay</string>
<string name="quick_preview_images">Quick Preview Images</string>
<string name="quick_preview_images_tooltip">Preview images without opening a permanent editor tab.</string>
<string name="restore_editor_selection_on_focus">Restore Editor Selection on Focus</string>
<string name="restore_editor_selection_on_focus_tooltip">Restore each editor split's last cursor and selection when focused.</string>
<string name="scrollbar_mode">Scrollbar Mode</string>
<string name="scrollbar_mode_auto_tooltip">Show an overlay scrollbar on mouse movement, or an outside scrollbar when content is scrollable.</string>
<string name="scrollbar_type">Scrollbar Type</string>
<string name="scroll_outside_tooltip">The scrollbar has its own space and never covers content.</string>
<string name="scroll_overlay_tooltip">The scrollbar appears over content.</string>
<string name="set_screenshot_save_path">Screenshot Save Path</string>
<string name="slight">Slight</string>
<string name="steady_bar">Steady Bar</string>
<string name="steady_block">Steady Block</string>
<string name="steady_underline">Steady Underline</string>
<string name="subpixel">Subpixel</string>
<string name="tab_bar">Tab Bar</string>
<string name="tab_jump_mode">Tab Jump Mode</string>
<string name="treat_h_files_as_desc">Choose the default language for ambiguous .h header files.</string>
<string name="ui_font_antialiasing">Font Anti-Aliasing</string>
<string name="ui_font_antialiasing_desc">Choose how glyph edges are smoothed.</string>
<string name="ui_font_hint">Font Hinting</string>
<string name="ui_font_hint_desc">Control glyph alignment to the pixel grid.</string>
<string name="use_native_file_dialogs">Enable Native File Dialogs</string>
<string name="use_native_file_dialogs_tooltip">Use operating-system file dialogs when available.</string>
<string name="vsync_desc">Synchronize rendering with the display refresh rate. Restart required.</string>
<string name="warn_before_closing_tab">Warn Before Closing Tab</string>
<string name="warn_before_closing_tab_tooltip">Ask before closing a terminal while a program is running.</string>
</resources>