@fieldia/monaco 0.0.0-stage → 0.14.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/LICENSE +21 -0
- package/README.md +94 -2
- package/package.json +37 -3
- package/src/index.d.mts +7 -0
- package/src/index.d.ts +7 -0
- package/src/index.js +14 -0
- package/src/index.js.map +1 -0
- package/src/index.mjs +7 -0
- package/src/index.mjs.map +1 -0
- package/src/lib/json.d.mts +30 -0
- package/src/lib/json.d.ts +30 -0
- package/src/lib/json.js +55 -0
- package/src/lib/json.js.map +1 -0
- package/src/lib/json.mjs +51 -0
- package/src/lib/json.mjs.map +1 -0
- package/src/lib/languages.d.mts +28 -0
- package/src/lib/languages.d.ts +28 -0
- package/src/lib/languages.js +112 -0
- package/src/lib/languages.js.map +1 -0
- package/src/lib/languages.mjs +107 -0
- package/src/lib/languages.mjs.map +1 -0
- package/src/lib/loader.d.mts +19 -0
- package/src/lib/loader.d.ts +19 -0
- package/src/lib/loader.js +164 -0
- package/src/lib/loader.js.map +1 -0
- package/src/lib/loader.mjs +161 -0
- package/src/lib/loader.mjs.map +1 -0
- package/src/lib/monaco.d.mts +38 -0
- package/src/lib/monaco.d.ts +38 -0
- package/src/lib/monaco.js +265 -0
- package/src/lib/monaco.js.map +1 -0
- package/src/lib/monaco.mjs +261 -0
- package/src/lib/monaco.mjs.map +1 -0
- package/src/lib/styles.d.mts +8 -0
- package/src/lib/styles.d.ts +8 -0
- package/src/lib/styles.js +40 -0
- package/src/lib/styles.js.map +1 -0
- package/src/lib/styles.mjs +36 -0
- package/src/lib/styles.mjs.map +1 -0
- package/src/lib/theme.d.mts +48 -0
- package/src/lib/theme.d.ts +48 -0
- package/src/lib/theme.js +154 -0
- package/src/lib/theme.js.map +1 -0
- package/src/lib/theme.mjs +148 -0
- package/src/lib/theme.mjs.map +1 -0
- package/src/lib/types.d.mts +72 -0
- package/src/lib/types.d.ts +72 -0
- package/src/lib/types.js +9 -0
- package/src/lib/types.js.map +1 -0
- package/src/lib/types.mjs +8 -0
- package/src/lib/types.mjs.map +1 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The languages a field in VS Code's editor can be written in
|
|
3
|
+
* (`options.language`): every name @fieldia/code takes, so a page reads alike
|
|
4
|
+
* in either editor, and Monaco's other grammars besides. Each is Monaco's own
|
|
5
|
+
* Monarch grammar, loaded when a field first asks for it (loader.ts); one
|
|
6
|
+
* Monaco has none for is plain text.
|
|
7
|
+
*/
|
|
8
|
+
const language = (id, name, monaco, definition, ...aliases) => ({ id, name, monaco, definition, aliases });
|
|
9
|
+
/** Every language, in the order a person picking one reads them: @fieldia/code's, then Monaco's own. */
|
|
10
|
+
export const MONACO_LANGUAGES = [
|
|
11
|
+
language('javascript', 'JavaScript', 'javascript', 'javascript', 'js', 'mjs', 'cjs', 'node'),
|
|
12
|
+
language('typescript', 'TypeScript', 'typescript', 'typescript', 'ts', 'mts', 'cts'),
|
|
13
|
+
language('jsx', 'JavaScript with JSX', 'javascript', 'javascript'),
|
|
14
|
+
language('tsx', 'TypeScript with JSX', 'typescript', 'typescript'),
|
|
15
|
+
language('python', 'Python', 'python', 'python', 'py', 'python3'),
|
|
16
|
+
language('sql', 'SQL', 'sql', 'sql'),
|
|
17
|
+
language('postgresql', 'PostgreSQL', 'pgsql', 'pgsql', 'postgres', 'pgsql', 'psql'),
|
|
18
|
+
language('mysql', 'MySQL', 'mysql', 'mysql', 'mariadb'),
|
|
19
|
+
language('sqlite', 'SQLite', 'sql', 'sql'),
|
|
20
|
+
language('mssql', 'SQL Server', 'sql', 'sql', 'tsql', 't-sql', 'sqlserver'),
|
|
21
|
+
language('html', 'HTML', 'html', 'html', 'htm', 'xhtml'),
|
|
22
|
+
language('css', 'CSS', 'css', 'css'),
|
|
23
|
+
language('xml', 'XML', 'xml', 'xml', 'svg', 'xsl'),
|
|
24
|
+
language('yaml', 'YAML', 'yaml', 'yaml', 'yml'),
|
|
25
|
+
language('markdown', 'Markdown', 'markdown', 'markdown', 'md'),
|
|
26
|
+
language('json', 'JSON', 'json', null, 'jsonc'),
|
|
27
|
+
language('java', 'Java', 'java', 'java'),
|
|
28
|
+
language('c', 'C', 'c', 'cpp', 'h'),
|
|
29
|
+
language('cpp', 'C++', 'cpp', 'cpp', 'c++', 'cc', 'cxx', 'hpp'),
|
|
30
|
+
language('php', 'PHP', 'php', 'php'),
|
|
31
|
+
language('rust', 'Rust', 'rust', 'rust', 'rs'),
|
|
32
|
+
language('go', 'Go', 'go', 'go', 'golang'),
|
|
33
|
+
language('shell', 'Shell', 'shell', 'shell', 'sh', 'bash', 'zsh'),
|
|
34
|
+
language('powershell', 'PowerShell', 'powershell', 'powershell', 'ps1', 'pwsh'),
|
|
35
|
+
language('ruby', 'Ruby', 'ruby', 'ruby', 'rb'),
|
|
36
|
+
language('perl', 'Perl', 'perl', 'perl', 'pl'),
|
|
37
|
+
language('lua', 'Lua', 'lua', 'lua'),
|
|
38
|
+
language('r', 'R', 'r', 'r'),
|
|
39
|
+
language('swift', 'Swift', 'swift', 'swift'),
|
|
40
|
+
language('kotlin', 'Kotlin', 'kotlin', 'kotlin', 'kt', 'kts'),
|
|
41
|
+
language('csharp', 'C#', 'csharp', 'csharp', 'c#', 'cs'),
|
|
42
|
+
language('scala', 'Scala', 'scala', 'scala'),
|
|
43
|
+
language('dart', 'Dart', 'dart', 'dart'),
|
|
44
|
+
language('dockerfile', 'Dockerfile', 'dockerfile', 'dockerfile', 'docker'),
|
|
45
|
+
language('toml', 'TOML', 'ini', 'ini'),
|
|
46
|
+
language('ini', 'INI', 'ini', 'ini', 'properties', 'conf'),
|
|
47
|
+
language('diff', 'Diff', 'plaintext', null, 'patch'),
|
|
48
|
+
language('nginx', 'nginx', 'plaintext', null),
|
|
49
|
+
language('protobuf', 'Protocol Buffers', 'proto', 'protobuf', 'proto'),
|
|
50
|
+
language('haskell', 'Haskell', 'plaintext', null, 'hs'),
|
|
51
|
+
language('clojure', 'Clojure', 'clojure', 'clojure', 'clj'),
|
|
52
|
+
language('erlang', 'Erlang', 'plaintext', null, 'erl'),
|
|
53
|
+
language('groovy', 'Groovy', 'plaintext', null, 'gradle'),
|
|
54
|
+
language('julia', 'Julia', 'julia', 'julia', 'jl'),
|
|
55
|
+
language('graphql', 'GraphQL', 'graphql', 'graphql', 'gql'),
|
|
56
|
+
language('scss', 'SCSS', 'scss', 'scss', 'sass'),
|
|
57
|
+
language('less', 'Less', 'less', 'less'),
|
|
58
|
+
language('bat', 'Batch', 'bat', 'bat', 'batch', 'cmd'),
|
|
59
|
+
language('vb', 'Visual Basic', 'vb', 'vb', 'vbnet', 'vb.net'),
|
|
60
|
+
language('fsharp', 'F#', 'fsharp', 'fsharp', 'f#', 'fs'),
|
|
61
|
+
language('objective-c', 'Objective-C', 'objective-c', 'objective-c', 'objc', 'objectivec'),
|
|
62
|
+
language('elixir', 'Elixir', 'elixir', 'elixir', 'ex', 'exs'),
|
|
63
|
+
language('pascal', 'Pascal', 'pascal', 'pascal', 'delphi'),
|
|
64
|
+
language('solidity', 'Solidity', 'sol', 'solidity', 'sol'),
|
|
65
|
+
language('twig', 'Twig', 'twig', 'twig'),
|
|
66
|
+
language('handlebars', 'Handlebars', 'handlebars', 'handlebars', 'hbs'),
|
|
67
|
+
language('razor', 'Razor', 'razor', 'razor', 'cshtml'),
|
|
68
|
+
language('pug', 'Pug', 'pug', 'pug', 'jade'),
|
|
69
|
+
language('hcl', 'HCL', 'hcl', 'hcl', 'terraform', 'tf'),
|
|
70
|
+
language('bicep', 'Bicep', 'bicep', 'bicep'),
|
|
71
|
+
language('redis', 'Redis', 'redis', 'redis'),
|
|
72
|
+
language('tcl', 'Tcl', 'tcl', 'tcl'),
|
|
73
|
+
language('scheme', 'Scheme', 'scheme', 'scheme'),
|
|
74
|
+
language('coffeescript', 'CoffeeScript', 'coffeescript', 'coffee', 'coffee'),
|
|
75
|
+
language('apex', 'Apex', 'apex', 'apex'),
|
|
76
|
+
language('abap', 'ABAP', 'abap', 'abap'),
|
|
77
|
+
language('cypher', 'Cypher', 'cypher', 'cypher'),
|
|
78
|
+
language('sparql', 'SPARQL', 'sparql', 'sparql'),
|
|
79
|
+
language('wgsl', 'WGSL', 'wgsl', 'wgsl'),
|
|
80
|
+
language('liquid', 'Liquid', 'liquid', 'liquid'),
|
|
81
|
+
language('mdx', 'MDX', 'mdx', 'mdx'),
|
|
82
|
+
language('restructuredtext', 'reStructuredText', 'restructuredtext', 'restructuredtext', 'rst'),
|
|
83
|
+
language('systemverilog', 'SystemVerilog', 'systemverilog', 'systemverilog', 'sv'),
|
|
84
|
+
language('verilog', 'Verilog', 'verilog', 'systemverilog', 'v'),
|
|
85
|
+
language('qsharp', 'Q#', 'qsharp', 'qsharp', 'q#'),
|
|
86
|
+
language('powerquery', 'Power Query', 'powerquery', 'powerquery', 'm'),
|
|
87
|
+
language('dax', 'DAX', 'msdax', 'msdax', 'msdax'),
|
|
88
|
+
language('redshift', 'Redshift', 'redshift', 'redshift'),
|
|
89
|
+
language('structured-text', 'Structured Text', 'st', 'st', 'st', 'iec-61131'),
|
|
90
|
+
language('mips', 'MIPS assembly', 'mips', 'mips'),
|
|
91
|
+
language('freemarker', 'FreeMarker', 'freemarker2', 'freemarker2', 'ftl', 'freemarker2'),
|
|
92
|
+
language('typespec', 'TypeSpec', 'typespec', 'typespec', 'tsp'),
|
|
93
|
+
language('azcli', 'Azure CLI', 'azcli', 'azcli'),
|
|
94
|
+
];
|
|
95
|
+
const BY_NAME = new Map(MONACO_LANGUAGES.flatMap((found) => [found.id, ...found.aliases].map((name) => [name, found])));
|
|
96
|
+
/** The language a page names, by its id or another of its names, in any case; null for one no editor knows. */
|
|
97
|
+
export function monacoLanguage(name) {
|
|
98
|
+
return typeof name === 'string' ? BY_NAME.get(name.trim().toLowerCase()) ?? null : null;
|
|
99
|
+
}
|
|
100
|
+
export const MONACO_SERVICES = ['json', 'typescript', 'css', 'html'];
|
|
101
|
+
const SERVICE_OF = { json: 'json', typescript: 'typescript', javascript: 'typescript', css: 'css', scss: 'css', less: 'css', html: 'html' };
|
|
102
|
+
/** The language service a language a page names has in Monaco, or null for one with none. */
|
|
103
|
+
export function serviceOf(name) {
|
|
104
|
+
const found = monacoLanguage(name);
|
|
105
|
+
return found ? SERVICE_OF[found.monaco] ?? null : null;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=languages.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.mjs","sourceRoot":"","sources":["../../../../../libs/monaco/src/lib/languages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,MAAc,EAAE,UAAyB,EAAE,GAAG,OAAiB,EAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAE5K,wGAAwG;AACxG,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAC5F,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IACpF,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,CAAC;IAClE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;IACjE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;IACnF,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;IACjE,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC;IAC1F,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC1D,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,CAAC;IAC/F,QAAQ,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC;IAClF,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC;IACtE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IACxD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;IAC7E,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,CAAC;IACxF,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC;CACjD,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC,CAAC,CAAC,CAAC;AAEjI,+GAA+G;AAC/G,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC;AAID,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAE/F,MAAM,UAAU,GAAkC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3K,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MonacoLoader } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Monaco, loaded the way a bundler splits it: the editor when the first field
|
|
4
|
+
* is drawn, then each language's grammar when a field first asks for it, each
|
|
5
|
+
* a dynamic import of its own. Monaco's CSS comes with its modules, so the
|
|
6
|
+
* app's bundler must take CSS imported from JavaScript (Vite and webpack with
|
|
7
|
+
* its CSS loaders do; esbuild writes it beside the bundle). Nothing here needs
|
|
8
|
+
* a worker: Monarch grammars colour code on the page itself.
|
|
9
|
+
*/
|
|
10
|
+
/** Each grammar's registration, by its folder in monaco-editor/languages/definitions. */
|
|
11
|
+
export declare const DEFINITIONS: Record<string, () => Promise<unknown>>;
|
|
12
|
+
/**
|
|
13
|
+
* The language services, for an app that gives workers (`getWorker`): JSON's
|
|
14
|
+
* checks against its own rules, TypeScript and JavaScript's, CSS's and HTML's
|
|
15
|
+
* suggestions and checks, by Monaco's id for the language.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SERVICES: Record<string, () => Promise<unknown>>;
|
|
18
|
+
/** monaco-editor's own modules, each imported when first needed. */
|
|
19
|
+
export declare const defaultLoader: MonacoLoader;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MonacoLoader } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Monaco, loaded the way a bundler splits it: the editor when the first field
|
|
4
|
+
* is drawn, then each language's grammar when a field first asks for it, each
|
|
5
|
+
* a dynamic import of its own. Monaco's CSS comes with its modules, so the
|
|
6
|
+
* app's bundler must take CSS imported from JavaScript (Vite and webpack with
|
|
7
|
+
* its CSS loaders do; esbuild writes it beside the bundle). Nothing here needs
|
|
8
|
+
* a worker: Monarch grammars colour code on the page itself.
|
|
9
|
+
*/
|
|
10
|
+
/** Each grammar's registration, by its folder in monaco-editor/languages/definitions. */
|
|
11
|
+
export declare const DEFINITIONS: Record<string, () => Promise<unknown>>;
|
|
12
|
+
/**
|
|
13
|
+
* The language services, for an app that gives workers (`getWorker`): JSON's
|
|
14
|
+
* checks against its own rules, TypeScript and JavaScript's, CSS's and HTML's
|
|
15
|
+
* suggestions and checks, by Monaco's id for the language.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SERVICES: Record<string, () => Promise<unknown>>;
|
|
18
|
+
/** monaco-editor's own modules, each imported when first needed. */
|
|
19
|
+
export declare const defaultLoader: MonacoLoader;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultLoader = exports.SERVICES = exports.DEFINITIONS = void 0;
|
|
4
|
+
const json_1 = require("./json");
|
|
5
|
+
const languages_1 = require("./languages");
|
|
6
|
+
/**
|
|
7
|
+
* Monaco, loaded the way a bundler splits it: the editor when the first field
|
|
8
|
+
* is drawn, then each language's grammar when a field first asks for it, each
|
|
9
|
+
* a dynamic import of its own. Monaco's CSS comes with its modules, so the
|
|
10
|
+
* app's bundler must take CSS imported from JavaScript (Vite and webpack with
|
|
11
|
+
* its CSS loaders do; esbuild writes it beside the bundle). Nothing here needs
|
|
12
|
+
* a worker: Monarch grammars colour code on the page itself.
|
|
13
|
+
*/
|
|
14
|
+
/** Each grammar's registration, by its folder in monaco-editor/languages/definitions. */
|
|
15
|
+
exports.DEFINITIONS = {
|
|
16
|
+
abap: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/abap/register')),
|
|
17
|
+
apex: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/apex/register')),
|
|
18
|
+
azcli: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/azcli/register')),
|
|
19
|
+
bat: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/bat/register')),
|
|
20
|
+
bicep: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/bicep/register')),
|
|
21
|
+
clojure: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/clojure/register')),
|
|
22
|
+
coffee: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/coffee/register')),
|
|
23
|
+
cpp: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/cpp/register')),
|
|
24
|
+
csharp: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/csharp/register')),
|
|
25
|
+
css: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/css/register')),
|
|
26
|
+
cypher: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/cypher/register')),
|
|
27
|
+
dart: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/dart/register')),
|
|
28
|
+
dockerfile: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/dockerfile/register')),
|
|
29
|
+
elixir: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/elixir/register')),
|
|
30
|
+
'freemarker2': () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/freemarker2/register')),
|
|
31
|
+
fsharp: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/fsharp/register')),
|
|
32
|
+
go: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/go/register')),
|
|
33
|
+
graphql: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/graphql/register')),
|
|
34
|
+
handlebars: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/handlebars/register')),
|
|
35
|
+
hcl: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/hcl/register')),
|
|
36
|
+
html: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/html/register')),
|
|
37
|
+
ini: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/ini/register')),
|
|
38
|
+
java: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/java/register')),
|
|
39
|
+
javascript: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/javascript/register')),
|
|
40
|
+
julia: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/julia/register')),
|
|
41
|
+
kotlin: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/kotlin/register')),
|
|
42
|
+
less: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/less/register')),
|
|
43
|
+
liquid: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/liquid/register')),
|
|
44
|
+
lua: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/lua/register')),
|
|
45
|
+
markdown: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/markdown/register')),
|
|
46
|
+
mdx: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/mdx/register')),
|
|
47
|
+
mips: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/mips/register')),
|
|
48
|
+
msdax: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/msdax/register')),
|
|
49
|
+
mysql: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/mysql/register')),
|
|
50
|
+
'objective-c': () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/objective-c/register')),
|
|
51
|
+
pascal: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/pascal/register')),
|
|
52
|
+
perl: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/perl/register')),
|
|
53
|
+
pgsql: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/pgsql/register')),
|
|
54
|
+
php: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/php/register')),
|
|
55
|
+
powerquery: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/powerquery/register')),
|
|
56
|
+
powershell: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/powershell/register')),
|
|
57
|
+
protobuf: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/protobuf/register')),
|
|
58
|
+
pug: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/pug/register')),
|
|
59
|
+
python: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/python/register')),
|
|
60
|
+
qsharp: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/qsharp/register')),
|
|
61
|
+
r: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/r/register')),
|
|
62
|
+
razor: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/razor/register')),
|
|
63
|
+
redis: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/redis/register')),
|
|
64
|
+
redshift: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/redshift/register')),
|
|
65
|
+
restructuredtext: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/restructuredtext/register')),
|
|
66
|
+
ruby: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/ruby/register')),
|
|
67
|
+
rust: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/rust/register')),
|
|
68
|
+
scala: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/scala/register')),
|
|
69
|
+
scheme: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/scheme/register')),
|
|
70
|
+
scss: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/scss/register')),
|
|
71
|
+
shell: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/shell/register')),
|
|
72
|
+
solidity: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/solidity/register')),
|
|
73
|
+
sparql: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/sparql/register')),
|
|
74
|
+
sql: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/sql/register')),
|
|
75
|
+
st: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/st/register')),
|
|
76
|
+
swift: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/swift/register')),
|
|
77
|
+
systemverilog: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/systemverilog/register')),
|
|
78
|
+
tcl: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/tcl/register')),
|
|
79
|
+
twig: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/twig/register')),
|
|
80
|
+
typescript: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/typescript/register')),
|
|
81
|
+
typespec: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/typespec/register')),
|
|
82
|
+
vb: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/vb/register')),
|
|
83
|
+
wgsl: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/wgsl/register')),
|
|
84
|
+
xml: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/xml/register')),
|
|
85
|
+
yaml: () => Promise.resolve().then(() => require('monaco-editor/languages/definitions/yaml/register')),
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* The language services, for an app that gives workers (`getWorker`): JSON's
|
|
89
|
+
* checks against its own rules, TypeScript and JavaScript's, CSS's and HTML's
|
|
90
|
+
* suggestions and checks, by Monaco's id for the language.
|
|
91
|
+
*/
|
|
92
|
+
exports.SERVICES = {
|
|
93
|
+
json: () => Promise.resolve().then(() => require('monaco-editor/languages/features/json/register')),
|
|
94
|
+
typescript: () => Promise.resolve().then(() => require('monaco-editor/languages/features/typescript/register')),
|
|
95
|
+
javascript: () => Promise.resolve().then(() => require('monaco-editor/languages/features/typescript/register')),
|
|
96
|
+
css: () => Promise.resolve().then(() => require('monaco-editor/languages/features/css/register')),
|
|
97
|
+
scss: () => Promise.resolve().then(() => require('monaco-editor/languages/features/css/register')),
|
|
98
|
+
less: () => Promise.resolve().then(() => require('monaco-editor/languages/features/css/register')),
|
|
99
|
+
html: () => Promise.resolve().then(() => require('monaco-editor/languages/features/html/register')),
|
|
100
|
+
};
|
|
101
|
+
/** VS Code's editing every field has: find and replace, folding, comments, moving and copying lines, several cursors. */
|
|
102
|
+
const FEATURES = [
|
|
103
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/find/register')),
|
|
104
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/folding/register')),
|
|
105
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/bracketMatching/register')),
|
|
106
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/comment/register')),
|
|
107
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/linesOperations/register')),
|
|
108
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/multicursor/register')),
|
|
109
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/wordOperations/register')),
|
|
110
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/indentation/register')),
|
|
111
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/cursorUndo/register')),
|
|
112
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/readOnlyMessage/register')),
|
|
113
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/placeholderText/register')),
|
|
114
|
+
];
|
|
115
|
+
/** What the language services show: suggestions, what a word is on hover, a call's parameters, formatting, the next problem. */
|
|
116
|
+
const SERVICE_FEATURES = [
|
|
117
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/suggest/register')),
|
|
118
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/hover/register')),
|
|
119
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/parameterHints/register')),
|
|
120
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/format/register')),
|
|
121
|
+
() => Promise.resolve().then(() => require('monaco-editor/features/gotoError/register')),
|
|
122
|
+
];
|
|
123
|
+
/** A load made once, and tried again after it fails. */
|
|
124
|
+
function once(make) {
|
|
125
|
+
let loading = null;
|
|
126
|
+
return () => (loading ??= make().catch((error) => {
|
|
127
|
+
loading = null;
|
|
128
|
+
throw error;
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
const editor = once(async () => {
|
|
132
|
+
const monaco = (await Promise.resolve().then(() => require('monaco-editor/editor')));
|
|
133
|
+
await Promise.all(FEATURES.map((load) => load()));
|
|
134
|
+
return monaco;
|
|
135
|
+
});
|
|
136
|
+
const withServices = once(async () => {
|
|
137
|
+
const monaco = await editor();
|
|
138
|
+
await Promise.all(SERVICE_FEATURES.map((load) => load()));
|
|
139
|
+
return monaco;
|
|
140
|
+
});
|
|
141
|
+
/** monaco-editor's own modules, each imported when first needed. */
|
|
142
|
+
exports.defaultLoader = {
|
|
143
|
+
monaco: (services) => (services ? withServices() : editor()),
|
|
144
|
+
async language(monaco, name, services) {
|
|
145
|
+
const found = (0, languages_1.monacoLanguage)(name);
|
|
146
|
+
if (!found || found.monaco === 'plaintext')
|
|
147
|
+
return 'plaintext';
|
|
148
|
+
const service = services ? exports.SERVICES[found.monaco] : undefined;
|
|
149
|
+
try {
|
|
150
|
+
if (found.monaco === 'json' && !service)
|
|
151
|
+
(0, json_1.registerJson)(monaco);
|
|
152
|
+
if (found.definition)
|
|
153
|
+
await exports.DEFINITIONS[found.definition]();
|
|
154
|
+
if (service)
|
|
155
|
+
await service();
|
|
156
|
+
return found.monaco;
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// Not fetched (offline, say): plain text this time.
|
|
160
|
+
return 'plaintext';
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../../libs/monaco/src/lib/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { registerJson } from './json.mjs';
|
|
2
|
+
import { monacoLanguage } from './languages.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Monaco, loaded the way a bundler splits it: the editor when the first field
|
|
5
|
+
* is drawn, then each language's grammar when a field first asks for it, each
|
|
6
|
+
* a dynamic import of its own. Monaco's CSS comes with its modules, so the
|
|
7
|
+
* app's bundler must take CSS imported from JavaScript (Vite and webpack with
|
|
8
|
+
* its CSS loaders do; esbuild writes it beside the bundle). Nothing here needs
|
|
9
|
+
* a worker: Monarch grammars colour code on the page itself.
|
|
10
|
+
*/
|
|
11
|
+
/** Each grammar's registration, by its folder in monaco-editor/languages/definitions. */
|
|
12
|
+
export const DEFINITIONS = {
|
|
13
|
+
abap: () => import('monaco-editor/languages/definitions/abap/register'),
|
|
14
|
+
apex: () => import('monaco-editor/languages/definitions/apex/register'),
|
|
15
|
+
azcli: () => import('monaco-editor/languages/definitions/azcli/register'),
|
|
16
|
+
bat: () => import('monaco-editor/languages/definitions/bat/register'),
|
|
17
|
+
bicep: () => import('monaco-editor/languages/definitions/bicep/register'),
|
|
18
|
+
clojure: () => import('monaco-editor/languages/definitions/clojure/register'),
|
|
19
|
+
coffee: () => import('monaco-editor/languages/definitions/coffee/register'),
|
|
20
|
+
cpp: () => import('monaco-editor/languages/definitions/cpp/register'),
|
|
21
|
+
csharp: () => import('monaco-editor/languages/definitions/csharp/register'),
|
|
22
|
+
css: () => import('monaco-editor/languages/definitions/css/register'),
|
|
23
|
+
cypher: () => import('monaco-editor/languages/definitions/cypher/register'),
|
|
24
|
+
dart: () => import('monaco-editor/languages/definitions/dart/register'),
|
|
25
|
+
dockerfile: () => import('monaco-editor/languages/definitions/dockerfile/register'),
|
|
26
|
+
elixir: () => import('monaco-editor/languages/definitions/elixir/register'),
|
|
27
|
+
'freemarker2': () => import('monaco-editor/languages/definitions/freemarker2/register'),
|
|
28
|
+
fsharp: () => import('monaco-editor/languages/definitions/fsharp/register'),
|
|
29
|
+
go: () => import('monaco-editor/languages/definitions/go/register'),
|
|
30
|
+
graphql: () => import('monaco-editor/languages/definitions/graphql/register'),
|
|
31
|
+
handlebars: () => import('monaco-editor/languages/definitions/handlebars/register'),
|
|
32
|
+
hcl: () => import('monaco-editor/languages/definitions/hcl/register'),
|
|
33
|
+
html: () => import('monaco-editor/languages/definitions/html/register'),
|
|
34
|
+
ini: () => import('monaco-editor/languages/definitions/ini/register'),
|
|
35
|
+
java: () => import('monaco-editor/languages/definitions/java/register'),
|
|
36
|
+
javascript: () => import('monaco-editor/languages/definitions/javascript/register'),
|
|
37
|
+
julia: () => import('monaco-editor/languages/definitions/julia/register'),
|
|
38
|
+
kotlin: () => import('monaco-editor/languages/definitions/kotlin/register'),
|
|
39
|
+
less: () => import('monaco-editor/languages/definitions/less/register'),
|
|
40
|
+
liquid: () => import('monaco-editor/languages/definitions/liquid/register'),
|
|
41
|
+
lua: () => import('monaco-editor/languages/definitions/lua/register'),
|
|
42
|
+
markdown: () => import('monaco-editor/languages/definitions/markdown/register'),
|
|
43
|
+
mdx: () => import('monaco-editor/languages/definitions/mdx/register'),
|
|
44
|
+
mips: () => import('monaco-editor/languages/definitions/mips/register'),
|
|
45
|
+
msdax: () => import('monaco-editor/languages/definitions/msdax/register'),
|
|
46
|
+
mysql: () => import('monaco-editor/languages/definitions/mysql/register'),
|
|
47
|
+
'objective-c': () => import('monaco-editor/languages/definitions/objective-c/register'),
|
|
48
|
+
pascal: () => import('monaco-editor/languages/definitions/pascal/register'),
|
|
49
|
+
perl: () => import('monaco-editor/languages/definitions/perl/register'),
|
|
50
|
+
pgsql: () => import('monaco-editor/languages/definitions/pgsql/register'),
|
|
51
|
+
php: () => import('monaco-editor/languages/definitions/php/register'),
|
|
52
|
+
powerquery: () => import('monaco-editor/languages/definitions/powerquery/register'),
|
|
53
|
+
powershell: () => import('monaco-editor/languages/definitions/powershell/register'),
|
|
54
|
+
protobuf: () => import('monaco-editor/languages/definitions/protobuf/register'),
|
|
55
|
+
pug: () => import('monaco-editor/languages/definitions/pug/register'),
|
|
56
|
+
python: () => import('monaco-editor/languages/definitions/python/register'),
|
|
57
|
+
qsharp: () => import('monaco-editor/languages/definitions/qsharp/register'),
|
|
58
|
+
r: () => import('monaco-editor/languages/definitions/r/register'),
|
|
59
|
+
razor: () => import('monaco-editor/languages/definitions/razor/register'),
|
|
60
|
+
redis: () => import('monaco-editor/languages/definitions/redis/register'),
|
|
61
|
+
redshift: () => import('monaco-editor/languages/definitions/redshift/register'),
|
|
62
|
+
restructuredtext: () => import('monaco-editor/languages/definitions/restructuredtext/register'),
|
|
63
|
+
ruby: () => import('monaco-editor/languages/definitions/ruby/register'),
|
|
64
|
+
rust: () => import('monaco-editor/languages/definitions/rust/register'),
|
|
65
|
+
scala: () => import('monaco-editor/languages/definitions/scala/register'),
|
|
66
|
+
scheme: () => import('monaco-editor/languages/definitions/scheme/register'),
|
|
67
|
+
scss: () => import('monaco-editor/languages/definitions/scss/register'),
|
|
68
|
+
shell: () => import('monaco-editor/languages/definitions/shell/register'),
|
|
69
|
+
solidity: () => import('monaco-editor/languages/definitions/solidity/register'),
|
|
70
|
+
sparql: () => import('monaco-editor/languages/definitions/sparql/register'),
|
|
71
|
+
sql: () => import('monaco-editor/languages/definitions/sql/register'),
|
|
72
|
+
st: () => import('monaco-editor/languages/definitions/st/register'),
|
|
73
|
+
swift: () => import('monaco-editor/languages/definitions/swift/register'),
|
|
74
|
+
systemverilog: () => import('monaco-editor/languages/definitions/systemverilog/register'),
|
|
75
|
+
tcl: () => import('monaco-editor/languages/definitions/tcl/register'),
|
|
76
|
+
twig: () => import('monaco-editor/languages/definitions/twig/register'),
|
|
77
|
+
typescript: () => import('monaco-editor/languages/definitions/typescript/register'),
|
|
78
|
+
typespec: () => import('monaco-editor/languages/definitions/typespec/register'),
|
|
79
|
+
vb: () => import('monaco-editor/languages/definitions/vb/register'),
|
|
80
|
+
wgsl: () => import('monaco-editor/languages/definitions/wgsl/register'),
|
|
81
|
+
xml: () => import('monaco-editor/languages/definitions/xml/register'),
|
|
82
|
+
yaml: () => import('monaco-editor/languages/definitions/yaml/register'),
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* The language services, for an app that gives workers (`getWorker`): JSON's
|
|
86
|
+
* checks against its own rules, TypeScript and JavaScript's, CSS's and HTML's
|
|
87
|
+
* suggestions and checks, by Monaco's id for the language.
|
|
88
|
+
*/
|
|
89
|
+
export const SERVICES = {
|
|
90
|
+
json: () => import('monaco-editor/languages/features/json/register'),
|
|
91
|
+
typescript: () => import('monaco-editor/languages/features/typescript/register'),
|
|
92
|
+
javascript: () => import('monaco-editor/languages/features/typescript/register'),
|
|
93
|
+
css: () => import('monaco-editor/languages/features/css/register'),
|
|
94
|
+
scss: () => import('monaco-editor/languages/features/css/register'),
|
|
95
|
+
less: () => import('monaco-editor/languages/features/css/register'),
|
|
96
|
+
html: () => import('monaco-editor/languages/features/html/register'),
|
|
97
|
+
};
|
|
98
|
+
/** VS Code's editing every field has: find and replace, folding, comments, moving and copying lines, several cursors. */
|
|
99
|
+
const FEATURES = [
|
|
100
|
+
() => import('monaco-editor/features/find/register'),
|
|
101
|
+
() => import('monaco-editor/features/folding/register'),
|
|
102
|
+
() => import('monaco-editor/features/bracketMatching/register'),
|
|
103
|
+
() => import('monaco-editor/features/comment/register'),
|
|
104
|
+
() => import('monaco-editor/features/linesOperations/register'),
|
|
105
|
+
() => import('monaco-editor/features/multicursor/register'),
|
|
106
|
+
() => import('monaco-editor/features/wordOperations/register'),
|
|
107
|
+
() => import('monaco-editor/features/indentation/register'),
|
|
108
|
+
() => import('monaco-editor/features/cursorUndo/register'),
|
|
109
|
+
() => import('monaco-editor/features/readOnlyMessage/register'),
|
|
110
|
+
() => import('monaco-editor/features/placeholderText/register'),
|
|
111
|
+
];
|
|
112
|
+
/** What the language services show: suggestions, what a word is on hover, a call's parameters, formatting, the next problem. */
|
|
113
|
+
const SERVICE_FEATURES = [
|
|
114
|
+
() => import('monaco-editor/features/suggest/register'),
|
|
115
|
+
() => import('monaco-editor/features/hover/register'),
|
|
116
|
+
() => import('monaco-editor/features/parameterHints/register'),
|
|
117
|
+
() => import('monaco-editor/features/format/register'),
|
|
118
|
+
() => import('monaco-editor/features/gotoError/register'),
|
|
119
|
+
];
|
|
120
|
+
/** A load made once, and tried again after it fails. */
|
|
121
|
+
function once(make) {
|
|
122
|
+
let loading = null;
|
|
123
|
+
return () => (loading ??= make().catch((error) => {
|
|
124
|
+
loading = null;
|
|
125
|
+
throw error;
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
const editor = once(async () => {
|
|
129
|
+
const monaco = (await import('monaco-editor/editor'));
|
|
130
|
+
await Promise.all(FEATURES.map((load) => load()));
|
|
131
|
+
return monaco;
|
|
132
|
+
});
|
|
133
|
+
const withServices = once(async () => {
|
|
134
|
+
const monaco = await editor();
|
|
135
|
+
await Promise.all(SERVICE_FEATURES.map((load) => load()));
|
|
136
|
+
return monaco;
|
|
137
|
+
});
|
|
138
|
+
/** monaco-editor's own modules, each imported when first needed. */
|
|
139
|
+
export const defaultLoader = {
|
|
140
|
+
monaco: (services) => (services ? withServices() : editor()),
|
|
141
|
+
async language(monaco, name, services) {
|
|
142
|
+
const found = monacoLanguage(name);
|
|
143
|
+
if (!found || found.monaco === 'plaintext')
|
|
144
|
+
return 'plaintext';
|
|
145
|
+
const service = services ? SERVICES[found.monaco] : undefined;
|
|
146
|
+
try {
|
|
147
|
+
if (found.monaco === 'json' && !service)
|
|
148
|
+
registerJson(monaco);
|
|
149
|
+
if (found.definition)
|
|
150
|
+
await DEFINITIONS[found.definition]();
|
|
151
|
+
if (service)
|
|
152
|
+
await service();
|
|
153
|
+
return found.monaco;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Not fetched (offline, say): plain text this time.
|
|
157
|
+
return 'plaintext';
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=loader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.mjs","sourceRoot":"","sources":["../../../../../libs/monaco/src/lib/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type WidgetFactory } from '@fieldia/widgets';
|
|
2
|
+
import { type MonacoService } from './languages.mjs';
|
|
3
|
+
import type { MonacoLoader } from './types.mjs';
|
|
4
|
+
/**
|
|
5
|
+
* Text and JSON fields in VS Code's editor, Monaco: `"widget": "monaco"`,
|
|
6
|
+
* with `"options": { "language": "python" }` on a text field. Until Monaco
|
|
7
|
+
* has loaded — it is large, and loads only when a page has such a field —
|
|
8
|
+
* the field is a plain text box that works as one; if Monaco cannot be
|
|
9
|
+
* loaded, it stays one. Tab moves on to the next field, as in every field
|
|
10
|
+
* (Ctrl+] and Ctrl+[ indent). The editor wears a theme made from the page's
|
|
11
|
+
* tokens, and reads left to right on an Arabic page too.
|
|
12
|
+
*/
|
|
13
|
+
export interface MonacoWidgetsOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Workers for Monaco's language services — JSON checked as it is typed,
|
|
16
|
+
* suggestions and checks for TypeScript, JavaScript, CSS and HTML — as
|
|
17
|
+
* Monaco asks for them (`MonacoEnvironment.getWorker`): by the label of
|
|
18
|
+
* the service (`json`, `typescript`, `javascript`, `css`, `html`, or
|
|
19
|
+
* `editorWorkerService` for the editor's own). Left out, there are none:
|
|
20
|
+
* the code is coloured, and no worker is started.
|
|
21
|
+
*/
|
|
22
|
+
getWorker?: (workerId: string, label: string) => Worker | Promise<Worker>;
|
|
23
|
+
/**
|
|
24
|
+
* The language services `getWorker` has workers for — `json`, `typescript`
|
|
25
|
+
* (for JavaScript too), `css` (SCSS and Less too), `html` — each turned on
|
|
26
|
+
* for the fields in its languages. Every one, when left out.
|
|
27
|
+
*/
|
|
28
|
+
services?: readonly MonacoService[];
|
|
29
|
+
/** How Monaco and each language are loaded: monaco-editor's own modules unless an app, or a test, hands its own. */
|
|
30
|
+
loader?: MonacoLoader;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The widgets, made with the app's choices: `text.monaco` for text in a
|
|
34
|
+
* language, `json.monaco` for JSON. Pass them to the viewer (`widgets`).
|
|
35
|
+
*/
|
|
36
|
+
export declare function createMonacoWidgets(options?: MonacoWidgetsOptions): Record<string, WidgetFactory>;
|
|
37
|
+
/** The widgets with no language services: code coloured, no worker started. */
|
|
38
|
+
export declare const monacoWidgets: Record<string, WidgetFactory>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type WidgetFactory } from '@fieldia/widgets';
|
|
2
|
+
import { type MonacoService } from './languages';
|
|
3
|
+
import type { MonacoLoader } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Text and JSON fields in VS Code's editor, Monaco: `"widget": "monaco"`,
|
|
6
|
+
* with `"options": { "language": "python" }` on a text field. Until Monaco
|
|
7
|
+
* has loaded — it is large, and loads only when a page has such a field —
|
|
8
|
+
* the field is a plain text box that works as one; if Monaco cannot be
|
|
9
|
+
* loaded, it stays one. Tab moves on to the next field, as in every field
|
|
10
|
+
* (Ctrl+] and Ctrl+[ indent). The editor wears a theme made from the page's
|
|
11
|
+
* tokens, and reads left to right on an Arabic page too.
|
|
12
|
+
*/
|
|
13
|
+
export interface MonacoWidgetsOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Workers for Monaco's language services — JSON checked as it is typed,
|
|
16
|
+
* suggestions and checks for TypeScript, JavaScript, CSS and HTML — as
|
|
17
|
+
* Monaco asks for them (`MonacoEnvironment.getWorker`): by the label of
|
|
18
|
+
* the service (`json`, `typescript`, `javascript`, `css`, `html`, or
|
|
19
|
+
* `editorWorkerService` for the editor's own). Left out, there are none:
|
|
20
|
+
* the code is coloured, and no worker is started.
|
|
21
|
+
*/
|
|
22
|
+
getWorker?: (workerId: string, label: string) => Worker | Promise<Worker>;
|
|
23
|
+
/**
|
|
24
|
+
* The language services `getWorker` has workers for — `json`, `typescript`
|
|
25
|
+
* (for JavaScript too), `css` (SCSS and Less too), `html` — each turned on
|
|
26
|
+
* for the fields in its languages. Every one, when left out.
|
|
27
|
+
*/
|
|
28
|
+
services?: readonly MonacoService[];
|
|
29
|
+
/** How Monaco and each language are loaded: monaco-editor's own modules unless an app, or a test, hands its own. */
|
|
30
|
+
loader?: MonacoLoader;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The widgets, made with the app's choices: `text.monaco` for text in a
|
|
34
|
+
* language, `json.monaco` for JSON. Pass them to the viewer (`widgets`).
|
|
35
|
+
*/
|
|
36
|
+
export declare function createMonacoWidgets(options?: MonacoWidgetsOptions): Record<string, WidgetFactory>;
|
|
37
|
+
/** The widgets with no language services: code coloured, no worker started. */
|
|
38
|
+
export declare const monacoWidgets: Record<string, WidgetFactory>;
|