flow/src/config.zig

136 lines
3.1 KiB
Zig

const builtin = @import("builtin");
frame_rate: usize = 60,
theme: []const u8 = "ayu-mirage-bordered",
light_theme: []const u8 = "ayu-light",
input_mode: []const u8 = "flow",
gutter_line_numbers_mode: ?LineNumberMode = null,
gutter_line_numbers_style: DigitStyle = .ascii,
gutter_symbols: bool = true,
enable_terminal_cursor: bool = true,
enable_terminal_color_scheme: bool = false,
enable_modal_dim: bool = true,
highlight_current_line: bool = true,
highlight_current_line_gutter: bool = true,
highlight_columns: []const u16 = &.{ 80, 100, 120 },
highlight_columns_alpha: u8 = 240,
highlight_columns_enabled: bool = false,
whitespace_mode: WhitespaceMode = .indent,
inline_diagnostics: bool = true,
animation_min_lag: usize = 0, //milliseconds
animation_max_lag: usize = 50, //milliseconds
hover_time_ms: usize = 500, //milliseconds
input_idle_time_ms: usize = 150, //milliseconds
idle_actions: []const IdleAction = &default_actions,
enable_format_on_save: bool = false,
restore_last_cursor_position: bool = true,
follow_cursor_on_buffer_switch: bool = false, //scroll cursor into view on buffer switch
default_cursor: CursorShape = .default,
modes_can_change_cursor: bool = true,
enable_auto_save: bool = false,
limit_auto_save_file_types: ?[]const []const u8 = null, // null means *all*
indent_size: usize = 4,
tab_width: usize = 8,
indent_mode: IndentMode = .auto,
top_bar: []const u8 = "tabs",
bottom_bar: []const u8 = "mode file log selection diagnostics keybind branch linenumber clock spacer",
show_scrollbars: bool = true,
show_fileicons: bool = true,
scrollbar_auto_hide: bool = false,
start_debugger_on_crash: bool = false,
widget_style: WidgetStyle = .compact,
palette_style: WidgetStyle = .bars_top_bottom,
panel_style: WidgetStyle = .compact,
home_style: WidgetStyle = .bars_top_bottom,
pane_left_style: WidgetStyle = .bar_right,
pane_right_style: WidgetStyle = .bar_left,
pane_style: PaneStyle = .panel,
centered_view: bool = false,
centered_view_width: usize = 145,
centered_view_min_screen_width: usize = 145,
lsp_output: enum { quiet, verbose } = .quiet,
include_files: []const u8 = "",
const default_actions = [_]IdleAction{};
pub const IdleAction = enum {
hover,
highlight_references,
};
pub const DigitStyle = enum {
ascii,
digital,
subscript,
superscript,
};
pub const LineNumberMode = enum {
none,
relative,
absolute,
};
pub const IndentMode = enum {
auto,
spaces,
tabs,
};
pub const WidgetType = enum {
none,
palette,
panel,
home,
pane_left,
pane_right,
};
pub const WidgetStyle = enum {
bars_top_bottom,
bars_left_right,
bar_left,
bar_right,
thick_boxed,
extra_thick_boxed,
dotted_boxed,
rounded_boxed,
double_boxed,
single_double_top_bottom_boxed,
single_double_left_right_boxed,
boxed,
spacious,
compact,
};
pub const WhitespaceMode = enum {
indent,
leading,
eol,
tabs,
external,
visible,
full,
none,
};
pub const CursorShape = enum {
default,
block_blink,
block,
underline_blink,
underline,
beam_blink,
beam,
};
pub const PaneStyle = enum {
panel,
editor,
};