@theia/monaco 1.75.0-next.12 → 1.75.0-next.18
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/lib/browser/markdown-renderer/monaco-markdown-renderer.d.ts.map +1 -1
- package/lib/browser/markdown-renderer/monaco-markdown-renderer.js +7 -1
- package/lib/browser/markdown-renderer/monaco-markdown-renderer.js.map +1 -1
- package/lib/browser/textmate/monaco-textmate-service.d.ts.map +1 -1
- package/lib/browser/textmate/monaco-textmate-service.js +2 -1
- package/lib/browser/textmate/monaco-textmate-service.js.map +1 -1
- package/lib/browser/textmate/monaco-theme-registry.d.ts +6 -0
- package/lib/browser/textmate/monaco-theme-registry.d.ts.map +1 -1
- package/lib/browser/textmate/monaco-theme-registry.js +31 -4
- package/lib/browser/textmate/monaco-theme-registry.js.map +1 -1
- package/lib/browser/textmate/monaco-theme-types.d.ts +6 -0
- package/lib/browser/textmate/monaco-theme-types.d.ts.map +1 -1
- package/lib/browser/textmate/monaco-theme-types.js +16 -1
- package/lib/browser/textmate/monaco-theme-types.js.map +1 -1
- package/lib/browser/textmate/monaco-theme-types.spec.d.ts +2 -0
- package/lib/browser/textmate/monaco-theme-types.spec.d.ts.map +1 -0
- package/lib/browser/textmate/monaco-theme-types.spec.js +38 -0
- package/lib/browser/textmate/monaco-theme-types.spec.js.map +1 -0
- package/package.json +8 -8
- package/src/browser/markdown-renderer/monaco-markdown-renderer.ts +7 -1
- package/src/browser/textmate/monaco-textmate-service.ts +2 -1
- package/src/browser/textmate/monaco-theme-registry.ts +32 -5
- package/src/browser/textmate/monaco-theme-types.spec.ts +39 -0
- package/src/browser/textmate/monaco-theme-types.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-markdown-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/markdown-renderer/monaco-markdown-renderer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,uBAAuB,IAAI,oBAAoB,EAAE,MACjD,6EAA6E,CAAC;AAEvF,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,aAAa,EAA6B,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAkB,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAG1I,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"monaco-markdown-renderer.d.ts","sourceRoot":"","sources":["../../../src/browser/markdown-renderer/monaco-markdown-renderer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,uBAAuB,IAAI,oBAAoB,EAAE,MACjD,6EAA6E,CAAC;AAEvF,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,aAAa,EAA6B,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAkB,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gEAAgE,CAAC;AAG1I,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AAE7I,OAAO,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,MAAM,gEAAgE,CAAC;AACtI,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAwB,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7E,qBACa,sBAAuB,YAAW,gBAAgB;IACpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEvE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACzC,SAAS,CAAC,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;IAEpD,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,oBAAoB;IASvF,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,2BAA2B,GAAG,SAAS;IAcpG,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe;IAatE,SAAS,CAAC,IAAI,IAAI,IAAI;cASN,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE,aAAa,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAyB7I"}
|
|
@@ -23,11 +23,17 @@ const standaloneServices_1 = require("@theia/monaco-editor-core/esm/vs/editor/st
|
|
|
23
23
|
const browser_1 = require("@theia/core/lib/browser");
|
|
24
24
|
const opener_1 = require("@theia/monaco-editor-core/esm/vs/platform/opener/common/opener");
|
|
25
25
|
const uri_1 = require("@theia/core/lib/common/uri");
|
|
26
|
+
const markdown_link_handler_1 = require("@theia/core/lib/browser/markdown-rendering/markdown-link-handler");
|
|
26
27
|
const lifecycle_1 = require("@theia/monaco-editor-core/esm/vs/base/common/lifecycle");
|
|
27
28
|
const core_1 = require("@theia/core");
|
|
28
29
|
let MonacoMarkdownRenderer = class MonacoMarkdownRenderer {
|
|
29
30
|
render(markdown, options) {
|
|
30
|
-
|
|
31
|
+
const rendered = this.delegate.render(markdown, this.transformOptions(options));
|
|
32
|
+
// The delegate activates links through its own opener service, which `interceptOpen`
|
|
33
|
+
// routes to Theia's. Declaring that keeps callers from wiring a second handler, which
|
|
34
|
+
// would open every link twice.
|
|
35
|
+
(0, markdown_link_handler_1.markMarkdownLinksWired)(rendered.element);
|
|
36
|
+
return rendered;
|
|
31
37
|
}
|
|
32
38
|
transformOptions(options) {
|
|
33
39
|
if (!options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-markdown-renderer.js","sourceRoot":"","sources":["../../../src/browser/markdown-renderer/monaco-markdown-renderer.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAwF;AACxF,kHACuF;AACvF,sHAAmH;AAEnH,qDAAmF;AACnF,2FAA0I;AAE1I,oDAAiD;
|
|
1
|
+
{"version":3,"file":"monaco-markdown-renderer.js","sourceRoot":"","sources":["../../../src/browser/markdown-renderer/monaco-markdown-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-textmate-service.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-textmate-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,+BAA+B,EAAwB,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qCAAqC,EAAwB,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAQhF,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,qBACa,qBAAsB,YAAW,+BAA+B;IAEzE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAEjD;IAEF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,cAAqB;IAE3D,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC;IAGpC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;IAGjG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAE5D,UAAU,IAAI,IAAI;IA+BlB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,uBAA8B;IAEvE,SAAS,CAAC,WAAW,IAAI,IAAI;IAiB7B,SAAS,KAAK,kBAAkB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"monaco-textmate-service.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-textmate-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,+BAA+B,EAAwB,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qCAAqC,EAAwB,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAQhF,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,qBACa,qBAAsB,YAAW,+BAA+B;IAEzE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAEjD;IAEF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,cAAqB;IAE3D,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC;IAGpC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;IAGjG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAG9C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAG5D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAE5D,UAAU,IAAI,IAAI;IA+BlB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,uBAA8B;IAEvE,SAAS,CAAC,WAAW,IAAI,IAAI;IAiB7B,SAAS,KAAK,kBAAkB,IAAI,MAAM,CAGzC;IAED,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;cAU9B,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CtG,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU;CAQxE"}
|
|
@@ -81,7 +81,8 @@ let MonacoTextmateService = class MonacoTextmateService {
|
|
|
81
81
|
monaco.editor.setTheme(currentEditorTheme);
|
|
82
82
|
}
|
|
83
83
|
get currentEditorTheme() {
|
|
84
|
-
|
|
84
|
+
const theme = this.themeService.getCurrentTheme();
|
|
85
|
+
return theme.editorTheme || monaco_theme_registry_1.MonacoThemeRegistry.getDefaultTheme(theme.type);
|
|
85
86
|
}
|
|
86
87
|
activateLanguage(language) {
|
|
87
88
|
const toDispose = new core_1.DisposableCollection(core_1.Disposable.create(() => { }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-textmate-service.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-textmate-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAyE;AAEzE,sCAA8F;AAC9F,qDAAgG;AAChG,6DAA+D;AAC/D,mEAAsG;AACtG,6DAAgF;AAChF,2DAAuD;AACvD,mEAA8D;AAC9D,oFAAgF;AAChF,oDAAoD;AACpD,wFAAgG;AAChG,+GAAoH;AACpH,sHAAmH;AACnH,gGAAqG;AACrG,wHAA4H;AAE5H,6DAAgF;AAGzE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QAEgB,oBAAe,GAAoB;YAClD,SAAS,EAAE,GAAG;SACjB,CAAC;QAEiB,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QA2DxC,2BAAsB,GAAG,IAAI,2BAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"monaco-textmate-service.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-textmate-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAyE;AAEzE,sCAA8F;AAC9F,qDAAgG;AAChG,6DAA+D;AAC/D,mEAAsG;AACtG,6DAAgF;AAChF,2DAAuD;AACvD,mEAA8D;AAC9D,oFAAgF;AAChF,oDAAoD;AACpD,wFAAgG;AAChG,+GAAoH;AACpH,sHAAmH;AACnH,gGAAqG;AACrG,wHAA4H;AAE5H,6DAAgF;AAGzE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QAEgB,oBAAe,GAAoB;YAClD,SAAS,EAAE,GAAG;SACjB,CAAC;QAEiB,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QA2DxC,2BAAsB,GAAG,IAAI,2BAAoB,EAAE,CAAC;IAsF3E,CAAC;IArHG,UAAU;QACN,IAAI,CAAC,8BAAoB,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;YACtF,OAAO;QACX,CAAC;QAED,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC;gBACD,eAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAE5G,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;YACrC,IAAI,CAAC,CAAC,cAAc,KAAK,kCAAkC,EAAE,CAAC;gBAC1D,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;YAC1F,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAElE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAIS,WAAW;QACjB,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;QAEtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAE9G,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACxE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,oDAAoD;QACpD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAc,kBAAkB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC,WAAW,IAAI,2CAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC7B,MAAM,SAAS,GAAG,IAAI,2BAAoB,CACtC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,GAA8B,CAAC,CAAC,CAC1D,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC/C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAC/C,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,SAA+B;QAClF,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO;QACX,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,SAAS,CAAC,IAAI,CAAC,iBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAErF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,IAAA,4CAAoB,EAAC,UAAU,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QACD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;YACnH,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,SAAS,KAAK,eAAe,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACzG,CAAC;YACD,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;YACrG,MAAM,SAAS,GAAG,IAAA,4CAAuB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,gCAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,uCAAkB,CAAC,GAAG,CAAC,yCAAuB,CAAC,CAAC;YACrE,MAAM,eAAe,GAAG,uCAAkB,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,IAAI,gDAA0B,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;YACrG,OAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAES,eAAe,CAAC,QAAgB,EAAE,EAAY;QACpD,MAAM,eAAe,GAAG,uCAAkB,CAAC,GAAG,CAAC,2BAAgB,CAAoB,CAAC;QACpF,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,EAAE,EAAE,CAAC;YACL,OAAO,iBAAU,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ,CAAA;AAvJY,sDAAqB;AAWX;IADlB,IAAA,kBAAM,EAAC,2BAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,6DAAqC,CAAC;;+DACsB;AAG9E;IADlB,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCACY,oCAAgB;+DAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,cAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,8BAA8B,CAAC;;qDACpB;AAGhB;IADlB,IAAA,kBAAM,EAAC,oCAAe,CAAC;;8DAC4B;AAGjC;IADlB,IAAA,kBAAM,EAAC,sBAAY,CAAC;sCACY,sBAAY;2DAAC;AAG3B;IADlB,IAAA,kBAAM,EAAC,2CAAmB,CAAC;sCACY,2CAAmB;kEAAC;AAGzC;IADlB,IAAA,kBAAM,EAAC,sCAAiB,CAAC;;0DACwB;AAG/B;IADlB,IAAA,kBAAM,EAAC,4CAAuB,CAAC;;8DAC4B;gCAhCnD,qBAAqB;IADjC,IAAA,sBAAU,GAAE;GACA,qBAAqB,CAuJjC"}
|
|
@@ -2,6 +2,7 @@ import * as monaco from '@theia/monaco-editor-core';
|
|
|
2
2
|
import { Color } from '@theia/monaco-editor-core/esm/vs/base/common/color';
|
|
3
3
|
import { MixStandaloneTheme, TextmateRegistryFactory, ThemeMix } from './monaco-theme-types';
|
|
4
4
|
import { ILogger } from '@theia/core';
|
|
5
|
+
import { ThemeType } from '@theia/core/lib/common/theme';
|
|
5
6
|
export declare class MonacoThemeRegistry {
|
|
6
7
|
protected readonly registryFactory: TextmateRegistryFactory;
|
|
7
8
|
protected readonly logger: ILogger;
|
|
@@ -26,5 +27,10 @@ export declare namespace MonacoThemeRegistry {
|
|
|
26
27
|
const LIGHT_DEFAULT_THEME = "light-theia";
|
|
27
28
|
const HC_DEFAULT_THEME = "hc-theia";
|
|
28
29
|
const HC_LIGHT_THEME = "hc-theia-light";
|
|
30
|
+
/**
|
|
31
|
+
* The default editor theme for a color theme that does not provide one of its own.
|
|
32
|
+
* It has to match the type, otherwise e.g. a light theme is rendered on a dark base.
|
|
33
|
+
*/
|
|
34
|
+
function getDefaultTheme(type: ThemeType): string;
|
|
29
35
|
}
|
|
30
36
|
//# sourceMappingURL=monaco-theme-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-theme-registry.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-registry.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAIpD,OAAO,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAC3E,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"monaco-theme-registry.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-registry.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAIpD,OAAO,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAoB,uBAAuB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,qBACa,mBAAmB;IAEK,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAG7F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,uBAAuB,IAAI,IAAI;IAiB/B,YAAY,IAAI,QAAQ;IACxB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAMhD,QAAQ,IAAI,kBAAkB;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKtD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAM9E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAiB5C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE;QAAE,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ;IAiErI,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,IAAI,GAAG,IAAI;IAcnG,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;CAalF;AAED,yBAAiB,mBAAmB,CAAC;IAC1B,MAAM,kBAAkB,eAAe,CAAC;IACxC,MAAM,mBAAmB,gBAAgB,CAAC;IAC1C,MAAM,gBAAgB,aAAa,CAAC;IACpC,MAAM,cAAc,mBAAmB,CAAC;IAE/C;;;OAGG;IACH,SAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAOvD;CACJ"}
|
|
@@ -54,6 +54,19 @@ let MonacoThemeRegistry = class MonacoThemeRegistry {
|
|
|
54
54
|
return theme;
|
|
55
55
|
}
|
|
56
56
|
setTheme(name, data) {
|
|
57
|
+
// monaco lifts these two into token rules and throws on anything else, keeping the previous editor theme.
|
|
58
|
+
// all other colors are read via monaco's `Color.fromHex`, which accepts shorthand hex as is.
|
|
59
|
+
for (const key of ['editor.foreground', 'editor.background']) {
|
|
60
|
+
if (key in data.colors) {
|
|
61
|
+
const normalized = this.normalizeColor(data.colors[key]);
|
|
62
|
+
if (normalized) {
|
|
63
|
+
data.colors[key] = normalized;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
delete data.colors[key];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
57
70
|
// monaco auto refreshes a theme with new data
|
|
58
71
|
monaco.editor.defineTheme(name, data);
|
|
59
72
|
}
|
|
@@ -140,13 +153,14 @@ let MonacoThemeRegistry = class MonacoThemeRegistry {
|
|
|
140
153
|
if (!color) {
|
|
141
154
|
return undefined;
|
|
142
155
|
}
|
|
143
|
-
const
|
|
144
|
-
if (
|
|
156
|
+
const expanded = monaco_theme_types_1.MonacoThemeColor.expandShorthandHex(String(color));
|
|
157
|
+
if (!monaco_theme_types_1.MonacoThemeColor.isTokenColor(expanded)) {
|
|
145
158
|
// ignoring not normalized colors to avoid breaking token color indexes between monaco and vscode-textmate
|
|
146
|
-
this.logger.error(`Color '${
|
|
159
|
+
this.logger.error(`Color '${expanded}' is NOT normalized, it must be a 6 or 8 digit hex value.`);
|
|
147
160
|
return undefined;
|
|
148
161
|
}
|
|
149
|
-
|
|
162
|
+
// monaco discards alpha for token colors, drop it here so that its color map stays aligned with vscode-textmate's
|
|
163
|
+
return expanded.slice(0, 7);
|
|
150
164
|
}
|
|
151
165
|
};
|
|
152
166
|
exports.MonacoThemeRegistry = MonacoThemeRegistry;
|
|
@@ -167,5 +181,18 @@ exports.MonacoThemeRegistry = MonacoThemeRegistry = tslib_1.__decorate([
|
|
|
167
181
|
MonacoThemeRegistry.LIGHT_DEFAULT_THEME = 'light-theia';
|
|
168
182
|
MonacoThemeRegistry.HC_DEFAULT_THEME = 'hc-theia';
|
|
169
183
|
MonacoThemeRegistry.HC_LIGHT_THEME = 'hc-theia-light';
|
|
184
|
+
/**
|
|
185
|
+
* The default editor theme for a color theme that does not provide one of its own.
|
|
186
|
+
* It has to match the type, otherwise e.g. a light theme is rendered on a dark base.
|
|
187
|
+
*/
|
|
188
|
+
function getDefaultTheme(type) {
|
|
189
|
+
switch (type) {
|
|
190
|
+
case 'light': return MonacoThemeRegistry.LIGHT_DEFAULT_THEME;
|
|
191
|
+
case 'hc': return MonacoThemeRegistry.HC_DEFAULT_THEME;
|
|
192
|
+
case 'hcLight': return MonacoThemeRegistry.HC_LIGHT_THEME;
|
|
193
|
+
default: return MonacoThemeRegistry.DARK_DEFAULT_THEME;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
MonacoThemeRegistry.getDefaultTheme = getDefaultTheme;
|
|
170
197
|
})(MonacoThemeRegistry || (exports.MonacoThemeRegistry = MonacoThemeRegistry = {}));
|
|
171
198
|
//# sourceMappingURL=monaco-theme-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-theme-registry.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-registry.ts"],"names":[],"mappings":";AACA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,uDAAuD;AAEvD,4DAAyE;AAEzE,oDAAoD;AACpD,+GAAoH;AACpH,sHAAmH;AAGnH,
|
|
1
|
+
{"version":3,"file":"monaco-theme-registry.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,12 @@ export type OnigasmProvider = () => Promise<IOnigLib>;
|
|
|
11
11
|
export declare const TextmateRegistryFactory: unique symbol;
|
|
12
12
|
export type TextmateRegistryFactory = (currentTheme?: ThemeMix) => Registry;
|
|
13
13
|
export type MonacoThemeColor = monaco.editor.IColors;
|
|
14
|
+
export declare namespace MonacoThemeColor {
|
|
15
|
+
/** Expands shorthand hex (`#RGB`, `#RGBA`) to long form; other values pass through. */
|
|
16
|
+
function expandShorthandHex(color: string): string;
|
|
17
|
+
/** Whether monaco accepts `color` as a token color, i.e. 6/8-digit hex (see monaco's `ColorMap.getId`). */
|
|
18
|
+
function isTokenColor(color: string): boolean;
|
|
19
|
+
}
|
|
14
20
|
export interface MonacoTokenRule extends monaco.editor.ITokenThemeRule {
|
|
15
21
|
}
|
|
16
22
|
export type MonacoBuiltinTheme = monaco.editor.BuiltinTheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-theme-types.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-types.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2EAA2E,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,WAAW,QAAS,SAAQ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB;CAAI;AACnF,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,SAAS,EAAE,QAAQ,CAAA;CACtB;AAED,eAAO,MAAM,eAAe,eAA4B,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtD,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACrD,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,CAAC,eAAe;CAAI;AAC1E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AAC5D,MAAM,WAAW,WAAY,SAAQ,MAAM,CAAC,MAAM,CAAC,oBAAoB;IACnE,IAAI,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"monaco-theme-types.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-types.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2EAA2E,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,WAAW,QAAS,SAAQ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB;CAAI;AACnF,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IACxD,SAAS,EAAE,QAAQ,CAAA;CACtB;AAED,eAAO,MAAM,eAAe,eAA4B,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtD,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACrD,yBAAiB,gBAAgB,CAAC;IAC9B,uFAAuF;IACvF,SAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIxD;IACD,2GAA2G;IAC3G,SAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;CACJ;AACD,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,CAAC,eAAe;CAAI;AAC1E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AAC5D,MAAM,WAAW,WAAY,SAAQ,MAAM,CAAC,MAAM,CAAC,oBAAoB;IACnE,IAAI,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -15,8 +15,23 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TextmateRegistryFactory = exports.OnigasmProvider = void 0;
|
|
18
|
+
exports.MonacoThemeColor = exports.TextmateRegistryFactory = exports.OnigasmProvider = void 0;
|
|
19
19
|
exports.OnigasmProvider = Symbol('OnigasmProvider');
|
|
20
20
|
exports.TextmateRegistryFactory = Symbol('TextmateRegistryFactory');
|
|
21
|
+
var MonacoThemeColor;
|
|
22
|
+
(function (MonacoThemeColor) {
|
|
23
|
+
/** Expands shorthand hex (`#RGB`, `#RGBA`) to long form; other values pass through. */
|
|
24
|
+
function expandShorthandHex(color) {
|
|
25
|
+
return /^#[0-9a-fA-F]{3,4}$/.test(color)
|
|
26
|
+
? '#' + [...color.slice(1)].map(digit => digit + digit).join('')
|
|
27
|
+
: color;
|
|
28
|
+
}
|
|
29
|
+
MonacoThemeColor.expandShorthandHex = expandShorthandHex;
|
|
30
|
+
/** Whether monaco accepts `color` as a token color, i.e. 6/8-digit hex (see monaco's `ColorMap.getId`). */
|
|
31
|
+
function isTokenColor(color) {
|
|
32
|
+
return /^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(color);
|
|
33
|
+
}
|
|
34
|
+
MonacoThemeColor.isTokenColor = isTokenColor;
|
|
35
|
+
})(MonacoThemeColor || (exports.MonacoThemeColor = MonacoThemeColor = {}));
|
|
21
36
|
;
|
|
22
37
|
//# sourceMappingURL=monaco-theme-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-theme-types.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAWnE,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5C,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"monaco-theme-types.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAWnE,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5C,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAIzE,IAAiB,gBAAgB,CAWhC;AAXD,WAAiB,gBAAgB;IAC7B,uFAAuF;IACvF,SAAgB,kBAAkB,CAAC,KAAa;QAC5C,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,CAAC,CAAC,KAAK,CAAC;IAChB,CAAC;IAJe,mCAAkB,qBAIjC,CAAA;IACD,2GAA2G;IAC3G,SAAgB,YAAY,CAAC,KAAa;QACtC,OAAO,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAFe,6BAAY,eAE3B,CAAA;AACL,CAAC,EAXgB,gBAAgB,gCAAhB,gBAAgB,QAWhC;AACyE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-theme-types.spec.d.ts","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-types.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 Ehab Younes and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const chai_1 = require("chai");
|
|
19
|
+
const monaco_theme_types_1 = require("./monaco-theme-types");
|
|
20
|
+
describe('MonacoThemeColor', () => {
|
|
21
|
+
// Themes may use shorthand hex, e.g. Alabaster sets 'editor.foreground': '#000', which
|
|
22
|
+
// monaco rejects with 'Illegal value for token color', keeping the previous editor theme.
|
|
23
|
+
it('should expand shorthand hex colors', () => {
|
|
24
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.expandShorthandHex('#000')).to.equal('#000000');
|
|
25
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.expandShorthandHex('#a1B2')).to.equal('#aa11BB22');
|
|
26
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.expandShorthandHex('#123456')).to.equal('#123456');
|
|
27
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.expandShorthandHex('#12345678')).to.equal('#12345678');
|
|
28
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.expandShorthandHex('red')).to.equal('red');
|
|
29
|
+
});
|
|
30
|
+
it('should accept only colors monaco allows as token colors', () => {
|
|
31
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.isTokenColor('#123456')).to.equal(true);
|
|
32
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.isTokenColor('#12345678')).to.equal(true);
|
|
33
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.isTokenColor(monaco_theme_types_1.MonacoThemeColor.expandShorthandHex('#000'))).to.equal(true);
|
|
34
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.isTokenColor('#123')).to.equal(false);
|
|
35
|
+
(0, chai_1.expect)(monaco_theme_types_1.MonacoThemeColor.isTokenColor('red')).to.equal(false);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=monaco-theme-types.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-theme-types.spec.js","sourceRoot":"","sources":["../../../src/browser/textmate/monaco-theme-types.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAC9B,6DAAwD;AAExD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAE9B,uFAAuF;IACvF,0FAA0F;IAC1F,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,IAAA,aAAM,EAAC,qCAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,IAAA,aAAM,EAAC,qCAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,qCAAgB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,qCAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/E,IAAA,aAAM,EAAC,qCAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAC/D,IAAA,aAAM,EAAC,qCAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAA,aAAM,EAAC,qCAAgB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,IAAA,aAAM,EAAC,qCAAgB,CAAC,YAAY,CAAC,qCAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClG,IAAA,aAAM,EAAC,qCAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAA,aAAM,EAAC,qCAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/monaco",
|
|
3
|
-
"version": "1.75.0-next.
|
|
3
|
+
"version": "1.75.0-next.18+30844b588",
|
|
4
4
|
"description": "Theia - Monaco Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.75.0-next.
|
|
7
|
-
"@theia/editor": "1.75.0-next.
|
|
8
|
-
"@theia/filesystem": "1.75.0-next.
|
|
9
|
-
"@theia/markers": "1.75.0-next.
|
|
6
|
+
"@theia/core": "1.75.0-next.18+30844b588",
|
|
7
|
+
"@theia/editor": "1.75.0-next.18+30844b588",
|
|
8
|
+
"@theia/filesystem": "1.75.0-next.18+30844b588",
|
|
9
|
+
"@theia/markers": "1.75.0-next.18+30844b588",
|
|
10
10
|
"@theia/monaco-editor-core": "1.108.201",
|
|
11
|
-
"@theia/outline-view": "1.75.0-next.
|
|
12
|
-
"@theia/workspace": "1.75.0-next.
|
|
11
|
+
"@theia/outline-view": "1.75.0-next.18+30844b588",
|
|
12
|
+
"@theia/workspace": "1.75.0-next.18+30844b588",
|
|
13
13
|
"fast-plist": "^0.1.3",
|
|
14
14
|
"idb": "^4.0.5",
|
|
15
15
|
"jsonc-parser": "^3.3.1",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"nyc": {
|
|
58
58
|
"extends": "../../configs/nyc.json"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "30844b5882ba6902a8b3fd96991780b5c6ef12cc"
|
|
61
61
|
}
|
|
@@ -24,6 +24,7 @@ import { IOpenerService, OpenExternalOptions, OpenInternalOptions } from '@theia
|
|
|
24
24
|
import { HttpOpenHandlerOptions } from '@theia/core/lib/browser/http-open-handler';
|
|
25
25
|
import { URI } from '@theia/core/lib/common/uri';
|
|
26
26
|
import { MarkdownRenderer, MarkdownRenderOptions, MarkdownRenderResult } from '@theia/core/lib/browser/markdown-rendering/markdown-renderer';
|
|
27
|
+
import { markMarkdownLinksWired } from '@theia/core/lib/browser/markdown-rendering/markdown-link-handler';
|
|
27
28
|
import { MarkdownRenderOptions as MonacoMarkdownRenderOptions } from '@theia/monaco-editor-core/esm/vs/base/browser/markdownRenderer';
|
|
28
29
|
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
|
|
29
30
|
import { DisposableStore } from '@theia/monaco-editor-core/esm/vs/base/common/lifecycle';
|
|
@@ -39,7 +40,12 @@ export class MonacoMarkdownRenderer implements MarkdownRenderer {
|
|
|
39
40
|
protected _openerService: OpenerService | undefined;
|
|
40
41
|
|
|
41
42
|
render(markdown: MarkdownString, options?: MarkdownRenderOptions): MarkdownRenderResult {
|
|
42
|
-
|
|
43
|
+
const rendered = this.delegate.render(markdown, this.transformOptions(options));
|
|
44
|
+
// The delegate activates links through its own opener service, which `interceptOpen`
|
|
45
|
+
// routes to Theia's. Declaring that keeps callers from wiring a second handler, which
|
|
46
|
+
// would open every link twice.
|
|
47
|
+
markMarkdownLinksWired(rendered.element);
|
|
48
|
+
return rendered;
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
protected transformOptions(options?: MarkdownRenderOptions): MonacoMarkdownRenderOptions | undefined {
|
|
@@ -119,7 +119,8 @@ export class MonacoTextmateService implements FrontendApplicationContribution {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
protected get currentEditorTheme(): string {
|
|
122
|
-
|
|
122
|
+
const theme = this.themeService.getCurrentTheme();
|
|
123
|
+
return theme.editorTheme || MonacoThemeRegistry.getDefaultTheme(theme.type);
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
activateLanguage(language: string): Disposable {
|
|
@@ -24,8 +24,9 @@ import { IStandaloneThemeService } from '@theia/monaco-editor-core/esm/vs/editor
|
|
|
24
24
|
import { StandaloneServices } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
|
|
25
25
|
import { StandaloneThemeService } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneThemeService';
|
|
26
26
|
import { Color } from '@theia/monaco-editor-core/esm/vs/base/common/color';
|
|
27
|
-
import { MixStandaloneTheme, TextmateRegistryFactory, ThemeMix } from './monaco-theme-types';
|
|
27
|
+
import { MixStandaloneTheme, MonacoThemeColor, TextmateRegistryFactory, ThemeMix } from './monaco-theme-types';
|
|
28
28
|
import { ILogger } from '@theia/core';
|
|
29
|
+
import { ThemeType } from '@theia/core/lib/common/theme';
|
|
29
30
|
|
|
30
31
|
@injectable()
|
|
31
32
|
export class MonacoThemeRegistry {
|
|
@@ -72,6 +73,18 @@ export class MonacoThemeRegistry {
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
setTheme(name: string, data: ThemeMix): void {
|
|
76
|
+
// monaco lifts these two into token rules and throws on anything else, keeping the previous editor theme.
|
|
77
|
+
// all other colors are read via monaco's `Color.fromHex`, which accepts shorthand hex as is.
|
|
78
|
+
for (const key of ['editor.foreground', 'editor.background']) {
|
|
79
|
+
if (key in data.colors) {
|
|
80
|
+
const normalized = this.normalizeColor(data.colors[key]);
|
|
81
|
+
if (normalized) {
|
|
82
|
+
data.colors[key] = normalized;
|
|
83
|
+
} else {
|
|
84
|
+
delete data.colors[key];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
75
88
|
// monaco auto refreshes a theme with new data
|
|
76
89
|
monaco.editor.defineTheme(name, data);
|
|
77
90
|
}
|
|
@@ -162,13 +175,14 @@ export class MonacoThemeRegistry {
|
|
|
162
175
|
if (!color) {
|
|
163
176
|
return undefined;
|
|
164
177
|
}
|
|
165
|
-
const
|
|
166
|
-
if (
|
|
178
|
+
const expanded = MonacoThemeColor.expandShorthandHex(String(color));
|
|
179
|
+
if (!MonacoThemeColor.isTokenColor(expanded)) {
|
|
167
180
|
// ignoring not normalized colors to avoid breaking token color indexes between monaco and vscode-textmate
|
|
168
|
-
this.logger.error(`Color '${
|
|
181
|
+
this.logger.error(`Color '${expanded}' is NOT normalized, it must be a 6 or 8 digit hex value.`);
|
|
169
182
|
return undefined;
|
|
170
183
|
}
|
|
171
|
-
|
|
184
|
+
// monaco discards alpha for token colors, drop it here so that its color map stays aligned with vscode-textmate's
|
|
185
|
+
return expanded.slice(0, 7);
|
|
172
186
|
}
|
|
173
187
|
}
|
|
174
188
|
|
|
@@ -177,4 +191,17 @@ export namespace MonacoThemeRegistry {
|
|
|
177
191
|
export const LIGHT_DEFAULT_THEME = 'light-theia';
|
|
178
192
|
export const HC_DEFAULT_THEME = 'hc-theia';
|
|
179
193
|
export const HC_LIGHT_THEME = 'hc-theia-light';
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* The default editor theme for a color theme that does not provide one of its own.
|
|
197
|
+
* It has to match the type, otherwise e.g. a light theme is rendered on a dark base.
|
|
198
|
+
*/
|
|
199
|
+
export function getDefaultTheme(type: ThemeType): string {
|
|
200
|
+
switch (type) {
|
|
201
|
+
case 'light': return LIGHT_DEFAULT_THEME;
|
|
202
|
+
case 'hc': return HC_DEFAULT_THEME;
|
|
203
|
+
case 'hcLight': return HC_LIGHT_THEME;
|
|
204
|
+
default: return DARK_DEFAULT_THEME;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
180
207
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 Ehab Younes and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
import { MonacoThemeColor } from './monaco-theme-types';
|
|
19
|
+
|
|
20
|
+
describe('MonacoThemeColor', () => {
|
|
21
|
+
|
|
22
|
+
// Themes may use shorthand hex, e.g. Alabaster sets 'editor.foreground': '#000', which
|
|
23
|
+
// monaco rejects with 'Illegal value for token color', keeping the previous editor theme.
|
|
24
|
+
it('should expand shorthand hex colors', () => {
|
|
25
|
+
expect(MonacoThemeColor.expandShorthandHex('#000')).to.equal('#000000');
|
|
26
|
+
expect(MonacoThemeColor.expandShorthandHex('#a1B2')).to.equal('#aa11BB22');
|
|
27
|
+
expect(MonacoThemeColor.expandShorthandHex('#123456')).to.equal('#123456');
|
|
28
|
+
expect(MonacoThemeColor.expandShorthandHex('#12345678')).to.equal('#12345678');
|
|
29
|
+
expect(MonacoThemeColor.expandShorthandHex('red')).to.equal('red');
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('should accept only colors monaco allows as token colors', () => {
|
|
33
|
+
expect(MonacoThemeColor.isTokenColor('#123456')).to.equal(true);
|
|
34
|
+
expect(MonacoThemeColor.isTokenColor('#12345678')).to.equal(true);
|
|
35
|
+
expect(MonacoThemeColor.isTokenColor(MonacoThemeColor.expandShorthandHex('#000'))).to.equal(true);
|
|
36
|
+
expect(MonacoThemeColor.isTokenColor('#123')).to.equal(false);
|
|
37
|
+
expect(MonacoThemeColor.isTokenColor('red')).to.equal(false);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
@@ -29,6 +29,18 @@ export const TextmateRegistryFactory = Symbol('TextmateRegistryFactory');
|
|
|
29
29
|
export type TextmateRegistryFactory = (currentTheme?: ThemeMix) => Registry;
|
|
30
30
|
|
|
31
31
|
export type MonacoThemeColor = monaco.editor.IColors;
|
|
32
|
+
export namespace MonacoThemeColor {
|
|
33
|
+
/** Expands shorthand hex (`#RGB`, `#RGBA`) to long form; other values pass through. */
|
|
34
|
+
export function expandShorthandHex(color: string): string {
|
|
35
|
+
return /^#[0-9a-fA-F]{3,4}$/.test(color)
|
|
36
|
+
? '#' + [...color.slice(1)].map(digit => digit + digit).join('')
|
|
37
|
+
: color;
|
|
38
|
+
}
|
|
39
|
+
/** Whether monaco accepts `color` as a token color, i.e. 6/8-digit hex (see monaco's `ColorMap.getId`). */
|
|
40
|
+
export function isTokenColor(color: string): boolean {
|
|
41
|
+
return /^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(color);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
32
44
|
export interface MonacoTokenRule extends monaco.editor.ITokenThemeRule { };
|
|
33
45
|
export type MonacoBuiltinTheme = monaco.editor.BuiltinTheme;
|
|
34
46
|
export interface MonacoTheme extends monaco.editor.IStandaloneThemeData {
|