@theia/monaco 1.24.0-next.46 → 1.24.0-next.49
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/monaco-bulk-edit-service.d.ts +6 -4
- package/lib/browser/monaco-bulk-edit-service.d.ts.map +1 -1
- package/lib/browser/monaco-bulk-edit-service.js.map +1 -1
- package/lib/browser/monaco-color-registry.d.ts +6 -3
- package/lib/browser/monaco-color-registry.d.ts.map +1 -1
- package/lib/browser/monaco-color-registry.js +17 -13
- package/lib/browser/monaco-color-registry.js.map +1 -1
- package/lib/browser/monaco-command-service.d.ts +6 -5
- package/lib/browser/monaco-command-service.d.ts.map +1 -1
- package/lib/browser/monaco-command-service.js +2 -2
- package/lib/browser/monaco-command-service.js.map +1 -1
- package/lib/browser/monaco-command.d.ts +2 -1
- package/lib/browser/monaco-command.d.ts.map +1 -1
- package/lib/browser/monaco-command.js +17 -16
- package/lib/browser/monaco-command.js.map +1 -1
- package/lib/browser/monaco-context-key-service.d.ts +10 -8
- package/lib/browser/monaco-context-key-service.d.ts.map +1 -1
- package/lib/browser/monaco-context-key-service.js +18 -9
- package/lib/browser/monaco-context-key-service.js.map +1 -1
- package/lib/browser/monaco-context-menu.d.ts +8 -2
- package/lib/browser/monaco-context-menu.d.ts.map +1 -1
- package/lib/browser/monaco-context-menu.js +22 -4
- package/lib/browser/monaco-context-menu.js.map +1 -1
- package/lib/browser/monaco-diagnostic-collection.d.ts +4 -6
- package/lib/browser/monaco-diagnostic-collection.d.ts.map +1 -1
- package/lib/browser/monaco-diagnostic-collection.js +1 -0
- package/lib/browser/monaco-diagnostic-collection.js.map +1 -1
- package/lib/browser/monaco-diff-editor.d.ts +8 -10
- package/lib/browser/monaco-diff-editor.d.ts.map +1 -1
- package/lib/browser/monaco-diff-editor.js +4 -1
- package/lib/browser/monaco-diff-editor.js.map +1 -1
- package/lib/browser/monaco-diff-navigator-factory.d.ts +3 -4
- package/lib/browser/monaco-diff-navigator-factory.d.ts.map +1 -1
- package/lib/browser/monaco-diff-navigator-factory.js +14 -9
- package/lib/browser/monaco-diff-navigator-factory.js.map +1 -1
- package/lib/browser/monaco-editor-model.d.ts +20 -13
- package/lib/browser/monaco-editor-model.d.ts.map +1 -1
- package/lib/browser/monaco-editor-model.js +39 -14
- package/lib/browser/monaco-editor-model.js.map +1 -1
- package/lib/browser/monaco-editor-provider.d.ts +13 -19
- package/lib/browser/monaco-editor-provider.d.ts.map +1 -1
- package/lib/browser/monaco-editor-provider.js +39 -96
- package/lib/browser/monaco-editor-provider.js.map +1 -1
- package/lib/browser/monaco-editor-service.d.ts +9 -8
- package/lib/browser/monaco-editor-service.d.ts.map +1 -1
- package/lib/browser/monaco-editor-service.js +19 -8
- package/lib/browser/monaco-editor-service.js.map +1 -1
- package/lib/browser/monaco-editor-zone-widget.d.ts +3 -3
- package/lib/browser/monaco-editor-zone-widget.d.ts.map +1 -1
- package/lib/browser/monaco-editor-zone-widget.js +3 -2
- package/lib/browser/monaco-editor-zone-widget.js.map +1 -1
- package/lib/browser/monaco-editor.d.ts +20 -18
- package/lib/browser/monaco-editor.d.ts.map +1 -1
- package/lib/browser/monaco-editor.js +53 -19
- package/lib/browser/monaco-editor.js.map +1 -1
- package/lib/browser/monaco-formatting-conflicts.d.ts +1 -1
- package/lib/browser/monaco-formatting-conflicts.d.ts.map +1 -1
- package/lib/browser/monaco-formatting-conflicts.js +2 -1
- package/lib/browser/monaco-formatting-conflicts.js.map +1 -1
- package/lib/browser/monaco-frontend-application-contribution.d.ts +10 -1
- package/lib/browser/monaco-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/monaco-frontend-application-contribution.js +42 -1
- package/lib/browser/monaco-frontend-application-contribution.js.map +1 -1
- package/lib/browser/monaco-frontend-module.d.ts +2 -1
- package/lib/browser/monaco-frontend-module.d.ts.map +1 -1
- package/lib/browser/monaco-frontend-module.js +8 -5
- package/lib/browser/monaco-frontend-module.js.map +1 -1
- package/lib/browser/monaco-gotoline-quick-access.d.ts +4 -2
- package/lib/browser/monaco-gotoline-quick-access.d.ts.map +1 -1
- package/lib/browser/monaco-gotoline-quick-access.js +9 -4
- package/lib/browser/monaco-gotoline-quick-access.js.map +1 -1
- package/lib/browser/monaco-gotosymbol-quick-access.d.ts +10 -3
- package/lib/browser/monaco-gotosymbol-quick-access.d.ts.map +1 -1
- package/lib/browser/monaco-gotosymbol-quick-access.js +19 -8
- package/lib/browser/monaco-gotosymbol-quick-access.js.map +1 -1
- package/lib/browser/monaco-indexed-db.d.ts +1 -1
- package/lib/browser/monaco-indexed-db.d.ts.map +1 -1
- package/lib/browser/monaco-indexed-db.js.map +1 -1
- package/lib/browser/monaco-keybinding.d.ts.map +1 -1
- package/lib/browser/monaco-keybinding.js +4 -2
- package/lib/browser/monaco-keybinding.js.map +1 -1
- package/lib/browser/monaco-keycode-map.d.ts +2 -2
- package/lib/browser/monaco-keycode-map.d.ts.map +1 -1
- package/lib/browser/monaco-keycode-map.js +122 -122
- package/lib/browser/monaco-keycode-map.js.map +1 -1
- package/lib/browser/monaco-languages.d.ts +1 -1
- package/lib/browser/monaco-languages.d.ts.map +1 -1
- package/lib/browser/monaco-languages.js +1 -0
- package/lib/browser/monaco-languages.js.map +1 -1
- package/lib/browser/monaco-menu.js +7 -7
- package/lib/browser/monaco-menu.js.map +1 -1
- package/lib/browser/monaco-mime-service.d.ts.map +1 -1
- package/lib/browser/monaco-mime-service.js +8 -4
- package/lib/browser/monaco-mime-service.js.map +1 -1
- package/lib/browser/monaco-outline-contribution.d.ts +15 -16
- package/lib/browser/monaco-outline-contribution.d.ts.map +1 -1
- package/lib/browser/monaco-outline-contribution.js +21 -19
- package/lib/browser/monaco-outline-contribution.js.map +1 -1
- package/lib/browser/monaco-quick-access-registry.d.ts.map +1 -1
- package/lib/browser/monaco-quick-access-registry.js +11 -13
- package/lib/browser/monaco-quick-access-registry.js.map +1 -1
- package/lib/browser/monaco-quick-input-service.d.ts +46 -25
- package/lib/browser/monaco-quick-input-service.d.ts.map +1 -1
- package/lib/browser/monaco-quick-input-service.js +40 -29
- package/lib/browser/monaco-quick-input-service.js.map +1 -1
- package/lib/browser/monaco-resolved-keybinding.d.ts +9 -7
- package/lib/browser/monaco-resolved-keybinding.d.ts.map +1 -1
- package/lib/browser/monaco-resolved-keybinding.js +35 -14
- package/lib/browser/monaco-resolved-keybinding.js.map +1 -1
- package/lib/browser/monaco-snippet-suggest-provider.d.ts +1 -1
- package/lib/browser/monaco-snippet-suggest-provider.d.ts.map +1 -1
- package/lib/browser/monaco-snippet-suggest-provider.js +5 -3
- package/lib/browser/monaco-snippet-suggest-provider.js.map +1 -1
- package/lib/browser/monaco-status-bar-contribution.d.ts +2 -2
- package/lib/browser/monaco-status-bar-contribution.d.ts.map +1 -1
- package/lib/browser/monaco-status-bar-contribution.js.map +1 -1
- package/lib/browser/monaco-text-model-service.d.ts +14 -8
- package/lib/browser/monaco-text-model-service.d.ts.map +1 -1
- package/lib/browser/monaco-text-model-service.js +35 -17
- package/lib/browser/monaco-text-model-service.js.map +1 -1
- package/lib/browser/monaco-theming-service.d.ts +1 -1
- package/lib/browser/monaco-theming-service.d.ts.map +1 -1
- package/lib/browser/monaco-theming-service.js.map +1 -1
- package/lib/browser/monaco-to-protocol-converter.d.ts +1 -1
- package/lib/browser/monaco-to-protocol-converter.d.ts.map +1 -1
- package/lib/browser/monaco-to-protocol-converter.js.map +1 -1
- package/lib/browser/monaco-workspace.d.ts +7 -6
- package/lib/browser/monaco-workspace.d.ts.map +1 -1
- package/lib/browser/monaco-workspace.js +13 -7
- package/lib/browser/monaco-workspace.js.map +1 -1
- package/lib/browser/protocol-to-monaco-converter.d.ts +1 -1
- package/lib/browser/protocol-to-monaco-converter.d.ts.map +1 -1
- package/lib/browser/protocol-to-monaco-converter.js +1 -0
- package/lib/browser/protocol-to-monaco-converter.js.map +1 -1
- package/lib/browser/textmate/monaco-textmate-service.d.ts.map +1 -1
- package/lib/browser/textmate/monaco-textmate-service.js +14 -11
- package/lib/browser/textmate/monaco-textmate-service.js.map +1 -1
- package/lib/browser/textmate/monaco-theme-registry.d.ts +5 -3
- package/lib/browser/textmate/monaco-theme-registry.d.ts.map +1 -1
- package/lib/browser/textmate/monaco-theme-registry.js +6 -3
- package/lib/browser/textmate/monaco-theme-registry.js.map +1 -1
- package/lib/browser/textmate/monaco-theme-types.d.ts +5 -4
- package/lib/browser/textmate/monaco-theme-types.d.ts.map +1 -1
- package/lib/browser/textmate/monaco-theme-types.js +1 -0
- package/lib/browser/textmate/monaco-theme-types.js.map +1 -1
- package/lib/browser/textmate/textmate-contribution.d.ts.map +1 -1
- package/lib/browser/textmate/textmate-contribution.js +1 -0
- package/lib/browser/textmate/textmate-contribution.js.map +1 -1
- package/lib/browser/textmate/textmate-snippet-completion-provider.d.ts +1 -1
- package/lib/browser/textmate/textmate-snippet-completion-provider.d.ts.map +1 -1
- package/lib/browser/textmate/textmate-snippet-completion-provider.js +3 -1
- package/lib/browser/textmate/textmate-snippet-completion-provider.js.map +1 -1
- package/lib/browser/textmate/textmate-tokenizer.d.ts +1 -1
- package/lib/browser/textmate/textmate-tokenizer.d.ts.map +1 -1
- package/lib/browser/textmate/textmate-tokenizer.js +2 -2
- package/lib/browser/textmate/textmate-tokenizer.js.map +1 -1
- package/package.json +9 -10
- package/src/browser/monaco-bulk-edit-service.ts +9 -4
- package/src/browser/monaco-color-registry.ts +17 -14
- package/src/browser/monaco-command-service.ts +8 -7
- package/src/browser/monaco-command.ts +18 -16
- package/src/browser/monaco-context-key-service.ts +25 -16
- package/src/browser/monaco-context-menu.ts +23 -6
- package/src/browser/monaco-diagnostic-collection.ts +4 -5
- package/src/browser/monaco-diff-editor.ts +12 -14
- package/src/browser/monaco-diff-navigator-factory.ts +18 -14
- package/src/browser/monaco-editor-model.ts +56 -24
- package/src/browser/monaco-editor-provider.ts +48 -114
- package/src/browser/monaco-editor-service.ts +27 -16
- package/src/browser/monaco-editor-zone-widget.ts +6 -2
- package/src/browser/monaco-editor.ts +85 -44
- package/src/browser/monaco-formatting-conflicts.ts +10 -5
- package/src/browser/monaco-frontend-application-contribution.ts +40 -2
- package/src/browser/monaco-frontend-module.ts +18 -14
- package/src/browser/monaco-gotoline-quick-access.ts +10 -5
- package/src/browser/monaco-gotosymbol-quick-access.ts +17 -6
- package/src/browser/monaco-indexed-db.ts +1 -0
- package/src/browser/monaco-keybinding.ts +3 -2
- package/src/browser/monaco-keycode-map.ts +72 -71
- package/src/browser/monaco-languages.ts +1 -0
- package/src/browser/monaco-menu.ts +7 -7
- package/src/browser/monaco-mime-service.ts +9 -5
- package/src/browser/monaco-outline-contribution.ts +36 -32
- package/src/browser/monaco-quick-access-registry.ts +29 -19
- package/src/browser/monaco-quick-input-service.ts +102 -59
- package/src/browser/monaco-resolved-keybinding.ts +52 -28
- package/src/browser/monaco-snippet-suggest-provider.ts +5 -3
- package/src/browser/monaco-status-bar-contribution.ts +2 -1
- package/src/browser/monaco-text-model-service.ts +49 -26
- package/src/browser/monaco-theming-service.ts +1 -0
- package/src/browser/monaco-to-protocol-converter.ts +1 -0
- package/src/browser/monaco-workspace.ts +28 -19
- package/src/browser/protocol-to-monaco-converter.ts +1 -0
- package/src/browser/textmate/monaco-textmate-service.ts +15 -12
- package/src/browser/textmate/monaco-theme-registry.ts +10 -5
- package/src/browser/textmate/monaco-theme-types.ts +5 -4
- package/src/browser/textmate/textmate-contribution.ts +1 -0
- package/src/browser/textmate/textmate-snippet-completion-provider.ts +4 -1
- package/src/browser/textmate/textmate-tokenizer.ts +3 -2
- package/lib/browser/monaco-browser-module.d.ts +0 -5
- package/lib/browser/monaco-browser-module.d.ts.map +0 -1
- package/lib/browser/monaco-browser-module.js +0 -27
- package/lib/browser/monaco-browser-module.js.map +0 -1
- package/lib/browser/monaco-comparers.d.ts +0 -10
- package/lib/browser/monaco-comparers.d.ts.map +0 -1
- package/lib/browser/monaco-comparers.js +0 -109
- package/lib/browser/monaco-comparers.js.map +0 -1
- package/lib/browser/monaco-loader.d.ts +0 -4
- package/lib/browser/monaco-loader.d.ts.map +0 -1
- package/lib/browser/monaco-loader.js +0 -177
- package/lib/browser/monaco-loader.js.map +0 -1
- package/lib/electron-browser/monaco-electron-module.d.ts +0 -5
- package/lib/electron-browser/monaco-electron-module.d.ts.map +0 -1
- package/lib/electron-browser/monaco-electron-module.js +0 -50
- package/lib/electron-browser/monaco-electron-module.js.map +0 -1
- package/src/browser/monaco-browser-module.ts +0 -26
- package/src/browser/monaco-comparers.ts +0 -125
- package/src/browser/monaco-loader.ts +0 -193
- package/src/electron-browser/monaco-electron-module.ts +0 -52
- package/src/typings/monaco/index.d.ts +0 -2471
|
@@ -19,10 +19,11 @@
|
|
|
19
19
|
*--------------------------------------------------------------------------------------------*/
|
|
20
20
|
|
|
21
21
|
import * as browser from '@theia/core/lib/browser';
|
|
22
|
+
// This is exported as part of the public API, but we use it with private API's so we need to refer to the private version.
|
|
23
|
+
import { KeyCode } from '@theia/monaco-editor-core/esm/vs/base/common/keyCodes';
|
|
24
|
+
import * as MonacoPlatform from '@theia/monaco-editor-core/esm/vs/base/common/platform';
|
|
22
25
|
|
|
23
|
-
const KeyCode =
|
|
24
|
-
|
|
25
|
-
export const KEY_CODE_MAP: monaco.KeyCode[] = [];
|
|
26
|
+
export const KEY_CODE_MAP: KeyCode[] = [];
|
|
26
27
|
(function (): void {
|
|
27
28
|
KEY_CODE_MAP[3] = KeyCode.PauseBreak; // VK_CANCEL 0x03 Control-break processing
|
|
28
29
|
KEY_CODE_MAP[8] = KeyCode.Backspace;
|
|
@@ -46,62 +47,62 @@ export const KEY_CODE_MAP: monaco.KeyCode[] = [];
|
|
|
46
47
|
KEY_CODE_MAP[45] = KeyCode.Insert;
|
|
47
48
|
KEY_CODE_MAP[46] = KeyCode.Delete;
|
|
48
49
|
|
|
49
|
-
KEY_CODE_MAP[48] = KeyCode.
|
|
50
|
-
KEY_CODE_MAP[49] = KeyCode.
|
|
51
|
-
KEY_CODE_MAP[50] = KeyCode.
|
|
52
|
-
KEY_CODE_MAP[51] = KeyCode.
|
|
53
|
-
KEY_CODE_MAP[52] = KeyCode.
|
|
54
|
-
KEY_CODE_MAP[53] = KeyCode.
|
|
55
|
-
KEY_CODE_MAP[54] = KeyCode.
|
|
56
|
-
KEY_CODE_MAP[55] = KeyCode.
|
|
57
|
-
KEY_CODE_MAP[56] = KeyCode.
|
|
58
|
-
KEY_CODE_MAP[57] = KeyCode.
|
|
50
|
+
KEY_CODE_MAP[48] = KeyCode.Digit0;
|
|
51
|
+
KEY_CODE_MAP[49] = KeyCode.Digit1;
|
|
52
|
+
KEY_CODE_MAP[50] = KeyCode.Digit2;
|
|
53
|
+
KEY_CODE_MAP[51] = KeyCode.Digit3;
|
|
54
|
+
KEY_CODE_MAP[52] = KeyCode.Digit4;
|
|
55
|
+
KEY_CODE_MAP[53] = KeyCode.Digit5;
|
|
56
|
+
KEY_CODE_MAP[54] = KeyCode.Digit6;
|
|
57
|
+
KEY_CODE_MAP[55] = KeyCode.Digit7;
|
|
58
|
+
KEY_CODE_MAP[56] = KeyCode.Digit8;
|
|
59
|
+
KEY_CODE_MAP[57] = KeyCode.Digit9;
|
|
59
60
|
|
|
60
|
-
KEY_CODE_MAP[65] = KeyCode.
|
|
61
|
-
KEY_CODE_MAP[66] = KeyCode.
|
|
62
|
-
KEY_CODE_MAP[67] = KeyCode.
|
|
63
|
-
KEY_CODE_MAP[68] = KeyCode.
|
|
64
|
-
KEY_CODE_MAP[69] = KeyCode.
|
|
65
|
-
KEY_CODE_MAP[70] = KeyCode.
|
|
66
|
-
KEY_CODE_MAP[71] = KeyCode.
|
|
67
|
-
KEY_CODE_MAP[72] = KeyCode.
|
|
68
|
-
KEY_CODE_MAP[73] = KeyCode.
|
|
69
|
-
KEY_CODE_MAP[74] = KeyCode.
|
|
70
|
-
KEY_CODE_MAP[75] = KeyCode.
|
|
71
|
-
KEY_CODE_MAP[76] = KeyCode.
|
|
72
|
-
KEY_CODE_MAP[77] = KeyCode.
|
|
73
|
-
KEY_CODE_MAP[78] = KeyCode.
|
|
74
|
-
KEY_CODE_MAP[79] = KeyCode.
|
|
75
|
-
KEY_CODE_MAP[80] = KeyCode.
|
|
76
|
-
KEY_CODE_MAP[81] = KeyCode.
|
|
77
|
-
KEY_CODE_MAP[82] = KeyCode.
|
|
78
|
-
KEY_CODE_MAP[83] = KeyCode.
|
|
79
|
-
KEY_CODE_MAP[84] = KeyCode.
|
|
80
|
-
KEY_CODE_MAP[85] = KeyCode.
|
|
81
|
-
KEY_CODE_MAP[86] = KeyCode.
|
|
82
|
-
KEY_CODE_MAP[87] = KeyCode.
|
|
83
|
-
KEY_CODE_MAP[88] = KeyCode.
|
|
84
|
-
KEY_CODE_MAP[89] = KeyCode.
|
|
85
|
-
KEY_CODE_MAP[90] = KeyCode.
|
|
61
|
+
KEY_CODE_MAP[65] = KeyCode.KeyA;
|
|
62
|
+
KEY_CODE_MAP[66] = KeyCode.KeyB;
|
|
63
|
+
KEY_CODE_MAP[67] = KeyCode.KeyC;
|
|
64
|
+
KEY_CODE_MAP[68] = KeyCode.KeyD;
|
|
65
|
+
KEY_CODE_MAP[69] = KeyCode.KeyE;
|
|
66
|
+
KEY_CODE_MAP[70] = KeyCode.KeyF;
|
|
67
|
+
KEY_CODE_MAP[71] = KeyCode.KeyG;
|
|
68
|
+
KEY_CODE_MAP[72] = KeyCode.KeyH;
|
|
69
|
+
KEY_CODE_MAP[73] = KeyCode.KeyI;
|
|
70
|
+
KEY_CODE_MAP[74] = KeyCode.KeyJ;
|
|
71
|
+
KEY_CODE_MAP[75] = KeyCode.KeyK;
|
|
72
|
+
KEY_CODE_MAP[76] = KeyCode.KeyL;
|
|
73
|
+
KEY_CODE_MAP[77] = KeyCode.KeyM;
|
|
74
|
+
KEY_CODE_MAP[78] = KeyCode.KeyN;
|
|
75
|
+
KEY_CODE_MAP[79] = KeyCode.KeyO;
|
|
76
|
+
KEY_CODE_MAP[80] = KeyCode.KeyP;
|
|
77
|
+
KEY_CODE_MAP[81] = KeyCode.KeyQ;
|
|
78
|
+
KEY_CODE_MAP[82] = KeyCode.KeyR;
|
|
79
|
+
KEY_CODE_MAP[83] = KeyCode.KeyS;
|
|
80
|
+
KEY_CODE_MAP[84] = KeyCode.KeyT;
|
|
81
|
+
KEY_CODE_MAP[85] = KeyCode.KeyU;
|
|
82
|
+
KEY_CODE_MAP[86] = KeyCode.KeyV;
|
|
83
|
+
KEY_CODE_MAP[87] = KeyCode.KeyW;
|
|
84
|
+
KEY_CODE_MAP[88] = KeyCode.KeyX;
|
|
85
|
+
KEY_CODE_MAP[89] = KeyCode.KeyY;
|
|
86
|
+
KEY_CODE_MAP[90] = KeyCode.KeyZ;
|
|
86
87
|
|
|
87
88
|
KEY_CODE_MAP[93] = KeyCode.ContextMenu;
|
|
88
89
|
|
|
89
|
-
KEY_CODE_MAP[96] = KeyCode.
|
|
90
|
-
KEY_CODE_MAP[97] = KeyCode.
|
|
91
|
-
KEY_CODE_MAP[98] = KeyCode.
|
|
92
|
-
KEY_CODE_MAP[99] = KeyCode.
|
|
93
|
-
KEY_CODE_MAP[100] = KeyCode.
|
|
94
|
-
KEY_CODE_MAP[101] = KeyCode.
|
|
95
|
-
KEY_CODE_MAP[102] = KeyCode.
|
|
96
|
-
KEY_CODE_MAP[103] = KeyCode.
|
|
97
|
-
KEY_CODE_MAP[104] = KeyCode.
|
|
98
|
-
KEY_CODE_MAP[105] = KeyCode.
|
|
99
|
-
KEY_CODE_MAP[106] = KeyCode.
|
|
100
|
-
KEY_CODE_MAP[107] = KeyCode.
|
|
90
|
+
KEY_CODE_MAP[96] = KeyCode.Numpad0;
|
|
91
|
+
KEY_CODE_MAP[97] = KeyCode.Numpad1;
|
|
92
|
+
KEY_CODE_MAP[98] = KeyCode.Numpad2;
|
|
93
|
+
KEY_CODE_MAP[99] = KeyCode.Numpad3;
|
|
94
|
+
KEY_CODE_MAP[100] = KeyCode.Numpad4;
|
|
95
|
+
KEY_CODE_MAP[101] = KeyCode.Numpad5;
|
|
96
|
+
KEY_CODE_MAP[102] = KeyCode.Numpad6;
|
|
97
|
+
KEY_CODE_MAP[103] = KeyCode.Numpad7;
|
|
98
|
+
KEY_CODE_MAP[104] = KeyCode.Numpad8;
|
|
99
|
+
KEY_CODE_MAP[105] = KeyCode.Numpad9;
|
|
100
|
+
KEY_CODE_MAP[106] = KeyCode.NumpadMultiply;
|
|
101
|
+
KEY_CODE_MAP[107] = KeyCode.NumpadAdd;
|
|
101
102
|
KEY_CODE_MAP[108] = KeyCode.NUMPAD_SEPARATOR;
|
|
102
|
-
KEY_CODE_MAP[109] = KeyCode.
|
|
103
|
-
KEY_CODE_MAP[110] = KeyCode.
|
|
104
|
-
KEY_CODE_MAP[111] = KeyCode.
|
|
103
|
+
KEY_CODE_MAP[109] = KeyCode.NumpadSubtract;
|
|
104
|
+
KEY_CODE_MAP[110] = KeyCode.NumpadDecimal;
|
|
105
|
+
KEY_CODE_MAP[111] = KeyCode.NumpadDivide;
|
|
105
106
|
|
|
106
107
|
KEY_CODE_MAP[112] = KeyCode.F1;
|
|
107
108
|
KEY_CODE_MAP[113] = KeyCode.F2;
|
|
@@ -126,22 +127,22 @@ export const KEY_CODE_MAP: monaco.KeyCode[] = [];
|
|
|
126
127
|
KEY_CODE_MAP[144] = KeyCode.NumLock;
|
|
127
128
|
KEY_CODE_MAP[145] = KeyCode.ScrollLock;
|
|
128
129
|
|
|
129
|
-
KEY_CODE_MAP[186] = KeyCode.
|
|
130
|
-
KEY_CODE_MAP[187] = KeyCode.
|
|
131
|
-
KEY_CODE_MAP[188] = KeyCode.
|
|
132
|
-
KEY_CODE_MAP[189] = KeyCode.
|
|
133
|
-
KEY_CODE_MAP[190] = KeyCode.
|
|
134
|
-
KEY_CODE_MAP[191] = KeyCode.
|
|
135
|
-
KEY_CODE_MAP[192] = KeyCode.
|
|
130
|
+
KEY_CODE_MAP[186] = KeyCode.Semicolon;
|
|
131
|
+
KEY_CODE_MAP[187] = KeyCode.Equal;
|
|
132
|
+
KEY_CODE_MAP[188] = KeyCode.Comma;
|
|
133
|
+
KEY_CODE_MAP[189] = KeyCode.Minus;
|
|
134
|
+
KEY_CODE_MAP[190] = KeyCode.Period;
|
|
135
|
+
KEY_CODE_MAP[191] = KeyCode.Slash;
|
|
136
|
+
KEY_CODE_MAP[192] = KeyCode.Backquote;
|
|
136
137
|
KEY_CODE_MAP[193] = KeyCode.ABNT_C1;
|
|
137
138
|
KEY_CODE_MAP[194] = KeyCode.ABNT_C2;
|
|
138
|
-
KEY_CODE_MAP[219] = KeyCode.
|
|
139
|
-
KEY_CODE_MAP[220] = KeyCode.
|
|
140
|
-
KEY_CODE_MAP[221] = KeyCode.
|
|
141
|
-
KEY_CODE_MAP[222] = KeyCode.
|
|
139
|
+
KEY_CODE_MAP[219] = KeyCode.BracketLeft;
|
|
140
|
+
KEY_CODE_MAP[220] = KeyCode.Backslash;
|
|
141
|
+
KEY_CODE_MAP[221] = KeyCode.BracketRight;
|
|
142
|
+
KEY_CODE_MAP[222] = KeyCode.Quote;
|
|
142
143
|
KEY_CODE_MAP[223] = KeyCode.OEM_8;
|
|
143
144
|
|
|
144
|
-
KEY_CODE_MAP[226] = KeyCode.
|
|
145
|
+
KEY_CODE_MAP[226] = KeyCode.IntlBackslash;
|
|
145
146
|
|
|
146
147
|
/**
|
|
147
148
|
* https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html
|
|
@@ -152,15 +153,15 @@ export const KEY_CODE_MAP: monaco.KeyCode[] = [];
|
|
|
152
153
|
if (browser.isIE) {
|
|
153
154
|
KEY_CODE_MAP[91] = KeyCode.Meta;
|
|
154
155
|
} else if (browser.isFirefox) {
|
|
155
|
-
KEY_CODE_MAP[59] = KeyCode.
|
|
156
|
-
KEY_CODE_MAP[107] = KeyCode.
|
|
157
|
-
KEY_CODE_MAP[109] = KeyCode.
|
|
158
|
-
if (
|
|
156
|
+
KEY_CODE_MAP[59] = KeyCode.Semicolon;
|
|
157
|
+
KEY_CODE_MAP[107] = KeyCode.Equal;
|
|
158
|
+
KEY_CODE_MAP[109] = KeyCode.Minus;
|
|
159
|
+
if (MonacoPlatform.OS === MonacoPlatform.OperatingSystem.Macintosh) {
|
|
159
160
|
KEY_CODE_MAP[224] = KeyCode.Meta;
|
|
160
161
|
}
|
|
161
162
|
} else if (browser.isWebKit) {
|
|
162
163
|
KEY_CODE_MAP[91] = KeyCode.Meta;
|
|
163
|
-
if (
|
|
164
|
+
if (MonacoPlatform.OS === MonacoPlatform.OperatingSystem.Macintosh) {
|
|
164
165
|
// the two meta keys in the Mac have different key codes (91 and 93)
|
|
165
166
|
KEY_CODE_MAP[93] = KeyCode.Meta;
|
|
166
167
|
} else {
|
|
@@ -24,6 +24,7 @@ import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
|
24
24
|
import { Language, LanguageService } from '@theia/core/lib/browser/language-service';
|
|
25
25
|
import { MonacoDiagnosticCollection } from './monaco-diagnostic-collection';
|
|
26
26
|
import { ProtocolToMonacoConverter } from './protocol-to-monaco-converter';
|
|
27
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
27
28
|
|
|
28
29
|
export interface WorkspaceSymbolProvider {
|
|
29
30
|
provideWorkspaceSymbols(params: WorkspaceSymbolParams, token: CancellationToken): MaybePromise<SymbolInformation[] | undefined>;
|
|
@@ -19,7 +19,7 @@ import { MenuContribution, MenuModelRegistry, MAIN_MENU_BAR, MenuPath } from '@t
|
|
|
19
19
|
import { EditorMainMenu, EDITOR_CONTEXT_MENU } from '@theia/editor/lib/browser';
|
|
20
20
|
import { MonacoCommandRegistry } from './monaco-command-registry';
|
|
21
21
|
import { nls } from '@theia/core/lib/common/nls';
|
|
22
|
-
import MenuRegistry
|
|
22
|
+
import { isIMenuItem, MenuId, MenuRegistry } from '@theia/monaco-editor-core/esm/vs/platform/actions/common/actions';
|
|
23
23
|
|
|
24
24
|
export interface MonacoActionGroup {
|
|
25
25
|
id: string;
|
|
@@ -39,8 +39,8 @@ export class MonacoEditorMenuContribution implements MenuContribution {
|
|
|
39
39
|
) { }
|
|
40
40
|
|
|
41
41
|
registerMenus(registry: MenuModelRegistry): void {
|
|
42
|
-
for (const item of MenuRegistry.getMenuItems(
|
|
43
|
-
if (!
|
|
42
|
+
for (const item of MenuRegistry.getMenuItems(MenuId.EditorContext)) {
|
|
43
|
+
if (!isIMenuItem(item)) {
|
|
44
44
|
continue;
|
|
45
45
|
}
|
|
46
46
|
const commandId = this.commands.validate(item.command.id);
|
|
@@ -53,8 +53,8 @@ export class MonacoEditorMenuContribution implements MenuContribution {
|
|
|
53
53
|
this.registerPeekSubmenu(registry);
|
|
54
54
|
|
|
55
55
|
registry.registerSubmenu(MonacoMenus.SELECTION, nls.localizeByDefault('Selection'));
|
|
56
|
-
for (const item of MenuRegistry.getMenuItems(
|
|
57
|
-
if (!
|
|
56
|
+
for (const item of MenuRegistry.getMenuItems(MenuId.MenubarSelectionMenu)) {
|
|
57
|
+
if (!isIMenuItem(item)) {
|
|
58
58
|
continue;
|
|
59
59
|
}
|
|
60
60
|
const commandId = this.commands.validate(item.command.id);
|
|
@@ -115,8 +115,8 @@ export class MonacoEditorMenuContribution implements MenuContribution {
|
|
|
115
115
|
protected registerPeekSubmenu(registry: MenuModelRegistry): void {
|
|
116
116
|
registry.registerSubmenu(MonacoMenus.PEEK_CONTEXT_SUBMENU, nls.localizeByDefault('Peek'));
|
|
117
117
|
|
|
118
|
-
for (const item of MenuRegistry.getMenuItems(
|
|
119
|
-
if (!
|
|
118
|
+
for (const item of MenuRegistry.getMenuItems(MenuId.EditorContextPeek)) {
|
|
119
|
+
if (!isIMenuItem(item)) {
|
|
120
120
|
continue;
|
|
121
121
|
}
|
|
122
122
|
const commandId = this.commands.validate(item.command.id);
|
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
import debounce = require('@theia/core/shared/lodash.debounce');
|
|
18
18
|
import { injectable } from '@theia/core/shared/inversify';
|
|
19
19
|
import { MimeAssociation, MimeService } from '@theia/core/lib/browser/mime-service';
|
|
20
|
+
import { StandaloneServices } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
|
|
21
|
+
import { ILanguageService } from '@theia/monaco-editor-core/esm/vs/editor/common/languages/language';
|
|
22
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
23
|
+
import { clearConfiguredLanguageAssociations, registerConfiguredLanguageAssociation } from '@theia/monaco-editor-core/esm/vs/editor/common/services/languagesAssociations';
|
|
24
|
+
import { LanguageService } from '@theia/monaco-editor-core/esm/vs/editor/common/services/languageService';
|
|
20
25
|
|
|
21
26
|
@injectable()
|
|
22
27
|
export class MonacoMimeService extends MimeService {
|
|
@@ -26,7 +31,7 @@ export class MonacoMimeService extends MimeService {
|
|
|
26
31
|
|
|
27
32
|
constructor() {
|
|
28
33
|
super();
|
|
29
|
-
|
|
34
|
+
StandaloneServices.get(ILanguageService).onDidChange(() => {
|
|
30
35
|
if (this.updatingAssociations) {
|
|
31
36
|
return;
|
|
32
37
|
}
|
|
@@ -42,14 +47,13 @@ export class MonacoMimeService extends MimeService {
|
|
|
42
47
|
protected updateAssociations = debounce(() => {
|
|
43
48
|
this.updatingAssociations = true;
|
|
44
49
|
try {
|
|
45
|
-
|
|
50
|
+
clearConfiguredLanguageAssociations();
|
|
46
51
|
|
|
47
52
|
for (const association of this.associations) {
|
|
48
53
|
const mimetype = this.getMimeForMode(association.id) || `text/x-${association.id}`;
|
|
49
|
-
|
|
54
|
+
registerConfiguredLanguageAssociation({ id: association.id, mime: mimetype, filepattern: association.filepattern });
|
|
50
55
|
}
|
|
51
|
-
|
|
52
|
-
monaco.services.StaticServices.modeService.get()._onLanguagesMaybeChanged.fire(undefined);
|
|
56
|
+
(StandaloneServices.get(ILanguageService) as LanguageService)['_onDidChange'].fire(undefined);
|
|
53
57
|
} finally {
|
|
54
58
|
this.updatingAssociations = false;
|
|
55
59
|
}
|
|
@@ -15,20 +15,19 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, inject } from '@theia/core/shared/inversify';
|
|
18
|
-
import DocumentSymbol = monaco.languages.DocumentSymbol;
|
|
19
|
-
import SymbolKind = monaco.languages.SymbolKind;
|
|
20
18
|
import { FrontendApplicationContribution, FrontendApplication, TreeNode } from '@theia/core/lib/browser';
|
|
21
19
|
import { Range, EditorManager, EditorOpenerOptions } from '@theia/editor/lib/browser';
|
|
22
|
-
import DocumentSymbolProviderRegistry = monaco.modes.DocumentSymbolProviderRegistry;
|
|
23
|
-
import CancellationTokenSource = monaco.CancellationTokenSource;
|
|
24
|
-
import CancellationToken = monaco.CancellationToken;
|
|
25
20
|
import { DisposableCollection, Disposable } from '@theia/core';
|
|
26
21
|
import { OutlineViewService } from '@theia/outline-view/lib/browser/outline-view-service';
|
|
27
22
|
import { OutlineSymbolInformationNode } from '@theia/outline-view/lib/browser/outline-view-widget';
|
|
28
23
|
import URI from '@theia/core/lib/common/uri';
|
|
29
24
|
import { MonacoEditor } from './monaco-editor';
|
|
30
|
-
|
|
31
25
|
import debounce = require('@theia/core/shared/lodash.debounce');
|
|
26
|
+
import * as monaco from '@theia/monaco-editor-core';
|
|
27
|
+
import { ILanguageFeaturesService } from '@theia/monaco-editor-core/esm/vs/editor/common/services/languageFeatures';
|
|
28
|
+
import { StandaloneServices } from '@theia/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
|
|
29
|
+
import { ITextModel } from '@theia/monaco-editor-core/esm/vs/editor/common/model';
|
|
30
|
+
import { DocumentSymbol } from '@theia/monaco-editor-core/esm/vs/editor/common/languages';
|
|
32
31
|
|
|
33
32
|
@injectable()
|
|
34
33
|
export class MonacoOutlineContribution implements FrontendApplicationContribution {
|
|
@@ -44,7 +43,7 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
44
43
|
|
|
45
44
|
// updateOutline and handleCurrentEditorChanged need to be called even when the outline view widget is closed
|
|
46
45
|
// in order to update breadcrumbs.
|
|
47
|
-
|
|
46
|
+
StandaloneServices.get(ILanguageFeaturesService).documentSymbolProvider.onDidChange(
|
|
48
47
|
debounce(() => this.updateOutline())
|
|
49
48
|
);
|
|
50
49
|
this.editorManager.onCurrentEditorChanged(
|
|
@@ -100,13 +99,13 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
100
99
|
this.updateOutline();
|
|
101
100
|
}
|
|
102
101
|
|
|
103
|
-
protected tokenSource = new CancellationTokenSource();
|
|
102
|
+
protected tokenSource = new monaco.CancellationTokenSource();
|
|
104
103
|
protected async updateOutline(editorSelection?: Range): Promise<void> {
|
|
105
104
|
if (!this.canUpdateOutline) {
|
|
106
105
|
return;
|
|
107
106
|
}
|
|
108
107
|
this.tokenSource.cancel();
|
|
109
|
-
this.tokenSource = new CancellationTokenSource();
|
|
108
|
+
this.tokenSource = new monaco.CancellationTokenSource();
|
|
110
109
|
const token = this.tokenSource.token;
|
|
111
110
|
|
|
112
111
|
const editor = MonacoEditor.get(this.editorManager.currentEditor);
|
|
@@ -118,7 +117,10 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
118
117
|
this.outlineViewService.publish(roots || []);
|
|
119
118
|
}
|
|
120
119
|
|
|
121
|
-
protected async createRoots(
|
|
120
|
+
protected async createRoots(
|
|
121
|
+
model: monaco.editor.ITextModel | ITextModel, token: monaco.CancellationToken, editorSelection?: Range
|
|
122
|
+
): Promise<MonacoOutlineSymbolInformationNode[]> {
|
|
123
|
+
model = model as ITextModel;
|
|
122
124
|
if (this.roots && this.roots.length > 0) {
|
|
123
125
|
// Reset the selection on the tree nodes, so that we can apply the new ones based on the `editorSelection`.
|
|
124
126
|
const resetSelection = (node: MonacoOutlineSymbolInformationNode) => {
|
|
@@ -128,23 +130,22 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
128
130
|
this.roots.forEach(resetSelection);
|
|
129
131
|
} else {
|
|
130
132
|
this.roots = [];
|
|
131
|
-
const providers =
|
|
133
|
+
const providers = StandaloneServices.get(ILanguageFeaturesService).documentSymbolProvider.all(model);
|
|
132
134
|
if (token.isCancellationRequested) {
|
|
133
135
|
return [];
|
|
134
136
|
}
|
|
135
137
|
const uri = new URI(model.uri.toString());
|
|
136
138
|
for (const provider of providers) {
|
|
137
139
|
try {
|
|
138
|
-
const symbols = await provider.provideDocumentSymbols(model, token);
|
|
140
|
+
const symbols = await provider.provideDocumentSymbols(model, token) ?? [];
|
|
139
141
|
if (token.isCancellationRequested) {
|
|
140
142
|
return [];
|
|
141
143
|
}
|
|
144
|
+
const nodes = this.createNodes(uri, symbols);
|
|
142
145
|
if (providers.length > 1 && provider.displayName) {
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
this.roots.push(providerRootNode);
|
|
146
|
+
const providerRoot = this.createProviderRootNode(uri, provider.displayName, nodes);
|
|
147
|
+
this.roots.push(providerRoot);
|
|
146
148
|
} else {
|
|
147
|
-
const nodes = this.createNodes(uri, symbols || []);
|
|
148
149
|
this.roots.push(...nodes);
|
|
149
150
|
}
|
|
150
151
|
} catch {
|
|
@@ -172,7 +173,8 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
172
173
|
return node;
|
|
173
174
|
}
|
|
174
175
|
|
|
175
|
-
protected createNodes(uri: URI, symbols: DocumentSymbol[]): MonacoOutlineSymbolInformationNode[] {
|
|
176
|
+
protected createNodes(uri: URI, symbols: monaco.languages.DocumentSymbol[] | DocumentSymbol[]): MonacoOutlineSymbolInformationNode[] {
|
|
177
|
+
symbols = symbols as monaco.languages.DocumentSymbol[];
|
|
176
178
|
let rangeBased = false;
|
|
177
179
|
const ids = new Map();
|
|
178
180
|
const roots: MonacoOutlineSymbolInformationNode[] = [];
|
|
@@ -237,7 +239,7 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
237
239
|
*
|
|
238
240
|
* If the argument is a `DocumentSymbol`, then `getFullRange` will be used to retrieve the range of the underlying symbol.
|
|
239
241
|
*/
|
|
240
|
-
protected parentContains(candidate: DocumentSymbol | Range, parent: DocumentSymbol | Range, rangeBased: boolean): boolean {
|
|
242
|
+
protected parentContains(candidate: monaco.languages.DocumentSymbol | Range, parent: monaco.languages.DocumentSymbol | Range, rangeBased: boolean): boolean {
|
|
241
243
|
// TODO: move this code to the `monaco-languageclient`: https://github.com/eclipse-theia/theia/pull/2885#discussion_r217800446
|
|
242
244
|
const candidateRange = Range.is(candidate) ? candidate : this.getFullRange(candidate);
|
|
243
245
|
const parentRange = Range.is(parent) ? parent : this.getFullRange(parent);
|
|
@@ -275,7 +277,7 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
275
277
|
*
|
|
276
278
|
* See: [`DocumentSymbol#range`](https://microsoft.github.io/language-server-protocol/specification#textDocument_documentSymbol) for more details.
|
|
277
279
|
*/
|
|
278
|
-
protected getFullRange(documentSymbol: DocumentSymbol): Range {
|
|
280
|
+
protected getFullRange(documentSymbol: monaco.languages.DocumentSymbol): Range {
|
|
279
281
|
return this.asRange(documentSymbol.range);
|
|
280
282
|
}
|
|
281
283
|
|
|
@@ -284,17 +286,19 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
284
286
|
*
|
|
285
287
|
* See: [`DocumentSymbol#selectionRange`](https://microsoft.github.io/language-server-protocol/specification#textDocument_documentSymbol) for more details.
|
|
286
288
|
*/
|
|
287
|
-
protected getNameRange(documentSymbol: DocumentSymbol): Range {
|
|
289
|
+
protected getNameRange(documentSymbol: monaco.languages.DocumentSymbol): Range {
|
|
288
290
|
return this.asRange(documentSymbol.selectionRange);
|
|
289
291
|
}
|
|
290
292
|
|
|
291
|
-
protected createNode(
|
|
293
|
+
protected createNode(
|
|
294
|
+
uri: URI, symbol: monaco.languages.DocumentSymbol, ids: Map<string, number>, parent?: MonacoOutlineSymbolInformationNode
|
|
295
|
+
): MonacoOutlineSymbolInformationNode {
|
|
292
296
|
const id = this.createId(symbol.name, ids);
|
|
293
297
|
const children: MonacoOutlineSymbolInformationNode[] = [];
|
|
294
298
|
const node: MonacoOutlineSymbolInformationNode = {
|
|
295
299
|
children,
|
|
296
300
|
id,
|
|
297
|
-
iconClass: SymbolKind[symbol.kind].toString().toLowerCase(),
|
|
301
|
+
iconClass: monaco.languages.SymbolKind[symbol.kind].toString().toLowerCase(),
|
|
298
302
|
name: this.getName(symbol),
|
|
299
303
|
detail: this.getDetail(symbol),
|
|
300
304
|
parent,
|
|
@@ -312,11 +316,11 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
312
316
|
return node;
|
|
313
317
|
}
|
|
314
318
|
|
|
315
|
-
protected getName(symbol: DocumentSymbol): string {
|
|
319
|
+
protected getName(symbol: monaco.languages.DocumentSymbol): string {
|
|
316
320
|
return symbol.name;
|
|
317
321
|
}
|
|
318
322
|
|
|
319
|
-
protected getDetail(symbol: DocumentSymbol): string {
|
|
323
|
+
protected getDetail(symbol: monaco.languages.DocumentSymbol): string {
|
|
320
324
|
return symbol.detail;
|
|
321
325
|
}
|
|
322
326
|
|
|
@@ -327,17 +331,17 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
327
331
|
return name + '_' + index;
|
|
328
332
|
}
|
|
329
333
|
|
|
330
|
-
protected shouldExpand(symbol: DocumentSymbol): boolean {
|
|
334
|
+
protected shouldExpand(symbol: monaco.languages.DocumentSymbol): boolean {
|
|
331
335
|
return [
|
|
332
|
-
SymbolKind.Class,
|
|
333
|
-
SymbolKind.Enum, SymbolKind.File,
|
|
334
|
-
SymbolKind.Interface, SymbolKind.Module,
|
|
335
|
-
SymbolKind.Namespace, SymbolKind.Object,
|
|
336
|
-
SymbolKind.Package, SymbolKind.Struct
|
|
336
|
+
monaco.languages.SymbolKind.Class,
|
|
337
|
+
monaco.languages.SymbolKind.Enum, monaco.languages.SymbolKind.File,
|
|
338
|
+
monaco.languages.SymbolKind.Interface, monaco.languages.SymbolKind.Module,
|
|
339
|
+
monaco.languages.SymbolKind.Namespace, monaco.languages.SymbolKind.Object,
|
|
340
|
+
monaco.languages.SymbolKind.Package, monaco.languages.SymbolKind.Struct
|
|
337
341
|
].indexOf(symbol.kind) !== -1;
|
|
338
342
|
}
|
|
339
343
|
|
|
340
|
-
protected orderByPosition(symbol: DocumentSymbol, symbol2: DocumentSymbol): number {
|
|
344
|
+
protected orderByPosition(symbol: monaco.languages.DocumentSymbol, symbol2: monaco.languages.DocumentSymbol): number {
|
|
341
345
|
const startLineComparison = symbol.range.startLineNumber - symbol2.range.startLineNumber;
|
|
342
346
|
if (startLineComparison !== 0) {
|
|
343
347
|
return startLineComparison;
|
|
@@ -357,7 +361,7 @@ export class MonacoOutlineContribution implements FrontendApplicationContributio
|
|
|
357
361
|
export namespace MonacoOutlineContribution {
|
|
358
362
|
export interface NodeAndSymbol {
|
|
359
363
|
node: MonacoOutlineSymbolInformationNode;
|
|
360
|
-
symbol: DocumentSymbol
|
|
364
|
+
symbol: monaco.languages.DocumentSymbol
|
|
361
365
|
}
|
|
362
366
|
}
|
|
363
367
|
|
|
@@ -19,22 +19,37 @@ import { QuickAccessProviderDescriptor, QuickAccessRegistry } from '@theia/core/
|
|
|
19
19
|
import { CancellationToken, Disposable } from '@theia/core/lib/common';
|
|
20
20
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
21
21
|
import { MonacoQuickPickItem } from './monaco-quick-input-service';
|
|
22
|
+
import {
|
|
23
|
+
IPickerQuickAccessProviderOptions, PickerQuickAccessProvider, Picks, Pick, IPickerQuickAccessItem
|
|
24
|
+
} from '@theia/monaco-editor-core/esm/vs/platform/quickinput/browser/pickerQuickAccess';
|
|
25
|
+
import {
|
|
26
|
+
Extensions,
|
|
27
|
+
IQuickAccessProvider,
|
|
28
|
+
IQuickAccessProviderDescriptor,
|
|
29
|
+
IQuickAccessProviderHelp,
|
|
30
|
+
IQuickAccessRegistry,
|
|
31
|
+
QuickAccessRegistry as VSCodeQuickAccessRegistry,
|
|
32
|
+
} from '@theia/monaco-editor-core/esm/vs/platform/quickinput/common/quickAccess';
|
|
33
|
+
import { IQuickPickItem, IQuickPickItemWithResource } from '@theia/monaco-editor-core/esm/vs/platform/quickinput/common/quickInput';
|
|
34
|
+
import { Registry } from '@theia/monaco-editor-core/esm/vs/platform/registry/common/platform';
|
|
22
35
|
|
|
23
|
-
|
|
24
|
-
|
|
36
|
+
interface IAnythingQuickPickItem extends IPickerQuickAccessItem, IQuickPickItemWithResource { }
|
|
37
|
+
|
|
38
|
+
abstract class MonacoPickerAccessProvider extends PickerQuickAccessProvider<IQuickPickItem> {
|
|
39
|
+
constructor(prefix: string, options?: IPickerQuickAccessProviderOptions<IQuickPickItem>) {
|
|
25
40
|
super(prefix, options);
|
|
26
41
|
}
|
|
27
42
|
|
|
28
43
|
abstract getDescriptor(): QuickAccessProviderDescriptor;
|
|
29
44
|
}
|
|
30
45
|
|
|
31
|
-
class TheiaQuickAccessDescriptor implements
|
|
46
|
+
class TheiaQuickAccessDescriptor implements IQuickAccessProviderDescriptor {
|
|
32
47
|
constructor(
|
|
33
48
|
public readonly theiaDescriptor: QuickAccessProviderDescriptor,
|
|
34
49
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
|
-
readonly ctor: { new(...services: any /* TS BrandedService but no clue how to type this properly */[]):
|
|
50
|
+
readonly ctor: { new(...services: any /* TS BrandedService but no clue how to type this properly */[]): IQuickAccessProvider },
|
|
36
51
|
readonly prefix: string,
|
|
37
|
-
readonly helpEntries:
|
|
52
|
+
readonly helpEntries: IQuickAccessProviderHelp[],
|
|
38
53
|
readonly placeholder?: string) { }
|
|
39
54
|
}
|
|
40
55
|
|
|
@@ -43,12 +58,12 @@ export class MonacoQuickAccessRegistry implements QuickAccessRegistry {
|
|
|
43
58
|
@inject(KeybindingRegistry)
|
|
44
59
|
protected readonly keybindingRegistry: KeybindingRegistry;
|
|
45
60
|
|
|
46
|
-
private get monacoRegistry():
|
|
47
|
-
return
|
|
61
|
+
private get monacoRegistry(): IQuickAccessRegistry {
|
|
62
|
+
return Registry.as<IQuickAccessRegistry>(Extensions.Quickaccess);
|
|
48
63
|
}
|
|
49
64
|
|
|
50
65
|
registerQuickAccessProvider(descriptor: QuickAccessProviderDescriptor): Disposable {
|
|
51
|
-
const toMonacoPick = (item: QuickPickItem):
|
|
66
|
+
const toMonacoPick = (item: QuickPickItem): Pick<IAnythingQuickPickItem> => {
|
|
52
67
|
if (QuickPickSeparator.is(item)) {
|
|
53
68
|
return item;
|
|
54
69
|
} else {
|
|
@@ -65,16 +80,9 @@ export class MonacoQuickAccessRegistry implements QuickAccessRegistry {
|
|
|
65
80
|
super(descriptor.prefix);
|
|
66
81
|
}
|
|
67
82
|
|
|
68
|
-
override
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
): monaco.quickInput.Picks<QuickPickItem> | Promise<monaco.quickInput.Picks<QuickPickItem>> {
|
|
72
|
-
const result = descriptor.getInstance().getPicks(filter, token);
|
|
73
|
-
if (result instanceof Promise) {
|
|
74
|
-
return result.then(picks => picks.map(toMonacoPick));
|
|
75
|
-
} else {
|
|
76
|
-
return result.map(toMonacoPick);
|
|
77
|
-
}
|
|
83
|
+
protected override async _getPicks(filter: string, disposables: unknown, token: CancellationToken): Promise<Picks<IQuickPickItem>> {
|
|
84
|
+
const result = await Promise.resolve(descriptor.getInstance().getPicks(filter, token));
|
|
85
|
+
return result.map(toMonacoPick);
|
|
78
86
|
}
|
|
79
87
|
};
|
|
80
88
|
|
|
@@ -97,6 +105,8 @@ export class MonacoQuickAccessRegistry implements QuickAccessRegistry {
|
|
|
97
105
|
return monacoDescriptor ? (monacoDescriptor as TheiaQuickAccessDescriptor).theiaDescriptor : undefined;
|
|
98
106
|
}
|
|
99
107
|
clear(): void {
|
|
100
|
-
this.monacoRegistry
|
|
108
|
+
if (this.monacoRegistry instanceof VSCodeQuickAccessRegistry) {
|
|
109
|
+
this.monacoRegistry.clear();
|
|
110
|
+
}
|
|
101
111
|
}
|
|
102
112
|
}
|