pub struct EditorConfig {Show 31 fields
pub tab_size: usize,
pub auto_indent: bool,
pub line_numbers: bool,
pub relative_line_numbers: bool,
pub scroll_offset: usize,
pub syntax_highlighting: bool,
pub line_wrap: bool,
pub highlight_timeout_ms: u64,
pub snapshot_interval: usize,
pub large_file_threshold_bytes: u64,
pub estimated_line_length: usize,
pub enable_inlay_hints: bool,
pub enable_semantic_tokens_full: bool,
pub recovery_enabled: bool,
pub auto_save_interval_secs: u32,
pub highlight_context_bytes: usize,
pub mouse_hover_enabled: bool,
pub mouse_hover_delay_ms: u64,
pub double_click_time_ms: u64,
pub auto_revert_poll_interval_ms: u64,
pub file_tree_poll_interval_ms: u64,
pub default_line_ending: LineEndingOption,
pub cursor_style: CursorStyle,
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 quick_suggestions: bool,
pub show_menu_bar: bool,
pub show_tab_bar: bool,
pub use_terminal_bg: bool,
}Expand description
Editor behavior configuration
Fields§
§tab_size: usizeNumber of spaces per tab character
auto_indent: boolAutomatically indent new lines based on the previous line
line_numbers: boolShow line numbers in the gutter (default for new buffers)
relative_line_numbers: boolShow line numbers relative to cursor position
scroll_offset: usizeMinimum lines to keep visible above/below cursor when scrolling
syntax_highlighting: boolEnable syntax highlighting for code files
line_wrap: boolWrap long lines to fit the window width (default for new views)
highlight_timeout_ms: u64Maximum time in milliseconds for syntax highlighting per frame
snapshot_interval: usizeUndo history snapshot interval (number of edits between snapshots)
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.
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).
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).
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)
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
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)
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)
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”
cursor_style: CursorStyleCursor style for the terminal cursor. Options: blinking_block, steady_block, blinking_bar, steady_bar, blinking_underline, steady_underline Default: blinking_block
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
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
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
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