@react-x11/components 0.10.0 → 0.11.0
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/dist/code/index.d.ts.map +1 -1
- package/dist/code/index.js +25 -24
- package/dist/code/index.js.map +1 -1
- package/dist/code-language/index.d.ts +1 -1
- package/dist/code-language/index.d.ts.map +1 -1
- package/dist/code-language/index.js +1 -1
- package/dist/code-language/index.js.map +1 -1
- package/dist/code-language/runs.d.ts +31 -0
- package/dist/code-language/runs.d.ts.map +1 -1
- package/dist/code-language/runs.js +105 -0
- package/dist/code-language/runs.js.map +1 -1
- package/dist/codeblock/index.d.ts +13 -0
- package/dist/codeblock/index.d.ts.map +1 -1
- package/dist/codeblock/index.js +37 -1
- package/dist/codeblock/index.js.map +1 -1
- package/dist/html/css/cascade.d.ts +32 -10
- package/dist/html/css/cascade.d.ts.map +1 -1
- package/dist/html/css/cascade.js +72 -27
- package/dist/html/css/cascade.js.map +1 -1
- package/dist/html/css/style.d.ts +7 -4
- package/dist/html/css/style.d.ts.map +1 -1
- package/dist/html/css/style.js +37 -6
- package/dist/html/css/style.js.map +1 -1
- package/dist/html/css/ua.js +8 -5
- package/dist/html/css/ua.js.map +1 -1
- package/dist/html/layout/block.d.ts.map +1 -1
- package/dist/html/layout/block.js +127 -9
- package/dist/html/layout/block.js.map +1 -1
- package/dist/html/layout/boxes.d.ts +27 -0
- package/dist/html/layout/boxes.d.ts.map +1 -1
- package/dist/html/layout/boxes.js +30 -2
- package/dist/html/layout/boxes.js.map +1 -1
- package/dist/html/layout/inline.d.ts +3 -0
- package/dist/html/layout/inline.d.ts.map +1 -1
- package/dist/html/layout/inline.js +236 -14
- package/dist/html/layout/inline.js.map +1 -1
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +118 -57
- package/dist/html/node.js.map +1 -1
- package/dist/html/paint.d.ts.map +1 -1
- package/dist/html/paint.js +203 -37
- package/dist/html/paint.js.map +1 -1
- package/dist/html/svg.d.ts.map +1 -1
- package/dist/html/svg.js +27 -20
- package/dist/html/svg.js.map +1 -1
- package/dist/internal/codelines.d.ts +42 -0
- package/dist/internal/codelines.d.ts.map +1 -0
- package/dist/internal/codelines.js +170 -0
- package/dist/internal/codelines.js.map +1 -0
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +98 -26
- package/dist/markdown/index.js.map +1 -1
- package/dist/rich-text-editor/index.d.ts.map +1 -1
- package/dist/rich-text-editor/index.js +3 -8
- package/dist/rich-text-editor/index.js.map +1 -1
- package/dist/rich-text-editor/markdown.d.ts.map +1 -1
- package/dist/rich-text-editor/markdown.js +30 -1
- package/dist/rich-text-editor/markdown.js.map +1 -1
- package/dist/rich-text-editor/replace.d.ts +13 -0
- package/dist/rich-text-editor/replace.d.ts.map +1 -0
- package/dist/rich-text-editor/replace.js +64 -0
- package/dist/rich-text-editor/replace.js.map +1 -0
- package/dist/terminal-output/index.d.ts.map +1 -1
- package/dist/terminal-output/index.js +100 -25
- package/dist/terminal-output/index.js.map +1 -1
- package/dist/terminal-output/runs.d.ts +4 -1
- package/dist/terminal-output/runs.d.ts.map +1 -1
- package/dist/terminal-output/runs.js +5 -1
- package/dist/terminal-output/runs.js.map +1 -1
- package/package.json +1 -1
- package/src/code/index.ts +34 -32
- package/src/code-language/index.ts +1 -1
- package/src/code-language/runs.ts +111 -1
- package/src/codeblock/index.ts +48 -1
- package/src/html/css/cascade.ts +117 -39
- package/src/html/css/style.ts +43 -15
- package/src/html/css/ua.ts +8 -5
- package/src/html/layout/block.ts +134 -8
- package/src/html/layout/boxes.ts +43 -2
- package/src/html/layout/inline.ts +257 -13
- package/src/html/node.ts +145 -79
- package/src/html/paint.ts +236 -45
- package/src/html/svg.ts +30 -19
- package/src/internal/codelines.ts +200 -0
- package/src/markdown/index.ts +145 -26
- package/src/rich-text-editor/index.ts +3 -11
- package/src/rich-text-editor/markdown.ts +36 -1
- package/src/rich-text-editor/replace.ts +85 -0
- package/src/terminal-output/index.ts +127 -34
- package/src/terminal-output/runs.ts +16 -2
package/dist/code/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAU7C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAWvE,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf;2EACuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;kCAC8B;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;qEACiE;IACjE,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD;;+DAE2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;kEAC8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAkGnD"}
|
package/dist/code/index.js
CHANGED
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
// so copied code never carries the numbering.
|
|
15
15
|
import React from 'react';
|
|
16
16
|
import { useTheme } from 'react-x11';
|
|
17
|
-
import { registerRichText,
|
|
18
|
-
import { codeBlockLook,
|
|
17
|
+
import { registerRichText, useSelectionMenu } from '../richtext/index.js';
|
|
18
|
+
import { codeBlockLook, CodeBlockRunCache, codeBlockStyle, codeTextStyle, } from '../codeblock/index.js';
|
|
19
19
|
import { hx } from './hx.js';
|
|
20
20
|
import { useFontPrewarm } from '../internal/prewarm.js';
|
|
21
|
+
import { CodeGutter, CodeLines } from '../internal/codelines.js';
|
|
21
22
|
const h = React.createElement;
|
|
22
23
|
// The shared-module registration, called at this component's module scope —
|
|
23
24
|
// see the note in `../richtext/node.ts`.
|
|
@@ -42,33 +43,33 @@ export function Code(props) {
|
|
|
42
43
|
tokenStyles: props.tokenStyles,
|
|
43
44
|
}), [theme, props.fontSize, props.monoFamily, props.tokenStyles]);
|
|
44
45
|
useFontPrewarm(look.family);
|
|
45
|
-
|
|
46
|
+
// Kept between renders, so a source that changes at its end is tokenized
|
|
47
|
+
// again from the line that changed (`CodeBlockRunCache`).
|
|
48
|
+
const runCache = React.useRef(null);
|
|
49
|
+
runCache.current ??= new CodeBlockRunCache();
|
|
50
|
+
React.useEffect(() => () => runCache.current?.dispose(), []);
|
|
51
|
+
const runs = React.useMemo(() => runCache.current.runs(source, look, { lang, language, resolveLanguage }), [source, lang, language, resolveLanguage, look]);
|
|
46
52
|
const lineCount = React.useMemo(() => source.split('\n').length, [source]);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
// In blocks of lines, so a change lays out the blocks it touches
|
|
54
|
+
// (`../internal/codelines.ts`).
|
|
55
|
+
const code = h(CodeLines, { runs, style: codeTextStyle(look, wrap), wrap });
|
|
50
56
|
const gutter = lineNumbers
|
|
51
|
-
?
|
|
52
|
-
// one richtext for all the numbers: same font, same line height, so
|
|
53
|
-
// it stays in register with the code beside it. `selectable={false}`
|
|
54
|
-
// is what keeps it out of a drag and out of the copied text — the
|
|
55
|
-
// numbering is chrome, and CSS spells that `user-select: none`.
|
|
56
|
-
selectable: false,
|
|
57
|
-
runs: Array.from({ length: lineCount }, (_, i) => ({
|
|
58
|
-
text: `${i + 1}\n`,
|
|
59
|
-
family: look.family,
|
|
60
|
-
size: look.size,
|
|
61
|
-
color: look.dim,
|
|
62
|
-
})),
|
|
63
|
-
wrap: false,
|
|
57
|
+
? hx('box', {
|
|
64
58
|
style: {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
flexDirection: 'column',
|
|
60
|
+
minWidth: Math.max(String(lineCount).length, 2) *
|
|
61
|
+
Math.ceil(look.size * 0.62),
|
|
68
62
|
marginRight: look.padding,
|
|
69
63
|
flexShrink: 0,
|
|
70
64
|
},
|
|
71
|
-
}
|
|
65
|
+
},
|
|
66
|
+
// numbers in the same font and line height as the code, blocked the
|
|
67
|
+
// same way, so the two stay in register
|
|
68
|
+
h(CodeGutter, {
|
|
69
|
+
lines: lineCount,
|
|
70
|
+
run: { family: look.family, size: look.size, color: look.dim },
|
|
71
|
+
style: { lineHeight: look.lineHeight, textAlign: 'right' },
|
|
72
|
+
}))
|
|
72
73
|
: null;
|
|
73
74
|
const rootStyle = {
|
|
74
75
|
...codeBlockStyle(look),
|
|
@@ -90,6 +91,6 @@ export function Code(props) {
|
|
|
90
91
|
'aria-label': 'Code block',
|
|
91
92
|
...menu,
|
|
92
93
|
'data-testname': props['data-testname'],
|
|
93
|
-
}, gutter, hx('box', { style: { overflow: 'scroll', flexDirection: 'column', flexGrow: 1 } },
|
|
94
|
+
}, gutter, hx('box', { style: { overflow: 'scroll', flexDirection: 'column', flexGrow: 1 } }, code));
|
|
94
95
|
}
|
|
95
96
|
//# sourceMappingURL=index.js.map
|
package/dist/code/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,iEAAiE;AACjE,4EAA4E;AAC5E,2EAA2E;AAC3E,mCAAmC;AACnC,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8CAA8C;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export { textMateLanguage } from './textmate.js';
|
|
|
15
15
|
export type { TextMateGrammarLike, TextMateLanguageOptions, } from './textmate.js';
|
|
16
16
|
export { autoTokenStyles, DARK_TOKEN_STYLES, isDarkBackground, LIGHT_TOKEN_STYLES, tokenStyleFor, } from './theme.js';
|
|
17
17
|
export { languageForTag, tokenizeText } from './registry.js';
|
|
18
|
-
export { codeRuns } from './runs.js';
|
|
18
|
+
export { codeRuns, CodeRunCache } from './runs.js';
|
|
19
19
|
export type { CodeRun, CodeRunOptions } from './runs.js';
|
|
20
20
|
export { TOKEN_FALLBACK } from './types.js';
|
|
21
21
|
export type { Language, LanguageData, LineEdit, Token, Tokenizer, TokenizerHost, TokenStyle, TokenStyles, TokenType, } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code-language/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code-language/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -15,6 +15,6 @@ export { lezerLanguage } from './lezer.js';
|
|
|
15
15
|
export { textMateLanguage } from './textmate.js';
|
|
16
16
|
export { autoTokenStyles, DARK_TOKEN_STYLES, isDarkBackground, LIGHT_TOKEN_STYLES, tokenStyleFor, } from './theme.js';
|
|
17
17
|
export { languageForTag, tokenizeText } from './registry.js';
|
|
18
|
-
export { codeRuns } from './runs.js';
|
|
18
|
+
export { codeRuns, CodeRunCache } from './runs.js';
|
|
19
19
|
export { TOKEN_FALLBACK } from './types.js';
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code-language/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,iEAAiE;AACjE,qEAAqE;AACrE,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code-language/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,iEAAiE;AACjE,qEAAqE;AACrE,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -32,4 +32,35 @@ export interface CodeRunOptions {
|
|
|
32
32
|
* plain run.
|
|
33
33
|
*/
|
|
34
34
|
export declare function codeRuns(text: string, tag: string, opts: CodeRunOptions): CodeRun[];
|
|
35
|
+
/**
|
|
36
|
+
* `codeRuns`, kept between calls for a text that changes a little at a
|
|
37
|
+
* time: a fence being streamed, a source being appended to.
|
|
38
|
+
*
|
|
39
|
+
* One tokenizer lives as long as the cache. It is told which lines changed
|
|
40
|
+
* (`Tokenizer.edit`, the interface `<CodeEditor>` already drives) and asked
|
|
41
|
+
* again only for those and the lines after them its state has to walk
|
|
42
|
+
* through, and every other line keeps the runs it had. `codeRuns` tokenized
|
|
43
|
+
* the whole text afresh: at 5,000 lines, most of the time an appended line
|
|
44
|
+
* took on the client.
|
|
45
|
+
*
|
|
46
|
+
* The runs are the same text in the same colours `codeRuns` gives, cut a
|
|
47
|
+
* little differently: a line's runs never reach into the next, and each
|
|
48
|
+
* newline is a run of its own, so that a line keeps its runs while others
|
|
49
|
+
* change. `decorate` is applied to every run once, when it is made — the
|
|
50
|
+
* family and size a block of code is set in, say.
|
|
51
|
+
*
|
|
52
|
+
* Call `dispose()` when done with it: an engine may keep timers.
|
|
53
|
+
*/
|
|
54
|
+
export declare class CodeRunCache<R = CodeRun> {
|
|
55
|
+
private readonly decorate;
|
|
56
|
+
private key;
|
|
57
|
+
private tokenizer;
|
|
58
|
+
private lines;
|
|
59
|
+
private tokens;
|
|
60
|
+
private lineRuns;
|
|
61
|
+
private newline;
|
|
62
|
+
constructor(decorate?: (run: CodeRun) => R);
|
|
63
|
+
runs(text: string, tag: string, opts: CodeRunOptions): R[];
|
|
64
|
+
dispose(): void;
|
|
65
|
+
}
|
|
35
66
|
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/code-language/runs.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/code-language/runs.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,QAAQ,EAAoB,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E,+DAA+D;AAC/D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,MAAM,EAAE,WAAW,CAAC;IACpB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd;;0CAEsC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACpD;mEAC+D;IAC/D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;CACpD;AAYD;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,cAAc,GACnB,OAAO,EAAE,CAyBX;AA6BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAY,CAAC,CAAC,GAAG,OAAO;IASjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,GAAG,CAAmC;IAC9C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAkB;IAEjC,YACmB,QAAQ,GAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAqB,EAChE;IAEJ,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,CAAC,EAAE,CAqDzD;IAED,OAAO,IAAI,IAAI,CAId;CACF"}
|
|
@@ -85,4 +85,109 @@ function push(out, text, type, opts) {
|
|
|
85
85
|
out.push(run);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* `codeRuns`, kept between calls for a text that changes a little at a
|
|
90
|
+
* time: a fence being streamed, a source being appended to.
|
|
91
|
+
*
|
|
92
|
+
* One tokenizer lives as long as the cache. It is told which lines changed
|
|
93
|
+
* (`Tokenizer.edit`, the interface `<CodeEditor>` already drives) and asked
|
|
94
|
+
* again only for those and the lines after them its state has to walk
|
|
95
|
+
* through, and every other line keeps the runs it had. `codeRuns` tokenized
|
|
96
|
+
* the whole text afresh: at 5,000 lines, most of the time an appended line
|
|
97
|
+
* took on the client.
|
|
98
|
+
*
|
|
99
|
+
* The runs are the same text in the same colours `codeRuns` gives, cut a
|
|
100
|
+
* little differently: a line's runs never reach into the next, and each
|
|
101
|
+
* newline is a run of its own, so that a line keeps its runs while others
|
|
102
|
+
* change. `decorate` is applied to every run once, when it is made — the
|
|
103
|
+
* family and size a block of code is set in, say.
|
|
104
|
+
*
|
|
105
|
+
* Call `dispose()` when done with it: an engine may keep timers.
|
|
106
|
+
*/
|
|
107
|
+
export class CodeRunCache {
|
|
108
|
+
decorate;
|
|
109
|
+
key = null;
|
|
110
|
+
tokenizer = null;
|
|
111
|
+
lines = [];
|
|
112
|
+
tokens = [];
|
|
113
|
+
lineRuns = [];
|
|
114
|
+
newline = null;
|
|
115
|
+
constructor(decorate = (run) => run) {
|
|
116
|
+
this.decorate = decorate;
|
|
117
|
+
}
|
|
118
|
+
runs(text, tag, opts) {
|
|
119
|
+
if (text.length === 0)
|
|
120
|
+
return [this.decorate({ text: '', color: opts.color })];
|
|
121
|
+
const language = opts.language ??
|
|
122
|
+
(tag ? (opts.resolveLanguage?.(tag) ?? languageForTag(tag)) : null);
|
|
123
|
+
if (!language)
|
|
124
|
+
return [this.decorate({ text, color: opts.color })];
|
|
125
|
+
const key = [language, opts.styles, opts.color, opts.resolveToken];
|
|
126
|
+
if (!this.key || key.some((part, i) => part !== this.key[i])) {
|
|
127
|
+
this.dispose();
|
|
128
|
+
this.key = key;
|
|
129
|
+
this.lines = [];
|
|
130
|
+
this.tokens = [];
|
|
131
|
+
this.lineRuns = [];
|
|
132
|
+
this.newline = this.decorate({ text: '\n', color: opts.color });
|
|
133
|
+
this.tokenizer = language.createTokenizer({ invalidate: () => { } });
|
|
134
|
+
this.tokenizer.setLines(this.lines);
|
|
135
|
+
}
|
|
136
|
+
const tokenizer = this.tokenizer;
|
|
137
|
+
// the lines the text shares with the last one, from the top: the edit
|
|
138
|
+
// is everything after them
|
|
139
|
+
const next = text.split('\n');
|
|
140
|
+
const lines = this.lines;
|
|
141
|
+
const shared = Math.min(lines.length, next.length);
|
|
142
|
+
let from = 0;
|
|
143
|
+
while (from < shared && lines[from] === next[from])
|
|
144
|
+
from++;
|
|
145
|
+
if (from < lines.length || from < next.length) {
|
|
146
|
+
const removed = lines.length - from;
|
|
147
|
+
const inserted = next.length - from;
|
|
148
|
+
lines.length = from;
|
|
149
|
+
for (let i = from; i < next.length; i++)
|
|
150
|
+
lines.push(next[i]);
|
|
151
|
+
tokenizer.edit({ fromLine: from, removed, inserted });
|
|
152
|
+
this.tokens.length = from;
|
|
153
|
+
this.lineRuns.length = from;
|
|
154
|
+
}
|
|
155
|
+
// Asked in order from the top, so a stream engine walks its frontier
|
|
156
|
+
// line by line and answers each exactly, never from a guess.
|
|
157
|
+
const out = [];
|
|
158
|
+
for (let i = 0; i < lines.length; i++) {
|
|
159
|
+
if (i > 0)
|
|
160
|
+
out.push(this.newline);
|
|
161
|
+
const tokens = tokenizer.lineTokens(i);
|
|
162
|
+
let runs = this.lineRuns[i];
|
|
163
|
+
if (!runs || this.tokens[i] !== tokens) {
|
|
164
|
+
runs = lineRuns(lines[i], tokens, opts).map(this.decorate);
|
|
165
|
+
this.lineRuns[i] = runs;
|
|
166
|
+
this.tokens[i] = tokens;
|
|
167
|
+
}
|
|
168
|
+
for (const run of runs)
|
|
169
|
+
out.push(run);
|
|
170
|
+
}
|
|
171
|
+
return out;
|
|
172
|
+
}
|
|
173
|
+
dispose() {
|
|
174
|
+
this.tokenizer?.dispose?.();
|
|
175
|
+
this.tokenizer = null;
|
|
176
|
+
this.key = null;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/** One line's runs, as `codeRuns` makes them, up to its end. */
|
|
180
|
+
function lineRuns(line, tokens, opts) {
|
|
181
|
+
const out = [];
|
|
182
|
+
let at = 0;
|
|
183
|
+
for (const t of tokens) {
|
|
184
|
+
if (t.from > at)
|
|
185
|
+
push(out, line.slice(at, t.from), undefined, opts);
|
|
186
|
+
push(out, line.slice(t.from, t.to), t.type, opts);
|
|
187
|
+
at = t.to;
|
|
188
|
+
}
|
|
189
|
+
if (at < line.length)
|
|
190
|
+
push(out, line.slice(at), undefined, opts);
|
|
191
|
+
return out;
|
|
192
|
+
}
|
|
88
193
|
//# sourceMappingURL=runs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/code-language/runs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/code-language/runs.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,sEAAsE;AACtE,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,wEAAwE;AACxE,uEAAuE;AACvE,6CAA6C;AAC7C,EAAE;AACF,QAAQ;AACR,8CAA8C;AAC9C,oFAAoF;AACpF,MAAM;AACN,EAAE;AACF,0EAA0E;AAC1E,qEAAqE;AACrE,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgC3C,SAAS,QAAQ,CACf,KAAyB,EACzB,IAAoB;IAEpB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAC1D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,GAAW,EACX,IAAoB;IAEpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhE,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ;QACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE;oBAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACpE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAClD,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,IAAI,CACX,GAAc,EACd,IAAY,EACZ,IAAwB,EACxB,IAAoB;IAEpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,GAAG,GAAY;QACnB,IAAI;QACJ,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;KAClD,CAAC;IACF,IAAI,KAAK,EAAE,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7C,IAAI,KAAK,EAAE,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,IACE,IAAI;QACJ,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;QACxB,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;QAC1B,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EACxB,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,YAAY;IASJ,QAAQ;IARnB,GAAG,GAA8B,IAAI,CAAC;IACtC,SAAS,GAAqB,IAAI,CAAC;IACnC,KAAK,GAAa,EAAE,CAAC;IACrB,MAAM,GAAqC,EAAE,CAAC;IAC9C,QAAQ,GAAwB,EAAE,CAAC;IACnC,OAAO,GAAa,IAAI,CAAC;IAEjC,YACmB,QAAQ,GAAwB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAQ;wBAAjD,QAAQ;IACxB,CAAC;IAEJ,IAAI,CAAC,IAAY,EAAE,GAAW,EAAE,IAAoB;QAClD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ;YACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAU,CAAC;QAElC,sEAAsE;QACtE,2BAA2B;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACpC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,qEAAqE;QACrE,6DAA6D;QAC7D,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YAC1B,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;CACF;AAED,gEAAgE;AAChE,SAAS,QAAQ,CACf,IAAY,EACZ,MAAwB,EACxB,IAAoB;IAEpB,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE;YAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -61,6 +61,19 @@ export interface CodeBlockRunOptions {
|
|
|
61
61
|
/** The source as `<richtext>` runs: tokenized, then given the mono font.
|
|
62
62
|
* The runs concatenate back to exactly `source`. */
|
|
63
63
|
export declare function codeBlockRuns(source: string, look: CodeBlockLook, options?: CodeBlockRunOptions): TextRun[];
|
|
64
|
+
/**
|
|
65
|
+
* `codeBlockRuns` kept between calls, for a block of code that changes a
|
|
66
|
+
* little at a time — a fence being streamed, a source being appended to:
|
|
67
|
+
* the tokenizer is told which lines changed and the rest keep their runs
|
|
68
|
+
* (`CodeRunCache`). Call `dispose()` when done with it.
|
|
69
|
+
*/
|
|
70
|
+
export declare class CodeBlockRunCache {
|
|
71
|
+
private cache;
|
|
72
|
+
private family;
|
|
73
|
+
private size;
|
|
74
|
+
runs(source: string, look: CodeBlockLook, options?: CodeBlockRunOptions): TextRun[];
|
|
75
|
+
dispose(): void;
|
|
76
|
+
}
|
|
64
77
|
/** The block's own box: fill, radius, padding. What surrounds it — a row
|
|
65
78
|
* with a gutter, a column in a document — is the component's. */
|
|
66
79
|
export declare function codeBlockStyle(look: CodeBlockLook): Style;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;0CAE0C;AAC1C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,MAAM,EAAE,WAAW,CAAC;IACpB,4DAA4D;IAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;uDACmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;cAEc;AACd,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAKtC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAmBf;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;iFAC6E;IAC7E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;qDACqD;AACrD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,EAAE,CASX;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,IAAI,CAAqB;IAEjC,IAAI,CACF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,EAAE,CAoBX;IAED,OAAO,IAAI,IAAI,CAGd;CACF;AAED;kEACkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK,CAMzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,UAAO,GAAG,KAAK,CAQrE"}
|
package/dist/codeblock/index.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// A shared module, not a component: no element registration, no React, and
|
|
16
16
|
// nothing imported from either of its consumers (a component never imports
|
|
17
17
|
// another component).
|
|
18
|
-
import { codeRuns, autoTokenStyles } from '../code-language/index.js';
|
|
18
|
+
import { codeRuns, autoTokenStyles, CodeRunCache, } from '../code-language/index.js';
|
|
19
19
|
import { tint } from 'react-x11/style';
|
|
20
20
|
/** Code is set tighter than prose: the lines are short and the shapes are
|
|
21
21
|
* what is being read. One value, so a fenced block and a `<Code>` in the
|
|
@@ -69,6 +69,42 @@ export function codeBlockRuns(source, look, options = {}) {
|
|
|
69
69
|
resolveToken: look.resolveToken,
|
|
70
70
|
}).map((run) => ({ ...run, family: look.family, size: look.size }));
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* `codeBlockRuns` kept between calls, for a block of code that changes a
|
|
74
|
+
* little at a time — a fence being streamed, a source being appended to:
|
|
75
|
+
* the tokenizer is told which lines changed and the rest keep their runs
|
|
76
|
+
* (`CodeRunCache`). Call `dispose()` when done with it.
|
|
77
|
+
*/
|
|
78
|
+
export class CodeBlockRunCache {
|
|
79
|
+
cache = null;
|
|
80
|
+
family;
|
|
81
|
+
size;
|
|
82
|
+
runs(source, look, options = {}) {
|
|
83
|
+
if (!this.cache || this.family !== look.family || this.size !== look.size) {
|
|
84
|
+
this.cache?.dispose();
|
|
85
|
+
const { family, size } = look;
|
|
86
|
+
this.family = family;
|
|
87
|
+
this.size = size;
|
|
88
|
+
this.cache = new CodeRunCache((run) => ({
|
|
89
|
+
...run,
|
|
90
|
+
family,
|
|
91
|
+
size,
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
const { lang = '', language, resolveLanguage, highlight = true } = options;
|
|
95
|
+
return this.cache.runs(source, highlight ? lang : '', {
|
|
96
|
+
styles: look.styles,
|
|
97
|
+
color: look.color,
|
|
98
|
+
...(highlight && language ? { language } : null),
|
|
99
|
+
...(highlight && resolveLanguage ? { resolveLanguage } : null),
|
|
100
|
+
resolveToken: look.resolveToken,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
dispose() {
|
|
104
|
+
this.cache?.dispose();
|
|
105
|
+
this.cache = null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
72
108
|
/** The block's own box: fill, radius, padding. What surrounds it — a row
|
|
73
109
|
* with a gutter, a column in a document — is the component's. */
|
|
74
110
|
export function codeBlockStyle(look) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,mBAAmB;AACnB,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,sBAAsB;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,20 @@ export interface PointerState {
|
|
|
47
47
|
hovered: ReadonlySet<Element>;
|
|
48
48
|
active: ReadonlySet<Element>;
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* The face a style's font-relative units are measured in: its family list,
|
|
52
|
+
* size, weight and slant, the four that pick one. A family's faces can be
|
|
53
|
+
* different fonts altogether — a page's `@font-face` rules may set its
|
|
54
|
+
* bold in another file — so an `ex` in bold text is the bold face's.
|
|
55
|
+
*/
|
|
56
|
+
export interface MetricFace {
|
|
57
|
+
family: string;
|
|
58
|
+
size: number;
|
|
59
|
+
weight: number;
|
|
60
|
+
style: ComputedStyle['fontStyle'];
|
|
61
|
+
}
|
|
62
|
+
/** What a face measures, where the fonts can say. */
|
|
63
|
+
export type FaceMetric = (face: MetricFace) => number | null;
|
|
50
64
|
/**
|
|
51
65
|
* A cascade over a fixed set of stylesheets. Rebuilt when the sheets change;
|
|
52
66
|
* re-run when the DOM, the viewport band or the pointer state does.
|
|
@@ -89,14 +103,14 @@ export declare class Cascade {
|
|
|
89
103
|
readonly breakpoints: number[];
|
|
90
104
|
/** The counter styles the sheets define, over the predefined ones. */
|
|
91
105
|
readonly counterStyles: CounterStyles;
|
|
92
|
-
/** A
|
|
106
|
+
/** A face's x-height, for `ex`, where the fonts can say. */
|
|
93
107
|
private _xHeightOf;
|
|
94
108
|
private _xHeights;
|
|
95
|
-
/** The advance of a
|
|
109
|
+
/** The advance of a face's "0", for `ch`, likewise. */
|
|
96
110
|
private _zeroWidthOf;
|
|
97
111
|
private _zeroWidths;
|
|
98
|
-
/** A
|
|
99
|
-
*
|
|
112
|
+
/** A face's own line height, for `lh` where `line-height` is `normal`,
|
|
113
|
+
* likewise. */
|
|
100
114
|
private _normalLineOf;
|
|
101
115
|
private _normalLines;
|
|
102
116
|
/** Whether any declaration sets a custom property or reads one: without
|
|
@@ -115,7 +129,7 @@ export declare class Cascade {
|
|
|
115
129
|
/** Whether any declaration has a length in `lh` or `rlh`: only then is
|
|
116
130
|
* the line height settled ahead of the declarations that read it. */
|
|
117
131
|
private _lh;
|
|
118
|
-
constructor(sheets: Stylesheet[], look: RootLook, viewportWidth: number, viewportHeight: number, scale?: number, xHeight?:
|
|
132
|
+
constructor(sheets: Stylesheet[], look: RootLook, viewportWidth: number, viewportHeight: number, scale?: number, xHeight?: FaceMetric | null, zeroWidth?: FaceMetric | null, normalLine?: FaceMetric | null, families?: FontFamilies | null);
|
|
119
133
|
/** Whether declarations read the viewport's width or height (`vw`,
|
|
120
134
|
* `vh`, `vmin`, `vmax`), noted on the cascade. */
|
|
121
135
|
private _noteViewportUnits;
|
|
@@ -246,14 +260,14 @@ export declare class Cascade {
|
|
|
246
260
|
* `display` or its `position` (CSS 2.1 5.12.2).
|
|
247
261
|
*/
|
|
248
262
|
firstLetterStyle(rules: FirstLetterRules, parentStyle: ComputedStyle): ComputedStyle;
|
|
249
|
-
/** The x-height of a style's font: the font's own, asked once per face
|
|
250
|
-
*
|
|
263
|
+
/** The x-height of a style's font: the font's own, asked once per face,
|
|
264
|
+
* or half an em. */
|
|
251
265
|
private _exOf;
|
|
252
266
|
/** The advance of a style's font's "0": the font's own, asked once per
|
|
253
|
-
* face
|
|
267
|
+
* face, or half an em. */
|
|
254
268
|
private _chOf;
|
|
255
269
|
/** A style's computed line height as a length, for `lh`: `normal` as
|
|
256
|
-
* its font's own, asked once per face
|
|
270
|
+
* its font's own, asked once per face, or 1.2em. */
|
|
257
271
|
private _lineHeightOf;
|
|
258
272
|
/** `styleFor`, from the rules and hints already gathered for `el`. */
|
|
259
273
|
private _computeStyle;
|
|
@@ -278,8 +292,16 @@ export declare class Cascade {
|
|
|
278
292
|
* that implied `<html>` instead, so an `html { font-size }` still reaches
|
|
279
293
|
* the body. Taken as the initial style, the rule matched nothing and the
|
|
280
294
|
* whole page came out at the theme's size.
|
|
295
|
+
*
|
|
296
|
+
* `html` is the implied `<html>`'s own style where the root box stands in
|
|
297
|
+
* for the body inside it, and null otherwise: what an `html { … }` or a
|
|
298
|
+
* `:root { … }` rule gives it that is not inherited has no box to be
|
|
299
|
+
* drawn on, and its background is the canvas's (`paintDocument`).
|
|
281
300
|
*/
|
|
282
|
-
rootStyle(hasBody: boolean, hasHtml?: boolean):
|
|
301
|
+
rootStyle(hasBody: boolean, hasHtml?: boolean): {
|
|
302
|
+
style: ComputedStyle;
|
|
303
|
+
html: ComputedStyle | null;
|
|
304
|
+
};
|
|
283
305
|
/** The rules of `index` that match `el`, pushed onto `out` as candidates,
|
|
284
306
|
* and their ids onto `matched` in the order they were tried. */
|
|
285
307
|
private _matchInto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascade.d.ts","sourceRoot":"","sources":["../../../src/html/css/cascade.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAW1C,OAAO,KAAK,EAA0B,UAAU,EAAE,MAAM,YAAY,CAAC;AAcrE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAuCtE;sEACsE;AACtE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AA4ID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAClD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC9C,CA8GA;AAwID,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAC;CACzC;AAED;6EAC6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC9B;AAID;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAmB;IACjC;yEACqE;IACrE,OAAO,CAAC,OAAO,CAMb;IACF,OAAO,CAAC,QAAQ,CAAmB;IACnC;;oEAEgE;IAChE,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,cAAc,CAA6C;IACnE;;;0BAGsB;IACtB,UAAU,UAAQ;IAClB;sEACkE;IAClE,aAAa,UAAS;IACtB;qEACiE;IACjE,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,eAAe,CACkD;IACzE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;wCACoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB;+EAC2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;sDACkD;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC,
|
|
1
|
+
{"version":3,"file":"cascade.d.ts","sourceRoot":"","sources":["../../../src/html/css/cascade.ts"],"names":[],"mappings":"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"}
|