Skip to main content

FoldMethod

Enum FoldMethod 

Source
pub enum FoldMethod {
    Manual,
    Indent,
    Markdown,
    Syntax,
    Lsp,
}
Expand description

One open completion popup (DESIGN.md §5.11.3 vertico-style rendering). Built by Action::CommandLineCompleteOrAdvance when the user presses Tab; consumed by accept / dismiss / scroll actions. :set foldmethod=... (DESIGN.md §15:18, C.2; docs/user/folding.md). Decides which provider feeds the per-buffer fold list.

Each variant’s marginalia doc (right of =>) is what appears in :set foldmethod=<Tab>. Variant-level /// docs are for API/rustdoc consumers. Slice 3c.unify.option-docs-builtin migrated this enum to labeled_enum! — adding a new fold method is now one line; the label / parse_label / doc / all accessors are derived automatically.

D.3.f.0 added #[derive(Hash)] so the FoldRegistry can key its primary-provider map on FoldMethod.

Variants§

§

Manual

Only user zf ranges, no auto-recompute.

§

Indent

Universal indent walker.

§

Markdown

ATX heading nesting (*.md).

§

Syntax

Tree-sitter scope queries; cascades to Markdown for .md buffers and Indent otherwise when the tree- sitter provider has nothing to offer.

§

Lsp

Feeds from textDocument/foldingRange. Async: the per-tick pump fires the request when the buffer’s document version changes; the response lands in a per-buffer cache and triggers a recompute. Cascades to Syntax when no attached server advertises the capability.

Slice: 4.4.f.

Implementations§

Source§

impl FoldMethod

Source

pub fn label(self) -> &'static str

Canonical string label.

Source

pub fn doc(self) -> &'static str

Short marginalia doc shown in cmdline-completion’s right-aligned column.

Source

pub fn all() -> &'static [FoldMethod]

Variants in declaration order.

Source

pub fn parse_label(s: &str) -> Result<FoldMethod, String>

Parse from canonical label or any registered alias.

Trait Implementations§

Source§

impl Clone for FoldMethod

Source§

fn clone(&self) -> FoldMethod

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for FoldMethod

Source§

impl Debug for FoldMethod

Source§

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

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

impl Default for FoldMethod

Source§

fn default() -> FoldMethod

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

impl Eq for FoldMethod

Source§

impl Hash for FoldMethod

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl OptionType for FoldMethod

Source§

fn enumerate_is_exhaustive() -> bool

TC.1: closed — parse accepts these forms and nothing else, so the schema is an enum and :customize can offer a picker.

Source§

fn parse(s: &str) -> Result<FoldMethod, String>

Parse the right-hand side of :set name=value. Errors are surfaced verbatim through the cmdline echo, so the message should read well to the user (mention valid forms when the space is finite). The parser MUST round-trip with format: T::parse(&v.format()) == Ok(v) for every v.
Source§

fn format(&self) -> String

Render the current value back to a string (:set foo? echo, the customize buffer view, value comparison). Round-trips with Self::parse.
Source§

fn type_label() -> &'static str

Short type label for :describe-option ("boolean", "foldmethod", etc.). Used in help bodies and the customize buffer view.
Source§

fn enumerate() -> Option<Vec<&'static str>>

Optional: enumerate valid string forms for :set foo=<Tab> completion. None means “free-form” (no enumerable space – integers, file paths, free strings). The values are &'static str to keep the completion source allocation-free in the common case.
Source§

fn enumerate_with_docs() -> Option<Vec<EnumeratedValue>>

Optional: enumerate valid string forms WITH per-value doc strings for the cmdline-completion marginalia column. Default impl wraps Self::enumerate with empty docs; types with rich help override. Read more
Source§

fn name_forms(_canonical: &str) -> Vec<String>

Optional: alternative name forms this type accepts for the option name itself. Used by completion to surface the name alongside its negation (:set nu / :set nonu). Default: no extra forms. Booleans return [format!("no{canonical}")].
Source§

fn is_bool() -> bool

Whether this type’s option supports :set noFOO. bool returns true; everything else false. Drives the negate path in the cmdline parser.
Source§

fn accepts_list() -> bool

Whether this option’s value is list-shaped — i.e. a TOML array at config-load time should be joined into the delimited string Self::parse accepts, rather than rejected as “not applicable to a scalar option”. false for every scalar type (the default); true for list types like crate::ModelineZone. Drives loader::apply_array (ML.5). The :set cmdline path is unaffected — it always passes a string and never sees a TOML array.
Source§

fn try_negation_value() -> Result<Self, String>

Negation value (only meaningful for Self::is_bool true). Default: returns Err – the registry guards by checking is_bool() first, so callers that respect the contract won’t observe this. The bool impl returns Ok(false).
Source§

fn schema() -> ConfigSchema

The declared shape of this type’s values. Read more
Source§

fn to_value(&self) -> ConfigValue

This value as a schema-shaped tree. Read more
Source§

fn from_value(value: &ConfigValue) -> Result<Self, String>

Rebuild from a tree. Default: the inverse of Self::to_value, deferring to parse so a type’s validation rules apply on this path exactly as they do on :set.
Source§

impl PartialEq for FoldMethod

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for FoldMethod

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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
§

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

§

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

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

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

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

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

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

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

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

impl<T> IntoMaybeUndefined<T> for T

§

fn into_maybe_undefined(self) -> MaybeUndefined<T>

Converts this value into a three-state builder argument.
§

impl<T> IntoOption<T> for T

§

fn into_option(self) -> Option<T>

Converts this value into an optional builder argument.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Pointee for T

§

type Pointer = u32

§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_>, ) -> Result<(), Error>

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T> ResetDiscriminant<T> for T
where T: Copy,

§

fn discriminant(&self) -> T

Value based on which equality for the reset will be determined.
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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