@voithos-labs/aragonite 0.10.3 → 0.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/a11y-strings.d.ts +12 -5
- package/dist/a11y-strings.js +61 -5
- package/dist/action-contracts.d.ts +242 -155
- package/dist/action-contracts.js +2 -2
- package/dist/active-editor.d.ts +3 -3
- package/dist/active-editor.js +8 -9
- package/dist/ambient/ambient-dom.d.ts +2 -5
- package/dist/ambient/ambient-dom.js +16 -62
- package/dist/assert.js +6 -5
- package/dist/block-component.d.ts +135 -109
- package/dist/block-component.js +30 -22
- package/dist/block-id.d.ts +6 -10
- package/dist/block-id.js +25 -14
- package/dist/bounded-memo.d.ts +5 -5
- package/dist/bounded-memo.js +6 -6
- package/dist/components/BlockDragHandle.svelte +13 -20
- package/dist/components/BlockHost.svelte +56 -134
- package/dist/components/BlockList.svelte +22 -19
- package/dist/components/DecorationOverlay.svelte +9 -10
- package/dist/components/DecorationOverlay.svelte.d.ts +2 -2
- package/dist/components/Editor.svelte +619 -1089
- package/dist/components/Editor.svelte.d.ts +9 -20
- package/dist/components/GapCaret.svelte +26 -59
- package/dist/components/SelectionOverlay.svelte +36 -67
- package/dist/components/SelectionOverlay.svelte.d.ts +6 -4
- package/dist/components/TailInsert.svelte +8 -55
- package/dist/components/TailInsert.svelte.d.ts +4 -6
- package/dist/components/block-content-selector.d.ts +11 -11
- package/dist/components/block-content-selector.js +11 -11
- package/dist/components/block-el-lookup.d.ts +6 -0
- package/dist/components/block-el-lookup.js +27 -0
- package/dist/components/blocks/BlockquoteBlock.svelte +3 -3
- package/dist/components/blocks/ThematicBreakBlock.svelte +22 -63
- package/dist/components/blocks/ThematicBreakBlock.svelte.d.ts +0 -2
- package/dist/components/blocks/code/CodeBlock.svelte +255 -276
- package/dist/components/blocks/code/CodeBlock.svelte.d.ts +2 -3
- package/dist/components/blocks/code/CodeBlockRail.svelte +103 -100
- package/dist/components/blocks/code/CodeBlockRail.svelte.d.ts +9 -4
- package/dist/components/blocks/code/code-beforeinput.d.ts +1 -1
- package/dist/components/blocks/code/code-bootstrap.d.ts +3 -5
- package/dist/components/blocks/code/code-bootstrap.js +35 -28
- package/dist/components/blocks/code/code-context-actions.js +5 -4
- package/dist/components/blocks/code/code-enter.js +2 -2
- package/dist/components/blocks/code/code-fence-boundary.d.ts +29 -46
- package/dist/components/blocks/code/code-fence-boundary.js +40 -66
- package/dist/components/blocks/code/code-fence-exit.d.ts +6 -11
- package/dist/components/blocks/code/code-fence-exit.js +24 -25
- package/dist/components/blocks/code/code-indent.d.ts +2 -2
- package/dist/components/blocks/code/code-indent.js +4 -7
- package/dist/components/blocks/code/code-languages.d.ts +16 -12
- package/dist/components/blocks/code/code-languages.js +58 -32
- package/dist/components/blocks/code/code-paste-surface.d.ts +3 -2
- package/dist/components/blocks/code/code-paste-surface.js +9 -18
- package/dist/components/blocks/code/code-renderer.d.ts +21 -5
- package/dist/components/blocks/code/code-renderer.js +90 -125
- package/dist/components/blocks/directive/DirectiveContainerBlock.svelte +5 -8
- package/dist/components/blocks/directive/activate-directives.d.ts +4 -4
- package/dist/components/blocks/directive/activate-directives.js +18 -13
- package/dist/components/blocks/editable-leaf.d.ts +50 -74
- package/dist/components/blocks/editable-leaf.js +144 -202
- package/dist/components/blocks/editable-surface.d.ts +96 -100
- package/dist/components/blocks/editable-surface.js +101 -109
- package/dist/components/blocks/list/ListBlock.svelte +46 -90
- package/dist/components/blocks/list/ListItemBlock.svelte +99 -144
- package/dist/components/blocks/list/ListItemBlock.svelte.d.ts +3 -0
- package/dist/components/blocks/list/task-checkbox.d.ts +5 -2
- package/dist/components/blocks/list/task-checkbox.js +12 -7
- package/dist/components/blocks/plain-text-backend.d.ts +4 -20
- package/dist/components/blocks/plain-text-backend.js +9 -43
- package/dist/components/blocks/surface-wiring.svelte.d.ts +8 -9
- package/dist/components/blocks/surface-wiring.svelte.js +15 -34
- package/dist/components/blocks/table/TableActionMenu.svelte +19 -18
- package/dist/components/blocks/table/TableActionMenu.svelte.d.ts +3 -1
- package/dist/components/blocks/table/TableBlock.svelte +100 -165
- package/dist/components/blocks/table/TableBlock.svelte.d.ts +3 -3
- package/dist/components/blocks/table/TableCellBlock.svelte +307 -385
- package/dist/components/blocks/table/TableCellBlock.svelte.d.ts +1 -0
- package/dist/components/blocks/table/TableRowBlock.svelte +60 -104
- package/dist/components/blocks/table/TableRowBlock.svelte.d.ts +0 -1
- package/dist/components/blocks/table/cell-keydown-plan.d.ts +4 -9
- package/dist/components/blocks/table/cell-keydown-plan.js +8 -12
- package/dist/components/blocks/table/cell-pointer.d.ts +18 -23
- package/dist/components/blocks/table/cell-pointer.js +49 -71
- package/dist/components/blocks/table/cell-render.d.ts +24 -29
- package/dist/components/blocks/table/cell-render.js +29 -31
- package/dist/components/blocks/table/selected-cells.d.ts +7 -7
- package/dist/components/blocks/table/selected-cells.js +9 -13
- package/dist/components/blocks/table/table-caret-at-point.d.ts +4 -4
- package/dist/components/blocks/table/table-caret-at-point.js +5 -5
- package/dist/components/blocks/table/table-cell-paste.d.ts +5 -11
- package/dist/components/blocks/table/table-cell-paste.js +27 -43
- package/dist/components/blocks/table/table-drag-hit-test.js +2 -1
- package/dist/components/blocks/table/table-menu-model.d.ts +4 -8
- package/dist/components/blocks/table/table-menu-model.js +6 -10
- package/dist/components/blocks/table/table-navigation.js +2 -2
- package/dist/components/blocks/text/TextEditableBlock.svelte +392 -310
- package/dist/components/blocks/text/TextEditableBlock.svelte.d.ts +2 -1
- package/dist/components/blocks/text/auto-pair-record.d.ts +23 -0
- package/dist/components/blocks/text/auto-pair-record.js +51 -0
- package/dist/components/blocks/text/click-snap-guard.d.ts +9 -4
- package/dist/components/blocks/text/click-snap-guard.js +16 -5
- package/dist/components/blocks/text/composition-seat.d.ts +17 -14
- package/dist/components/blocks/text/composition-seat.js +11 -11
- package/dist/components/blocks/text/construct-edge-delete.d.ts +20 -20
- package/dist/components/blocks/text/construct-edge-delete.js +50 -65
- package/dist/components/blocks/text/construct-reveal.d.ts +16 -21
- package/dist/components/blocks/text/construct-reveal.js +13 -14
- package/dist/components/blocks/text/delimiter-autopair.d.ts +51 -34
- package/dist/components/blocks/text/delimiter-autopair.js +87 -103
- package/dist/components/blocks/text/edge-policy-dispatch.d.ts +44 -46
- package/dist/components/blocks/text/edge-policy-dispatch.js +164 -180
- package/dist/components/blocks/text/edge-seat.d.ts +17 -26
- package/dist/components/blocks/text/edge-seat.js +43 -70
- package/dist/components/blocks/text/link-at-point.d.ts +9 -9
- package/dist/components/blocks/text/link-at-point.js +12 -15
- package/dist/components/blocks/text/live-join-seam.d.ts +6 -9
- package/dist/components/blocks/text/live-join-seam.js +75 -112
- package/dist/components/blocks/text/live-selection-edit.d.ts +14 -43
- package/dist/components/blocks/text/live-selection-edit.js +32 -105
- package/dist/components/blocks/text/live-split-rebalance.d.ts +9 -13
- package/dist/components/blocks/text/live-split-rebalance.js +50 -67
- package/dist/components/blocks/text/marker-completion.d.ts +7 -12
- package/dist/components/blocks/text/marker-completion.js +17 -10
- package/dist/components/blocks/text/pending-mark-insert.d.ts +11 -18
- package/dist/components/blocks/text/pending-mark-insert.js +30 -49
- package/dist/components/blocks/text/screen-diff.d.ts +5 -15
- package/dist/components/blocks/text/screen-diff.js +5 -19
- package/dist/components/blocks/text/text-clipboard.d.ts +23 -32
- package/dist/components/blocks/text/text-clipboard.js +27 -32
- package/dist/components/blocks/text/text-keydown.d.ts +20 -30
- package/dist/components/blocks/text/text-keydown.js +54 -51
- package/dist/components/blocks/text/text-render.d.ts +25 -35
- package/dist/components/blocks/text/text-render.js +82 -61
- package/dist/components/blocks/text/widget-adjacency.d.ts +9 -9
- package/dist/components/blocks/text/widget-adjacency.js +17 -17
- package/dist/components/blocks/text/widget-interaction.d.ts +67 -43
- package/dist/components/blocks/text/widget-interaction.js +243 -208
- package/dist/components/blocks/widget-portal.d.ts +20 -29
- package/dist/components/blocks/widget-portal.js +16 -14
- package/dist/components/built-in-blocks.d.ts +3 -4
- package/dist/components/built-in-blocks.js +17 -18
- package/dist/components/drag-handle.d.ts +13 -30
- package/dist/components/drag-handle.js +25 -63
- package/dist/components/editor-built-ins.d.ts +1 -0
- package/dist/components/editor-built-ins.js +16 -0
- package/dist/components/editor-root-clipboard.d.ts +6 -6
- package/dist/components/editor-root-clipboard.js +16 -27
- package/dist/components/editor-root-document-swap.d.ts +49 -0
- package/dist/components/editor-root-document-swap.js +54 -0
- package/dist/components/editor-root-focus.d.ts +5 -4
- package/dist/components/editor-root-focus.js +51 -22
- package/dist/components/editor-root-focused-surface.d.ts +35 -0
- package/dist/components/editor-root-focused-surface.js +65 -0
- package/dist/components/editor-root-geometry.d.ts +15 -24
- package/dist/components/editor-root-geometry.js +27 -31
- package/dist/components/editor-root-gestures.d.ts +39 -0
- package/dist/components/editor-root-gestures.js +189 -0
- package/dist/components/editor-root-keydown.d.ts +10 -25
- package/dist/components/editor-root-keydown.js +19 -43
- package/dist/components/editor-root-listeners.d.ts +22 -31
- package/dist/components/editor-root-listeners.js +49 -46
- package/dist/components/editor-root-menus.d.ts +51 -0
- package/dist/components/editor-root-menus.js +147 -0
- package/dist/components/editor-root-mode-flip.d.ts +16 -11
- package/dist/components/editor-root-mode-flip.js +36 -34
- package/dist/components/editor-root-scroll-host.d.ts +22 -0
- package/dist/components/editor-root-scroll-host.js +34 -0
- package/dist/components/editor-root-test-surface.d.ts +48 -0
- package/dist/components/editor-root-test-surface.js +6 -0
- package/dist/components/image/ImageOverlayHost.svelte +44 -35
- package/dist/components/image/ImageOverlayHost.svelte.d.ts +5 -6
- package/dist/components/image/ImageProperties.svelte +37 -41
- package/dist/components/image/ImageProperties.svelte.d.ts +9 -4
- package/dist/components/image/ImageResizeHandles.svelte +26 -30
- package/dist/components/image/image-crop.d.ts +5 -11
- package/dist/components/image/image-crop.js +5 -11
- package/dist/components/image/image-edit-commit.d.ts +19 -16
- package/dist/components/image/image-edit-commit.js +74 -38
- package/dist/components/image/image-resize.d.ts +2 -5
- package/dist/components/image/image-resize.js +3 -6
- package/dist/components/image/image-widget-editing.d.ts +3 -3
- package/dist/components/image/image-widget-editing.js +9 -9
- package/dist/components/image/widget-dom.d.ts +2 -3
- package/dist/components/image/widget-dom.js +19 -24
- package/dist/components/image/widget-selection-state.svelte.d.ts +10 -11
- package/dist/components/image/widget-selection-state.svelte.js +26 -19
- package/dist/components/kind-cue.svelte.d.ts +21 -0
- package/dist/components/kind-cue.svelte.js +35 -0
- package/dist/components/link-card/LinkCard.svelte +115 -64
- package/dist/components/link-card/LinkCard.svelte.d.ts +7 -5
- package/dist/components/link-card/LinkCardHost.svelte +42 -33
- package/dist/components/link-card/LinkCardHost.svelte.d.ts +10 -8
- package/dist/components/link-card/link-card-commit.d.ts +16 -19
- package/dist/components/link-card/link-card-commit.js +21 -30
- package/dist/components/link-card/link-card-entry.d.ts +13 -23
- package/dist/components/link-card/link-card-entry.js +16 -24
- package/dist/components/link-card/link-card-state.svelte.d.ts +17 -21
- package/dist/components/link-card/link-card-state.svelte.js +2 -2
- package/dist/components/lrd-map-gate.d.ts +4 -11
- package/dist/components/lrd-map-gate.js +5 -11
- package/dist/components/menu/BlockMenu.svelte +20 -81
- package/dist/components/menu/BlockMenu.svelte.d.ts +11 -9
- package/dist/components/menu/InlineMenuHost.svelte +191 -0
- package/dist/components/menu/InlineMenuHost.svelte.d.ts +13 -0
- package/dist/components/menu/MenuIcon.svelte +3 -103
- package/dist/components/menu/MenuIcon.svelte.d.ts +2 -44
- package/dist/components/menu/SelectionToolbar.svelte +380 -0
- package/dist/components/menu/SelectionToolbar.svelte.d.ts +14 -0
- package/dist/components/menu/clipboard-actions.d.ts +3 -4
- package/dist/components/menu/clipboard-actions.js +3 -4
- package/dist/components/menu/default-context-actions.d.ts +4 -13
- package/dist/components/menu/default-context-actions.js +49 -67
- package/dist/components/menu/flyout-placement.d.ts +2 -2
- package/dist/components/menu/flyout-placement.js +2 -2
- package/dist/components/menu/menu-presence.svelte.d.ts +12 -0
- package/dist/components/menu/menu-presence.svelte.js +19 -0
- package/dist/components/paste-image-arm.d.ts +6 -11
- package/dist/components/paste-image-arm.js +11 -18
- package/dist/components/portal.d.ts +2 -5
- package/dist/components/portal.js +4 -7
- package/dist/core/directive/activate.d.ts +4 -5
- package/dist/core/directive/activate.js +8 -9
- package/dist/core/directive/container-opener.js +13 -12
- package/dist/core/directive/grammar.d.ts +2 -5
- package/dist/core/directive/grammar.js +10 -10
- package/dist/core/directive/kinds.d.ts +4 -7
- package/dist/core/directive/kinds.js +14 -16
- package/dist/core/directive/registry.d.ts +12 -9
- package/dist/core/directive/registry.js +19 -20
- package/dist/core/directive/text-recognizer.d.ts +3 -2
- package/dist/core/directive/text-recognizer.js +5 -9
- package/dist/core/escapable.d.ts +1 -5
- package/dist/core/escapable.js +1 -5
- package/dist/core/inline/backticks.d.ts +3 -4
- package/dist/core/inline/backticks.js +3 -4
- package/dist/core/inline/character-refs.js +2 -1
- package/dist/core/inline/destination-bytes.d.ts +6 -3
- package/dist/core/inline/destination-bytes.js +50 -8
- package/dist/core/inline/entity-widget.d.ts +4 -3
- package/dist/core/inline/entity-widget.js +6 -6
- package/dist/core/inline/format-toggle.d.ts +22 -28
- package/dist/core/inline/format-toggle.js +97 -129
- package/dist/core/inline/html-entities.d.ts +2 -3
- package/dist/core/inline/html-entities.js +2 -3
- package/dist/core/inline/html-tag-grammar.js +6 -2
- package/dist/core/inline/image-dimensions.d.ts +2 -0
- package/dist/core/inline/image-dimensions.js +19 -2
- package/dist/core/inline/image-source-bytes.d.ts +11 -0
- package/dist/core/inline/image-source-bytes.js +71 -0
- package/dist/core/inline/index.d.ts +28 -21
- package/dist/core/inline/index.js +56 -34
- package/dist/core/inline/inline-cache.d.ts +12 -15
- package/dist/core/inline/inline-cache.js +11 -14
- package/dist/core/inline/inline-widgets.d.ts +55 -68
- package/dist/core/inline/inline-widgets.js +55 -58
- package/dist/core/inline/link-destination.d.ts +31 -0
- package/dist/core/inline/link-destination.js +129 -0
- package/dist/core/inline/link-reference-resolver.d.ts +8 -6
- package/dist/core/inline/link-reference-resolver.js +10 -6
- package/dist/core/inline/link-source-bytes.d.ts +31 -0
- package/dist/{components/blocks/text → core/inline}/link-source-bytes.js +43 -54
- package/dist/core/inline/live-edit/read-back.d.ts +29 -0
- package/dist/core/inline/live-edit/read-back.js +50 -0
- package/dist/core/inline/picture.d.ts +10 -0
- package/dist/core/inline/picture.js +40 -0
- package/dist/core/inline/scan/autolinks.d.ts +7 -8
- package/dist/core/inline/scan/autolinks.js +80 -59
- package/dist/core/inline/scan/brackets.d.ts +2 -2
- package/dist/core/inline/scan/brackets.js +6 -103
- package/dist/core/inline/scan/code-spans.d.ts +4 -0
- package/dist/core/inline/scan/code-spans.js +8 -0
- package/dist/core/inline/scan/emphasis.js +10 -14
- package/dist/core/inline/scan/index.d.ts +3 -1
- package/dist/core/inline/scan/index.js +32 -33
- package/dist/core/inline/scan/plugin-syntax.d.ts +28 -36
- package/dist/core/inline/scan/plugin-syntax.js +75 -89
- package/dist/core/inline/scan/scan-state.d.ts +2 -0
- package/dist/core/inline/scan/scan-state.js +1 -0
- package/dist/core/inline/scan/simple-nodes.d.ts +2 -5
- package/dist/core/inline/scan/simple-nodes.js +2 -5
- package/dist/core/inline/scan/triggers.d.ts +17 -0
- package/dist/core/inline/scan/triggers.js +26 -0
- package/dist/core/inline/scan/url.js +8 -10
- package/dist/core/inline/transparency.d.ts +2 -1
- package/dist/core/inline/transparency.js +33 -17
- package/dist/core/inline/visibility.d.ts +30 -49
- package/dist/core/inline/visibility.js +31 -49
- package/dist/core/inline/walk.d.ts +4 -10
- package/dist/core/inline/walk.js +4 -10
- package/dist/core/inline-render.d.ts +22 -27
- package/dist/core/inline-render.js +51 -60
- package/dist/core/lines.d.ts +67 -26
- package/dist/core/lines.js +164 -33
- package/dist/core/metadata-parity.d.ts +9 -0
- package/dist/core/metadata-parity.js +25 -0
- package/dist/core/node-views.d.ts +7 -6
- package/dist/core/node-views.js +5 -5
- package/dist/core/nodes.d.ts +34 -44
- package/dist/core/nodes.js +4 -12
- package/dist/core/parser.d.ts +27 -34
- package/dist/core/parser.js +53 -67
- package/dist/core/parsers/blockquote.d.ts +5 -8
- package/dist/core/parsers/blockquote.js +11 -10
- package/dist/core/parsers/built-in-openers.d.ts +2 -5
- package/dist/core/parsers/built-in-openers.js +5 -8
- package/dist/core/parsers/fence-syntax.d.ts +36 -7
- package/dist/core/parsers/fence-syntax.js +61 -11
- package/dist/core/parsers/fenced-code.d.ts +16 -0
- package/dist/core/parsers/fenced-code.js +16 -15
- package/dist/core/parsers/heading.d.ts +19 -2
- package/dist/core/parsers/heading.js +50 -2
- package/dist/core/parsers/html-block.d.ts +3 -6
- package/dist/core/parsers/html-block.js +10 -11
- package/dist/core/parsers/indented-code.d.ts +1 -1
- package/dist/core/parsers/indented-code.js +2 -8
- package/dist/core/parsers/link-reference.d.ts +5 -3
- package/dist/core/parsers/link-reference.js +116 -120
- package/dist/core/parsers/list.d.ts +12 -5
- package/dist/core/parsers/list.js +53 -36
- package/dist/core/parsers/paragraph.d.ts +3 -3
- package/dist/core/parsers/paragraph.js +14 -5
- package/dist/core/parsers/table-completion.d.ts +2 -5
- package/dist/core/parsers/table-completion.js +7 -10
- package/dist/core/parsers/table.d.ts +8 -8
- package/dist/core/parsers/table.js +23 -26
- package/dist/core/parsers/thematic-break.js +15 -14
- package/dist/core/paths.d.ts +13 -0
- package/dist/core/paths.js +31 -0
- package/dist/core/terminator-escalation.d.ts +0 -7
- package/dist/core/terminator-escalation.js +5 -8
- package/dist/core/url-policy.d.ts +2 -5
- package/dist/core/url-policy.js +8 -12
- package/dist/cursor/caret-memory.d.ts +34 -0
- package/dist/cursor/caret-memory.js +82 -0
- package/dist/cursor/coordinate-spaces.d.ts +26 -19
- package/dist/cursor/coordinate-spaces.js +32 -20
- package/dist/cursor/dom-walk.d.ts +7 -13
- package/dist/cursor/dom-walk.js +7 -13
- package/dist/cursor/edge-affinity.d.ts +7 -35
- package/dist/cursor/edge-affinity.js +13 -44
- package/dist/cursor/focused-caret.d.ts +6 -8
- package/dist/cursor/focused-caret.js +7 -16
- package/dist/cursor/height-model.d.ts +3 -3
- package/dist/cursor/height-model.js +5 -5
- package/dist/cursor/height-oracle.d.ts +10 -7
- package/dist/cursor/height-oracle.js +26 -75
- package/dist/cursor/observe-resize.d.ts +13 -0
- package/dist/cursor/observe-resize.js +43 -0
- package/dist/cursor/overlay-rects.d.ts +2 -5
- package/dist/cursor/overlay-rects.js +2 -5
- package/dist/cursor/overlay-remeasure.d.ts +6 -7
- package/dist/cursor/overlay-remeasure.js +10 -14
- package/dist/cursor/pending-marks.d.ts +7 -9
- package/dist/cursor/pending-marks.js +6 -27
- package/dist/cursor/point-offset.d.ts +16 -10
- package/dist/cursor/point-offset.js +60 -25
- package/dist/cursor/reveal-source.d.ts +7 -11
- package/dist/cursor/reveal-source.js +10 -18
- package/dist/cursor/scroll-ancestors.d.ts +9 -20
- package/dist/cursor/scroll-ancestors.js +14 -26
- package/dist/cursor/scroll-owner.d.ts +92 -0
- package/dist/cursor/scroll-owner.js +283 -0
- package/dist/cursor/scrollport.d.ts +16 -8
- package/dist/cursor/scrollport.js +28 -5
- package/dist/cursor/sticky-column.d.ts +6 -29
- package/dist/cursor/sticky-column.js +6 -49
- package/dist/cursor/sticky-measure.d.ts +14 -9
- package/dist/cursor/sticky-measure.js +99 -49
- package/dist/cursor/surface-backend.d.ts +41 -0
- package/dist/cursor/surface-backend.js +78 -0
- package/dist/cursor/typography-estimates.d.ts +3 -3
- package/dist/cursor/typography-estimates.js +3 -3
- package/dist/cursor/visual-lines.d.ts +25 -13
- package/dist/cursor/visual-lines.js +72 -28
- package/dist/cursor/widget-edge-snap.d.ts +23 -0
- package/dist/cursor/widget-edge-snap.js +39 -0
- package/dist/cursor/widget-offset.d.ts +111 -102
- package/dist/cursor/widget-offset.js +352 -177
- package/dist/debug/diagnostics-report.d.ts +6 -6
- package/dist/debug/diagnostics-report.js +5 -5
- package/dist/debug/dump-tree.js +2 -2
- package/dist/debug/editor-diagnostics.d.ts +15 -0
- package/dist/debug/editor-diagnostics.js +33 -0
- package/dist/debug/inspect.d.ts +2 -2
- package/dist/debug/inspect.js +4 -4
- package/dist/debug/interaction-trace.d.ts +14 -15
- package/dist/debug/interaction-trace.js +19 -20
- package/dist/debug/operations-log.d.ts +1 -1
- package/dist/debug/operations-log.js +1 -1
- package/dist/decorations/buckets.d.ts +6 -12
- package/dist/decorations/buckets.js +4 -11
- package/dist/decorations/decoration-state.svelte.d.ts +2 -3
- package/dist/decorations/decoration-state.svelte.js +24 -26
- package/dist/decorations/island-dom.d.ts +10 -18
- package/dist/decorations/island-dom.js +25 -50
- package/dist/decorations/reserved-attrs.d.ts +6 -8
- package/dist/decorations/reserved-attrs.js +31 -17
- package/dist/decorations/types.d.ts +6 -7
- package/dist/decorations/types.js +2 -1
- package/dist/decorations/use-block-decorations.svelte.d.ts +19 -0
- package/dist/decorations/use-block-decorations.svelte.js +71 -0
- package/dist/decorations/widget-dom.d.ts +3 -3
- package/dist/decorations/widget-dom.js +5 -5
- package/dist/dev-warn.d.ts +5 -2
- package/dist/dev-warn.js +16 -4
- package/dist/editor-actions/ancestry-folds.d.ts +9 -14
- package/dist/editor-actions/ancestry-folds.js +13 -18
- package/dist/editor-actions/block-edit-core.d.ts +49 -22
- package/dist/editor-actions/block-edit-core.js +279 -151
- package/dist/editor-actions/block-edit-scope.d.ts +63 -50
- package/dist/editor-actions/block-edit-scope.js +100 -48
- package/dist/editor-actions/block-edit.d.ts +2 -3
- package/dist/editor-actions/block-edit.js +14 -90
- package/dist/editor-actions/commit/history.d.ts +4 -4
- package/dist/editor-actions/commit/history.js +33 -34
- package/dist/editor-actions/commit/reading-write-gate.d.ts +18 -0
- package/dist/editor-actions/commit/reading-write-gate.js +56 -0
- package/dist/editor-actions/commit/text-batch.d.ts +7 -11
- package/dist/editor-actions/commit/text-batch.js +6 -7
- package/dist/editor-actions/commit/undo-controller.d.ts +6 -4
- package/dist/editor-actions/commit/undo-controller.js +346 -216
- package/dist/editor-actions/container-block-component.d.ts +32 -51
- package/dist/editor-actions/container-block-component.js +66 -92
- package/dist/editor-actions/container-edit.d.ts +4 -2
- package/dist/editor-actions/container-edit.js +14 -44
- package/dist/editor-actions/container-exit-overrides.d.ts +6 -4
- package/dist/editor-actions/container-exit-overrides.js +19 -21
- package/dist/editor-actions/deps.d.ts +25 -32
- package/dist/editor-actions/enter-completion.d.ts +12 -15
- package/dist/editor-actions/enter-completion.js +49 -51
- package/dist/editor-actions/focus/focus-dispatch.d.ts +24 -25
- package/dist/editor-actions/focus/focus-dispatch.js +33 -52
- package/dist/editor-actions/focus/focus-landing.d.ts +11 -5
- package/dist/editor-actions/focus/focus-landing.js +29 -14
- package/dist/editor-actions/focus/focus.d.ts +3 -2
- package/dist/editor-actions/focus/focus.js +42 -59
- package/dist/editor-actions/index.d.ts +4 -3
- package/dist/editor-actions/index.js +5 -4
- package/dist/editor-actions/inline-range-commit.d.ts +18 -16
- package/dist/editor-actions/inline-range-commit.js +45 -54
- package/dist/editor-actions/leaf-write.d.ts +11 -0
- package/dist/editor-actions/leaf-write.js +102 -0
- package/dist/editor-actions/list-context.d.ts +9 -10
- package/dist/editor-actions/list-context.js +115 -110
- package/dist/editor-actions/list-overrides.d.ts +13 -5
- package/dist/editor-actions/list-overrides.js +36 -12
- package/dist/editor-actions/merge-fallback.d.ts +10 -16
- package/dist/editor-actions/merge-fallback.js +11 -22
- package/dist/editor-actions/nested/container-actions.d.ts +37 -0
- package/dist/editor-actions/nested/container-actions.js +42 -0
- package/dist/editor-actions/nested/emptied-container.d.ts +5 -0
- package/dist/editor-actions/nested/emptied-container.js +5 -0
- package/dist/editor-actions/nested/nested-actions.d.ts +22 -25
- package/dist/editor-actions/nested/nested-actions.js +17 -15
- package/dist/editor-actions/nested/nested-block-edit.d.ts +3 -4
- package/dist/editor-actions/nested/nested-block-edit.js +40 -134
- package/dist/editor-actions/nested/nested-focus.d.ts +2 -3
- package/dist/editor-actions/nested/nested-focus.js +33 -21
- package/dist/editor-actions/paste-coordinator.d.ts +3 -2
- package/dist/editor-actions/paste-coordinator.js +17 -13
- package/dist/editor-actions/plugin/chrome-leaf.d.ts +11 -9
- package/dist/editor-actions/plugin/chrome-leaf.js +14 -13
- package/dist/editor-actions/plugin/container.d.ts +55 -76
- package/dist/editor-actions/plugin/container.js +105 -186
- package/dist/editor-actions/plugin/directive-container.d.ts +4 -4
- package/dist/editor-actions/plugin/directive-container.js +7 -8
- package/dist/editor-actions/reorder-action.d.ts +7 -12
- package/dist/editor-actions/reorder-action.js +32 -48
- package/dist/editor-actions/reorder-drag.d.ts +12 -8
- package/dist/editor-actions/reorder-drag.js +45 -41
- package/dist/editor-actions/replacement-focus.d.ts +13 -21
- package/dist/editor-actions/replacement-focus.js +32 -33
- package/dist/editor-actions/search-replace.js +71 -67
- package/dist/editor-actions/stored-caret.d.ts +7 -0
- package/dist/editor-actions/stored-caret.js +10 -0
- package/dist/editor-actions/table-context.d.ts +9 -11
- package/dist/editor-actions/table-context.js +70 -93
- package/dist/editor-actions/unwrap-strategies.d.ts +4 -5
- package/dist/editor-actions/unwrap-strategies.js +52 -63
- package/dist/editor-actions/whole-block-focus-surface.d.ts +19 -28
- package/dist/editor-actions/whole-block-focus-surface.js +43 -53
- package/dist/editor-events.d.ts +25 -29
- package/dist/editor-events.js +17 -28
- package/dist/editor-keys.d.ts +96 -104
- package/dist/editor-keys.js +11 -24
- package/dist/editor-props.d.ts +91 -71
- package/dist/editor-rects.d.ts +23 -34
- package/dist/editor-rects.js +9 -77
- package/dist/env.d.ts +6 -4
- package/dist/env.js +8 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +5 -2
- package/dist/inline-menu/inline-menu-session.d.ts +37 -0
- package/dist/inline-menu/inline-menu-session.js +98 -0
- package/dist/inline-menu/inline-menu-state.svelte.d.ts +63 -0
- package/dist/inline-menu/inline-menu-state.svelte.js +409 -0
- package/dist/inline-menu/types.d.ts +77 -0
- package/dist/inline-menu/types.js +7 -0
- package/dist/invariants/child-id-parity.d.ts +23 -0
- package/dist/invariants/child-id-parity.js +39 -0
- package/dist/invariants/commit-paths.d.ts +4 -4
- package/dist/invariants/commit-paths.js +4 -4
- package/dist/invariants/commit-scope.d.ts +4 -4
- package/dist/invariants/commit-scope.js +9 -8
- package/dist/invariants/context-keys.d.ts +2 -5
- package/dist/invariants/context-keys.js +3 -6
- package/dist/invariants/descriptor.d.ts +2 -6
- package/dist/invariants/descriptor.js +2 -6
- package/dist/invariants/inline-transitions.d.ts +9 -16
- package/dist/invariants/inline-transitions.js +10 -18
- package/dist/invariants/install.d.ts +18 -27
- package/dist/invariants/install.js +29 -30
- package/dist/invariants/keeps-a-block.d.ts +7 -0
- package/dist/invariants/keeps-a-block.js +14 -0
- package/dist/invariants/landable-caret.d.ts +5 -7
- package/dist/invariants/landable-caret.js +8 -11
- package/dist/invariants/landing-focus-scroll.d.ts +7 -0
- package/dist/invariants/landing-focus-scroll.js +13 -0
- package/dist/invariants/landing-value.d.ts +13 -0
- package/dist/invariants/landing-value.js +27 -0
- package/dist/invariants/marker-css-parity.d.ts +5 -6
- package/dist/invariants/marker-css-parity.js +11 -12
- package/dist/invariants/measures-in-own-list.d.ts +6 -0
- package/dist/invariants/measures-in-own-list.js +13 -0
- package/dist/invariants/node-shape.d.ts +18 -37
- package/dist/invariants/node-shape.js +123 -79
- package/dist/invariants/open-tail.d.ts +7 -0
- package/dist/invariants/open-tail.js +45 -0
- package/dist/invariants/placement-ends-widget.d.ts +8 -0
- package/dist/invariants/placement-ends-widget.js +13 -0
- package/dist/invariants/registry.d.ts +27 -66
- package/dist/invariants/registry.js +61 -137
- package/dist/invariants/render-fidelity.d.ts +4 -4
- package/dist/invariants/render-fidelity.js +5 -5
- package/dist/invariants/selection-endpoints.d.ts +6 -7
- package/dist/invariants/selection-endpoints.js +18 -16
- package/dist/invariants/single-node-sink.d.ts +4 -5
- package/dist/invariants/single-node-sink.js +4 -5
- package/dist/invariants/snapshot-integrity.d.ts +5 -6
- package/dist/invariants/snapshot-integrity.js +1 -1
- package/dist/invariants/structural-descriptor.d.ts +6 -15
- package/dist/invariants/structural-descriptor.js +6 -15
- package/dist/menu-icons.d.ts +47 -0
- package/dist/menu-icons.js +113 -0
- package/dist/perf/instruments.d.ts +20 -5
- package/dist/perf/instruments.js +35 -15
- package/dist/perf/use-mount-gauge.svelte.js +4 -4
- package/dist/plugin.d.ts +38 -8
- package/dist/plugin.js +102 -74
- package/dist/plugins/admonitions/AdmonitionBlock.svelte +14 -11
- package/dist/plugins/admonitions/admonition-kind.js +12 -10
- package/dist/plugins/admonitions/convert-document.d.ts +5 -5
- package/dist/plugins/admonitions/convert-document.js +8 -7
- package/dist/plugins/admonitions/gh-alert.d.ts +8 -1
- package/dist/plugins/admonitions/gh-alert.js +21 -22
- package/dist/plugins/admonitions/github-alert-kind.d.ts +5 -7
- package/dist/plugins/admonitions/github-alert-kind.js +28 -37
- package/dist/plugins/admonitions/index.js +2 -2
- package/dist/plugins/admonitions/kinds.d.ts +1 -1
- package/dist/plugins/admonitions/register.js +11 -2
- package/dist/plugins/details/DetailsBlock.svelte +20 -20
- package/dist/plugins/details/details-disclosure.svelte.d.ts +5 -6
- package/dist/plugins/details/details-disclosure.svelte.js +6 -7
- package/dist/plugins/details/details-kind.d.ts +6 -7
- package/dist/plugins/details/details-kind.js +44 -59
- package/dist/plugins/emoji/emoji-recognizer.d.ts +4 -7
- package/dist/plugins/emoji/emoji-recognizer.js +7 -14
- package/dist/plugins/footnotes/FootnoteDefinition.svelte +33 -16
- package/dist/plugins/footnotes/FootnoteReference.svelte +39 -19
- package/dist/plugins/footnotes/constants.d.ts +2 -0
- package/dist/plugins/footnotes/constants.js +3 -0
- package/dist/plugins/footnotes/footnote-definition.d.ts +8 -6
- package/dist/plugins/footnotes/footnote-definition.js +69 -45
- package/dist/plugins/footnotes/footnote-lookup.d.ts +3 -3
- package/dist/plugins/footnotes/footnote-lookup.js +14 -26
- package/dist/plugins/footnotes/footnote-numbering.d.ts +11 -11
- package/dist/plugins/footnotes/footnote-numbering.js +22 -31
- package/dist/plugins/footnotes/footnote-reference.d.ts +4 -4
- package/dist/plugins/footnotes/footnote-reference.js +8 -13
- package/dist/plugins/footnotes/index.js +2 -3
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.d.ts +5 -8
- package/dist/plugins/highlight-occurrences/highlight-occurrences-plugin.js +8 -3
- package/dist/plugins/highlight-occurrences/occurrence-source.d.ts +10 -12
- package/dist/plugins/highlight-occurrences/occurrence-source.js +21 -18
- package/dist/plugins/highlight-occurrences/occurrences.d.ts +11 -11
- package/dist/plugins/highlight-occurrences/occurrences.js +14 -36
- package/dist/plugins/highlight-occurrences/word-char.d.ts +1 -0
- package/dist/plugins/highlight-occurrences/word-char.js +4 -0
- package/dist/plugins/latex/BlockMath.svelte +58 -75
- package/dist/plugins/latex/BlockMath.svelte.d.ts +2 -4
- package/dist/plugins/latex/MathInline.svelte +10 -9
- package/dist/plugins/latex/flanking.d.ts +1 -0
- package/dist/plugins/latex/flanking.js +3 -0
- package/dist/plugins/latex/index.d.ts +1 -1
- package/dist/plugins/latex/latex-kind.d.ts +4 -4
- package/dist/plugins/latex/latex-kind.js +113 -85
- package/dist/plugins/latex/math-completion.d.ts +1 -1
- package/dist/plugins/latex/math-completion.js +5 -8
- package/dist/plugins/latex/math-layout.d.ts +2 -8
- package/dist/plugins/latex/math-layout.js +0 -9
- package/dist/plugins/latex/math-renderer.d.ts +17 -20
- package/dist/plugins/latex/math-renderer.js +21 -38
- package/dist/plugins/latex/math-source.d.ts +4 -8
- package/dist/plugins/latex/math-source.js +36 -75
- package/dist/plugins/latex/register.d.ts +10 -11
- package/dist/plugins/latex/register.js +24 -10
- package/dist/plugins/latex/renderer.d.ts +9 -10
- package/dist/plugins/latex/renderer.js +9 -24
- package/dist/plugins/mermaid/MermaidBlock.svelte +63 -47
- package/dist/plugins/mermaid/index.js +1 -1
- package/dist/plugins/mermaid/mermaid-kind.d.ts +4 -7
- package/dist/plugins/mermaid/mermaid-kind.js +30 -47
- package/dist/plugins/mermaid/mermaid-renderer.d.ts +9 -16
- package/dist/plugins/mermaid/mermaid-renderer.js +12 -31
- package/dist/plugins/mermaid/register.d.ts +3 -3
- package/dist/plugins/mermaid/register.js +5 -5
- package/dist/plugins/mermaid/renderer.d.ts +5 -5
- package/dist/plugins/mermaid/renderer.js +8 -11
- package/dist/plugins/parrot/ParrotBlock.svelte +18 -7
- package/dist/plugins/parrot/ParrotBlock.svelte.d.ts +2 -2
- package/dist/plugins/parrot/parrot-plugin.js +3 -3
- package/dist/plugins/slash-commands/filter.d.ts +23 -0
- package/dist/plugins/slash-commands/filter.js +31 -0
- package/dist/plugins/slash-commands/index.d.ts +2 -0
- package/dist/plugins/slash-commands/index.js +2 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.d.ts +12 -0
- package/dist/plugins/slash-commands/slash-commands-plugin.js +40 -0
- package/dist/plugins/slash-commands/slash-source.d.ts +36 -0
- package/dist/plugins/slash-commands/slash-source.js +108 -0
- package/dist/plugins/toc/TocBlock.svelte +23 -22
- package/dist/plugins/toc/TocBlock.svelte.d.ts +2 -3
- package/dist/plugins/toc/heading-outline.d.ts +7 -12
- package/dist/plugins/toc/heading-outline.js +22 -36
- package/dist/plugins/toc/navigation-queue.d.ts +2 -4
- package/dist/plugins/toc/toc-plugin.d.ts +5 -5
- package/dist/plugins/toc/toc-plugin.js +20 -13
- package/dist/presentation-mode.d.ts +15 -23
- package/dist/presentation-mode.js +19 -25
- package/dist/reactivity/block-list-state.svelte.d.ts +9 -11
- package/dist/reactivity/block-list-state.svelte.js +8 -9
- package/dist/reactivity/block-window.svelte.d.ts +12 -6
- package/dist/reactivity/block-window.svelte.js +44 -17
- package/dist/reactivity/child-list.d.ts +34 -0
- package/dist/reactivity/child-list.js +48 -0
- package/dist/reactivity/content-version.svelte.d.ts +4 -7
- package/dist/reactivity/content-version.svelte.js +3 -5
- package/dist/reactivity/hold-across.d.ts +39 -0
- package/dist/reactivity/hold-across.js +57 -0
- package/dist/reactivity/layout-state.svelte.d.ts +27 -0
- package/dist/reactivity/layout-state.svelte.js +51 -0
- package/dist/reactivity/list-tree.d.ts +39 -0
- package/dist/reactivity/list-tree.js +132 -0
- package/dist/reactivity/list-windowing.svelte.d.ts +50 -71
- package/dist/reactivity/list-windowing.svelte.js +143 -292
- package/dist/reactivity/measure-batch.d.ts +6 -8
- package/dist/reactivity/measure-batch.js +5 -6
- package/dist/reactivity/publish-ref.svelte.d.ts +16 -41
- package/dist/reactivity/publish-ref.svelte.js +21 -85
- package/dist/reactivity/scope-geometry.d.ts +6 -13
- package/dist/reactivity/scope-geometry.js +7 -14
- package/dist/reactivity/state-registry.d.ts +5 -5
- package/dist/reactivity/state-registry.js +11 -15
- package/dist/reactivity/use-container-windowing.svelte.d.ts +13 -26
- package/dist/reactivity/use-container-windowing.svelte.js +64 -74
- package/dist/reactivity/use-measured-child.svelte.d.ts +10 -0
- package/dist/reactivity/use-measured-child.svelte.js +41 -0
- package/dist/reactivity/use-window-floor.svelte.d.ts +2 -0
- package/dist/reactivity/use-window-floor.svelte.js +27 -0
- package/dist/reactivity/window-slice.d.ts +4 -4
- package/dist/reactivity/window-slice.js +0 -2
- package/dist/renderer-slot.d.ts +48 -0
- package/dist/renderer-slot.js +85 -0
- package/dist/scan-index.d.ts +4 -4
- package/dist/scan-index.js +4 -4
- package/dist/schema/block-commands.d.ts +69 -54
- package/dist/schema/block-commands.js +91 -104
- package/dist/schema/block-completions.d.ts +16 -19
- package/dist/schema/block-completions.js +25 -32
- package/dist/schema/block-component-registry.d.ts +13 -14
- package/dist/schema/block-component-registry.js +19 -17
- package/dist/schema/block-kind-descriptor.d.ts +234 -168
- package/dist/schema/block-kind-descriptor.js +151 -66
- package/dist/schema/block-openers.d.ts +48 -39
- package/dist/schema/block-openers.js +73 -83
- package/dist/schema/built-in-descriptors.d.ts +3 -5
- package/dist/schema/built-in-descriptors.js +96 -80
- package/dist/schema/child-spans.d.ts +12 -10
- package/dist/schema/child-spans.js +68 -34
- package/dist/schema/closure.d.ts +18 -16
- package/dist/schema/closure.js +24 -14
- package/dist/schema/command-id.d.ts +6 -8
- package/dist/schema/command-id.js +20 -25
- package/dist/schema/commands.d.ts +79 -81
- package/dist/schema/commands.js +156 -116
- package/dist/schema/container-raw.d.ts +51 -11
- package/dist/schema/container-raw.js +143 -14
- package/dist/schema/container-rebuilders.d.ts +17 -15
- package/dist/schema/container-rebuilders.js +30 -22
- package/dist/schema/context-actions.d.ts +25 -13
- package/dist/schema/context-actions.js +32 -17
- package/dist/schema/define-plugin-block.d.ts +8 -6
- package/dist/schema/define-plugin-block.js +6 -4
- package/dist/schema/fenced-code-raw.d.ts +30 -17
- package/dist/schema/fenced-code-raw.js +155 -107
- package/dist/schema/global-commands.d.ts +6 -6
- package/dist/schema/global-commands.js +14 -22
- package/dist/schema/height-estimates.d.ts +31 -0
- package/dist/schema/height-estimates.js +64 -0
- package/dist/schema/inline-construct-policy.d.ts +42 -55
- package/dist/schema/inline-construct-policy.js +36 -35
- package/dist/schema/insert-catalogue.d.ts +30 -0
- package/dist/schema/insert-catalogue.js +95 -0
- package/dist/schema/keybinding-overrides.d.ts +9 -11
- package/dist/schema/keybinding-overrides.js +1 -1
- package/dist/schema/keybindings.d.ts +15 -7
- package/dist/schema/keybindings.js +21 -9
- package/dist/schema/merge-rules.d.ts +5 -7
- package/dist/schema/merge-rules.js +7 -9
- package/dist/schema/opener-priorities.d.ts +4 -4
- package/dist/schema/opener-priorities.js +4 -4
- package/dist/schema/operations.d.ts +9 -11
- package/dist/schema/operations.js +3 -3
- package/dist/schema/page-role.d.ts +14 -0
- package/dist/schema/page-role.js +19 -0
- package/dist/schema/plugin-activation.d.ts +4 -6
- package/dist/schema/plugin-activation.js +12 -10
- package/dist/schema/plugin-editor-context.d.ts +25 -10
- package/dist/schema/plugin-editor-context.js +40 -9
- package/dist/schema/plugin-install.d.ts +49 -17
- package/dist/schema/plugin-install.js +51 -25
- package/dist/schema/plugin-kind.d.ts +12 -8
- package/dist/schema/plugin-kind.js +35 -42
- package/dist/schema/plugin-name.js +3 -3
- package/dist/schema/plugin-registry.d.ts +54 -0
- package/dist/schema/plugin-registry.js +70 -0
- package/dist/schema/reading.d.ts +23 -0
- package/dist/schema/reading.js +7 -0
- package/dist/schema/register-once.d.ts +3 -5
- package/dist/schema/register-once.js +7 -16
- package/dist/schema/registration-checks.d.ts +12 -16
- package/dist/schema/registration-checks.js +35 -51
- package/dist/schema/registration-pairs.d.ts +54 -0
- package/dist/schema/registration-pairs.js +48 -0
- package/dist/schema/registration-pending.d.ts +8 -12
- package/dist/schema/registration-pending.js +9 -9
- package/dist/schema/registry-reset.d.ts +8 -4
- package/dist/schema/registry-reset.js +13 -26
- package/dist/schema/registry-view.d.ts +25 -13
- package/dist/schema/registry-view.js +26 -20
- package/dist/schema/reserved-chords.d.ts +9 -10
- package/dist/schema/reserved-chords.js +73 -78
- package/dist/schema/reserved-chrome.d.ts +12 -11
- package/dist/schema/reserved-chrome.js +15 -11
- package/dist/schema/setext-raw.d.ts +13 -0
- package/dist/schema/setext-raw.js +33 -0
- package/dist/schema/stored-as.d.ts +20 -0
- package/dist/schema/stored-as.js +6 -0
- package/dist/schema/table-cell-raw.d.ts +18 -7
- package/dist/schema/table-cell-raw.js +28 -7
- package/dist/schema/whole-block-unit.d.ts +5 -4
- package/dist/schema/whole-block-unit.js +5 -4
- package/dist/search/document-scan.d.ts +3 -3
- package/dist/search/document-scan.js +2 -2
- package/dist/search/matcher.d.ts +1 -1
- package/dist/search/regex-executor.d.ts +5 -6
- package/dist/search/regex-executor.js +6 -8
- package/dist/search/replace.d.ts +2 -5
- package/dist/search/replace.js +2 -5
- package/dist/search/search-state.svelte.d.ts +5 -5
- package/dist/search/search-state.svelte.js +12 -16
- package/dist/selection/autoscroll.d.ts +6 -9
- package/dist/selection/block-hit-test.d.ts +16 -24
- package/dist/selection/block-hit-test.js +29 -22
- package/dist/selection/caret-doors.d.ts +15 -14
- package/dist/selection/caret-doors.js +37 -26
- package/dist/selection/caret-landing.d.ts +62 -0
- package/dist/selection/caret-landing.js +157 -0
- package/dist/selection/caret-restore.d.ts +17 -10
- package/dist/selection/caret-restore.js +10 -22
- package/dist/selection/caret-target.d.ts +30 -0
- package/dist/selection/caret-target.js +84 -0
- package/dist/selection/char-endpoint-snap.d.ts +6 -10
- package/dist/selection/char-endpoint-snap.js +8 -14
- package/dist/selection/clipboard-text.d.ts +5 -12
- package/dist/selection/clipboard-text.js +69 -172
- package/dist/selection/covered-block.d.ts +6 -8
- package/dist/selection/covered-block.js +8 -19
- package/dist/selection/cross-block/clipboard.d.ts +3 -2
- package/dist/selection/cross-block/clipboard.js +13 -4
- package/dist/selection/cross-block/dispatch.d.ts +47 -43
- package/dist/selection/cross-block/dispatch.js +12 -23
- package/dist/selection/cross-block/format-range.d.ts +18 -21
- package/dist/selection/cross-block/format-range.js +104 -103
- package/dist/selection/cross-block/format-toggle.d.ts +10 -15
- package/dist/selection/cross-block/format-toggle.js +28 -33
- package/dist/selection/cross-block/keydown.d.ts +4 -4
- package/dist/selection/cross-block/keydown.js +93 -152
- package/dist/selection/cross-block/ops.d.ts +19 -34
- package/dist/selection/cross-block/ops.js +110 -95
- package/dist/selection/cross-block/paste.d.ts +2 -3
- package/dist/selection/cross-block/paste.js +61 -104
- package/dist/selection/cross-block/pointer.d.ts +17 -15
- package/dist/selection/cross-block/pointer.js +74 -25
- package/dist/selection/cross-block/type-replace.d.ts +4 -6
- package/dist/selection/cross-block/type-replace.js +53 -146
- package/dist/selection/dead-space-caret.d.ts +20 -28
- package/dist/selection/dead-space-caret.js +79 -87
- package/dist/selection/drag-pointer.d.ts +22 -5
- package/dist/selection/drag-pointer.js +63 -31
- package/dist/selection/gap-caret.d.ts +17 -28
- package/dist/selection/gap-caret.js +14 -26
- package/dist/selection/grid-selection.d.ts +12 -0
- package/dist/selection/grid-selection.js +22 -0
- package/dist/selection/keyboard-extend.d.ts +27 -39
- package/dist/selection/keyboard-extend.js +94 -116
- package/dist/selection/multi-click.d.ts +37 -0
- package/dist/selection/multi-click.js +197 -0
- package/dist/selection/native-bridge.d.ts +30 -37
- package/dist/selection/native-bridge.js +80 -100
- package/dist/selection/nearest-block.d.ts +17 -12
- package/dist/selection/nearest-block.js +37 -18
- package/dist/selection/path-lookup.d.ts +31 -14
- package/dist/selection/path-lookup.js +110 -20
- package/dist/selection/path-math.d.ts +9 -11
- package/dist/selection/path-math.js +5 -7
- package/dist/selection/pointer-gesture.d.ts +9 -0
- package/dist/selection/pointer-gesture.js +11 -0
- package/dist/selection/pointer-session.d.ts +10 -16
- package/dist/selection/pointer-session.js +6 -7
- package/dist/selection/primitives.d.ts +64 -33
- package/dist/selection/primitives.js +61 -53
- package/dist/selection/range-coverage.d.ts +94 -0
- package/dist/selection/range-coverage.js +365 -0
- package/dist/selection/range-delete-ceremony.d.ts +28 -74
- package/dist/selection/range-delete-ceremony.js +100 -141
- package/dist/selection/range-delete-chrome.d.ts +20 -33
- package/dist/selection/range-delete-chrome.js +53 -78
- package/dist/selection/range-delete-table-coverage.d.ts +11 -25
- package/dist/selection/range-delete-table-coverage.js +42 -112
- package/dist/selection/range-delete-table.d.ts +14 -12
- package/dist/selection/range-delete-table.js +106 -310
- package/dist/selection/range-delete.d.ts +18 -19
- package/dist/selection/range-delete.js +83 -123
- package/dist/selection/round-trip-restore.d.ts +18 -0
- package/dist/selection/round-trip-restore.js +19 -0
- package/dist/selection/selection-announcer.d.ts +17 -0
- package/dist/selection/selection-announcer.js +25 -0
- package/dist/selection/selection-description.d.ts +4 -3
- package/dist/selection/selection-description.js +5 -4
- package/dist/selection/selection-drop.d.ts +52 -0
- package/dist/selection/selection-drop.js +317 -0
- package/dist/selection/selection-restore.d.ts +20 -33
- package/dist/selection/selection-restore.js +21 -44
- package/dist/selection/selection-state.svelte.d.ts +50 -42
- package/dist/selection/selection-state.svelte.js +144 -98
- package/dist/selection/shared-keydown.d.ts +22 -27
- package/dist/selection/shared-keydown.js +25 -45
- package/dist/selection/table-endpoint-snap.d.ts +17 -41
- package/dist/selection/table-endpoint-snap.js +54 -80
- package/dist/selection/table-rect-extend.d.ts +3 -6
- package/dist/selection/table-rect-extend.js +19 -14
- package/dist/styles/editor-theme.css +75 -53
- package/dist/styles/editor.css +248 -139
- package/dist/testing/conformance-core.d.ts +50 -18
- package/dist/testing/conformance-core.js +88 -50
- package/dist/testing/container-conformance.d.ts +48 -84
- package/dist/testing/container-conformance.js +159 -285
- package/dist/testing/headless-actions.d.ts +34 -19
- package/dist/testing/headless-actions.js +116 -65
- package/dist/testing/headless-block-list.svelte.d.ts +16 -0
- package/dist/testing/headless-block-list.svelte.js +22 -0
- package/dist/testing/inline-conformance.d.ts +15 -22
- package/dist/testing/inline-conformance.js +131 -148
- package/dist/testing/kind-conformance.d.ts +19 -24
- package/dist/testing/kind-conformance.js +204 -117
- package/dist/testing/kit-reading.d.ts +7 -0
- package/dist/testing/kit-reading.js +16 -0
- package/dist/testing/mount-dom-stubs.d.ts +4 -5
- package/dist/testing/mount-dom-stubs.js +8 -5
- package/dist/testing/parse-convergence.d.ts +10 -10
- package/dist/testing/parse-convergence.js +14 -49
- package/dist/testing.d.ts +13 -9
- package/dist/testing.js +28 -38
- package/dist/tree-operations/blockquote.d.ts +8 -14
- package/dist/tree-operations/blockquote.js +25 -45
- package/dist/tree-operations/chain-rebuild.d.ts +34 -25
- package/dist/tree-operations/chain-rebuild.js +115 -52
- package/dist/tree-operations/children.d.ts +5 -9
- package/dist/tree-operations/children.js +7 -11
- package/dist/tree-operations/cleanup.d.ts +6 -7
- package/dist/tree-operations/cleanup.js +14 -11
- package/dist/tree-operations/clone.js +5 -4
- package/dist/tree-operations/container-lift.d.ts +10 -5
- package/dist/tree-operations/container-lift.js +20 -14
- package/dist/tree-operations/container-offsets.d.ts +22 -0
- package/dist/tree-operations/container-offsets.js +89 -0
- package/dist/tree-operations/content-write.d.ts +52 -29
- package/dist/tree-operations/content-write.js +155 -110
- package/dist/tree-operations/index.d.ts +4 -4
- package/dist/tree-operations/index.js +4 -4
- package/dist/tree-operations/keep-one-block.d.ts +10 -0
- package/dist/tree-operations/keep-one-block.js +19 -0
- package/dist/tree-operations/leaf-range.d.ts +33 -0
- package/dist/tree-operations/leaf-range.js +67 -0
- package/dist/tree-operations/list/empty-check.d.ts +2 -3
- package/dist/tree-operations/list/empty-check.js +4 -4
- package/dist/tree-operations/list/exit-replacement.d.ts +4 -6
- package/dist/tree-operations/list/exit-replacement.js +4 -9
- package/dist/tree-operations/list/item-partition.d.ts +2 -2
- package/dist/tree-operations/list/item-partition.js +2 -2
- package/dist/tree-operations/list/list-builders.d.ts +18 -16
- package/dist/tree-operations/list/list-builders.js +59 -30
- package/dist/tree-operations/list/ordered-markers.d.ts +7 -16
- package/dist/tree-operations/list/ordered-markers.js +7 -16
- package/dist/tree-operations/list/reconcile-task.d.ts +16 -7
- package/dist/tree-operations/list/reconcile-task.js +80 -23
- package/dist/tree-operations/list/sublist-separator.d.ts +7 -7
- package/dist/tree-operations/list/sublist-separator.js +20 -27
- package/dist/tree-operations/list/task-paragraph.d.ts +25 -0
- package/dist/tree-operations/list/task-paragraph.js +54 -0
- package/dist/tree-operations/list/unwrap-merge.d.ts +8 -16
- package/dist/tree-operations/list/unwrap-merge.js +44 -79
- package/dist/tree-operations/node-ops.d.ts +30 -52
- package/dist/tree-operations/node-ops.js +152 -218
- package/dist/tree-operations/node-primitives.d.ts +44 -31
- package/dist/tree-operations/node-primitives.js +84 -60
- package/dist/tree-operations/open-tail.d.ts +25 -0
- package/dist/tree-operations/open-tail.js +100 -0
- package/dist/tree-operations/parse-block.d.ts +15 -2
- package/dist/tree-operations/parse-block.js +19 -4
- package/dist/tree-operations/paste/apply.d.ts +7 -8
- package/dist/tree-operations/paste/apply.js +33 -63
- package/dist/tree-operations/paste/body-write.d.ts +8 -6
- package/dist/tree-operations/paste/body-write.js +13 -14
- package/dist/tree-operations/paste/container-match.d.ts +7 -10
- package/dist/tree-operations/paste/container-match.js +76 -58
- package/dist/tree-operations/paste/container-paste.d.ts +3 -3
- package/dist/tree-operations/paste/container-paste.js +3 -3
- package/dist/tree-operations/paste/dispatch.d.ts +26 -29
- package/dist/tree-operations/paste/dispatch.js +68 -53
- package/dist/tree-operations/paste/focus-target.d.ts +11 -14
- package/dist/tree-operations/paste/focus-target.js +13 -18
- package/dist/tree-operations/paste/hooks.d.ts +7 -12
- package/dist/tree-operations/paste/hooks.js +49 -46
- package/dist/tree-operations/paste/line-ending.d.ts +11 -0
- package/dist/tree-operations/paste/line-ending.js +32 -0
- package/dist/tree-operations/paste/list-absorb.d.ts +8 -11
- package/dist/tree-operations/paste/list-absorb.js +17 -19
- package/dist/tree-operations/paste/list-break-out.d.ts +12 -11
- package/dist/tree-operations/paste/list-break-out.js +24 -32
- package/dist/tree-operations/paste/parent-scope.d.ts +8 -12
- package/dist/tree-operations/paste/parent-scope.js +9 -16
- package/dist/tree-operations/paste/paste-deps.d.ts +14 -9
- package/dist/tree-operations/paste/paste-replacement.d.ts +20 -3
- package/dist/tree-operations/paste/paste-replacement.js +73 -42
- package/dist/tree-operations/paste/paste-transforms.d.ts +5 -7
- package/dist/tree-operations/paste/paste-transforms.js +18 -27
- package/dist/tree-operations/paste/replacement-parse.d.ts +19 -0
- package/dist/tree-operations/paste/replacement-parse.js +24 -0
- package/dist/tree-operations/paste/strategy.d.ts +1 -1
- package/dist/tree-operations/paste/strategy.js +1 -1
- package/dist/tree-operations/paste/table-slice.js +15 -10
- package/dist/tree-operations/paste-surfaces.d.ts +18 -29
- package/dist/tree-operations/paste-surfaces.js +14 -10
- package/dist/tree-operations/path-mutate.d.ts +7 -8
- package/dist/tree-operations/path-mutate.js +4 -4
- package/dist/tree-operations/reorder-unit.d.ts +4 -5
- package/dist/tree-operations/reorder-unit.js +5 -6
- package/dist/tree-operations/reorder.d.ts +7 -9
- package/dist/tree-operations/reorder.js +39 -40
- package/dist/tree-operations/settle.d.ts +42 -53
- package/dist/tree-operations/settle.js +241 -162
- package/dist/tree-operations/sharing.d.ts +5 -5
- package/dist/tree-operations/splice-many.d.ts +5 -5
- package/dist/tree-operations/splice-many.js +5 -5
- package/dist/tree-operations/stored-as.d.ts +13 -0
- package/dist/tree-operations/stored-as.js +48 -0
- package/dist/tree-operations/structural-change.d.ts +11 -15
- package/dist/tree-operations/structural-change.js +10 -14
- package/dist/tree-operations/structural-suffix.d.ts +22 -0
- package/dist/tree-operations/structural-suffix.js +61 -0
- package/dist/tree-operations/sub-table-copy.d.ts +7 -0
- package/dist/tree-operations/sub-table-copy.js +40 -36
- package/dist/tree-operations/table-grid-clipboard.d.ts +2 -7
- package/dist/tree-operations/table-grid-clipboard.js +11 -36
- package/dist/tree-operations/table-mutations.d.ts +7 -3
- package/dist/tree-operations/table-mutations.js +45 -9
- package/dist/tree-operations/unshare.d.ts +11 -15
- package/dist/tree-operations/unshare.js +15 -17
- package/dist/undo/manager.js +1 -1
- package/dist/undo/types.d.ts +2 -2
- package/docs/guide/consumer-guide.md +329 -205
- package/docs/guide/directives.md +7 -7
- package/docs/guide/plugin-api.md +267 -183
- package/docs/guide/plugin-guide.md +341 -235
- package/docs/guide/plugin-testing.md +96 -82
- package/package.json +17 -21
- package/dist/ambient/ambient-cursor.d.ts +0 -41
- package/dist/ambient/ambient-cursor.js +0 -120
- package/dist/components/blocks/code/code-paste.d.ts +0 -24
- package/dist/components/blocks/code/code-paste.js +0 -21
- package/dist/components/blocks/table/cell-clipboard.d.ts +0 -33
- package/dist/components/blocks/table/cell-clipboard.js +0 -67
- package/dist/components/blocks/text/hidden-suffix.d.ts +0 -10
- package/dist/components/blocks/text/hidden-suffix.js +0 -15
- package/dist/components/blocks/text/link-source-bytes.d.ts +0 -37
- package/dist/components/image/image-source-bytes.d.ts +0 -15
- package/dist/components/image/image-source-bytes.js +0 -80
- package/dist/cursor/content-offsets.d.ts +0 -29
- package/dist/cursor/content-offsets.js +0 -151
- package/dist/cursor/reveal-anchor.d.ts +0 -30
- package/dist/cursor/reveal-anchor.js +0 -31
- package/dist/invariants/split-landing.d.ts +0 -8
- package/dist/invariants/split-landing.js +0 -15
- package/dist/selection/double-click-trim.d.ts +0 -17
- package/dist/selection/double-click-trim.js +0 -57
- package/dist/tree-operations/list/terminator.d.ts +0 -17
- package/dist/tree-operations/list/terminator.js +0 -60
- package/dist/tree-operations/paste/replace-block-at-parent.d.ts +0 -29
- package/dist/tree-operations/paste/replace-block-at-parent.js +0 -75
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type StickyColumnDirection } from '../../../block-component';
|
|
2
1
|
import type { NodeView } from '../../../core/node-views';
|
|
3
2
|
import { type CommandId } from '../../../schema/commands';
|
|
4
3
|
type $$ComponentProps = {
|
|
@@ -11,13 +10,13 @@ declare const CodeBlock: import("svelte").Component<$$ComponentProps, {
|
|
|
11
10
|
focusable: true;
|
|
12
11
|
focus: (offset: number) => void;
|
|
13
12
|
parkCaret: (offset: number) => void;
|
|
14
|
-
focusAtColumn: (x: number, from: StickyColumnDirection) => void;
|
|
13
|
+
focusAtColumn: (x: number, from: import("../../../block-component").StickyColumnDirection) => void;
|
|
15
14
|
getCursorOffset: () => number | null;
|
|
16
15
|
getSelectedText: () => string;
|
|
17
16
|
setSelection: (start: number, end: number) => void;
|
|
18
17
|
measurePartialRects: (startOffset: number, endOffset: number) => DOMRect[];
|
|
19
18
|
runCommand: (id: CommandId) => boolean;
|
|
20
|
-
insertMarkdown: (md: string) => boolean
|
|
19
|
+
insertMarkdown: (md: string) => Promise<boolean>;
|
|
21
20
|
}, "">;
|
|
22
21
|
type CodeBlock = ReturnType<typeof CodeBlock>;
|
|
23
22
|
export default CodeBlock;
|
|
@@ -10,54 +10,59 @@
|
|
|
10
10
|
codeLanguageLabel
|
|
11
11
|
} from '../../../a11y-strings';
|
|
12
12
|
import type { CodeMenuItem } from '../../../editor-keys';
|
|
13
|
-
import {
|
|
13
|
+
import type { MenuPresence } from '../../menu/menu-presence.svelte';
|
|
14
|
+
import type { PluginActivation } from '../../../schema/plugin-activation';
|
|
15
|
+
import { getLanguageAliases, getLanguageGrammar, listLanguages } from './code-languages';
|
|
16
|
+
import { fenceLanguage } from '../../../core/parsers/fence-syntax';
|
|
14
17
|
|
|
15
|
-
//
|
|
16
|
-
//
|
|
18
|
+
// What the modes that draw no fence show instead: the language control plus whatever
|
|
19
|
+
// actions the host has enabled by installing a hook. A draft lives here and only a
|
|
17
20
|
// commit reaches the tree.
|
|
18
21
|
let {
|
|
19
22
|
info,
|
|
23
|
+
activation,
|
|
20
24
|
editable,
|
|
21
25
|
autoOpen = false,
|
|
22
26
|
onCommit,
|
|
23
27
|
onCancel,
|
|
24
28
|
onRun,
|
|
25
29
|
onCopy,
|
|
26
|
-
menuItems
|
|
30
|
+
menuItems,
|
|
31
|
+
menuPresence
|
|
27
32
|
}: {
|
|
28
33
|
/** The opener's full info string; the button shows its first token. */
|
|
29
34
|
info: string;
|
|
30
|
-
/**
|
|
35
|
+
/** The editor's plugins, so the picker offers only the languages this editor highlights. */
|
|
36
|
+
activation: PluginActivation;
|
|
37
|
+
/** False in reading mode, which writes no bytes, so the chip is then a label. */
|
|
31
38
|
editable: boolean;
|
|
32
|
-
/** Open the language field as soon as the
|
|
33
|
-
*
|
|
39
|
+
/** Open the language field as soon as the gutter mounts, for a fence the user just
|
|
40
|
+
* created and has not given a language yet. */
|
|
34
41
|
autoOpen?: boolean;
|
|
35
42
|
/** Only Enter or a list pick calls this, and it owns the caret's landing afterwards. */
|
|
36
43
|
onCommit: (info: string) => void;
|
|
37
44
|
/** Nothing written. Escape asks for the caret back; a blur must not yank it from
|
|
38
45
|
* wherever the user just clicked, so it does not. */
|
|
39
46
|
onCancel: (returnCaret: boolean) => void;
|
|
40
|
-
/** Absent when the host installed no execution hook
|
|
47
|
+
/** Absent when the host installed no execution hook, so no run button renders. */
|
|
41
48
|
onRun?: () => void;
|
|
42
49
|
/** Copies the fence body; resolves once the clipboard write settles. */
|
|
43
50
|
onCopy: () => Promise<boolean>;
|
|
44
51
|
/** Consulted on each open, so items read live state. Empty renders no affordance. */
|
|
45
52
|
menuItems?: () => readonly CodeMenuItem[];
|
|
53
|
+
menuPresence: MenuPresence;
|
|
46
54
|
} = $props();
|
|
47
55
|
|
|
48
|
-
const language = $derived(info
|
|
56
|
+
const language = $derived(fenceLanguage(info) || 'text');
|
|
49
57
|
|
|
50
58
|
let editing = $state(false);
|
|
51
59
|
let draft = $state('');
|
|
52
|
-
//
|
|
53
|
-
// the
|
|
54
|
-
// shows with the current language highlighted, which is also what Enter would re-commit.
|
|
60
|
+
// Filtering waits for a keystroke: the field opens empty, and until then the whole list
|
|
61
|
+
// shows with the block's own language leading it, which is what a bare Enter re-commits.
|
|
55
62
|
let filtering = $state(false);
|
|
56
|
-
// Whether the LIST is what Enter should take. Until the user types or arrows, it is not:
|
|
57
|
-
// the highlight is only a where-you-stand marker, and a language the registry does not
|
|
58
|
-
// carry (an unregistered grammar, or a bare mount that registered none) would otherwise
|
|
59
|
-
// have no entry to seat on, so a bare Enter would rewrite it to the list's first row.
|
|
60
63
|
let activeIndex = $state(0);
|
|
64
|
+
/** The user moved the highlight, so the row it sits on wins over whatever they typed. */
|
|
65
|
+
let highlightMoved = false;
|
|
61
66
|
let copied = $state(false);
|
|
62
67
|
let menuOpen = $state(false);
|
|
63
68
|
let openMenuItems = $state<readonly CodeMenuItem[]>([]);
|
|
@@ -70,32 +75,44 @@
|
|
|
70
75
|
let menuEl: HTMLElement | undefined = $state();
|
|
71
76
|
let menuButtonEl: HTMLElement | undefined = $state();
|
|
72
77
|
|
|
73
|
-
// The picker offers what the renderer can
|
|
74
|
-
//
|
|
75
|
-
// registers under that name.
|
|
78
|
+
// The picker offers what the renderer can highlight. `text` is always offered: it is how a
|
|
79
|
+
// user clears a language, and no grammar registers under that name.
|
|
76
80
|
const suggestions = $derived.by(() => {
|
|
77
|
-
const all = ['text', ...listLanguages().filter((name) => name !== 'text')];
|
|
81
|
+
const all = ['text', ...listLanguages(activation).filter((name) => name !== 'text')];
|
|
78
82
|
const needle = filtering ? draft.trim().toLowerCase() : '';
|
|
79
83
|
if (needle.length > 0) {
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
// An alternate spelling is a search key, never a row of its own: `rs` finds `rust`,
|
|
85
|
+
// and the list still carries one entry per language.
|
|
86
|
+
const spellings = (name: string) => [name, ...getLanguageAliases(name, activation)];
|
|
87
|
+
const starts = all.filter((name) => spellings(name).some((s) => s.startsWith(needle)));
|
|
88
|
+
const seated = new Set(starts);
|
|
89
|
+
const contains = all.filter(
|
|
90
|
+
(name) => !seated.has(name) && spellings(name).some((s) => s.includes(needle))
|
|
91
|
+
);
|
|
82
92
|
return [...starts, ...contains];
|
|
83
93
|
}
|
|
84
|
-
// Unfiltered, the block's own language leads
|
|
85
|
-
// that matters
|
|
86
|
-
// scrolled to — which is why nothing here scrolls itself on open.
|
|
94
|
+
// Unfiltered, the block's own language leads, spelled as the fence spells it, so the
|
|
95
|
+
// row that matters is where the eye already is and its canonical form is not below it.
|
|
87
96
|
const current = language;
|
|
88
|
-
const rest = all.filter((name) => name !== current);
|
|
89
|
-
return
|
|
97
|
+
const rest = all.filter((name) => name !== current && !isCurrentLanguage(name));
|
|
98
|
+
return [current, ...rest];
|
|
90
99
|
});
|
|
91
100
|
|
|
101
|
+
/** One language in two spellings is still the block's own, so the check compares what the
|
|
102
|
+
* registry resolves rather than the text. */
|
|
103
|
+
function isCurrentLanguage(name: string): boolean {
|
|
104
|
+
const canonical = (spelling: string) =>
|
|
105
|
+
getLanguageGrammar(spelling, activation)?.name ?? spelling.toLowerCase();
|
|
106
|
+
return canonical(name) === canonical(language);
|
|
107
|
+
}
|
|
108
|
+
|
|
92
109
|
// The highlight cannot outrun a filter that shortened the list under it.
|
|
93
110
|
$effect(() => {
|
|
94
111
|
if (activeIndex >= suggestions.length) activeIndex = 0;
|
|
95
112
|
});
|
|
96
113
|
|
|
97
|
-
//
|
|
98
|
-
// write
|
|
114
|
+
// Opens on mount for a fence that was just created. Checked against `editable` like every
|
|
115
|
+
// other write, and fired once: setting it again would reopen the field after every commit.
|
|
99
116
|
let autoOpened = false;
|
|
100
117
|
$effect(() => {
|
|
101
118
|
if (!autoOpen || autoOpened || !editable) return;
|
|
@@ -107,15 +124,14 @@
|
|
|
107
124
|
if (!editable) return;
|
|
108
125
|
draft = '';
|
|
109
126
|
filtering = false;
|
|
127
|
+
highlightMoved = false;
|
|
110
128
|
menuOpen = false;
|
|
111
129
|
editing = true;
|
|
112
130
|
// Row 0 is the block's own language (see `suggestions`), so the highlight starts where
|
|
113
|
-
// a bare Enter
|
|
131
|
+
// a bare Enter re-commits what is already set.
|
|
114
132
|
activeIndex = 0;
|
|
115
|
-
// A
|
|
116
|
-
//
|
|
117
|
-
// and focusing the field inside it drags the page up there — which is the scroll
|
|
118
|
-
// jumping to the top on creating a code block. The measure below refines it.
|
|
133
|
+
// A first guess at the trigger's position before the popout is measured: mounted at the
|
|
134
|
+
// viewport's corner, focusing the field inside it would scroll the page up there.
|
|
119
135
|
const anchor = chipEl?.getBoundingClientRect();
|
|
120
136
|
if (anchor) {
|
|
121
137
|
listAt = {
|
|
@@ -125,8 +141,8 @@
|
|
|
125
141
|
};
|
|
126
142
|
}
|
|
127
143
|
void tick().then(() => {
|
|
128
|
-
// `preventScroll`: the
|
|
129
|
-
//
|
|
144
|
+
// `preventScroll`: the gutter is already on screen, and a scroll here would arrive
|
|
145
|
+
// as a real scroll event on the repositioning path below.
|
|
130
146
|
inputEl?.focus({ preventScroll: true });
|
|
131
147
|
});
|
|
132
148
|
}
|
|
@@ -137,33 +153,37 @@
|
|
|
137
153
|
|
|
138
154
|
function commit(value: string): void {
|
|
139
155
|
close();
|
|
140
|
-
// `text` is the picker's
|
|
156
|
+
// `text` is the picker's way of saying "no language"; the info string says it with ''.
|
|
141
157
|
onCommit(value.trim() === 'text' ? '' : value);
|
|
142
158
|
}
|
|
143
159
|
|
|
144
160
|
function onFieldKeyDown(e: KeyboardEvent): void {
|
|
145
|
-
// The field owns its keys while open:
|
|
146
|
-
//
|
|
161
|
+
// The field owns its keys while open: an Escape that closes it must not reach anything
|
|
162
|
+
// else listening for one. An Enter or Escape during a composition belongs to the IME.
|
|
147
163
|
e.stopPropagation();
|
|
148
164
|
if (e.isComposing) return;
|
|
149
165
|
if (e.key === 'Enter') {
|
|
150
166
|
e.preventDefault();
|
|
151
|
-
//
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
commit(
|
|
167
|
+
// A spelling the registry resolves is a name, not a search: it commits as typed, so
|
|
168
|
+
// `js` survives a picker whose rows are canonical. A moved highlight takes the row.
|
|
169
|
+
const typed = draft.trim();
|
|
170
|
+
const namesLanguage =
|
|
171
|
+
!highlightMoved && typed !== '' && getLanguageGrammar(typed, activation) !== null;
|
|
172
|
+
commit(
|
|
173
|
+
namesLanguage ? typed : (suggestions[activeIndex] ?? (typed === '' ? language : typed))
|
|
174
|
+
);
|
|
157
175
|
} else if (e.key === 'Escape') {
|
|
158
176
|
e.preventDefault();
|
|
159
177
|
close();
|
|
160
178
|
onCancel(true);
|
|
161
179
|
} else if (e.key === 'ArrowDown') {
|
|
162
180
|
e.preventDefault();
|
|
181
|
+
highlightMoved = true;
|
|
163
182
|
activeIndex = suggestions.length === 0 ? 0 : (activeIndex + 1) % suggestions.length;
|
|
164
183
|
scrollActiveIntoView();
|
|
165
184
|
} else if (e.key === 'ArrowUp') {
|
|
166
185
|
e.preventDefault();
|
|
186
|
+
highlightMoved = true;
|
|
167
187
|
activeIndex =
|
|
168
188
|
suggestions.length === 0 ? 0 : (activeIndex - 1 + suggestions.length) % suggestions.length;
|
|
169
189
|
scrollActiveIntoView();
|
|
@@ -171,7 +191,7 @@
|
|
|
171
191
|
}
|
|
172
192
|
|
|
173
193
|
// Only for keyboard travel: the highlight must stay on screen as it moves. Opening does
|
|
174
|
-
//
|
|
194
|
+
// not call this: the menu opens at row 0, which is already in view.
|
|
175
195
|
function scrollActiveIntoView(): void {
|
|
176
196
|
void tick().then(() => {
|
|
177
197
|
listEl?.querySelector('[data-active="true"]')?.scrollIntoView({ block: 'nearest' });
|
|
@@ -180,7 +200,7 @@
|
|
|
180
200
|
|
|
181
201
|
function onFieldBlur(e: FocusEvent): void {
|
|
182
202
|
if (!editing) return;
|
|
183
|
-
// A pointer moving from the field to its own list is not a dismissal
|
|
203
|
+
// A pointer moving from the field to its own list is not a dismissal: the list's
|
|
184
204
|
// mousedown handler commits, and this must not tear the field down before it does.
|
|
185
205
|
const next = e.relatedTarget;
|
|
186
206
|
if (next instanceof Node && (railEl?.contains(next) || pickerEl?.contains(next))) return;
|
|
@@ -192,10 +212,8 @@
|
|
|
192
212
|
copied = await onCopy();
|
|
193
213
|
}
|
|
194
214
|
|
|
195
|
-
// The confirmation
|
|
196
|
-
//
|
|
197
|
-
// gesture that should offer to copy again rather than still be reporting the last one.
|
|
198
|
-
// A wall-clock revert would be sequencing on a timer, which G4.4 rules out.
|
|
215
|
+
// The copied confirmation clears when the pointer or focus leaves the gutter, so the next
|
|
216
|
+
// showing offers to copy again without a timer (G4.4).
|
|
199
217
|
function clearCopied(): void {
|
|
200
218
|
copied = false;
|
|
201
219
|
}
|
|
@@ -216,9 +234,8 @@
|
|
|
216
234
|
item.run();
|
|
217
235
|
}
|
|
218
236
|
|
|
219
|
-
// Escape
|
|
220
|
-
// non-interactive role may not carry key handlers.
|
|
221
|
-
// menu is open, and on an item once the user tabs in — both are covered here.
|
|
237
|
+
// Escape is handled on the ⋮ button and the items, where focus sits while the menu is open:
|
|
238
|
+
// the gutter is a labelled `group`, and a non-interactive role may not carry key handlers.
|
|
222
239
|
function onMenuKeyDown(e: KeyboardEvent): void {
|
|
223
240
|
if (e.key !== 'Escape' || !menuOpen) return;
|
|
224
241
|
e.stopPropagation();
|
|
@@ -227,9 +244,8 @@
|
|
|
227
244
|
menuButtonEl?.focus();
|
|
228
245
|
}
|
|
229
246
|
|
|
230
|
-
// The menu
|
|
231
|
-
//
|
|
232
|
-
// still inside.
|
|
247
|
+
// The menu closes when focus leaves the gutter and its menu, judged by containment, so a
|
|
248
|
+
// click on a disabled item still counts as inside.
|
|
233
249
|
function onRailFocusOut(e: FocusEvent): void {
|
|
234
250
|
const next = e.relatedTarget;
|
|
235
251
|
if (next instanceof Node && (railEl?.contains(next) || menuEl?.contains(next))) return;
|
|
@@ -238,16 +254,14 @@
|
|
|
238
254
|
}
|
|
239
255
|
|
|
240
256
|
// ── Popout placement ──────────────────────────────────────────────────────
|
|
241
|
-
// Both popouts are `position: fixed
|
|
242
|
-
//
|
|
243
|
-
// when it overhangs the last block, which is the surface growing under the reader.
|
|
244
|
-
// Fixed takes them out of flow entirely, so opening one can resize nothing.
|
|
257
|
+
// Both popouts are `position: fixed`: an absolute one overhanging the last block would grow
|
|
258
|
+
// the editor's scrollable area under the user.
|
|
245
259
|
|
|
246
260
|
interface Placement {
|
|
247
261
|
x: number;
|
|
248
262
|
y: number;
|
|
249
|
-
/**
|
|
250
|
-
* inside
|
|
263
|
+
/** How much space the popout may take on the side it was placed, so a long list
|
|
264
|
+
* scrolls inside that space instead of growing past the viewport edge. */
|
|
251
265
|
maxHeight: number;
|
|
252
266
|
}
|
|
253
267
|
let listAt = $state<Placement | null>(null);
|
|
@@ -255,27 +269,17 @@
|
|
|
255
269
|
|
|
256
270
|
const EDGE_MARGIN = 8;
|
|
257
271
|
const ANCHOR_GAP = 6;
|
|
258
|
-
/**
|
|
259
|
-
* available still wins when it is smaller. */
|
|
272
|
+
/** Past this height a popout scrolls; the space actually available wins when it is smaller. */
|
|
260
273
|
const MAX_POPOUT_HEIGHT = 320;
|
|
261
274
|
|
|
262
|
-
/**
|
|
263
|
-
*
|
|
264
|
-
* taken when below cannot hold it and above can; whichever side wins caps the popout's
|
|
265
|
-
* height to the room actually there. A plain viewport clamp — what this used to do — slides
|
|
266
|
-
* the box up over the button that opened it, which is exactly what must not happen.
|
|
267
|
-
*/
|
|
275
|
+
/** Short of room below its trigger, a popout caps its height and scrolls rather than moving
|
|
276
|
+
* above, so one gesture always opens the same way. */
|
|
268
277
|
function placeAgainst(anchor: HTMLElement | undefined, popout: HTMLElement): Placement {
|
|
269
278
|
const a = (anchor ?? popout).getBoundingClientRect();
|
|
270
279
|
const size = popout.getBoundingClientRect();
|
|
271
|
-
// ALWAYS downward. Flipping above when the room below ran short made the menu appear
|
|
272
|
-
// on whichever side the block happened to sit, so the same gesture opened in two
|
|
273
|
-
// directions; a menu that is always under its trigger is the predictable one. When the
|
|
274
|
-
// room is short the popout scrolls inside what is there instead of moving.
|
|
275
280
|
const roomBelow = window.innerHeight - a.bottom - ANCHOR_GAP - EDGE_MARGIN;
|
|
276
281
|
const maxHeight = Math.min(MAX_POPOUT_HEIGHT, Math.max(120, roomBelow));
|
|
277
282
|
const y = a.bottom + ANCHOR_GAP;
|
|
278
|
-
// Right-aligned to the trigger, then held inside the viewport horizontally only.
|
|
279
283
|
const maxX = Math.max(EDGE_MARGIN, window.innerWidth - size.width - EDGE_MARGIN);
|
|
280
284
|
const x = Math.min(Math.max(EDGE_MARGIN, a.right - size.width), maxX);
|
|
281
285
|
return { x, y, maxHeight };
|
|
@@ -297,10 +301,8 @@
|
|
|
297
301
|
menuAt = placeAgainst(menuButtonEl, menuEl);
|
|
298
302
|
});
|
|
299
303
|
|
|
300
|
-
// A fixed popout does not move with the
|
|
301
|
-
//
|
|
302
|
-
// dismissal both threw away a menu the user had just opened and raced the scroll that
|
|
303
|
-
// focusing the field used to cause, closing the picker in the same tick it opened.
|
|
304
|
+
// A fixed popout does not move with the gutter, so it is placed again on every scroll and
|
|
305
|
+
// resize; not closed, since focusing the field can itself scroll and would close the picker.
|
|
304
306
|
$effect(() => {
|
|
305
307
|
if (!editing && !menuOpen) return;
|
|
306
308
|
const reposition = (): void => {
|
|
@@ -320,14 +322,13 @@
|
|
|
320
322
|
? `left:${at.x}px;top:${at.y}px;max-height:${at.maxHeight}px`
|
|
321
323
|
: 'left:0;top:0;visibility:hidden';
|
|
322
324
|
|
|
323
|
-
//
|
|
325
|
+
// Whether a hook exists is the whole condition; see `EditorPolicies.onRunCode`.
|
|
324
326
|
const showRun = $derived(editable && onRun !== undefined);
|
|
325
327
|
const showMenu = $derived(menuItems !== undefined);
|
|
326
328
|
</script>
|
|
327
329
|
|
|
328
|
-
<!-- Lucide (ISC) path data, inlined rather than
|
|
329
|
-
|
|
330
|
-
host app's menus. See THIRD-PARTY-NOTICES.md. -->
|
|
330
|
+
<!-- Lucide (ISC) path data, inlined rather than adding an icon package; sized to match
|
|
331
|
+
the host app's menus. See THIRD-PARTY-NOTICES.md. -->
|
|
331
332
|
{#snippet icon(paths: string)}
|
|
332
333
|
<svg
|
|
333
334
|
viewBox="0 0 24 24"
|
|
@@ -415,6 +416,7 @@
|
|
|
415
416
|
bind:this={pickerEl}
|
|
416
417
|
class="md-menu code-rail-popout code-lang-picker"
|
|
417
418
|
style={popoutStyle(listAt)}
|
|
419
|
+
{@attach menuPresence.track}
|
|
418
420
|
>
|
|
419
421
|
<div class="code-lang-search">
|
|
420
422
|
{@render icon('<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>')}
|
|
@@ -431,6 +433,7 @@
|
|
|
431
433
|
placeholder="Search for a language…"
|
|
432
434
|
oninput={() => {
|
|
433
435
|
filtering = true;
|
|
436
|
+
highlightMoved = false;
|
|
434
437
|
activeIndex = 0;
|
|
435
438
|
}}
|
|
436
439
|
onkeydown={onFieldKeyDown}
|
|
@@ -444,10 +447,13 @@
|
|
|
444
447
|
<button
|
|
445
448
|
type="button"
|
|
446
449
|
role="option"
|
|
447
|
-
aria-selected={name
|
|
450
|
+
aria-selected={isCurrentLanguage(name)}
|
|
448
451
|
data-active={i === activeIndex}
|
|
449
452
|
tabindex="-1"
|
|
450
|
-
onmouseenter={() =>
|
|
453
|
+
onmouseenter={() => {
|
|
454
|
+
highlightMoved = true;
|
|
455
|
+
activeIndex = i;
|
|
456
|
+
}}
|
|
451
457
|
onmousedown={(e) => {
|
|
452
458
|
// mousedown, not click: the field's blur would otherwise cancel the edit
|
|
453
459
|
// before a click ever landed.
|
|
@@ -456,7 +462,7 @@
|
|
|
456
462
|
}}
|
|
457
463
|
>
|
|
458
464
|
<span class="code-lang-name">{name}</span>
|
|
459
|
-
{#if name
|
|
465
|
+
{#if isCurrentLanguage(name)}
|
|
460
466
|
<span class="code-lang-check">
|
|
461
467
|
{@render icon('<path d="M20 6 9 17l-5-5"/>')}
|
|
462
468
|
</span>
|
|
@@ -478,6 +484,7 @@
|
|
|
478
484
|
role="menu"
|
|
479
485
|
aria-label={CODE_MENU_LABEL}
|
|
480
486
|
style={popoutStyle(menuAt)}
|
|
487
|
+
{@attach menuPresence.track}
|
|
481
488
|
>
|
|
482
489
|
{#each openMenuItems as item (item.id)}
|
|
483
490
|
<li role="none">
|
|
@@ -494,10 +501,8 @@
|
|
|
494
501
|
{/if}
|
|
495
502
|
|
|
496
503
|
<style>
|
|
497
|
-
/*
|
|
498
|
-
|
|
499
|
-
box the code box fills below the host's 6px stand-off (editor.css, fencedCode), and out
|
|
500
|
-
of the code box's own scroller so a horizontal scroll leaves them where they are. */
|
|
504
|
+
/* Positioned against the block host rather than inside the code box's scroller, so a
|
|
505
|
+
horizontal scroll leaves the controls where they are. */
|
|
501
506
|
.code-rail {
|
|
502
507
|
position: absolute;
|
|
503
508
|
top: 12px;
|
|
@@ -513,9 +518,8 @@
|
|
|
513
518
|
transition: opacity 120ms ease-out;
|
|
514
519
|
}
|
|
515
520
|
|
|
516
|
-
/*
|
|
517
|
-
|
|
518
|
-
combinators, so an outer container's hover never reveals a nested block's rail. */
|
|
521
|
+
/* Shown on block hover or focus, or while a popout is open; child and sibling combinators
|
|
522
|
+
keep an outer container's hover from showing a nested block's controls. */
|
|
519
523
|
:global(.block-host:hover) > .code-rail,
|
|
520
524
|
:global(.code-block:focus) ~ .code-rail,
|
|
521
525
|
.code-rail:focus-within,
|
|
@@ -574,9 +578,8 @@
|
|
|
574
578
|
outline-offset: -1px;
|
|
575
579
|
}
|
|
576
580
|
|
|
577
|
-
/*
|
|
578
|
-
|
|
579
|
-
this adds only the picker's own layout. */
|
|
581
|
+
/* Panel, hairline, shadow, face and colour come from the shared `.md-menu` (editor.css);
|
|
582
|
+
this adds only the popouts' own layout. */
|
|
580
583
|
.code-rail-popout {
|
|
581
584
|
display: flex;
|
|
582
585
|
flex-direction: column;
|
|
@@ -586,7 +589,7 @@
|
|
|
586
589
|
overflow: hidden;
|
|
587
590
|
}
|
|
588
591
|
|
|
589
|
-
/* Search sits
|
|
592
|
+
/* Search sits inside the menu rather than swapping the gutter's chip for a field: the chip
|
|
590
593
|
is a fixed box that never changes width, so opening the picker moves nothing. */
|
|
591
594
|
.code-lang-search {
|
|
592
595
|
display: flex;
|
|
@@ -596,7 +599,7 @@
|
|
|
596
599
|
margin: -4px -4px 4px;
|
|
597
600
|
padding: 8px 12px;
|
|
598
601
|
border-bottom: 1px solid var(--menu-search-divider, rgba(255, 255, 255, 0.08));
|
|
599
|
-
color: var(--color-ui-muted, #
|
|
602
|
+
color: var(--color-ui-muted, #93938d);
|
|
600
603
|
}
|
|
601
604
|
|
|
602
605
|
.code-lang-search input {
|
|
@@ -624,7 +627,7 @@
|
|
|
624
627
|
overscroll-behavior: contain;
|
|
625
628
|
}
|
|
626
629
|
|
|
627
|
-
/* A hairline thumb, as the host app's list menus use
|
|
630
|
+
/* A hairline thumb, as the host app's list menus use, since the platform's default bar is
|
|
628
631
|
wider than the rows it sits beside. */
|
|
629
632
|
.code-lang-list::-webkit-scrollbar {
|
|
630
633
|
width: 1px;
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import type { CodeMenuItem } from '../../../editor-keys';
|
|
2
|
+
import type { MenuPresence } from '../../menu/menu-presence.svelte';
|
|
3
|
+
import type { PluginActivation } from '../../../schema/plugin-activation';
|
|
2
4
|
type $$ComponentProps = {
|
|
3
5
|
/** The opener's full info string; the button shows its first token. */
|
|
4
6
|
info: string;
|
|
5
|
-
/**
|
|
7
|
+
/** The editor's plugins, so the picker offers only the languages this editor highlights. */
|
|
8
|
+
activation: PluginActivation;
|
|
9
|
+
/** False in reading mode, which writes no bytes, so the chip is then a label. */
|
|
6
10
|
editable: boolean;
|
|
7
|
-
/** Open the language field as soon as the
|
|
8
|
-
*
|
|
11
|
+
/** Open the language field as soon as the gutter mounts, for a fence the user just
|
|
12
|
+
* created and has not given a language yet. */
|
|
9
13
|
autoOpen?: boolean;
|
|
10
14
|
/** Only Enter or a list pick calls this, and it owns the caret's landing afterwards. */
|
|
11
15
|
onCommit: (info: string) => void;
|
|
12
16
|
/** Nothing written. Escape asks for the caret back; a blur must not yank it from
|
|
13
17
|
* wherever the user just clicked, so it does not. */
|
|
14
18
|
onCancel: (returnCaret: boolean) => void;
|
|
15
|
-
/** Absent when the host installed no execution hook
|
|
19
|
+
/** Absent when the host installed no execution hook, so no run button renders. */
|
|
16
20
|
onRun?: () => void;
|
|
17
21
|
/** Copies the fence body; resolves once the clipboard write settles. */
|
|
18
22
|
onCopy: () => Promise<boolean>;
|
|
19
23
|
/** Consulted on each open, so items read live state. Empty renders no affordance. */
|
|
20
24
|
menuItems?: () => readonly CodeMenuItem[];
|
|
25
|
+
menuPresence: MenuPresence;
|
|
21
26
|
};
|
|
22
27
|
declare const CodeBlockRail: import("svelte").Component<$$ComponentProps, {
|
|
23
28
|
open: () => void;
|
|
@@ -9,7 +9,7 @@ export interface AutoPairInput {
|
|
|
9
9
|
end: number;
|
|
10
10
|
};
|
|
11
11
|
typed: string;
|
|
12
|
-
/** True when the
|
|
12
|
+
/** True when the block is an unclosed backtick fence, where backticks would extend it. */
|
|
13
13
|
unclosedBacktickFence?: boolean;
|
|
14
14
|
}
|
|
15
15
|
export type AutoPairResult = {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Adding a language
|
|
2
|
+
* Sets up the code-block languages and the fencedCode paste handling; safe to call twice. These
|
|
3
|
+
* are built-ins, so the test reset keeps them. Adding a language is one import plus one
|
|
4
|
+
* `registerBuiltinLanguage` call.
|
|
4
5
|
*/
|
|
5
6
|
export declare function bootstrapCodeLanguages(): void;
|
|
6
|
-
/** Test-only: reset the booted flag and unregister the paste surface, so a
|
|
7
|
-
* re-bootstrap doesn't hit the register-once duplicate throw. */
|
|
8
|
-
export declare function __resetBootForTests(): void;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Adding a language
|
|
2
|
+
* Sets up the code-block languages and the fencedCode paste handling; safe to call twice. These
|
|
3
|
+
* are built-ins, so the test reset keeps them. Adding a language is one import plus one
|
|
4
|
+
* `registerBuiltinLanguage` call.
|
|
4
5
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import { registerPasteSurface
|
|
6
|
+
import { registerBuiltinLanguage } from './code-languages';
|
|
7
|
+
import { registerPasteSurface } from '../../../tree-operations/paste-surfaces';
|
|
7
8
|
import { codePasteSurface } from './code-paste-surface';
|
|
8
9
|
import { registerCodeContextActions } from './code-context-actions';
|
|
9
10
|
import javascript from 'highlight.js/lib/languages/javascript';
|
|
@@ -24,35 +25,41 @@ import ruby from 'highlight.js/lib/languages/ruby';
|
|
|
24
25
|
import markdown from 'highlight.js/lib/languages/markdown';
|
|
25
26
|
import diff from 'highlight.js/lib/languages/diff';
|
|
26
27
|
import latex from 'highlight.js/lib/languages/latex';
|
|
28
|
+
import csharp from 'highlight.js/lib/languages/csharp';
|
|
29
|
+
import kotlin from 'highlight.js/lib/languages/kotlin';
|
|
30
|
+
import swift from 'highlight.js/lib/languages/swift';
|
|
31
|
+
import php from 'highlight.js/lib/languages/php';
|
|
32
|
+
import powershell from 'highlight.js/lib/languages/powershell';
|
|
33
|
+
import dockerfile from 'highlight.js/lib/languages/dockerfile';
|
|
27
34
|
let booted = false;
|
|
28
35
|
export function bootstrapCodeLanguages() {
|
|
29
36
|
if (booted)
|
|
30
37
|
return;
|
|
31
38
|
booted = true;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
registerBuiltinLanguage('javascript', javascript, ['js']);
|
|
40
|
+
registerBuiltinLanguage('typescript', typescript, ['ts']);
|
|
41
|
+
registerBuiltinLanguage('python', python, ['py']);
|
|
42
|
+
registerBuiltinLanguage('rust', rust, ['rs']);
|
|
43
|
+
registerBuiltinLanguage('go', go);
|
|
44
|
+
registerBuiltinLanguage('bash', bash, ['sh', 'shell']);
|
|
45
|
+
registerBuiltinLanguage('json', json);
|
|
46
|
+
registerBuiltinLanguage('yaml', yaml, ['yml']);
|
|
47
|
+
registerBuiltinLanguage('sql', sql);
|
|
48
|
+
registerBuiltinLanguage('html', xml, ['htm']); // hljs 'xml' grammar handles HTML
|
|
49
|
+
registerBuiltinLanguage('css', css);
|
|
50
|
+
registerBuiltinLanguage('java', java);
|
|
51
|
+
registerBuiltinLanguage('c', c);
|
|
52
|
+
registerBuiltinLanguage('cpp', cpp, ['c++']);
|
|
53
|
+
registerBuiltinLanguage('ruby', ruby);
|
|
54
|
+
registerBuiltinLanguage('markdown', markdown, ['md']);
|
|
55
|
+
registerBuiltinLanguage('diff', diff);
|
|
56
|
+
registerBuiltinLanguage('latex', latex, ['tex']);
|
|
57
|
+
registerBuiltinLanguage('csharp', csharp, ['cs', 'c#']);
|
|
58
|
+
registerBuiltinLanguage('kotlin', kotlin, ['kt']);
|
|
59
|
+
registerBuiltinLanguage('swift', swift);
|
|
60
|
+
registerBuiltinLanguage('php', php);
|
|
61
|
+
registerBuiltinLanguage('powershell', powershell, ['ps1']);
|
|
62
|
+
registerBuiltinLanguage('dockerfile', dockerfile, ['docker']);
|
|
50
63
|
registerPasteSurface(codePasteSurface);
|
|
51
64
|
registerCodeContextActions();
|
|
52
65
|
}
|
|
53
|
-
/** Test-only: reset the booted flag and unregister the paste surface, so a
|
|
54
|
-
* re-bootstrap doesn't hit the register-once duplicate throw. */
|
|
55
|
-
export function __resetBootForTests() {
|
|
56
|
-
booted = false;
|
|
57
|
-
__removePasteSurfaceForTests(codePasteSurface.kind);
|
|
58
|
-
}
|