Skip to content

SettingTextAreaControl<K>

Official

A multi-line text input control. Persists a string.

Import:

import type { SettingTextAreaControl } from 'obsidian';

Signature:

export interface SettingTextAreaControl<K extends string = string> extends SettingControlBase<string, K>

Extends: SettingControlBase<string, K>

Properties

PropertyTypeDescription
defaultValue?stringFallback when the resolver returns undefined/null.
(Inherited from SettingControlBase)
disabled?(() => boolean) | booleanDisables the control. Evaluated on each render, so a function form can reflect runtime state (e.g. whether another plugin is installed). Call update() on the setting tab to re-evaluate after the underlying state changes.
(Inherited from SettingControlBase)
keyKThe config/storage property name passed to getControlValue and setControlValue on the setting tab.
(Inherited from SettingControlBase)
placeholder?stringPlaceholder text shown when the input is empty.
rows?numberInitial number of visible rows.
type'textarea'Discriminant identifying this control as a textarea.
validate?(value: string) => string | void | Promise<string | void>Validate a candidate value before it is persisted. Return a non-empty string to reject the change and surface it as an inline error message below the setting; return void/empty/undefined to accept and persist.

Primarily intended for text-bearing controls (text, textarea, number, file, folder) where the user can enter values the bind's type alone can't constrain.

The stored value may already be invalid when the setting is rendered (e.g. data from a previous version of your plugin). The framework runs validate once on mount and shows the message if the seeded value fails; it does not modify or replace the stored value. Plugins that need to enforce invariants on stored data should validate again when reading their settings.
(Inherited from SettingControlBase)