@theia/keymaps 1.23.0 → 1.24.0-next.10
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.
|
@@ -13,12 +13,22 @@ export interface KeybindingItem {
|
|
|
13
13
|
keybinding?: ScopedKeybinding;
|
|
14
14
|
/** human-readable labels can contain highlighting */
|
|
15
15
|
labels: {
|
|
16
|
-
id:
|
|
17
|
-
command:
|
|
18
|
-
keybinding:
|
|
19
|
-
context:
|
|
20
|
-
source:
|
|
16
|
+
id: RenderableLabel;
|
|
17
|
+
command: RenderableLabel;
|
|
18
|
+
keybinding: RenderableLabel;
|
|
19
|
+
context: RenderableLabel;
|
|
20
|
+
source: RenderableLabel;
|
|
21
21
|
};
|
|
22
|
+
visible?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface RenderableLabel {
|
|
25
|
+
readonly value: string;
|
|
26
|
+
segments?: RenderableStringSegment[];
|
|
27
|
+
}
|
|
28
|
+
export interface RenderableStringSegment {
|
|
29
|
+
value: string;
|
|
30
|
+
match: boolean;
|
|
31
|
+
key?: boolean;
|
|
22
32
|
}
|
|
23
33
|
/**
|
|
24
34
|
* Representation of an individual table cell.
|
|
@@ -87,6 +97,11 @@ export declare class KeybindingWidget extends ReactWidget {
|
|
|
87
97
|
* Perform a search based on the user's search query.
|
|
88
98
|
*/
|
|
89
99
|
protected doSearchKeybindings(): void;
|
|
100
|
+
protected formatAndMatchCommand(item: KeybindingItem): boolean;
|
|
101
|
+
protected formatAndMatchKeybinding(item: KeybindingItem, queryItems: string[]): boolean;
|
|
102
|
+
protected formatAndMatchContext(item: KeybindingItem): boolean;
|
|
103
|
+
protected formatAndMatchSource(item: KeybindingItem): boolean;
|
|
104
|
+
protected toRenderableLabel(label: string, query?: string): RenderableLabel;
|
|
90
105
|
/**
|
|
91
106
|
* Get the search input if available.
|
|
92
107
|
* @returns the search input if available.
|
|
@@ -137,13 +152,18 @@ export declare class KeybindingWidget extends ReactWidget {
|
|
|
137
152
|
* Render the keybinding.
|
|
138
153
|
* @param keybinding the keybinding value.
|
|
139
154
|
*/
|
|
140
|
-
protected renderKeybinding(keybinding:
|
|
155
|
+
protected renderKeybinding(keybinding: KeybindingItem): React.ReactNode;
|
|
141
156
|
/**
|
|
142
157
|
* Get the list of keybinding items.
|
|
143
158
|
*
|
|
144
159
|
* @returns the list of keybinding items.
|
|
145
160
|
*/
|
|
146
161
|
protected getItems(): KeybindingItem[];
|
|
162
|
+
/**
|
|
163
|
+
* @returns the input array, sorted.
|
|
164
|
+
* The sort priority is as follows: items with keybindings before those without, then alphabetical by command.
|
|
165
|
+
*/
|
|
166
|
+
protected sortKeybindings(bindings: KeybindingItem[]): KeybindingItem[];
|
|
147
167
|
/**
|
|
148
168
|
* Get the human-readable label for a given command.
|
|
149
169
|
* @param command the command.
|
|
@@ -204,6 +224,6 @@ export declare class KeybindingWidget extends ReactWidget {
|
|
|
204
224
|
* Render the fuzzy representation of a matched result.
|
|
205
225
|
* @param property one of the `KeybindingItem` properties.
|
|
206
226
|
*/
|
|
207
|
-
protected renderMatchedData(property:
|
|
227
|
+
protected renderMatchedData(property: RenderableLabel): React.ReactNode;
|
|
208
228
|
}
|
|
209
229
|
//# sourceMappingURL=keybindings-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keybindings-widget.d.ts","sourceRoot":"","sources":["../../src/browser/keybindings-widget.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,GAAG,QAAQ,0BAA0B,CAAC,CAAC;AAInD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EACH,kBAAkB,EAAqD,OAAO,EAAoD,gBAAgB,EACrJ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"keybindings-widget.d.ts","sourceRoot":"","sources":["../../src/browser/keybindings-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ const react_widget_1 = require("@theia/core/lib/browser/widgets/react-widget");
|
|
|
39
39
|
const browser_1 = require("@theia/core/lib/browser");
|
|
40
40
|
const keymaps_service_1 = require("./keymaps-service");
|
|
41
41
|
const alert_message_1 = require("@theia/core/lib/browser/widgets/alert-message");
|
|
42
|
+
const core_1 = require("@theia/core");
|
|
42
43
|
let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react_widget_1.ReactWidget {
|
|
43
44
|
constructor() {
|
|
44
45
|
super(...arguments);
|
|
@@ -88,8 +89,8 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
88
89
|
// Listen to changes made in the `keymaps.json` and update the view accordingly.
|
|
89
90
|
if (this.keymapsService.onDidChangeKeymaps) {
|
|
90
91
|
this.toDispose.push(this.keymapsService.onDidChangeKeymaps(() => {
|
|
92
|
+
this.items = this.getItems();
|
|
91
93
|
this.doSearchKeybindings();
|
|
92
|
-
this.update();
|
|
93
94
|
}));
|
|
94
95
|
}
|
|
95
96
|
}
|
|
@@ -120,97 +121,77 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
120
121
|
*/
|
|
121
122
|
doSearchKeybindings() {
|
|
122
123
|
this.onDidUpdateEmitter.fire(undefined);
|
|
123
|
-
this.items = [];
|
|
124
124
|
const searchField = this.findSearchField();
|
|
125
125
|
this.query = searchField ? searchField.value.trim().toLocaleLowerCase() : '';
|
|
126
|
-
const
|
|
127
|
-
items.forEach(item => {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
126
|
+
const queryItems = this.query.split(/[+\s]/);
|
|
127
|
+
this.items.forEach(item => {
|
|
128
|
+
let matched = !this.query;
|
|
129
|
+
matched = this.formatAndMatchCommand(item) || matched;
|
|
130
|
+
matched = this.formatAndMatchKeybinding(item, queryItems) || matched;
|
|
131
|
+
matched = this.formatAndMatchContext(item) || matched;
|
|
132
|
+
matched = this.formatAndMatchSource(item) || matched;
|
|
133
|
+
item.visible = matched;
|
|
134
|
+
});
|
|
135
|
+
this.update();
|
|
136
|
+
}
|
|
137
|
+
formatAndMatchCommand(item) {
|
|
138
|
+
item.labels.command = this.toRenderableLabel(item.labels.command.value);
|
|
139
|
+
return Boolean(item.labels.command.segments);
|
|
140
|
+
}
|
|
141
|
+
formatAndMatchKeybinding(item, queryItems) {
|
|
142
|
+
if (item.keybinding) {
|
|
143
|
+
let match = false;
|
|
144
|
+
const segments = this.keybindingRegistry.resolveKeybinding(item.keybinding).reduce((collection, code, codeIndex) => {
|
|
145
|
+
if (codeIndex !== 0) {
|
|
146
|
+
// Two non-breaking spaces.
|
|
147
|
+
collection.push({ value: '\u00a0\u00a0', match: false, key: false });
|
|
148
|
+
}
|
|
149
|
+
const displayChunks = this.keybindingRegistry.componentsForKeyCode(code);
|
|
150
|
+
const matchChunks = core_1.isOSX ? this.keybindingRegistry.componentsForKeyCode(code, true) : displayChunks;
|
|
151
|
+
displayChunks.forEach((chunk, chunkIndex) => {
|
|
152
|
+
if (chunkIndex !== 0) {
|
|
153
|
+
collection.push({ value: '+', match: false, key: false });
|
|
137
154
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
if (tempFuzzyMatch && tempFuzzyMatch.score > keyFuzzyMatch.score) {
|
|
169
|
-
keyFuzzyMatch = tempFuzzyMatch;
|
|
170
|
-
// Get index in the keybinding array.
|
|
171
|
-
keyIndex = renderedResult.indexOf(bindingItem);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
const keyRendered = keyFuzzyMatch.rendered;
|
|
175
|
-
if (keyRendered) {
|
|
176
|
-
if (keyIndex > -1) {
|
|
177
|
-
renderedResult[keyIndex] = keyRendered;
|
|
178
|
-
}
|
|
179
|
-
// Remove key from keybinding items if it is matched.
|
|
180
|
-
bindingItems.splice(keyIndex, 1, '');
|
|
181
|
-
matchCounter += 1;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
if (matchCounter === queryItems.length) {
|
|
186
|
-
// Handle rendering of key chords.
|
|
187
|
-
if (spaceIndexArr.length > 0) {
|
|
188
|
-
const chordRenderedResult = '';
|
|
189
|
-
renderedResult.forEach((resultKey, index) => {
|
|
190
|
-
if (index === 0) {
|
|
191
|
-
chordRenderedResult.concat(resultKey);
|
|
192
|
-
}
|
|
193
|
-
else if (spaceIndexArr.indexOf(index) !== -1) {
|
|
194
|
-
chordRenderedResult.concat(' ' + resultKey);
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
chordRenderedResult.concat('+' + resultKey);
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
item.labels[key] = chordRenderedResult;
|
|
201
|
-
}
|
|
202
|
-
item.labels[key] = renderedResult.join('+');
|
|
203
|
-
matched = true;
|
|
204
|
-
}
|
|
155
|
+
const chunkMatches = queryItems.includes(matchChunks[chunkIndex].toLocaleLowerCase());
|
|
156
|
+
match || (match = chunkMatches);
|
|
157
|
+
collection.push({ value: chunk, match: chunkMatches, key: true });
|
|
158
|
+
});
|
|
159
|
+
return collection;
|
|
160
|
+
}, []);
|
|
161
|
+
item.labels.keybinding = { value: item.labels.keybinding.value, segments };
|
|
162
|
+
return match;
|
|
163
|
+
}
|
|
164
|
+
item.labels.keybinding = { value: '' };
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
formatAndMatchContext(item) {
|
|
168
|
+
item.labels.context = this.toRenderableLabel(item.labels.context.value);
|
|
169
|
+
return Boolean(item.labels.context.segments);
|
|
170
|
+
}
|
|
171
|
+
formatAndMatchSource(item) {
|
|
172
|
+
item.labels.source = this.toRenderableLabel(item.labels.source.value);
|
|
173
|
+
return Boolean(item.labels.source.segments);
|
|
174
|
+
}
|
|
175
|
+
toRenderableLabel(label, query = this.query) {
|
|
176
|
+
if (label && query) {
|
|
177
|
+
const fuzzyMatch = fuzzy.match(query, label, this.fuzzyOptions);
|
|
178
|
+
if (fuzzyMatch) {
|
|
179
|
+
return {
|
|
180
|
+
value: label,
|
|
181
|
+
segments: fuzzyMatch.rendered.split(this.fuzzyOptions.pre).reduce((collection, segment) => {
|
|
182
|
+
const [maybeMatch, notMatch] = segment.split(this.fuzzyOptions.post);
|
|
183
|
+
if (notMatch === undefined) {
|
|
184
|
+
collection.push({ value: maybeMatch, match: false });
|
|
205
185
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
186
|
+
else {
|
|
187
|
+
collection.push({ value: maybeMatch, match: true }, { value: notMatch, match: false });
|
|
188
|
+
}
|
|
189
|
+
return collection;
|
|
190
|
+
}, [])
|
|
191
|
+
};
|
|
211
192
|
}
|
|
212
|
-
}
|
|
213
|
-
|
|
193
|
+
}
|
|
194
|
+
return { value: label };
|
|
214
195
|
}
|
|
215
196
|
/**
|
|
216
197
|
* Get the search input if available.
|
|
@@ -271,7 +252,7 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
271
252
|
* Render the table rows.
|
|
272
253
|
*/
|
|
273
254
|
renderRows() {
|
|
274
|
-
return React.createElement(React.Fragment, null, this.items.map((item, index) => this.renderRow(item, index)));
|
|
255
|
+
return React.createElement(React.Fragment, null, this.items.map((item, index) => item.visible !== false && this.renderRow(item, index)));
|
|
275
256
|
}
|
|
276
257
|
renderRow(item, index) {
|
|
277
258
|
const { command, keybinding } = item;
|
|
@@ -279,7 +260,7 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
279
260
|
return React.createElement("tr", { className: 'kb-item-row', key: index, onDoubleClick: () => this.editKeybinding(item) },
|
|
280
261
|
React.createElement("td", { className: 'kb-actions' }, this.renderActions(item)),
|
|
281
262
|
React.createElement("td", { className: 'kb-label', title: this.getCommandLabel(command) }, this.renderMatchedData(item.labels.command)),
|
|
282
|
-
React.createElement("td", { title: this.getKeybindingLabel(keybinding), className: 'kb-keybinding monaco-keybinding' }, this.renderKeybinding(item
|
|
263
|
+
React.createElement("td", { title: this.getKeybindingLabel(keybinding), className: 'kb-keybinding monaco-keybinding' }, this.renderKeybinding(item)),
|
|
283
264
|
React.createElement("td", { className: 'kb-context', title: this.getContextLabel(keybinding) },
|
|
284
265
|
React.createElement("code", null, this.renderMatchedData(item.labels.context))),
|
|
285
266
|
React.createElement("td", { className: 'kb-source', title: this.getScopeLabel(keybinding) },
|
|
@@ -323,35 +304,22 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
323
304
|
* @param keybinding the keybinding value.
|
|
324
305
|
*/
|
|
325
306
|
renderKeybinding(keybinding) {
|
|
326
|
-
if (!keybinding.
|
|
307
|
+
if (!keybinding.keybinding) {
|
|
327
308
|
return undefined;
|
|
328
309
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
return React.createElement("span", { key: index, className: 'monaco-keybinding-key' }, this.renderMatchedData(key));
|
|
335
|
-
}
|
|
336
|
-
else if (key.includes(' ')) {
|
|
337
|
-
// Handle key chords, which have space as the separator
|
|
338
|
-
// Example: `k Ctrl` in key chords `Ctrl+k Ctrl+p`
|
|
339
|
-
let chordKeys = key.split('<match> </match>');
|
|
340
|
-
if (chordKeys.length === 1) {
|
|
341
|
-
chordKeys = key.split(' ');
|
|
310
|
+
if (keybinding.labels.keybinding.segments) {
|
|
311
|
+
return keybinding.labels.keybinding.segments.map((segment, index) => {
|
|
312
|
+
if (segment.key) {
|
|
313
|
+
return React.createElement("span", { key: index, className: 'monaco-keybinding-key' },
|
|
314
|
+
React.createElement("span", { className: `${segment.match ? 'fuzzy-match' : ''}` }, segment.value));
|
|
342
315
|
}
|
|
343
|
-
|
|
344
|
-
React.createElement("span", { className: 'monaco-keybinding-separator' },
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
return React.createElement(React.Fragment, { key: index },
|
|
351
|
-
React.createElement("span", { className: 'monaco-keybinding-separator' }, "+"),
|
|
352
|
-
React.createElement("span", { className: 'monaco-keybinding-key' }, this.renderKeybinding(key)));
|
|
353
|
-
}
|
|
354
|
-
}));
|
|
316
|
+
else {
|
|
317
|
+
return React.createElement("span", { key: index, className: 'monaco-keybinding-separator' }, segment.value);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
console.warn('Unexpectedly encountered a keybinding without segment divisions');
|
|
322
|
+
return keybinding.labels.keybinding.value;
|
|
355
323
|
}
|
|
356
324
|
/**
|
|
357
325
|
* Get the list of keybinding items.
|
|
@@ -370,26 +338,39 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
370
338
|
continue;
|
|
371
339
|
}
|
|
372
340
|
const keybinding = this.keybindingRegistry.getKeybindingsForCommand(command.id)[0];
|
|
373
|
-
|
|
341
|
+
const item = {
|
|
374
342
|
command,
|
|
375
343
|
keybinding,
|
|
376
344
|
labels: {
|
|
377
|
-
id: command.id,
|
|
378
|
-
command: this.getCommandLabel(command),
|
|
379
|
-
keybinding: this.getKeybindingLabel(keybinding) || '',
|
|
380
|
-
context: this.getContextLabel(keybinding) || '',
|
|
381
|
-
source: this.getScopeLabel(keybinding) || ''
|
|
345
|
+
id: { value: command.id },
|
|
346
|
+
command: { value: this.getCommandLabel(command) },
|
|
347
|
+
keybinding: { value: this.getKeybindingLabel(keybinding) || '' },
|
|
348
|
+
context: { value: this.getContextLabel(keybinding) || '' },
|
|
349
|
+
source: { value: this.getScopeLabel(keybinding) || '' }
|
|
382
350
|
}
|
|
383
|
-
}
|
|
351
|
+
};
|
|
352
|
+
this.formatAndMatchCommand(item);
|
|
353
|
+
this.formatAndMatchKeybinding(item, []);
|
|
354
|
+
this.formatAndMatchContext(item);
|
|
355
|
+
this.formatAndMatchSource(item);
|
|
356
|
+
items.push(item);
|
|
384
357
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
return
|
|
358
|
+
return this.sortKeybindings(items);
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* @returns the input array, sorted.
|
|
362
|
+
* The sort priority is as follows: items with keybindings before those without, then alphabetical by command.
|
|
363
|
+
*/
|
|
364
|
+
sortKeybindings(bindings) {
|
|
365
|
+
return bindings.sort((a, b) => {
|
|
366
|
+
if (a.keybinding && !b.keybinding) {
|
|
367
|
+
return -1;
|
|
368
|
+
}
|
|
369
|
+
if (b.keybinding && !a.keybinding) {
|
|
370
|
+
return 1;
|
|
371
|
+
}
|
|
372
|
+
return this.compareItem(a.command, b.command);
|
|
373
|
+
});
|
|
393
374
|
}
|
|
394
375
|
/**
|
|
395
376
|
* Get the human-readable label for a given command.
|
|
@@ -550,13 +531,12 @@ let KeybindingWidget = KeybindingWidget_1 = class KeybindingWidget extends react
|
|
|
550
531
|
* @param property one of the `KeybindingItem` properties.
|
|
551
532
|
*/
|
|
552
533
|
renderMatchedData(property) {
|
|
553
|
-
if (
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
else {
|
|
558
|
-
return property;
|
|
534
|
+
if (property.segments) {
|
|
535
|
+
return React.createElement(React.Fragment, null, property.segments.map((segment, index) => segment.match
|
|
536
|
+
? React.createElement("span", { key: index, className: 'fuzzy-match' }, segment.value)
|
|
537
|
+
: React.createElement("span", { key: index }, segment.value)));
|
|
559
538
|
}
|
|
539
|
+
return property.value;
|
|
560
540
|
}
|
|
561
541
|
};
|
|
562
542
|
KeybindingWidget.ID = 'keybindings.view.widget';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keybindings-widget.js","sourceRoot":"","sources":["../../src/browser/keybindings-widget.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keybindings-widget.js","sourceRoot":"","sources":["../../src/browser/keybindings-widget.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/keymaps",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.24.0-next.10+41a2f5b8d33",
|
|
4
4
|
"description": "Theia - Custom Keymaps Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.
|
|
7
|
-
"@theia/monaco": "1.
|
|
8
|
-
"@theia/userstorage": "1.
|
|
6
|
+
"@theia/core": "1.24.0-next.10+41a2f5b8d33",
|
|
7
|
+
"@theia/monaco": "1.24.0-next.10+41a2f5b8d33",
|
|
8
|
+
"@theia/userstorage": "1.24.0-next.10+41a2f5b8d33",
|
|
9
9
|
"jsonc-parser": "^2.2.0"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"nyc": {
|
|
47
47
|
"extends": "../../configs/nyc.json"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "41a2f5b8d330944498a8e7715d8a30921a73f5d6"
|
|
50
50
|
}
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
} from '@theia/core/lib/browser';
|
|
27
27
|
import { KeymapsService } from './keymaps-service';
|
|
28
28
|
import { AlertMessage } from '@theia/core/lib/browser/widgets/alert-message';
|
|
29
|
+
import { isOSX } from '@theia/core';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Representation of a keybinding item for the view.
|
|
@@ -35,12 +36,24 @@ export interface KeybindingItem {
|
|
|
35
36
|
keybinding?: ScopedKeybinding
|
|
36
37
|
/** human-readable labels can contain highlighting */
|
|
37
38
|
labels: {
|
|
38
|
-
id:
|
|
39
|
-
command:
|
|
40
|
-
keybinding:
|
|
41
|
-
context:
|
|
42
|
-
source:
|
|
39
|
+
id: RenderableLabel;
|
|
40
|
+
command: RenderableLabel;
|
|
41
|
+
keybinding: RenderableLabel;
|
|
42
|
+
context: RenderableLabel;
|
|
43
|
+
source: RenderableLabel;
|
|
43
44
|
}
|
|
45
|
+
visible?: boolean;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface RenderableLabel {
|
|
49
|
+
readonly value: string;
|
|
50
|
+
segments?: RenderableStringSegment[];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface RenderableStringSegment {
|
|
54
|
+
value: string;
|
|
55
|
+
match: boolean;
|
|
56
|
+
key?: boolean;
|
|
44
57
|
}
|
|
45
58
|
|
|
46
59
|
/**
|
|
@@ -126,8 +139,8 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
126
139
|
// Listen to changes made in the `keymaps.json` and update the view accordingly.
|
|
127
140
|
if (this.keymapsService.onDidChangeKeymaps) {
|
|
128
141
|
this.toDispose.push(this.keymapsService.onDidChangeKeymaps(() => {
|
|
142
|
+
this.items = this.getItems();
|
|
129
143
|
this.doSearchKeybindings();
|
|
130
|
-
this.update();
|
|
131
144
|
}));
|
|
132
145
|
}
|
|
133
146
|
}
|
|
@@ -162,99 +175,82 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
162
175
|
*/
|
|
163
176
|
protected doSearchKeybindings(): void {
|
|
164
177
|
this.onDidUpdateEmitter.fire(undefined);
|
|
165
|
-
this.items = [];
|
|
166
178
|
const searchField = this.findSearchField();
|
|
167
179
|
this.query = searchField ? searchField.value.trim().toLocaleLowerCase() : '';
|
|
168
|
-
const
|
|
169
|
-
items.forEach(item => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
spaceIndexArr.push(tKeys.length + spaceIndexArr[-1]);
|
|
193
|
-
bindingItems.push(...tKeys);
|
|
194
|
-
});
|
|
195
|
-
} else {
|
|
196
|
-
bindingItems = string.split('+');
|
|
197
|
-
}
|
|
198
|
-
spaceIndexArr.shift();
|
|
199
|
-
|
|
200
|
-
const renderedResult = [...bindingItems];
|
|
201
|
-
let matchCounter = 0;
|
|
202
|
-
|
|
203
|
-
queryItems.forEach(queryItem => {
|
|
204
|
-
let keyFuzzyMatch: fuzzy.MatchResult = { rendered: '', score: 0 };
|
|
205
|
-
let keyIndex = -1;
|
|
206
|
-
if (string) {
|
|
207
|
-
bindingItems.forEach((bindingItem: string) => {
|
|
208
|
-
// Match every key in user query with every key in keybinding string.
|
|
209
|
-
const tempFuzzyMatch = fuzzy.match(queryItem, bindingItem, this.fuzzyOptions);
|
|
210
|
-
// Select the match with the highest matching score.
|
|
211
|
-
if (tempFuzzyMatch && tempFuzzyMatch.score > keyFuzzyMatch.score) {
|
|
212
|
-
keyFuzzyMatch = tempFuzzyMatch;
|
|
213
|
-
// Get index in the keybinding array.
|
|
214
|
-
keyIndex = renderedResult.indexOf(bindingItem);
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
const keyRendered = keyFuzzyMatch.rendered;
|
|
219
|
-
if (keyRendered) {
|
|
220
|
-
if (keyIndex > -1) {
|
|
221
|
-
renderedResult[keyIndex] = keyRendered;
|
|
222
|
-
}
|
|
223
|
-
// Remove key from keybinding items if it is matched.
|
|
224
|
-
bindingItems.splice(keyIndex, 1, '');
|
|
225
|
-
matchCounter += 1;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
if (matchCounter === queryItems.length) {
|
|
230
|
-
// Handle rendering of key chords.
|
|
231
|
-
if (spaceIndexArr.length > 0) {
|
|
232
|
-
const chordRenderedResult = '';
|
|
233
|
-
renderedResult.forEach((resultKey, index) => {
|
|
234
|
-
if (index === 0) {
|
|
235
|
-
chordRenderedResult.concat(resultKey);
|
|
236
|
-
} else if (spaceIndexArr.indexOf(index) !== -1) {
|
|
237
|
-
chordRenderedResult.concat(' ' + resultKey);
|
|
238
|
-
} else {
|
|
239
|
-
chordRenderedResult.concat('+' + resultKey);
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
item.labels[key] = chordRenderedResult;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
item.labels[key] = renderedResult.join('+');
|
|
246
|
-
matched = true;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
180
|
+
const queryItems = this.query.split(/[+\s]/);
|
|
181
|
+
this.items.forEach(item => {
|
|
182
|
+
let matched = !this.query;
|
|
183
|
+
matched = this.formatAndMatchCommand(item) || matched;
|
|
184
|
+
matched = this.formatAndMatchKeybinding(item, queryItems) || matched;
|
|
185
|
+
matched = this.formatAndMatchContext(item) || matched;
|
|
186
|
+
matched = this.formatAndMatchSource(item) || matched;
|
|
187
|
+
item.visible = matched;
|
|
188
|
+
});
|
|
189
|
+
this.update();
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
protected formatAndMatchCommand(item: KeybindingItem): boolean {
|
|
193
|
+
item.labels.command = this.toRenderableLabel(item.labels.command.value);
|
|
194
|
+
return Boolean(item.labels.command.segments);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
protected formatAndMatchKeybinding(item: KeybindingItem, queryItems: string[]): boolean {
|
|
198
|
+
if (item.keybinding) {
|
|
199
|
+
let match = false;
|
|
200
|
+
const segments = this.keybindingRegistry.resolveKeybinding(item.keybinding).reduce<RenderableStringSegment[]>((collection, code, codeIndex) => {
|
|
201
|
+
if (codeIndex !== 0) {
|
|
202
|
+
// Two non-breaking spaces.
|
|
203
|
+
collection.push({ value: '\u00a0\u00a0', match: false, key: false });
|
|
250
204
|
}
|
|
251
|
-
|
|
205
|
+
const displayChunks = this.keybindingRegistry.componentsForKeyCode(code);
|
|
206
|
+
const matchChunks = isOSX ? this.keybindingRegistry.componentsForKeyCode(code, true) : displayChunks;
|
|
207
|
+
|
|
208
|
+
displayChunks.forEach((chunk, chunkIndex) => {
|
|
209
|
+
if (chunkIndex !== 0) {
|
|
210
|
+
collection.push({ value: '+', match: false, key: false });
|
|
211
|
+
}
|
|
212
|
+
const chunkMatches = queryItems.includes(matchChunks[chunkIndex].toLocaleLowerCase());
|
|
213
|
+
match ||= chunkMatches;
|
|
214
|
+
collection.push({ value: chunk, match: chunkMatches, key: true });
|
|
215
|
+
});
|
|
216
|
+
return collection;
|
|
217
|
+
}, []);
|
|
218
|
+
item.labels.keybinding = { value: item.labels.keybinding.value, segments };
|
|
219
|
+
return match;
|
|
220
|
+
}
|
|
221
|
+
item.labels.keybinding = { value: '' };
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
protected formatAndMatchContext(item: KeybindingItem): boolean {
|
|
226
|
+
item.labels.context = this.toRenderableLabel(item.labels.context.value);
|
|
227
|
+
return Boolean(item.labels.context.segments);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
protected formatAndMatchSource(item: KeybindingItem): boolean {
|
|
231
|
+
item.labels.source = this.toRenderableLabel(item.labels.source.value);
|
|
232
|
+
return Boolean(item.labels.source.segments);
|
|
233
|
+
}
|
|
252
234
|
|
|
253
|
-
|
|
254
|
-
|
|
235
|
+
protected toRenderableLabel(label: string, query: string = this.query): RenderableLabel {
|
|
236
|
+
if (label && query) {
|
|
237
|
+
const fuzzyMatch = fuzzy.match(query, label, this.fuzzyOptions);
|
|
238
|
+
if (fuzzyMatch) {
|
|
239
|
+
return {
|
|
240
|
+
value: label,
|
|
241
|
+
segments: fuzzyMatch.rendered.split(this.fuzzyOptions.pre).reduce<RenderableStringSegment[]>((collection, segment) => {
|
|
242
|
+
const [maybeMatch, notMatch] = segment.split(this.fuzzyOptions.post);
|
|
243
|
+
if (notMatch === undefined) {
|
|
244
|
+
collection.push({ value: maybeMatch, match: false });
|
|
245
|
+
} else {
|
|
246
|
+
collection.push({ value: maybeMatch, match: true }, { value: notMatch, match: false });
|
|
247
|
+
}
|
|
248
|
+
return collection;
|
|
249
|
+
}, [])
|
|
250
|
+
};
|
|
255
251
|
}
|
|
256
|
-
}
|
|
257
|
-
|
|
252
|
+
}
|
|
253
|
+
return { value: label };
|
|
258
254
|
}
|
|
259
255
|
|
|
260
256
|
/**
|
|
@@ -344,7 +340,7 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
344
340
|
*/
|
|
345
341
|
protected renderRows(): React.ReactNode {
|
|
346
342
|
return <React.Fragment>
|
|
347
|
-
{this.items.map((item, index) => this.renderRow(item, index))}
|
|
343
|
+
{this.items.map((item, index) => item.visible !== false && this.renderRow(item, index))}
|
|
348
344
|
</React.Fragment>;
|
|
349
345
|
}
|
|
350
346
|
|
|
@@ -359,7 +355,7 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
359
355
|
{this.renderMatchedData(item.labels.command)}
|
|
360
356
|
</td>
|
|
361
357
|
<td title={this.getKeybindingLabel(keybinding)} className='kb-keybinding monaco-keybinding'>
|
|
362
|
-
{this.renderKeybinding(item
|
|
358
|
+
{this.renderKeybinding(item)}
|
|
363
359
|
</td>
|
|
364
360
|
<td className='kb-context' title={this.getContextLabel(keybinding)}>
|
|
365
361
|
<code>{this.renderMatchedData(item.labels.context)}</code>
|
|
@@ -406,43 +402,27 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
406
402
|
* Render the keybinding.
|
|
407
403
|
* @param keybinding the keybinding value.
|
|
408
404
|
*/
|
|
409
|
-
protected renderKeybinding(keybinding:
|
|
410
|
-
if (!keybinding.
|
|
405
|
+
protected renderKeybinding(keybinding: KeybindingItem): React.ReactNode {
|
|
406
|
+
if (!keybinding.keybinding) {
|
|
411
407
|
return undefined;
|
|
412
408
|
}
|
|
413
|
-
const regex = new RegExp(this.keybindingSeparator);
|
|
414
|
-
keybinding = keybinding.replace(regex, '+');
|
|
415
|
-
const keys = keybinding.split('+');
|
|
416
409
|
|
|
417
|
-
|
|
418
|
-
{
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
<span className='monaco-keybinding-key'>{this.renderKeybinding(chordKeys[0])}</span>
|
|
434
|
-
<span className='monaco-keybinding-separator'> </span>
|
|
435
|
-
<span className='monaco-keybinding-key'>{this.renderKeybinding(chordKeys[1])}</span>
|
|
436
|
-
</React.Fragment>;
|
|
437
|
-
} else {
|
|
438
|
-
return <React.Fragment key={index}>
|
|
439
|
-
<span className='monaco-keybinding-separator'>+</span>
|
|
440
|
-
<span className='monaco-keybinding-key'>{this.renderKeybinding(key)}</span>
|
|
441
|
-
</React.Fragment>;
|
|
442
|
-
}
|
|
443
|
-
})
|
|
444
|
-
}
|
|
445
|
-
</React.Fragment>;
|
|
410
|
+
if (keybinding.labels.keybinding.segments) {
|
|
411
|
+
return keybinding.labels.keybinding.segments.map((segment, index) => {
|
|
412
|
+
if (segment.key) {
|
|
413
|
+
return <span key={index} className='monaco-keybinding-key'>
|
|
414
|
+
<span className={`${segment.match ? 'fuzzy-match' : ''}`}>{segment.value}</span>
|
|
415
|
+
</span>;
|
|
416
|
+
} else {
|
|
417
|
+
return <span key={index} className='monaco-keybinding-separator'>
|
|
418
|
+
{segment.value}
|
|
419
|
+
</span>;
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
console.warn('Unexpectedly encountered a keybinding without segment divisions');
|
|
425
|
+
return keybinding.labels.keybinding.value;
|
|
446
426
|
}
|
|
447
427
|
|
|
448
428
|
/**
|
|
@@ -462,27 +442,41 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
462
442
|
continue;
|
|
463
443
|
}
|
|
464
444
|
const keybinding = this.keybindingRegistry.getKeybindingsForCommand(command.id)[0];
|
|
465
|
-
|
|
445
|
+
const item = {
|
|
466
446
|
command,
|
|
467
447
|
keybinding,
|
|
468
448
|
labels: {
|
|
469
|
-
id: command.id,
|
|
470
|
-
command: this.getCommandLabel(command),
|
|
471
|
-
keybinding: this.getKeybindingLabel(keybinding) || '',
|
|
472
|
-
context: this.getContextLabel(keybinding) || '',
|
|
473
|
-
source: this.getScopeLabel(keybinding) || ''
|
|
449
|
+
id: { value: command.id },
|
|
450
|
+
command: { value: this.getCommandLabel(command) },
|
|
451
|
+
keybinding: { value: this.getKeybindingLabel(keybinding) || '' },
|
|
452
|
+
context: { value: this.getContextLabel(keybinding) || '' },
|
|
453
|
+
source: { value: this.getScopeLabel(keybinding) || '' }
|
|
474
454
|
}
|
|
475
|
-
}
|
|
455
|
+
};
|
|
456
|
+
this.formatAndMatchCommand(item);
|
|
457
|
+
this.formatAndMatchKeybinding(item, []);
|
|
458
|
+
this.formatAndMatchContext(item);
|
|
459
|
+
this.formatAndMatchSource(item);
|
|
460
|
+
items.push(item);
|
|
476
461
|
}
|
|
477
|
-
// Sort the keybinding item by label.
|
|
478
|
-
const sorted: KeybindingItem[] = items.sort((a, b) => this.compareItem(a.command, b.command));
|
|
479
|
-
// Get the list of keybinding item with keybindings (visually put them at the top of the table).
|
|
480
|
-
const keyItems: KeybindingItem[] = sorted.filter(a => !!a.labels.keybinding);
|
|
481
|
-
// Get the remaining keybinding items (without keybindings).
|
|
482
|
-
const otherItems: KeybindingItem[] = sorted.filter(a => !a.labels.keybinding);
|
|
483
462
|
|
|
484
|
-
|
|
485
|
-
|
|
463
|
+
return this.sortKeybindings(items);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* @returns the input array, sorted.
|
|
468
|
+
* The sort priority is as follows: items with keybindings before those without, then alphabetical by command.
|
|
469
|
+
*/
|
|
470
|
+
protected sortKeybindings(bindings: KeybindingItem[]): KeybindingItem[] {
|
|
471
|
+
return bindings.sort((a, b) => {
|
|
472
|
+
if (a.keybinding && !b.keybinding) {
|
|
473
|
+
return -1;
|
|
474
|
+
}
|
|
475
|
+
if (b.keybinding && !a.keybinding) {
|
|
476
|
+
return 1;
|
|
477
|
+
}
|
|
478
|
+
return this.compareItem(a.command, b.command);
|
|
479
|
+
});
|
|
486
480
|
}
|
|
487
481
|
|
|
488
482
|
/**
|
|
@@ -663,17 +657,17 @@ export class KeybindingWidget extends ReactWidget {
|
|
|
663
657
|
* Render the fuzzy representation of a matched result.
|
|
664
658
|
* @param property one of the `KeybindingItem` properties.
|
|
665
659
|
*/
|
|
666
|
-
protected renderMatchedData(property:
|
|
667
|
-
if (
|
|
668
|
-
|
|
669
|
-
return <React.Fragment>
|
|
660
|
+
protected renderMatchedData(property: RenderableLabel): React.ReactNode {
|
|
661
|
+
if (property.segments) {
|
|
662
|
+
return <>
|
|
670
663
|
{
|
|
671
|
-
|
|
664
|
+
property.segments.map((segment, index) => segment.match
|
|
665
|
+
? <span key={index} className='fuzzy-match'>{segment.value}</span>
|
|
666
|
+
: <span key={index}>{segment.value}</span>)
|
|
672
667
|
}
|
|
673
|
-
|
|
674
|
-
} else {
|
|
675
|
-
return property;
|
|
668
|
+
</>;
|
|
676
669
|
}
|
|
670
|
+
return property.value;
|
|
677
671
|
}
|
|
678
672
|
|
|
679
673
|
}
|