pub struct EditorConfig {Show 38 fields
pub line_numbers: bool,
pub relative_line_numbers: bool,
pub line_wrap: bool,
pub syntax_highlighting: bool,
pub show_menu_bar: bool,
pub show_tab_bar: bool,
pub use_terminal_bg: bool,
pub cursor_style: CursorStyle,
pub tab_size: usize,
pub auto_indent: bool,
pub scroll_offset: usize,
pub default_line_ending: LineEndingOption,
pub trim_trailing_whitespace_on_save: bool,
pub ensure_final_newline_on_save: bool,
pub highlight_matching_brackets: bool,
pub rainbow_brackets: bool,
pub quick_suggestions: bool,
pub quick_suggestions_delay_ms: u64,
pub suggest_on_trigger_characters: bool,
pub accept_suggestion_on_enter: AcceptSuggestionOnEnter,
pub enable_inlay_hints: bool,
pub enable_semantic_tokens_full: bool,
pub mouse_hover_enabled: bool,
pub mouse_hover_delay_ms: u64,
pub double_click_time_ms: u64,
pub recovery_enabled: bool,
pub auto_save_interval_secs: u32,
pub auto_revert_poll_interval_ms: u64,
pub keyboard_disambiguate_escape_codes: bool,
pub keyboard_report_event_types: bool,
pub keyboard_report_alternate_keys: bool,
pub keyboard_report_all_keys_as_escape_codes: bool,
pub highlight_timeout_ms: u64,
pub snapshot_interval: usize,
pub highlight_context_bytes: usize,
pub large_file_threshold_bytes: u64,
pub estimated_line_length: usize,
pub file_tree_poll_interval_ms: u64,
}Expand description
Editor behavior configuration
Fields§
§line_numbers: boolShow line numbers in the gutter (default for new buffers)
relative_line_numbers: boolShow line numbers relative to cursor position
line_wrap: boolWrap long lines to fit the window width (default for new views)
syntax_highlighting: boolEnable syntax highlighting for code files
Whether the menu bar is visible by default. The menu bar provides access to menus (File, Edit, View, etc.) at the top of the screen. Can be toggled at runtime via command palette or keybinding. Default: true
show_tab_bar: boolWhether the tab bar is visible by default. The tab bar shows open files in each split pane. Can be toggled at runtime via command palette or keybinding. Default: true
use_terminal_bg: boolUse the terminal’s default background color instead of the theme’s editor background. When enabled, the editor background inherits from the terminal emulator, allowing transparency or custom terminal backgrounds to show through. Default: false
cursor_style: CursorStyleCursor style for the terminal cursor. Options: blinking_block, steady_block, blinking_bar, steady_bar, blinking_underline, steady_underline Default: blinking_block
tab_size: usizeNumber of spaces per tab character
auto_indent: boolAutomatically indent new lines based on the previous line
scroll_offset: usizeMinimum lines to keep visible above/below cursor when scrolling
default_line_ending: LineEndingOptionDefault line ending format for new files. Files loaded from disk will use their detected line ending format. Options: “lf” (Unix/Linux/macOS), “crlf” (Windows), “cr” (Classic Mac) Default: “lf”
trim_trailing_whitespace_on_save: boolRemove trailing whitespace from lines when saving. Default: false
ensure_final_newline_on_save: boolEnsure files end with a newline when saving. Default: false
highlight_matching_brackets: boolHighlight matching bracket pairs when cursor is on a bracket. Default: true
rainbow_brackets: boolUse rainbow colors for nested brackets based on nesting depth. Requires highlight_matching_brackets to be enabled. Default: true
quick_suggestions: boolEnable quick suggestions (VS Code-like behavior).
When enabled, completion suggestions appear automatically while typing,
not just on trigger characters (like . or ::).
Default: true
quick_suggestions_delay_ms: u64Delay in milliseconds before showing completion suggestions.
Lower values (10-50ms) feel more responsive but may be distracting.
Higher values (100-500ms) reduce noise while typing.
Trigger characters (like .) bypass this delay.
Default: 10 (matches VS Code)
suggest_on_trigger_characters: boolWhether trigger characters (like ., ::, ->) immediately show completions.
When true, typing a trigger character bypasses quick_suggestions_delay_ms.
Default: true
accept_suggestion_on_enter: AcceptSuggestionOnEnterControls whether pressing Enter accepts the selected completion.
- “on”: Enter always accepts the completion
- “off”: Enter inserts a newline (use Tab to accept)
- “smart”: Enter accepts only if the completion text differs from typed text Default: “on”
enable_inlay_hints: boolWhether to enable LSP inlay hints (type hints, parameter hints, etc.)
enable_semantic_tokens_full: boolWhether to request full-document LSP semantic tokens. Range requests are still used when supported. Default: false (range-only to avoid heavy full refreshes).
mouse_hover_enabled: boolWhether mouse hover triggers LSP hover requests. When enabled, hovering over code with the mouse will show documentation. Default: true
mouse_hover_delay_ms: u64Delay in milliseconds before a mouse hover triggers an LSP hover request. Lower values show hover info faster but may cause more LSP server load. Default: 500ms
double_click_time_ms: u64Time window in milliseconds for detecting double-clicks. Two clicks within this time are treated as a double-click (word selection). Default: 500ms
recovery_enabled: boolWhether to enable file recovery (Emacs-style auto-save) When enabled, buffers are periodically saved to recovery files so they can be recovered if the editor crashes.
auto_save_interval_secs: u32Auto-save interval in seconds for file recovery Modified buffers are saved to recovery files at this interval. Default: 2 seconds for fast recovery with minimal data loss. Set to 0 to disable periodic auto-save (manual recovery only).
auto_revert_poll_interval_ms: u64Poll interval in milliseconds for auto-reverting open buffers. When auto-revert is enabled, file modification times are checked at this interval. Lower values detect external changes faster but use more CPU. Default: 2000ms (2 seconds)
keyboard_disambiguate_escape_codes: boolEnable keyboard enhancement: disambiguate escape codes using CSI-u sequences. This allows unambiguous reading of Escape and modified keys. Requires terminal support (kitty keyboard protocol). Default: true
keyboard_report_event_types: boolEnable keyboard enhancement: report key event types (repeat/release). Adds extra events when keys are autorepeated or released. Requires terminal support (kitty keyboard protocol). Default: false
keyboard_report_alternate_keys: boolEnable keyboard enhancement: report alternate keycodes. Sends alternate keycodes in addition to the base keycode. Requires terminal support (kitty keyboard protocol). Default: true
keyboard_report_all_keys_as_escape_codes: boolEnable keyboard enhancement: report all keys as escape codes. Represents all keyboard events as CSI-u sequences. Required for repeat/release events on plain-text keys. Requires terminal support (kitty keyboard protocol). Default: false
highlight_timeout_ms: u64Maximum time in milliseconds for syntax highlighting per frame
snapshot_interval: usizeUndo history snapshot interval (number of edits between snapshots)
highlight_context_bytes: usizeNumber of bytes to look back/forward from the viewport for syntax highlighting context. Larger values improve accuracy for multi-line constructs (strings, comments, nested blocks) but may slow down highlighting for very large files. Default: 10KB (10000 bytes)
large_file_threshold_bytes: u64File size threshold in bytes for “large file” behavior Files larger than this will:
- Skip LSP features
- Use constant-size scrollbar thumb (1 char)
Files smaller will count actual lines for accurate scrollbar rendering
estimated_line_length: usizeEstimated average line length in bytes (used for large file line estimation) This is used by LineIterator to estimate line positions in large files without line metadata. Typical values: 80-120 bytes.
file_tree_poll_interval_ms: u64Poll interval in milliseconds for refreshing expanded directories in the file explorer. Directory modification times are checked at this interval to detect new/deleted files. Lower values detect changes faster but use more CPU. Default: 3000ms (3 seconds)
Trait Implementations§
Source§impl Clone for EditorConfig
impl Clone for EditorConfig
Source§fn clone(&self) -> EditorConfig
fn clone(&self) -> EditorConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EditorConfig
impl Debug for EditorConfig
Source§impl Default for EditorConfig
impl Default for EditorConfig
Source§impl<'de> Deserialize<'de> for EditorConfig
impl<'de> Deserialize<'de> for EditorConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<&EditorConfig> for PartialEditorConfig
impl From<&EditorConfig> for PartialEditorConfig
Source§fn from(cfg: &EditorConfig) -> Self
fn from(cfg: &EditorConfig) -> Self
Source§impl JsonSchema for EditorConfig
impl JsonSchema for EditorConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for EditorConfig
impl RefUnwindSafe for EditorConfig
impl Send for EditorConfig
impl Sync for EditorConfig
impl Unpin for EditorConfig
impl UnwindSafe for EditorConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more