EditorConfig

Struct EditorConfig 

Source
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: usize

Number of spaces per tab character

§auto_indent: bool

Automatically indent new lines based on the previous line

§line_numbers: bool

Show line numbers in the gutter (default for new buffers)

§relative_line_numbers: bool

Show line numbers relative to cursor position

§scroll_offset: usize

Minimum lines to keep visible above/below cursor when scrolling

§syntax_highlighting: bool

Enable syntax highlighting for code files

§line_wrap: bool

Wrap long lines to fit the window width (default for new views)

§highlight_timeout_ms: u64

Maximum time in milliseconds for syntax highlighting per frame

§snapshot_interval: usize

Undo history snapshot interval (number of edits between snapshots)

§large_file_threshold_bytes: u64

File 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: usize

Estimated 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: bool

Whether to enable LSP inlay hints (type hints, parameter hints, etc.)

§enable_semantic_tokens_full: bool

Whether 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: bool

Whether 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: u32

Auto-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: usize

Number 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: bool

Whether mouse hover triggers LSP hover requests. When enabled, hovering over code with the mouse will show documentation. Default: true

§mouse_hover_delay_ms: u64

Delay 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: u64

Time 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: u64

Poll 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: u64

Poll 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: LineEndingOption

Default 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: CursorStyle

Cursor 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: bool

Enable 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: bool

Enable 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: bool

Enable 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: bool

Enable 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: bool

Enable quick suggestions (VS Code-like behavior). When enabled, completion suggestions appear automatically while typing, not just on trigger characters (like . or ::). Default: true

§show_menu_bar: bool

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: bool

Whether 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: bool

Use 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

Source§

fn clone(&self) -> EditorConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EditorConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for EditorConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for EditorConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<&EditorConfig> for PartialEditorConfig

Source§

fn from(cfg: &EditorConfig) -> Self

Converts to this type from the input type.
Source§

impl JsonSchema for EditorConfig

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl Serialize for EditorConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ParallelSend for T