Skip to content
QuireKit
Plugin docs
Alpha · evolving API
Content nodesView Markdown ↗

CodeBlock

Stores multiline code and a language attribute, with configurable exit and indentation behavior. It does not install a syntax highlighter.

Stores multiline code and a language attribute, with configurable exit and indentation behavior. It does not install a syntax highlighter.

@quirekit/extension-code-block · MIT

Editor compatibility

Layer:Shared document capability

EditorStatusAssembly and boundaries
ClassicSupportedclassicEditorPreset — Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model.
BlockSupportedcreateBlockEditorPreset — The default createBlockEditor preset installs this capability. Configure the corresponding preset child; graphic editing uses the preset's workspace ports, while persistence and assets remain host-owned. Avoid duplicate extensions.

“Supported” means the product assembly above exists; interaction, host services and file formats retain their own conditions. See status and integration rules. Licensing is shown separately.

Installation

sh

Install in Editor extensions. The host supplies a view, container and persistence; see Quick start.

Included in StarterKit. Configure its codeBlock child, or disable that child before installing a replacement.

ts

Use compatible versions available from your distribution source. This site uses the Alpha workspace. License labels come from package metadata; see support and licensing.

Integration by editor

These snippets use an existing host element named element. The host owns container sizing and persistence; call instance.destroy() on teardown. Avoid duplicating preset capabilities and supply required host ports before installation.

Classic · Supported

Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model.

classicEditorPreset
ts

Configuration

These are extension-level defaults. Presets can override them; they are distinct from current document attributes. See configuration.

languageClassPrefix

Prefix added to language classes on rendered code elements.

Type:string | null | undefined

Default:"language-"

exitOnTripleEnter

Whether triple Enter exits the code block.

Type:false | null | true | undefined

Default:true

exitOnArrowDown

Whether ArrowDown exits the final code block.

Type:false | null | true | undefined

Default:true

defaultLanguage

Default code language stored on new code blocks.

Type:string | null | undefined

Default:null

enableTabIndentation

Whether Tab and Shift-Tab indent code block text.

Type:false | null | true | undefined

Default:false

tabSize

Number of spaces inserted or removed for indentation.

Type:number | null | undefined

Default:4

HTMLAttributes

HTML attributes added when the code block serializes to HTML.

Type:Record<string, unknown>

Default:{}

Commands and runtime

These commands are supplied directly by this extension. Availability depends on the installed schema, selection and protection policy; query editor.can() first.

CommandParameter signature
setCodeBlocksetCodeBlock(attributes?: CodeBlockAttributes | undefined)
toggleCodeBlocktoggleCodeBlock(attributes?: CodeBlockAttributes | undefined)
insertCodeBlockFromClipboardinsertCodeBlockFromClipboard(options: InsertCodeBlockFromClipboardOptions)

These are parameter signatures. See commands and controls to connect UI while retaining one transaction/history authority.

Other public exports

  • CodeBlock · @quirekit/starter-kit

Next steps

Return to all plugins, or read configuration to distinguish options, attributes and commands.

See extension development for custom capabilities and Build a product for complete hosting.

QuireKitQuireKit · Core, plugins and Classic docs