@principal-ai/subsystems-react 0.30.1 → 0.31.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/pierre/index.d.ts +2 -0
- package/dist/pierre/index.d.ts.map +1 -1
- package/dist/pierre/index.js +1 -0
- package/dist/pierre/index.js.map +1 -1
- package/dist/pierre/sourceLang.d.ts +20 -0
- package/dist/pierre/sourceLang.d.ts.map +1 -0
- package/dist/pierre/sourceLang.js +78 -0
- package/dist/pierre/sourceLang.js.map +1 -0
- package/dist/pierre/syntaxTokens.d.ts +6 -4
- package/dist/pierre/syntaxTokens.d.ts.map +1 -1
- package/dist/pierre/syntaxTokens.js +22 -6
- package/dist/pierre/syntaxTokens.js.map +1 -1
- package/dist/subsystem/ComponentDeclaration.d.ts.map +1 -1
- package/dist/subsystem/ComponentDeclaration.js +9 -3
- package/dist/subsystem/ComponentDeclaration.js.map +1 -1
- package/dist/subsystem/tokenizeComponent.d.ts +7 -5
- package/dist/subsystem/tokenizeComponent.d.ts.map +1 -1
- package/dist/subsystem/tokenizeComponent.js +40 -17
- package/dist/subsystem/tokenizeComponent.js.map +1 -1
- package/dist/subsystem/tokenizeFormatted.d.ts +6 -5
- package/dist/subsystem/tokenizeFormatted.d.ts.map +1 -1
- package/dist/subsystem/tokenizeFormatted.js +6 -6
- package/dist/subsystem/tokenizeFormatted.js.map +1 -1
- package/package.json +1 -1
- package/src/pierre/index.ts +5 -0
- package/src/pierre/sourceLang.test.ts +40 -0
- package/src/pierre/sourceLang.ts +83 -0
- package/src/pierre/syntaxTokens.ts +30 -5
- package/src/stories/Subsystem/ComponentDeclarationAudit.stories.tsx +103 -0
- package/src/subsystem/ComponentDeclaration.tsx +15 -5
- package/src/subsystem/tokenizeComponent.test.ts +56 -0
- package/src/subsystem/tokenizeComponent.ts +46 -17
- package/src/subsystem/tokenizeFormatted.ts +7 -5
package/dist/pierre/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export type { PierreWalkthroughCodeViewProps } from './PierreWalkthroughCodeView
|
|
|
7
7
|
export { remapSnippetLineNumbers, sliceSnippetWindow } from './sliceSnippet';
|
|
8
8
|
export type { SnippetSlice } from './sliceSnippet';
|
|
9
9
|
export { isPierreCFamilyPath, pierreLangForPath, } from './pierreFileLang';
|
|
10
|
+
export { isPrettierSourceLang, sourceLangForPath, } from './sourceLang';
|
|
11
|
+
export type { SourceSyntaxLang } from './sourceLang';
|
|
10
12
|
export { PIERRE_DEFAULT_SYNTAX_THEMES, resolvePierreSyntaxThemeName, } from './pierreSyntaxTheme';
|
|
11
13
|
export type { PierreSyntaxThemeName } from './pierreSyntaxTheme';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pierre/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pierre/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/pierre/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export { PierreSnippetView } from './PierreSnippetView';
|
|
|
3
3
|
export { PierreWalkthroughCodeView } from './PierreWalkthroughCodeView';
|
|
4
4
|
export { remapSnippetLineNumbers, sliceSnippetWindow } from './sliceSnippet';
|
|
5
5
|
export { isPierreCFamilyPath, pierreLangForPath, } from './pierreFileLang';
|
|
6
|
+
export { isPrettierSourceLang, sourceLangForPath, } from './sourceLang';
|
|
6
7
|
export { PIERRE_DEFAULT_SYNTAX_THEMES, resolvePierreSyntaxThemeName, } from './pierreSyntaxTheme';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/pierre/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pierre/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pierre/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-language inference for a component's declaration.
|
|
3
|
+
*
|
|
4
|
+
* The declaration panel is language-agnostic in shape (it renders a normalized
|
|
5
|
+
* construct), but formatting + highlighting are language-specific: Prettier
|
|
6
|
+
* only ships JS/TS/CSS/HTML/etc. parsers, and Shiki needs a grammar id. Infer
|
|
7
|
+
* the language from the component's `file` extension so non-JS/TS sources are
|
|
8
|
+
* not forced through the TypeScript parser.
|
|
9
|
+
*/
|
|
10
|
+
/** A Shiki language id (e.g. `typescript`, `python`) or `text` when unknown. */
|
|
11
|
+
export type SourceSyntaxLang = string;
|
|
12
|
+
/**
|
|
13
|
+
* Shiki language id for a source path, or `text` when unknown. C-family paths
|
|
14
|
+
* stay `text` (loading their grammars has trapped WebKit — see
|
|
15
|
+
* `pierreFileLang`).
|
|
16
|
+
*/
|
|
17
|
+
export declare function sourceLangForPath(path?: string | null): SourceSyntaxLang;
|
|
18
|
+
/** True when Prettier should format this language's generated declaration. */
|
|
19
|
+
export declare function isPrettierSourceLang(lang: SourceSyntaxLang): boolean;
|
|
20
|
+
//# sourceMappingURL=sourceLang.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceLang.d.ts","sourceRoot":"","sources":["../../src/pierre/sourceLang.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAuDtC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,CAIxE;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAEpE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-language inference for a component's declaration.
|
|
3
|
+
*
|
|
4
|
+
* The declaration panel is language-agnostic in shape (it renders a normalized
|
|
5
|
+
* construct), but formatting + highlighting are language-specific: Prettier
|
|
6
|
+
* only ships JS/TS/CSS/HTML/etc. parsers, and Shiki needs a grammar id. Infer
|
|
7
|
+
* the language from the component's `file` extension so non-JS/TS sources are
|
|
8
|
+
* not forced through the TypeScript parser.
|
|
9
|
+
*/
|
|
10
|
+
import { isPierreCFamilyPath } from './pierreFileLang';
|
|
11
|
+
const EXT_TO_LANG = {
|
|
12
|
+
ts: 'typescript',
|
|
13
|
+
mts: 'typescript',
|
|
14
|
+
cts: 'typescript',
|
|
15
|
+
tsx: 'tsx',
|
|
16
|
+
js: 'javascript',
|
|
17
|
+
mjs: 'javascript',
|
|
18
|
+
cjs: 'javascript',
|
|
19
|
+
jsx: 'jsx',
|
|
20
|
+
py: 'python',
|
|
21
|
+
pyi: 'python',
|
|
22
|
+
rb: 'ruby',
|
|
23
|
+
rs: 'rust',
|
|
24
|
+
go: 'go',
|
|
25
|
+
java: 'java',
|
|
26
|
+
kt: 'kotlin',
|
|
27
|
+
kts: 'kotlin',
|
|
28
|
+
swift: 'swift',
|
|
29
|
+
scala: 'scala',
|
|
30
|
+
php: 'php',
|
|
31
|
+
cs: 'csharp',
|
|
32
|
+
sh: 'shellscript',
|
|
33
|
+
bash: 'shellscript',
|
|
34
|
+
zsh: 'shellscript',
|
|
35
|
+
sql: 'sql',
|
|
36
|
+
graphql: 'graphql',
|
|
37
|
+
gql: 'graphql',
|
|
38
|
+
json: 'json',
|
|
39
|
+
jsonc: 'json',
|
|
40
|
+
yaml: 'yaml',
|
|
41
|
+
yml: 'yaml',
|
|
42
|
+
toml: 'toml',
|
|
43
|
+
md: 'markdown',
|
|
44
|
+
mdx: 'markdown',
|
|
45
|
+
html: 'html',
|
|
46
|
+
htm: 'html',
|
|
47
|
+
css: 'css',
|
|
48
|
+
scss: 'scss',
|
|
49
|
+
less: 'less',
|
|
50
|
+
vue: 'vue',
|
|
51
|
+
svelte: 'svelte',
|
|
52
|
+
};
|
|
53
|
+
/** Languages Prettier can parse (its bundled parsers, all via `typescript`). */
|
|
54
|
+
const PRETTIER_LANGS = new Set(['typescript', 'tsx', 'javascript', 'jsx']);
|
|
55
|
+
function extensionOf(path) {
|
|
56
|
+
const base = path.split(/[/\\]/).pop() ?? path;
|
|
57
|
+
const dot = base.lastIndexOf('.');
|
|
58
|
+
if (dot < 0)
|
|
59
|
+
return '';
|
|
60
|
+
return base.slice(dot + 1).toLowerCase();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Shiki language id for a source path, or `text` when unknown. C-family paths
|
|
64
|
+
* stay `text` (loading their grammars has trapped WebKit — see
|
|
65
|
+
* `pierreFileLang`).
|
|
66
|
+
*/
|
|
67
|
+
export function sourceLangForPath(path) {
|
|
68
|
+
if (!path)
|
|
69
|
+
return 'text';
|
|
70
|
+
if (isPierreCFamilyPath(path))
|
|
71
|
+
return 'text';
|
|
72
|
+
return EXT_TO_LANG[extensionOf(path)] ?? 'text';
|
|
73
|
+
}
|
|
74
|
+
/** True when Prettier should format this language's generated declaration. */
|
|
75
|
+
export function isPrettierSourceLang(lang) {
|
|
76
|
+
return PRETTIER_LANGS.has(lang);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=sourceLang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceLang.js","sourceRoot":"","sources":["../../src/pierre/sourceLang.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,WAAW,GAAqC;IACpD,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,QAAQ;IACZ,GAAG,EAAE,QAAQ;IACb,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,QAAQ;IACZ,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,UAAU;IACd,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,gFAAgF;AAChF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,IAAI,mBAAmB,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,IAAsB;IACzD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tokenize
|
|
2
|
+
* Tokenize source text with Shiki + Pierre themes — same stack as @pierre/diffs.
|
|
3
3
|
*/
|
|
4
4
|
import type { SubsystemDeclToken } from '../subsystem/model';
|
|
5
5
|
import type { PierreSyntaxThemeName } from './pierreSyntaxTheme';
|
|
6
|
+
import type { SourceSyntaxLang } from './sourceLang';
|
|
6
7
|
/**
|
|
7
|
-
* Tokenize
|
|
8
|
-
*
|
|
8
|
+
* Tokenize code using Pierre's Shiki themes. Each token carries the resolved
|
|
9
|
+
* foreground color Pierre would render. `lang` is the inferred source language
|
|
10
|
+
* (`text` when unknown) — TS by default for backward compatibility.
|
|
9
11
|
*/
|
|
10
|
-
export declare function tokenizeWithPierreSyntax(code: string, themeName: PierreSyntaxThemeName): Promise<SubsystemDeclToken[]>;
|
|
12
|
+
export declare function tokenizeWithPierreSyntax(code: string, themeName: PierreSyntaxThemeName, lang?: SourceSyntaxLang): Promise<SubsystemDeclToken[]>;
|
|
11
13
|
//# sourceMappingURL=syntaxTokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntaxTokens.d.ts","sourceRoot":"","sources":["../../src/pierre/syntaxTokens.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"syntaxTokens.d.ts","sourceRoot":"","sources":["../../src/pierre/syntaxTokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAqCrD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,qBAAqB,EAChC,IAAI,GAAE,gBAA+B,GACpC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwB/B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tokenize
|
|
2
|
+
* Tokenize source text with Shiki + Pierre themes — same stack as @pierre/diffs.
|
|
3
3
|
*/
|
|
4
|
-
import { createHighlighter } from 'shiki';
|
|
4
|
+
import { createHighlighter, } from 'shiki';
|
|
5
5
|
import pierreDark from '@pierre/theme/pierre-dark';
|
|
6
6
|
import pierreLight from '@pierre/theme/pierre-light';
|
|
7
7
|
let highlighterPromise = null;
|
|
@@ -17,17 +17,33 @@ async function getPierreHighlighter() {
|
|
|
17
17
|
}
|
|
18
18
|
return highlighterPromise;
|
|
19
19
|
}
|
|
20
|
+
/** Load a grammar on demand; fall back to `text` when it isn't available. */
|
|
21
|
+
async function resolveLang(highlighter, lang) {
|
|
22
|
+
if (lang === 'text')
|
|
23
|
+
return 'text';
|
|
24
|
+
try {
|
|
25
|
+
if (!highlighter.getLoadedLanguages().includes(lang)) {
|
|
26
|
+
await highlighter.loadLanguage(lang);
|
|
27
|
+
}
|
|
28
|
+
return lang;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return 'text';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
20
34
|
function normalizeColor(color) {
|
|
21
35
|
return color?.toLowerCase();
|
|
22
36
|
}
|
|
23
37
|
/**
|
|
24
|
-
* Tokenize
|
|
25
|
-
*
|
|
38
|
+
* Tokenize code using Pierre's Shiki themes. Each token carries the resolved
|
|
39
|
+
* foreground color Pierre would render. `lang` is the inferred source language
|
|
40
|
+
* (`text` when unknown) — TS by default for backward compatibility.
|
|
26
41
|
*/
|
|
27
|
-
export async function tokenizeWithPierreSyntax(code, themeName) {
|
|
42
|
+
export async function tokenizeWithPierreSyntax(code, themeName, lang = 'typescript') {
|
|
28
43
|
const highlighter = await getPierreHighlighter();
|
|
44
|
+
const resolved = await resolveLang(highlighter, lang);
|
|
29
45
|
const { tokens } = highlighter.codeToTokens(code, {
|
|
30
|
-
lang:
|
|
46
|
+
lang: resolved,
|
|
31
47
|
theme: themeName,
|
|
32
48
|
});
|
|
33
49
|
const result = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntaxTokens.js","sourceRoot":"","sources":["../../src/pierre/syntaxTokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"syntaxTokens.js","sourceRoot":"","sources":["../../src/pierre/syntaxTokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,GAIlB,MAAM,OAAO,CAAC;AACf,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AAKrD,IAAI,kBAAkB,GAAgC,IAAI,CAAC;AAE3D,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC,kBAAkB,EAAE;QACvB,kBAAkB,GAAG,iBAAiB,CAAC;YACrC,MAAM,EAAE;gBACN,UAAmC;gBACnC,WAAoC;aACrC;YACD,KAAK,EAAE,CAAC,YAAY,CAAC;SACtB,CAAC,CAAC;KACJ;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,WAAW,CACxB,WAAwB,EACxB,IAAsB;IAEtB,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI;QACF,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACpD,MAAM,WAAW,CAAC,YAAY,CAAC,IAAuB,CAAC,CAAC;SACzD;QACD,OAAO,IAAuB,CAAC;KAChC;IAAC,MAAM;QACN,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,EAAE,WAAW,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,SAAgC,EAChC,OAAyB,YAAY;IAErC,MAAM,WAAW,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE;QAChD,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAS;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,OAAO;gBACnB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;SACJ;QACD,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;SAC5C;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentDeclaration.d.ts","sourceRoot":"","sources":["../../src/subsystem/ComponentDeclaration.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ComponentDeclaration.d.ts","sourceRoot":"","sources":["../../src/subsystem/ComponentDeclaration.tsx"],"names":[],"mappings":"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"}
|
|
@@ -418,9 +418,13 @@ export function ComponentDeclaration({ component, onOpenFile, onRelatedSelect: _
|
|
|
418
418
|
return;
|
|
419
419
|
}
|
|
420
420
|
let cancelled = false;
|
|
421
|
-
tokenizeComponent(component, printWidth, pierreSyntaxTheme)
|
|
421
|
+
tokenizeComponent(component, printWidth, pierreSyntaxTheme)
|
|
422
|
+
.then((t) => {
|
|
422
423
|
if (!cancelled)
|
|
423
424
|
setTokens(t);
|
|
425
|
+
})
|
|
426
|
+
.catch((err) => {
|
|
427
|
+
console.error('[subsystem-declaration] tokenize failed', component.alias, err);
|
|
424
428
|
});
|
|
425
429
|
return () => {
|
|
426
430
|
cancelled = true;
|
|
@@ -440,8 +444,10 @@ export function ComponentDeclaration({ component, onOpenFile, onRelatedSelect: _
|
|
|
440
444
|
if (declLines[li].length === 0)
|
|
441
445
|
continue;
|
|
442
446
|
lines.push(_jsx("div", { style: {
|
|
443
|
-
|
|
444
|
-
|
|
447
|
+
// Block (not flex): tokens flow inline and wrap at spaces. A flex
|
|
448
|
+
// row lets each token span shrink and break mid-word when a line
|
|
449
|
+
// overflows (e.g. the unformatted prettier-fallback declaration).
|
|
450
|
+
display: 'block',
|
|
445
451
|
whiteSpace: 'pre-wrap',
|
|
446
452
|
overflowWrap: 'anywhere',
|
|
447
453
|
minWidth: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentDeclaration.js","sourceRoot":"","sources":["../../src/subsystem/ComponentDeclaration.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComponentDeclaration.js","sourceRoot":"","sources":["../../src/subsystem/ComponentDeclaration.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tokenize a SubsystemComponent into a flat token stream for the detail panel.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: generate declaration string → format with Prettier →
|
|
5
|
-
* with Shiki + Pierre themes
|
|
6
|
-
*
|
|
4
|
+
* Pipeline: generate declaration string → (JS/TS only) format with Prettier →
|
|
5
|
+
* tokenize with Shiki + Pierre themes, using the grammar inferred from the
|
|
6
|
+
* component's file. The `component.tokens` field, when present, overrides the
|
|
7
|
+
* entire pipeline (for pre-tokenized data from graphify).
|
|
7
8
|
*
|
|
8
9
|
* This function is async because Prettier's format() is async.
|
|
9
10
|
*/
|
|
@@ -13,8 +14,9 @@ import type { SubsystemComponent, SubsystemDeclToken } from './model';
|
|
|
13
14
|
* Tokenize a SubsystemComponent into SubsystemDeclToken[].
|
|
14
15
|
*
|
|
15
16
|
* When `component.tokens` is present (pre-tokenized data from the wire),
|
|
16
|
-
* it's returned as-is. Otherwise the pipeline generates a
|
|
17
|
-
*
|
|
17
|
+
* it's returned as-is. Otherwise the pipeline generates a declaration string,
|
|
18
|
+
* formats it with Prettier when the inferred language is JS/TS, and tokenizes
|
|
19
|
+
* the output with that language's grammar.
|
|
18
20
|
*/
|
|
19
21
|
export declare function tokenizeComponent(component: SubsystemComponent, printWidth?: number, themeName?: PierreSyntaxThemeName): Promise<SubsystemDeclToken[]>;
|
|
20
22
|
//# sourceMappingURL=tokenizeComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizeComponent.d.ts","sourceRoot":"","sources":["../../src/subsystem/tokenizeComponent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tokenizeComponent.d.ts","sourceRoot":"","sources":["../../src/subsystem/tokenizeComponent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAKzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA2BtE;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,kBAAkB,EAC7B,UAAU,SAAK,EACf,SAAS,GAAE,qBAAqC,GAC/C,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAgD/B"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tokenize a SubsystemComponent into a flat token stream for the detail panel.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: generate declaration string → format with Prettier →
|
|
5
|
-
* with Shiki + Pierre themes
|
|
6
|
-
*
|
|
4
|
+
* Pipeline: generate declaration string → (JS/TS only) format with Prettier →
|
|
5
|
+
* tokenize with Shiki + Pierre themes, using the grammar inferred from the
|
|
6
|
+
* component's file. The `component.tokens` field, when present, overrides the
|
|
7
|
+
* entire pipeline (for pre-tokenized data from graphify).
|
|
7
8
|
*
|
|
8
9
|
* This function is async because Prettier's format() is async.
|
|
9
10
|
*/
|
|
11
|
+
import { isPrettierSourceLang, sourceLangForPath, } from '../pierre/sourceLang';
|
|
10
12
|
import { generateDeclarationString } from './formatDeclaration';
|
|
11
13
|
import { tokenizeFormatted } from './tokenizeFormatted';
|
|
12
14
|
// Lazy-loaded Prettier to avoid startup cost.
|
|
13
15
|
let prettierPromise = null;
|
|
14
16
|
let prettierPluginsPromise = null;
|
|
17
|
+
/** One-shot guard so a broken host bundler warns once, not per component. */
|
|
18
|
+
let prettierFailureLogged = false;
|
|
15
19
|
async function getPrettier() {
|
|
16
20
|
if (!prettierPromise) {
|
|
17
21
|
prettierPromise = import('prettier/standalone');
|
|
@@ -29,32 +33,51 @@ async function getPrettier() {
|
|
|
29
33
|
* Tokenize a SubsystemComponent into SubsystemDeclToken[].
|
|
30
34
|
*
|
|
31
35
|
* When `component.tokens` is present (pre-tokenized data from the wire),
|
|
32
|
-
* it's returned as-is. Otherwise the pipeline generates a
|
|
33
|
-
*
|
|
36
|
+
* it's returned as-is. Otherwise the pipeline generates a declaration string,
|
|
37
|
+
* formats it with Prettier when the inferred language is JS/TS, and tokenizes
|
|
38
|
+
* the output with that language's grammar.
|
|
34
39
|
*/
|
|
35
40
|
export async function tokenizeComponent(component, printWidth = 80, themeName = 'pierre-dark') {
|
|
36
41
|
// Pre-tokenized tokens from the wire take precedence.
|
|
37
42
|
if (component.tokens)
|
|
38
43
|
return component.tokens;
|
|
39
|
-
|
|
44
|
+
const lang = sourceLangForPath(component.file);
|
|
45
|
+
// External kind — not valid code, bypass Prettier; plain text.
|
|
40
46
|
const kind = component.declaration?.kind ?? component.construct;
|
|
41
47
|
if (kind === 'external') {
|
|
42
48
|
const label = component.declaration?.kind === 'external' ? component.declaration.label : component.name;
|
|
43
49
|
const escaped = label.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
44
|
-
return tokenizeFormatted(`external '${escaped}'`, themeName);
|
|
50
|
+
return tokenizeFormatted(`external '${escaped}'`, themeName, 'text');
|
|
45
51
|
}
|
|
46
|
-
// Custom entity — an actor (Person/agent/queue), not code;
|
|
52
|
+
// Custom entity — an actor (Person/agent/queue), not code; plain text.
|
|
47
53
|
if (kind === 'custom_entity') {
|
|
48
|
-
return tokenizeFormatted(generateDeclarationString(component), themeName);
|
|
54
|
+
return tokenizeFormatted(generateDeclarationString(component), themeName, 'text');
|
|
49
55
|
}
|
|
50
|
-
// Generate → format → tokenize
|
|
56
|
+
// Generate → (JS/TS only) format → tokenize.
|
|
57
|
+
//
|
|
58
|
+
// Prettier ships parsers for JS/TS (and CSS/HTML/…) only — never run it for
|
|
59
|
+
// other languages. Even for JS/TS it's best-effort: some host bundlers
|
|
60
|
+
// (Electrobun's) mangle Prettier's internal cross-module calls, so formatting
|
|
61
|
+
// can throw. Fall back to the unformatted declaration rather than rendering
|
|
62
|
+
// nothing — the panel is still correct, just not width-wrapped.
|
|
51
63
|
const raw = generateDeclarationString(component);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
let formatted = raw;
|
|
65
|
+
if (isPrettierSourceLang(lang)) {
|
|
66
|
+
try {
|
|
67
|
+
const { prettier, plugins } = await getPrettier();
|
|
68
|
+
formatted = await prettier.format(raw, {
|
|
69
|
+
parser: 'typescript',
|
|
70
|
+
plugins: [plugins.typescript, plugins.estree],
|
|
71
|
+
printWidth,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
if (!prettierFailureLogged) {
|
|
76
|
+
prettierFailureLogged = true;
|
|
77
|
+
console.warn('[subsystem] prettier format failed; tokenizing unformatted declarations for this session', err);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return tokenizeFormatted(formatted, themeName, lang);
|
|
59
82
|
}
|
|
60
83
|
//# sourceMappingURL=tokenizeComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizeComponent.js","sourceRoot":"","sources":["../../src/subsystem/tokenizeComponent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tokenizeComponent.js","sourceRoot":"","sources":["../../src/subsystem/tokenizeComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tokenize a formatted
|
|
3
|
-
*
|
|
2
|
+
* Tokenize a formatted source string into SubsystemDeclToken[] using Shiki +
|
|
3
|
+
* Pierre themes (same highlighter stack as @pierre/diffs).
|
|
4
4
|
*/
|
|
5
5
|
import type { PierreSyntaxThemeName } from '../pierre/pierreSyntaxTheme';
|
|
6
|
+
import type { SourceSyntaxLang } from '../pierre/sourceLang';
|
|
6
7
|
import type { SubsystemDeclToken } from './model';
|
|
7
8
|
/**
|
|
8
|
-
* Tokenize a
|
|
9
|
-
*
|
|
9
|
+
* Tokenize a source string into SubsystemDeclToken[]. The input should already
|
|
10
|
+
* be formatted (or be valid for the language). `lang` picks the grammar.
|
|
10
11
|
*/
|
|
11
|
-
export declare function tokenizeFormatted(code: string, themeName?: PierreSyntaxThemeName): Promise<SubsystemDeclToken[]>;
|
|
12
|
+
export declare function tokenizeFormatted(code: string, themeName?: PierreSyntaxThemeName, lang?: SourceSyntaxLang): Promise<SubsystemDeclToken[]>;
|
|
12
13
|
//# sourceMappingURL=tokenizeFormatted.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizeFormatted.d.ts","sourceRoot":"","sources":["../../src/subsystem/tokenizeFormatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,qBAAqC,
|
|
1
|
+
{"version":3,"file":"tokenizeFormatted.d.ts","sourceRoot":"","sources":["../../src/subsystem/tokenizeFormatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,qBAAqC,EAChD,IAAI,GAAE,gBAA+B,GACpC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAE/B"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tokenize a formatted
|
|
3
|
-
*
|
|
2
|
+
* Tokenize a formatted source string into SubsystemDeclToken[] using Shiki +
|
|
3
|
+
* Pierre themes (same highlighter stack as @pierre/diffs).
|
|
4
4
|
*/
|
|
5
5
|
import { tokenizeWithPierreSyntax } from '../pierre/syntaxTokens';
|
|
6
6
|
/**
|
|
7
|
-
* Tokenize a
|
|
8
|
-
*
|
|
7
|
+
* Tokenize a source string into SubsystemDeclToken[]. The input should already
|
|
8
|
+
* be formatted (or be valid for the language). `lang` picks the grammar.
|
|
9
9
|
*/
|
|
10
|
-
export function tokenizeFormatted(code, themeName = 'pierre-dark') {
|
|
11
|
-
return tokenizeWithPierreSyntax(code, themeName);
|
|
10
|
+
export function tokenizeFormatted(code, themeName = 'pierre-dark', lang = 'typescript') {
|
|
11
|
+
return tokenizeWithPierreSyntax(code, themeName, lang);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=tokenizeFormatted.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizeFormatted.js","sourceRoot":"","sources":["../../src/subsystem/tokenizeFormatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenizeFormatted.js","sourceRoot":"","sources":["../../src/subsystem/tokenizeFormatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAKlE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,YAAmC,aAAa,EAChD,OAAyB,YAAY;IAErC,OAAO,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC"}
|
package/package.json
CHANGED
package/src/pierre/index.ts
CHANGED
|
@@ -10,6 +10,11 @@ export {
|
|
|
10
10
|
isPierreCFamilyPath,
|
|
11
11
|
pierreLangForPath,
|
|
12
12
|
} from './pierreFileLang';
|
|
13
|
+
export {
|
|
14
|
+
isPrettierSourceLang,
|
|
15
|
+
sourceLangForPath,
|
|
16
|
+
} from './sourceLang';
|
|
17
|
+
export type { SourceSyntaxLang } from './sourceLang';
|
|
13
18
|
export {
|
|
14
19
|
PIERRE_DEFAULT_SYNTAX_THEMES,
|
|
15
20
|
resolvePierreSyntaxThemeName,
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { describe, expect, test } from 'bun:test';
|
|
2
|
+
import { isPrettierSourceLang, sourceLangForPath } from './sourceLang';
|
|
3
|
+
|
|
4
|
+
describe('sourceLangForPath', () => {
|
|
5
|
+
test('maps JS/TS extensions to their grammar', () => {
|
|
6
|
+
expect(sourceLangForPath('src/a.ts')).toBe('typescript');
|
|
7
|
+
expect(sourceLangForPath('src/a.tsx')).toBe('tsx');
|
|
8
|
+
expect(sourceLangForPath('src/a.mjs')).toBe('javascript');
|
|
9
|
+
expect(sourceLangForPath('src/a.jsx')).toBe('jsx');
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test('maps other languages', () => {
|
|
13
|
+
expect(sourceLangForPath('graphify/dedup.py')).toBe('python');
|
|
14
|
+
expect(sourceLangForPath('src/lib.rs')).toBe('rust');
|
|
15
|
+
expect(sourceLangForPath('cmd/main.go')).toBe('go');
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test('unknown / missing path falls back to text', () => {
|
|
19
|
+
expect(sourceLangForPath(undefined)).toBe('text');
|
|
20
|
+
expect(sourceLangForPath('')).toBe('text');
|
|
21
|
+
expect(sourceLangForPath('Makefile')).toBe('text');
|
|
22
|
+
expect(sourceLangForPath('src/a.unknownext')).toBe('text');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('C-family stays text (WebKit-safe grammars)', () => {
|
|
26
|
+
expect(sourceLangForPath('src/main.cpp')).toBe('text');
|
|
27
|
+
expect(sourceLangForPath('src/graph.h')).toBe('text');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe('isPrettierSourceLang', () => {
|
|
32
|
+
test('true only for the bundled Prettier parsers', () => {
|
|
33
|
+
for (const lang of ['typescript', 'tsx', 'javascript', 'jsx']) {
|
|
34
|
+
expect(isPrettierSourceLang(lang)).toBe(true);
|
|
35
|
+
}
|
|
36
|
+
for (const lang of ['python', 'rust', 'go', 'text']) {
|
|
37
|
+
expect(isPrettierSourceLang(lang)).toBe(false);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source-language inference for a component's declaration.
|
|
3
|
+
*
|
|
4
|
+
* The declaration panel is language-agnostic in shape (it renders a normalized
|
|
5
|
+
* construct), but formatting + highlighting are language-specific: Prettier
|
|
6
|
+
* only ships JS/TS/CSS/HTML/etc. parsers, and Shiki needs a grammar id. Infer
|
|
7
|
+
* the language from the component's `file` extension so non-JS/TS sources are
|
|
8
|
+
* not forced through the TypeScript parser.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { isPierreCFamilyPath } from './pierreFileLang';
|
|
12
|
+
|
|
13
|
+
/** A Shiki language id (e.g. `typescript`, `python`) or `text` when unknown. */
|
|
14
|
+
export type SourceSyntaxLang = string;
|
|
15
|
+
|
|
16
|
+
const EXT_TO_LANG: Record<string, SourceSyntaxLang> = {
|
|
17
|
+
ts: 'typescript',
|
|
18
|
+
mts: 'typescript',
|
|
19
|
+
cts: 'typescript',
|
|
20
|
+
tsx: 'tsx',
|
|
21
|
+
js: 'javascript',
|
|
22
|
+
mjs: 'javascript',
|
|
23
|
+
cjs: 'javascript',
|
|
24
|
+
jsx: 'jsx',
|
|
25
|
+
py: 'python',
|
|
26
|
+
pyi: 'python',
|
|
27
|
+
rb: 'ruby',
|
|
28
|
+
rs: 'rust',
|
|
29
|
+
go: 'go',
|
|
30
|
+
java: 'java',
|
|
31
|
+
kt: 'kotlin',
|
|
32
|
+
kts: 'kotlin',
|
|
33
|
+
swift: 'swift',
|
|
34
|
+
scala: 'scala',
|
|
35
|
+
php: 'php',
|
|
36
|
+
cs: 'csharp',
|
|
37
|
+
sh: 'shellscript',
|
|
38
|
+
bash: 'shellscript',
|
|
39
|
+
zsh: 'shellscript',
|
|
40
|
+
sql: 'sql',
|
|
41
|
+
graphql: 'graphql',
|
|
42
|
+
gql: 'graphql',
|
|
43
|
+
json: 'json',
|
|
44
|
+
jsonc: 'json',
|
|
45
|
+
yaml: 'yaml',
|
|
46
|
+
yml: 'yaml',
|
|
47
|
+
toml: 'toml',
|
|
48
|
+
md: 'markdown',
|
|
49
|
+
mdx: 'markdown',
|
|
50
|
+
html: 'html',
|
|
51
|
+
htm: 'html',
|
|
52
|
+
css: 'css',
|
|
53
|
+
scss: 'scss',
|
|
54
|
+
less: 'less',
|
|
55
|
+
vue: 'vue',
|
|
56
|
+
svelte: 'svelte',
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/** Languages Prettier can parse (its bundled parsers, all via `typescript`). */
|
|
60
|
+
const PRETTIER_LANGS = new Set(['typescript', 'tsx', 'javascript', 'jsx']);
|
|
61
|
+
|
|
62
|
+
function extensionOf(path: string): string {
|
|
63
|
+
const base = path.split(/[/\\]/).pop() ?? path;
|
|
64
|
+
const dot = base.lastIndexOf('.');
|
|
65
|
+
if (dot < 0) return '';
|
|
66
|
+
return base.slice(dot + 1).toLowerCase();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Shiki language id for a source path, or `text` when unknown. C-family paths
|
|
71
|
+
* stay `text` (loading their grammars has trapped WebKit — see
|
|
72
|
+
* `pierreFileLang`).
|
|
73
|
+
*/
|
|
74
|
+
export function sourceLangForPath(path?: string | null): SourceSyntaxLang {
|
|
75
|
+
if (!path) return 'text';
|
|
76
|
+
if (isPierreCFamilyPath(path)) return 'text';
|
|
77
|
+
return EXT_TO_LANG[extensionOf(path)] ?? 'text';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/** True when Prettier should format this language's generated declaration. */
|
|
81
|
+
export function isPrettierSourceLang(lang: SourceSyntaxLang): boolean {
|
|
82
|
+
return PRETTIER_LANGS.has(lang);
|
|
83
|
+
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tokenize
|
|
2
|
+
* Tokenize source text with Shiki + Pierre themes — same stack as @pierre/diffs.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
createHighlighter,
|
|
7
|
+
type BundledLanguage,
|
|
8
|
+
type Highlighter,
|
|
9
|
+
type ThemeInput,
|
|
10
|
+
} from 'shiki';
|
|
6
11
|
import pierreDark from '@pierre/theme/pierre-dark';
|
|
7
12
|
import pierreLight from '@pierre/theme/pierre-light';
|
|
8
13
|
import type { SubsystemDeclToken } from '../subsystem/model';
|
|
9
14
|
import type { PierreSyntaxThemeName } from './pierreSyntaxTheme';
|
|
15
|
+
import type { SourceSyntaxLang } from './sourceLang';
|
|
10
16
|
|
|
11
17
|
let highlighterPromise: Promise<Highlighter> | null = null;
|
|
12
18
|
|
|
@@ -23,21 +29,40 @@ async function getPierreHighlighter(): Promise<Highlighter> {
|
|
|
23
29
|
return highlighterPromise;
|
|
24
30
|
}
|
|
25
31
|
|
|
32
|
+
/** Load a grammar on demand; fall back to `text` when it isn't available. */
|
|
33
|
+
async function resolveLang(
|
|
34
|
+
highlighter: Highlighter,
|
|
35
|
+
lang: SourceSyntaxLang,
|
|
36
|
+
): Promise<BundledLanguage | 'text'> {
|
|
37
|
+
if (lang === 'text') return 'text';
|
|
38
|
+
try {
|
|
39
|
+
if (!highlighter.getLoadedLanguages().includes(lang)) {
|
|
40
|
+
await highlighter.loadLanguage(lang as BundledLanguage);
|
|
41
|
+
}
|
|
42
|
+
return lang as BundledLanguage;
|
|
43
|
+
} catch {
|
|
44
|
+
return 'text';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
26
48
|
function normalizeColor(color?: string): string | undefined {
|
|
27
49
|
return color?.toLowerCase();
|
|
28
50
|
}
|
|
29
51
|
|
|
30
52
|
/**
|
|
31
|
-
* Tokenize
|
|
32
|
-
*
|
|
53
|
+
* Tokenize code using Pierre's Shiki themes. Each token carries the resolved
|
|
54
|
+
* foreground color Pierre would render. `lang` is the inferred source language
|
|
55
|
+
* (`text` when unknown) — TS by default for backward compatibility.
|
|
33
56
|
*/
|
|
34
57
|
export async function tokenizeWithPierreSyntax(
|
|
35
58
|
code: string,
|
|
36
59
|
themeName: PierreSyntaxThemeName,
|
|
60
|
+
lang: SourceSyntaxLang = 'typescript',
|
|
37
61
|
): Promise<SubsystemDeclToken[]> {
|
|
38
62
|
const highlighter = await getPierreHighlighter();
|
|
63
|
+
const resolved = await resolveLang(highlighter, lang);
|
|
39
64
|
const { tokens } = highlighter.codeToTokens(code, {
|
|
40
|
-
lang:
|
|
65
|
+
lang: resolved,
|
|
41
66
|
theme: themeName,
|
|
42
67
|
});
|
|
43
68
|
|
|
@@ -397,3 +397,106 @@ export const AugmentedSignature: StoryObj<{ constrained: boolean }> = {
|
|
|
397
397
|
</div>
|
|
398
398
|
),
|
|
399
399
|
};
|
|
400
|
+
|
|
401
|
+
// ---------------------------------------------------------------------------
|
|
402
|
+
// Prettier fallback — when formatting throws (Electrobun's bundled Prettier
|
|
403
|
+
// does), the declaration is tokenized unformatted as one long line. This story
|
|
404
|
+
// reproduces that path deterministically: an unparseable parameter type makes
|
|
405
|
+
// Prettier throw, so `tokenizeComponent` falls back to the raw string. The
|
|
406
|
+
// panel must wrap at spaces, never break a token mid-word (`func` / `c`).
|
|
407
|
+
// ---------------------------------------------------------------------------
|
|
408
|
+
|
|
409
|
+
const fallbackCases: { label: string; component: SubsystemComponent }[] = [
|
|
410
|
+
{
|
|
411
|
+
label: 'formatted — long signature (Prettier wraps at printWidth)',
|
|
412
|
+
component: {
|
|
413
|
+
alias: 'fallback-formatted',
|
|
414
|
+
name: 'mergeSessions',
|
|
415
|
+
construct: 'function',
|
|
416
|
+
file: 'src/session/merge.ts',
|
|
417
|
+
purl: 'pkg:github/principal-ai/agent-monitoring',
|
|
418
|
+
symbol: 'mergeSessions',
|
|
419
|
+
declaration: {
|
|
420
|
+
kind: 'function',
|
|
421
|
+
parameters: [
|
|
422
|
+
{ name: 'sessions', type: 'SessionRecord[]' },
|
|
423
|
+
{ name: 'options', type: 'MergeOptions' },
|
|
424
|
+
{ name: 'onConflict', type: '((a: SessionRecord, b: SessionRecord) => SessionRecord)' },
|
|
425
|
+
],
|
|
426
|
+
returnType: 'Promise<Map<string, SessionEvent[]>>',
|
|
427
|
+
callers: [],
|
|
428
|
+
callees: [],
|
|
429
|
+
} satisfies GraphifyComponentDetail,
|
|
430
|
+
},
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
label: 'fallback — unformatted single line (Prettier throws on `Array<`)',
|
|
434
|
+
component: {
|
|
435
|
+
alias: 'fallback-raw',
|
|
436
|
+
name: 'mergeSessions',
|
|
437
|
+
construct: 'function',
|
|
438
|
+
file: 'src/session/merge.ts',
|
|
439
|
+
purl: 'pkg:github/principal-ai/agent-monitoring',
|
|
440
|
+
symbol: 'mergeSessions',
|
|
441
|
+
declaration: {
|
|
442
|
+
kind: 'function',
|
|
443
|
+
parameters: [
|
|
444
|
+
{ name: 'sessions', type: 'SessionRecord[]' },
|
|
445
|
+
{ name: 'options', type: 'MergeOptions' },
|
|
446
|
+
{ name: 'onConflict', type: 'Array<' },
|
|
447
|
+
],
|
|
448
|
+
returnType: 'Promise<Map<string, SessionEvent[]>>',
|
|
449
|
+
callers: [],
|
|
450
|
+
callees: [],
|
|
451
|
+
} satisfies GraphifyComponentDetail,
|
|
452
|
+
},
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
label: 'non-JS/TS (python) — Prettier skipped, python grammar',
|
|
456
|
+
component: {
|
|
457
|
+
alias: 'fallback-python',
|
|
458
|
+
name: 'deduplicate_entities',
|
|
459
|
+
construct: 'function',
|
|
460
|
+
file: 'graphify/dedup.py',
|
|
461
|
+
purl: 'pkg:github/graphify-labs/graphify#graphify/dedup.py',
|
|
462
|
+
symbol: 'deduplicate_entities',
|
|
463
|
+
declaration: {
|
|
464
|
+
kind: 'function',
|
|
465
|
+
parameters: [
|
|
466
|
+
{ name: 'graph', type: 'nx.MultiDiGraph' },
|
|
467
|
+
{ name: 'keep', type: 'bool' },
|
|
468
|
+
],
|
|
469
|
+
returnType: 'list[tuple[str, object]]',
|
|
470
|
+
callers: [],
|
|
471
|
+
callees: [],
|
|
472
|
+
} satisfies GraphifyComponentDetail,
|
|
473
|
+
},
|
|
474
|
+
},
|
|
475
|
+
];
|
|
476
|
+
|
|
477
|
+
export const UnformattedFallback: StoryObj<{ constrained: boolean }> = {
|
|
478
|
+
render: ({ constrained }) => (
|
|
479
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: 24 }}>
|
|
480
|
+
{fallbackCases.map((c) => (
|
|
481
|
+
<div key={c.label}>
|
|
482
|
+
<div
|
|
483
|
+
style={{
|
|
484
|
+
fontFamily: 'monospace',
|
|
485
|
+
fontSize: 11,
|
|
486
|
+
color: '#888',
|
|
487
|
+
marginBottom: 4,
|
|
488
|
+
textTransform: 'uppercase',
|
|
489
|
+
letterSpacing: '0.05em',
|
|
490
|
+
}}
|
|
491
|
+
>
|
|
492
|
+
{c.label}
|
|
493
|
+
</div>
|
|
494
|
+
<ComponentDeclaration
|
|
495
|
+
component={c.component}
|
|
496
|
+
maxWidth={constrained ? '80ch' : undefined}
|
|
497
|
+
/>
|
|
498
|
+
</div>
|
|
499
|
+
))}
|
|
500
|
+
</div>
|
|
501
|
+
),
|
|
502
|
+
};
|
|
@@ -748,9 +748,17 @@ export function ComponentDeclaration({
|
|
|
748
748
|
return;
|
|
749
749
|
}
|
|
750
750
|
let cancelled = false;
|
|
751
|
-
tokenizeComponent(component, printWidth, pierreSyntaxTheme)
|
|
752
|
-
|
|
753
|
-
|
|
751
|
+
tokenizeComponent(component, printWidth, pierreSyntaxTheme)
|
|
752
|
+
.then((t) => {
|
|
753
|
+
if (!cancelled) setTokens(t);
|
|
754
|
+
})
|
|
755
|
+
.catch((err) => {
|
|
756
|
+
console.error(
|
|
757
|
+
'[subsystem-declaration] tokenize failed',
|
|
758
|
+
component.alias,
|
|
759
|
+
err,
|
|
760
|
+
);
|
|
761
|
+
});
|
|
754
762
|
return () => {
|
|
755
763
|
cancelled = true;
|
|
756
764
|
};
|
|
@@ -778,8 +786,10 @@ export function ComponentDeclaration({
|
|
|
778
786
|
<div
|
|
779
787
|
key={`decl-${li}`}
|
|
780
788
|
style={{
|
|
781
|
-
|
|
782
|
-
|
|
789
|
+
// Block (not flex): tokens flow inline and wrap at spaces. A flex
|
|
790
|
+
// row lets each token span shrink and break mid-word when a line
|
|
791
|
+
// overflows (e.g. the unformatted prettier-fallback declaration).
|
|
792
|
+
display: 'block',
|
|
783
793
|
whiteSpace: 'pre-wrap',
|
|
784
794
|
overflowWrap: 'anywhere',
|
|
785
795
|
minWidth: 0,
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { describe, expect, test } from 'bun:test';
|
|
2
|
+
import { tokenizeComponent } from './tokenizeComponent';
|
|
3
|
+
import type { SubsystemComponent } from './model';
|
|
4
|
+
|
|
5
|
+
const textOf = (toks: { kind: string; text: string }[]) =>
|
|
6
|
+
toks.filter((t) => t.kind !== 'newline').map((t) => t.text).join('');
|
|
7
|
+
|
|
8
|
+
describe('tokenizeComponent — language inference', () => {
|
|
9
|
+
test('non-JS/TS (python) bypasses Prettier and tokenizes unformatted', async () => {
|
|
10
|
+
const component: SubsystemComponent = {
|
|
11
|
+
alias: 'dedup',
|
|
12
|
+
name: 'deduplicate_entities',
|
|
13
|
+
construct: 'function',
|
|
14
|
+
file: 'graphify/dedup.py',
|
|
15
|
+
purl: 'pkg:github/graphify-labs/graphify#graphify/dedup.py',
|
|
16
|
+
symbol: 'deduplicate_entities',
|
|
17
|
+
declaration: {
|
|
18
|
+
kind: 'function',
|
|
19
|
+
parameters: [{ name: 'graph', type: 'nx.MultiDiGraph' }],
|
|
20
|
+
returnType: 'None',
|
|
21
|
+
callers: [],
|
|
22
|
+
callees: [],
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
const toks = await tokenizeComponent(component, 80, 'pierre-dark');
|
|
26
|
+
// No Prettier run → the raw one-liner comes through verbatim.
|
|
27
|
+
expect(textOf(toks)).toBe(
|
|
28
|
+
'function deduplicate_entities(graph: nx.MultiDiGraph): None;',
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('JS/TS still goes through Prettier (wraps to printWidth)', async () => {
|
|
33
|
+
const component: SubsystemComponent = {
|
|
34
|
+
alias: 'merge',
|
|
35
|
+
name: 'mergeSessions',
|
|
36
|
+
construct: 'function',
|
|
37
|
+
file: 'src/session/merge.ts',
|
|
38
|
+
purl: 'pkg:github/acme/widget',
|
|
39
|
+
symbol: 'mergeSessions',
|
|
40
|
+
declaration: {
|
|
41
|
+
kind: 'function',
|
|
42
|
+
parameters: [
|
|
43
|
+
{ name: 'sessions', type: 'SessionRecord[]' },
|
|
44
|
+
{ name: 'options', type: 'MergeOptions' },
|
|
45
|
+
{ name: 'onConflict', type: '((a: SessionRecord, b: SessionRecord) => SessionRecord)' },
|
|
46
|
+
],
|
|
47
|
+
returnType: 'Promise<Map<string, SessionEvent[]>>',
|
|
48
|
+
callers: [],
|
|
49
|
+
callees: [],
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
const toks = await tokenizeComponent(component, 40, 'pierre-dark');
|
|
53
|
+
// Formatted output spans multiple lines.
|
|
54
|
+
expect(toks.some((t) => t.kind === 'newline')).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tokenize a SubsystemComponent into a flat token stream for the detail panel.
|
|
3
3
|
*
|
|
4
|
-
* Pipeline: generate declaration string → format with Prettier →
|
|
5
|
-
* with Shiki + Pierre themes
|
|
6
|
-
*
|
|
4
|
+
* Pipeline: generate declaration string → (JS/TS only) format with Prettier →
|
|
5
|
+
* tokenize with Shiki + Pierre themes, using the grammar inferred from the
|
|
6
|
+
* component's file. The `component.tokens` field, when present, overrides the
|
|
7
|
+
* entire pipeline (for pre-tokenized data from graphify).
|
|
7
8
|
*
|
|
8
9
|
* This function is async because Prettier's format() is async.
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
12
|
import type { PierreSyntaxThemeName } from '../pierre/pierreSyntaxTheme';
|
|
13
|
+
import {
|
|
14
|
+
isPrettierSourceLang,
|
|
15
|
+
sourceLangForPath,
|
|
16
|
+
} from '../pierre/sourceLang';
|
|
12
17
|
import type { SubsystemComponent, SubsystemDeclToken } from './model';
|
|
13
18
|
import { generateDeclarationString } from './formatDeclaration';
|
|
14
19
|
import { tokenizeFormatted } from './tokenizeFormatted';
|
|
@@ -19,6 +24,8 @@ let prettierPluginsPromise: Promise<{
|
|
|
19
24
|
typescript: typeof import('prettier/plugins/typescript');
|
|
20
25
|
estree: typeof import('prettier/plugins/estree');
|
|
21
26
|
}> | null = null;
|
|
27
|
+
/** One-shot guard so a broken host bundler warns once, not per component. */
|
|
28
|
+
let prettierFailureLogged = false;
|
|
22
29
|
|
|
23
30
|
async function getPrettier() {
|
|
24
31
|
if (!prettierPromise) {
|
|
@@ -38,8 +45,9 @@ async function getPrettier() {
|
|
|
38
45
|
* Tokenize a SubsystemComponent into SubsystemDeclToken[].
|
|
39
46
|
*
|
|
40
47
|
* When `component.tokens` is present (pre-tokenized data from the wire),
|
|
41
|
-
* it's returned as-is. Otherwise the pipeline generates a
|
|
42
|
-
*
|
|
48
|
+
* it's returned as-is. Otherwise the pipeline generates a declaration string,
|
|
49
|
+
* formats it with Prettier when the inferred language is JS/TS, and tokenizes
|
|
50
|
+
* the output with that language's grammar.
|
|
43
51
|
*/
|
|
44
52
|
export async function tokenizeComponent(
|
|
45
53
|
component: SubsystemComponent,
|
|
@@ -49,27 +57,48 @@ export async function tokenizeComponent(
|
|
|
49
57
|
// Pre-tokenized tokens from the wire take precedence.
|
|
50
58
|
if (component.tokens) return component.tokens;
|
|
51
59
|
|
|
52
|
-
|
|
60
|
+
const lang = sourceLangForPath(component.file);
|
|
61
|
+
|
|
62
|
+
// External kind — not valid code, bypass Prettier; plain text.
|
|
53
63
|
const kind = component.declaration?.kind ?? component.construct;
|
|
54
64
|
if (kind === 'external') {
|
|
55
65
|
const label = component.declaration?.kind === 'external' ? component.declaration.label : component.name;
|
|
56
66
|
const escaped = label.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
57
|
-
return tokenizeFormatted(`external '${escaped}'`, themeName);
|
|
67
|
+
return tokenizeFormatted(`external '${escaped}'`, themeName, 'text');
|
|
58
68
|
}
|
|
59
69
|
|
|
60
|
-
// Custom entity — an actor (Person/agent/queue), not code;
|
|
70
|
+
// Custom entity — an actor (Person/agent/queue), not code; plain text.
|
|
61
71
|
if (kind === 'custom_entity') {
|
|
62
|
-
return tokenizeFormatted(generateDeclarationString(component), themeName);
|
|
72
|
+
return tokenizeFormatted(generateDeclarationString(component), themeName, 'text');
|
|
63
73
|
}
|
|
64
74
|
|
|
65
|
-
// Generate → format → tokenize
|
|
75
|
+
// Generate → (JS/TS only) format → tokenize.
|
|
76
|
+
//
|
|
77
|
+
// Prettier ships parsers for JS/TS (and CSS/HTML/…) only — never run it for
|
|
78
|
+
// other languages. Even for JS/TS it's best-effort: some host bundlers
|
|
79
|
+
// (Electrobun's) mangle Prettier's internal cross-module calls, so formatting
|
|
80
|
+
// can throw. Fall back to the unformatted declaration rather than rendering
|
|
81
|
+
// nothing — the panel is still correct, just not width-wrapped.
|
|
66
82
|
const raw = generateDeclarationString(component);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
let formatted = raw;
|
|
84
|
+
if (isPrettierSourceLang(lang)) {
|
|
85
|
+
try {
|
|
86
|
+
const { prettier, plugins } = await getPrettier();
|
|
87
|
+
formatted = await prettier.format(raw, {
|
|
88
|
+
parser: 'typescript',
|
|
89
|
+
plugins: [plugins.typescript, plugins.estree],
|
|
90
|
+
printWidth,
|
|
91
|
+
});
|
|
92
|
+
} catch (err) {
|
|
93
|
+
if (!prettierFailureLogged) {
|
|
94
|
+
prettierFailureLogged = true;
|
|
95
|
+
console.warn(
|
|
96
|
+
'[subsystem] prettier format failed; tokenizing unformatted declarations for this session',
|
|
97
|
+
err,
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
73
102
|
|
|
74
|
-
return tokenizeFormatted(formatted, themeName);
|
|
103
|
+
return tokenizeFormatted(formatted, themeName, lang);
|
|
75
104
|
}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tokenize a formatted
|
|
3
|
-
*
|
|
2
|
+
* Tokenize a formatted source string into SubsystemDeclToken[] using Shiki +
|
|
3
|
+
* Pierre themes (same highlighter stack as @pierre/diffs).
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { tokenizeWithPierreSyntax } from '../pierre/syntaxTokens';
|
|
7
7
|
import type { PierreSyntaxThemeName } from '../pierre/pierreSyntaxTheme';
|
|
8
|
+
import type { SourceSyntaxLang } from '../pierre/sourceLang';
|
|
8
9
|
import type { SubsystemDeclToken } from './model';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
|
-
* Tokenize a
|
|
12
|
-
*
|
|
12
|
+
* Tokenize a source string into SubsystemDeclToken[]. The input should already
|
|
13
|
+
* be formatted (or be valid for the language). `lang` picks the grammar.
|
|
13
14
|
*/
|
|
14
15
|
export function tokenizeFormatted(
|
|
15
16
|
code: string,
|
|
16
17
|
themeName: PierreSyntaxThemeName = 'pierre-dark',
|
|
18
|
+
lang: SourceSyntaxLang = 'typescript',
|
|
17
19
|
): Promise<SubsystemDeclToken[]> {
|
|
18
|
-
return tokenizeWithPierreSyntax(code, themeName);
|
|
20
|
+
return tokenizeWithPierreSyntax(code, themeName, lang);
|
|
19
21
|
}
|