Skip to main content

Editor

Enum Editor 

Source
pub enum Editor {
Show 19 variants None, Helix, Neovim, Vim, Nano, Micro, Emacs, VSCode, Zed, Sublime, RustRover, IntelliJIdea, WebStorm, PyCharm, GoLand, CLion, Fleet, AndroidStudio, Custom(String),
}
Expand description

Supported editors and IDEs.

Variants§

§

None

No editor configured.

§

Helix

§

Neovim

§

Vim

§

Nano

§

Micro

§

Emacs

§

VSCode

§

Zed

§

Sublime

§

RustRover

§

IntelliJIdea

§

WebStorm

§

PyCharm

§

GoLand

§

CLion

§

Fleet

§

AndroidStudio

§

Custom(String)

A user-supplied binary name or path.

Implementations§

Source§

impl Editor

Source

pub fn binary(&self) -> Option<String>

Return the launch binary for this editor. Returns None for Editor::None.

Source

pub fn binary_candidates(&self) -> Vec<String>

Return the ordered list of binary names to try when launching this editor.

Most editors have exactly one binary name. Helix has two (helix on Linux, hx on macOS) so we return both and let the caller try them in order, stopping at the first one that is found in $PATH.

Source

pub fn is_terminal_editor(&self) -> bool

Returns true for editors that run inside a terminal (TTY required).

These editors cannot be spawned in the background from a TUI application — the TUI must suspend itself first, run the editor synchronously, then resume.

Source

pub fn display_name(&self) -> &str

Display name for the editor.

Source

pub fn from_index(index: usize) -> Self

Get editor by index into EDITOR_NAMES.

Source

pub fn open_file(&self, file_path: &Path) -> Result<()>

Open a file in this editor as a background process.

Stdin/stdout/stderr are detached so the caller is not blocked. This is correct for GUI editors (VS Code, Zed, IntelliJ, …).

Do not call this for terminal editors from a running TUI — use the pending_editor_open mechanism in App instead so the TUI can suspend itself before handing the terminal to the editor.

On macOS, GUI editors are opened via open -a "App Name" file so the existing application window is activated and brought to the front.

Source

pub fn open_file_or_default(&self, file_path: &Path) -> Result<String>

Open a file in this editor, falling back to the system default opener (xdg-open / open / start) when no editor is configured or the configured editor fails to launch.

Always succeeds as long as the system has a default file handler. Returns the method used: "editor", "system default", or an error.

Trait Implementations§

Source§

impl Clone for Editor

Source§

fn clone(&self) -> Editor

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 Editor

Source§

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

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

impl Default for Editor

Source§

fn default() -> Editor

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

impl<'de> Deserialize<'de> for Editor

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 Display for Editor

Source§

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

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

impl PartialEq for Editor

Source§

fn eq(&self, other: &Editor) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Editor

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

impl Eq for Editor

Source§

impl StructuralPartialEq for Editor

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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>,