Files
dotfiles/.config/focus-editor/global.focus-config
2025-10-08 09:15:22 -04:00

520 lines
21 KiB
Plaintext

[22] # Version number. Do not delete.
[[workspace]]
# These directories and files will be scanned when a workspace is opened so that search etc. works.
# Example:
# /Users/my_name/projects/my_project # <- the first directory in the list becomes the working directory
# /Users/my_name/jai
# src # <- this would be relative to the config file location
[ignore]
# Files and directories matching the following wildcards will not be loaded or descended into
# Example:
# *.js - will ignore all files with a '.js' extension
# tmp* - will ignore any files or directories which start with 'tmp'
# /Users/my_name/project/dirname/** - will ignore everything under `dirname`
# /Users/my_name/project/dirname/* - will ignore all files under `dirname`, but not recursively
.svn
.git
[allow]
# Files and directories matching the wildcards in this section will be loaded, even if they are ignored in the previous section.
# NOTE: known binary file extensions are ignored by default (*.so, *.pdb etc.). If this is not what you want, you can explicitly allow them here.
[file associations]
# Optional file associations in the format `<wildcard1> <wildcard2> ... : <language>`
# Example:
# *.hpp *.hh *.h : cpp
# todo.txt : todo
[[settings]]
maximize_on_start: false
open_on_the_biggest_monitor: false
cursor_as_block: true
cursor_blink_time_in_seconds: 5
highlight_selection_occurrences: true
highlight_line_with_cursor: false
highlight_matching_brackets: true
show_paste_effect: true
strip_trailing_whitespace_on_save: except_lines_with_cursor # options: all, except_lines_with_cursor, disabled
smooth_scrolling: true
scroll_beyond_last_line: true
double_shift_to_search_in_workspace: false
can_cancel_go_to_line: true
copy_whole_line_without_selection: true
line_height_scale_percent: 100
max_editor_width: -1
line_wrap_is_on_by_default: false
show_line_numbers: false
show_ruler_at_column: 0
colored_titlebar: false
dark_titlebar: true
hide_mouse_when_typing: false
draw_indent_guides: false
auto_surround_with_brackets_and_quotes: false
auto_close_brackets: false
persist_local_search_results: false # if true, search results will stay highlighted and you have to dismiss them using the `escape` action
load_most_recent_project_on_start: true
projects_sorting_order: most_recent_first
build_panel_stays_in_one_place: false # if true, the build panel will flip to the inactive pane in two pane layouts
build_panel_line_wrap_always_on: true
build_panel_width_percent: 100
build_panel_height_percent: 30
color_preview_popup: enabled # options: enabled, minimized, disabled
search_is_case_sensitive_when_uppercase_present: true
detect_indentation: true
indent_using: spaces
tab_size: 4
status_bar_position: bottom # options: top, bottom
status_bar_show_cursors_off_screen: true
status_bar_show_line_col: true
status_bar_show_indentation: true
status_bar_show_selected_text_length: false
show_scrollbar_marks: true
scrollbar_width_scale: 1.0
scrollbar_min_opacity: 0.0 # if you want the scrollbar to be always visible, set this to 1.0
scrollbar_max_opacity: 1.0
scrollbar_fade_in_sensitivity: 10.0 # controls when the scrollbar appears as the mouse pointer gets close
scrollbar_fade_out_delay_seconds: 1.0 # how long the scrollbar stays visible after scrolling
active_pane_border_width: 1.0 # set the width to 0.0 to disable
inactive_pane_dim_overlay_opacity: 0.1 # controls how dim the inactive panes should be
# Added after migration to version [22]
comment_highlight_words1: @TODO, TODO, TODO:, NOTE, NOTE: # a comma-separated list of words to highlight within comments using the color `code_comment_highlight1`
comment_highlight_words2: @FIXME # words to highlight using `code_comment_highlight2`
comment_highlight_words3: @ROBUSTNESS # words to highlight using `code_comment_highlight3`
comment_highlight_words4: @INCOMPLETE # words to highlight using `code_comment_highlight4`
# NOTE: some settings can be specified for a subset of files, based on their language or a wildcard,
# for example:
# [file: <wildcard1>, <wildcard2>, ...]
# [lang: golang, cpp, c, ...]
[file: *.md, *.txt]
line_wrap_is_on_by_default: false
draw_indent_guides: false
# Below is an example configuration for build commands
# (uncomment and modify to use)
# [[build commands]]
# build_working_dir: <build working dir for all commands> # <- paths relative to the workspace working dir (the first one in the list) are allowed
# open_panel_on_build: true # <- any settings specified here will apply to all commands unless overridden
# close_panel_on_success: false
# clear_build_output_before_running: false
# error_regex: <compiler-specific error regex> # see examples below
# auto_jump_to_error: false
# [Debug Build And Run] # <- command name. Can be arbitrary
# build_command: jai main.jai # should be an executable or a script
# build_working_dir: <build working dir for this command only>
# timeout_in_seconds: 5 # if you don't want a timeout, don't specify it
# run_command: test.exe # will be run if build succeeds
# run_working_dir: /Users/user # working dir for the run command
# key_binding: F5
# [Run] # <- You could have commands that don't build anything and just run something
# run_command: test
# run_working_dir: /Users/user/test
# key_binding: Ctrl-F5
# [Release]
# build_command: jai first.jai - release
# key_binding: F9
# For jai: ^(?P<file>.*):(?P<line>\d+),(?P<col>\d+): (?P<type>Error|Warning|Info|...):* (?P<msg>.*)|^(?P<msg1>.*error LNK.*)
# For golang: ^(?P<file>.*):(?P<line>\d+):(?P<col>\d+): (?P<msg>.*)$
# ... let us know what regex works for you and we'll add it here
# NOTE:
# You can use the following variables in build commands:
# %FILE% - full path to currenly active file
# %FILE_DIR% - the directory of the currently active file
# %FILE_NAME% - current file name, with extension
# %FILE_NAME_NO_EXTENSION% - current file name, without extension
# %BUILD_WORKING_DIR% - working dir of the build command
# %RUN_WORKING_DIR% - working dir of the run command
# %PROJECT_CONFIG_DIR% - the dir containing the active project config file
[[keymap]]
# - The first matching combination will be used, so order matters
[editors] # <- this means that the following key combos will apply only when editing text
# Key combination Action
Cmd-E copy_current_line_info
Cmd-D select_word_or_create_another_cursor
Cmd-R revert_select_word_or_create_another_cursor
Cmd-Y move_selection_to_next_word
Cmd-Shift-A select_all_occurrences
Cmd-Shift-D duplicate_lines
# These shortcuts can be annoying to accidentally use, so they are commented out by default
# Shift-Backspace delete_line_and_go_up
# Shift-Delete delete_line
Opt-ArrowUp move_selected_lines_up
Opt-ArrowDown move_selected_lines_down
Cmd-J join_lines
Cmd-Shift-J join_lines_no_spaces_in_between
Cmd-U change_case_cycle
Tab indent_or_go_to_next_tabstop
Shift-Tab unindent
Cmd-] indent
Cmd-[ unindent
Cmd-S save
Cmd-Shift-S save_as
Cmd-Opt-Minus cursor_go_back
Cmd-Opt-Plus cursor_go_forward
Cmd-Shift-Minus go_to_previous_buffer
Cmd-Shift-Plus go_to_next_buffer
Cmd-/ toggle_comment
Cmd-L select_line
Ctrl-Cmd-ArrowUp scroll_viewport_up
Ctrl-Cmd-ArrowDown scroll_viewport_down
Ctrl-Cmd-ArrowLeft scroll_viewport_left
Ctrl-Cmd-ArrowRight scroll_viewport_right
Cmd-Shift-C move_cursor_to_viewport_center
{Shift}-Ctrl-Opt-Cmd-ArrowUp move_up_to_empty_line
{Shift}-Ctrl-Opt-Cmd-ArrowDown move_down_to_empty_line
Opt-Shift-I add_cursors_to_line_ends
Opt-Shift-Ctrl-I add_cursors_to_line_starts
Enter break_line
Cmd-Enter new_line_below_without_breaking
Cmd-Shift-Enter new_line_above_without_breaking
NumpadEnter break_line
Cmd-NumpadEnter new_line_below_without_breaking
Cmd-Shift-NumpadEnter new_line_above_without_breaking
Cmd-Opt-S ArrowLeft move_editor_left
Cmd-Opt-S ArrowRight move_editor_right
Cmd-Opt-S ArrowUp move_editor_top
Cmd-Opt-S ArrowDown move_editor_bottom
Cmd-\ split_right
Cmd-Shift-| split_bottom
Cmd-Opt-X ArrowLeft split_left
Cmd-Opt-X ArrowRight split_right
Cmd-Opt-X ArrowUp split_top
Cmd-Opt-X ArrowDown split_bottom
Cmd-Opt-D ArrowLeft duplicate_editor_left
Cmd-Opt-D ArrowRight duplicate_editor_right
Cmd-Opt-D ArrowUp duplicate_editor_top
Cmd-Opt-D ArrowDown duplicate_editor_bottom
Cmd-Shift-, duplicate_editor
Cmd-Shift-T reopen_closed_editor
Cmd-N create_new_file
Cmd-Shift-N create_new_file_in_side_pane
Opt-Shift-ArrowUp create_cursor_above
Opt-Shift-ArrowDown create_cursor_below
Opt-Cmd-A align_cursors
Opt-Cmd-Z toggle_line_wrap
Opt-Cmd-L toggle_line_numbers
Opt-Cmd-Shift-N open_another_editor_instance
[open file dialog]
Shift-Enter open_entry_in_explorer
Tab open_directory
Backspace pop_directory
[search dialog]
Shift-Enter move_up # an alternative way to move
Cmd-Opt-C toggle_case_sensitive
Cmd-Opt-W toggle_whole_word
Cmd-Opt-R toggle_regex_search
[common]
# Common key combos may be used as a fallback if they are not defined in more specific sections.
# For example, if "move_up" is not defined in [editors], the one in the [common] section will be matched.
Cmd-Shift-P show_commands
Cmd-F search_in_buffer_dropdown_mode
Cmd-Opt-F search_in_buffer
Cmd-Shift-F search_in_project
F12 switch_to_project
Cmd-P open_file_by_name
Cmd-O navigate_to_file
Cmd-Shift-O navigate_to_file_from_root
Ctrl-Tab switch_between_open_files
Cmd-G go_to_line
Cmd-C copy
Cmd-X cut
Cmd-V paste
Cmd-Z undo
Cmd-Shift-Z redo
Cmd-D select_word
Cmd-A select_all
Cmd-K cut_to_end_of_line
Cmd-Delete delete_to_end_of_line
Cmd-Backspace delete_to_start_of_line
Cmd-W close_editor
Cmd-Shift-W close_pane
Cmd-Opt-W ArrowLeft close_left_pane
Cmd-Opt-W ArrowRight close_right_pane
Cmd-Opt-W ArrowUp close_top_pane
Cmd-Opt-W ArrowDown close_bottom_pane
Cmd-Shift-Opt-W close_other_panes
Escape escape # combines close_dialog and remove_additional_cursors
Cmd-Shift-L toggle_expand
Cmd-B build_panel_toggle
Enter open_entry
Cmd-Enter open_entry_in_side_pane
Ctrl-Cmd-Shift-ArrowLeft switch_to_left_pane
Ctrl-Cmd-Shift-ArrowRight switch_to_right_pane
Ctrl-Cmd-Shift-ArrowUp switch_to_top_pane
Ctrl-Cmd-Shift-ArrowDown switch_to_bottom_pane
Cmd-, switch_to_side_pane
Cmd-1 switch_to_pane_1
Cmd-2 switch_to_pane_2
Cmd-3 switch_to_pane_3
Cmd-4 switch_to_pane_4
Cmd-5 switch_to_pane_5
Cmd-6 switch_to_pane_6
Cmd-7 switch_to_pane_7
Cmd-8 switch_to_pane_8
Cmd-9 switch_to_pane_9
Tab focus_next_ui_element
Shift-Tab focus_previous_ui_element
# Ctrl-Cmd-F will always toggle fullscreen on macOS (like most other apps), but you can uncomment this to use something else.
# F11 toggle_fullscreen
# {Shift}- means shift is optional, the key combination will still be matched.
# NOTE: in this editor the Shift key is hard-coded to extend selection when held
{Shift}-ArrowUp move_up
{Shift}-Opt-Cmd-ArrowUp move_up_fast
{Shift}-PageUp move_up_one_page
{Shift}-ArrowDown move_down
{Shift}-Opt-Cmd-ArrowDown move_down_fast
{Shift}-PageDown move_down_one_page
{Shift}-ArrowLeft move_left
{Shift}-Opt-ArrowLeft move_left_by_character_type
{Shift}-Opt-Cmd-ArrowLeft move_left_through_word_throttled
{Shift}-Ctrl-ArrowLeft move_left_through_word
{Shift}-Cmd-ArrowLeft jump_to_line_start
{Shift}-ArrowRight move_right
{Shift}-Opt-ArrowRight move_right_by_character_type
{Shift}-Opt-Cmd-ArrowRight move_right_through_word_throttled
{Shift}-Ctrl-ArrowRight move_right_through_word
{Shift}-Cmd-ArrowRight jump_to_line_end
{Shift}-Cmd-ArrowUp jump_to_file_start
{Shift}-Cmd-ArrowDown jump_to_file_end
{Shift}-Home jump_to_line_start
{Shift}-End jump_to_line_end
{Shift}-Cmd-Home jump_to_file_start
{Shift}-Cmd-End jump_to_file_end
{Shift}-Cmd-M jump_to_matching_bracket
{Shift}-Backspace delete_left_char
{Shift}-Delete delete_right_char
{Shift}-Opt-Backspace delete_left_by_character_type
{Shift}-Opt-Delete delete_right_by_character_type
{Shift}-Opt-Cmd-Backspace delete_left_by_character_type_fast
{Shift}-Opt-Cmd-Delete delete_right_by_character_type_fast
{Shift}-Ctrl-Backspace delete_left_through_word
{Shift}-Ctrl-Delete delete_right_through_word
Cmd-= increase_font_size
Cmd-Minus decrease_font_size
Cmd-0 reset_font_size_to_default
Cmd-MouseMiddle reset_font_size_to_default
F8 go_to_next_build_error
Cmd-F8 go_to_next_build_error_in_side_pane
Shift-F8 go_to_previous_build_error
Shift-Cmd-F8 go_to_previous_build_error_in_side_pane
[[style]]
theme: bedroom
[fonts]
font: default
font_ui: default
font_ui_bold: default
font_size: 15
font_ui_size: 12
anti_aliasing: lcd # options: lcd, normal
hinting: true
[colors]
background0: 15212AFF
background1: 10191FFF
background2: 18262FFF
background3: 1A2831FF
background4: 21333FFF
# NOTE: region_scope colors only work for Jai at the moment
region_scope_export: 15212AFF
region_scope_file: 131C22FF
region_scope_module: 1A2831FF
region_header: 1A5152FF
region_success: 226022FF
region_warning: 986032FF
region_error: 772222FF
region_heredoc: 090e12FF
selection_active: 1C4449FF
selection_inactive: 1C44497F
selection_highlight: FCEDFC26
search_result_active: 8E772EFF
search_result_inactive: FCEDFC26
scrollbar: 33CCCC19
scrollbar_hover: 33CCCC4C
scrollbar_background: 10191F4C
cursor: 26B2B2FF
cursor_inactive: 196666FF
paste_animation: 1C4449FF
splitter: 10191FFF
splitter_hover: 1C4449FF
ruler: FCEDFC26
indent_guide: FCEDFC26
letter_highlight: 599999FF
list_cursor_lite: 33CCCC19
list_cursor: 33CCCC4C
shadow_dark: 0E161C7F
shadow_transparent: 0E161C00
text_input_label: 3B4450FF
char_under_cursor: FFFFFFFF
bracket_highlight: E8FCFE30
active_pane_border: 19666688
inactive_pane_dim_overlay: 10191FFF
ui_default: BFC9DBFF
ui_dim: 87919DFF
ui_neutral: 4C4C4CFF
ui_warning: F8AD34FF
ui_warning_dim: 986032FF
ui_error: 772222FF
ui_error_bright: FF0000FF
ui_success: 227722FF
build_panel_background: 1A2831FF
build_panel_scrollbar: 33CCCC19
build_panel_scrollbar_hover: 33CCCC4C
build_panel_scrollbar_background: 10191F4C
build_panel_title_bar: 1C303AFF
code_default: BFC9DBFF
code_invalid: FF0000FF
code_string_literal: D4BC7DFF
code_multiline_string: D4BC7DFF
code_raw_string: D4BC7DFF
code_char_literal: D4BC7DFF
code_identifier: BFC9DBFF
code_note: E0AD82FF
code_number: D699B5FF
code_error: FF0000FF
code_warning: E4D97DFF
code_highlight: E4D97DFF
code_comment: 87919DFF
code_multiline_comment: 87919DFF
code_operation: E0AD82FF
code_punctuation: BFC9DBFF
code_keyword: E67D74FF
code_type: 82AAA3FF
code_value: D699B5FF
code_modifier: E67D74FF
code_attribute: E67D74FF
code_enum_variant: BFC9DBFF
code_macro: E0AD82FF
code_function: D0C5A9FF
code_builtin_variable: D699B5FF
code_builtin_function: E0AD82FF
code_builtin_exception: E0AD82FF
code_directive: E67D74FF
code_directive_modifier: E67D74FF
code_header1: E67D74FF
code_header2: E0AD82FF
code_header3: E0AD82FF
code_header4: E0AD82FF
code_header5: E0AD82FF
code_header6: E0AD82FF
# Added after migration to version [22]
code_comment_highlight1: E0AD82FF
code_comment_highlight2: FF0000FF
code_comment_highlight3: E67D74FF
code_comment_highlight4: D699B5FF
cursor_line_highlight: 21333FFF
color_preview_title_bar: 21333FFF
code_addition: 33B333FF
code_deletion: E64D4DFF
region_addition: 2260224C
region_deletion: 7722224C