Skip to content

Commit 09e8e55

Browse files
authored
feat(Selection): made all top-level nodes selectable (#533)
1 parent 617a1cc commit 09e8e55

File tree

6 files changed

+10
-7
lines changed

6 files changed

+10
-7
lines changed

src/extensions/additional/Math/MathSpecs/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export const MathSpecs: ExtensionAuto = (builder) => {
4545
code: true,
4646
toDOM: () => ['div', {class: 'math-block'}, 0],
4747
parseDOM: [{tag: 'div.math-block', priority: 200}],
48+
selectable: true,
4849
},
4950
fromMd: {
5051
tokenName: 'math_block',

src/extensions/base/BaseSchema/BaseSchemaSpecs/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ export const BaseSchemaSpecs: ExtensionAuto<BaseSchemaSpecsOptions> = (builder,
5555
0,
5656
];
5757
},
58+
selectable: true,
5859
placeholder: opts.paragraphPlaceholder
5960
? {
6061
content: opts.paragraphPlaceholder,

src/extensions/behavior/Selection/selection.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,18 +99,16 @@ const getTopLevelNodesFromSelection = (selection: Selection, doc: Node) => {
9999
const nodes: {node: Node; pos: number}[] = [];
100100
if (selection.from !== selection.to) {
101101
const {from, to} = selection;
102+
102103
doc.nodesBetween(from, to, (node, pos) => {
103104
const withinSelection = from <= pos && pos + node.nodeSize <= to;
104-
if (
105-
node &&
106-
node.type.name !== 'paragraph' &&
107-
!node.isText &&
108-
node.type.spec.selectable &&
109-
withinSelection
110-
) {
105+
106+
if (node && !node.isText && node.type.spec.selectable !== false && withinSelection) {
111107
nodes.push({node, pos});
108+
112109
return false;
113110
}
111+
114112
return true;
115113
});
116114
}

src/extensions/markdown/Blockquote/BlockquoteSpecs/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export const BlockquoteSpecs: ExtensionAuto = (builder) => {
1717
toDOM() {
1818
return ['blockquote', 0];
1919
},
20+
selectable: true,
2021
},
2122
fromMd: {tokenSpec: {name: blockquoteNodeName, type: 'block'}},
2223
toMd: (state, node) => {

src/extensions/markdown/HorizontalRule/HorizontalRuleSpecs/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export const HorizontalRuleSpecs: ExtensionAuto = (builder) => {
1414
toDOM() {
1515
return ['div', ['hr']];
1616
},
17+
selectable: true,
1718
},
1819
fromMd: {
1920
tokenName: 'hr',

src/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ export const getSchemaSpecs: (
7878
toDOM(node) {
7979
return ['div', node.attrs, 0];
8080
},
81+
selectable: true,
8182
complex: 'root',
8283
},
8384

0 commit comments

Comments
 (0)