src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts/WhenColumnRenderer/renderElement
class WhenColumnRenderer:	renderElement(keybindingItemEntry: IKeybindingItemEntry, index: number, templateData: IWhenColumnTemplateData, height: number | undefined): void {
		templateData.renderDisposables.clear();

		templateData.renderDisposables.add(this.keybindingsEditor.onDefineWhenExpression(e => {
			if (keybindingItemEntry === e) {
				templateData.element.classList.add('input-mode');
				templateData.whenInput.focus();
				templateData.whenInput.select();
				templateData.element.parentElement!.style.paddingLeft = '0px';
			}
		}));

		templateData.whenInput.value = keybindingItemEntry.keybindingItem.when || '';
		templateData.whenContainer.classList.toggle('code', !!keybindingItemEntry.keybindingItem.when);
		templateData.whenContainer.classList.toggle('empty', !keybindingItemEntry.keybindingItem.when);

		if (keybindingItemEntry.keybindingItem.when) {
			templateData.whenLabel.set(keybindingItemEntry.keybindingItem.when, keybindingItemEntry.whenMatches);
			templateData.whenLabel.element.title = keybindingItemEntry.keybindingItem.when;
			templateData.element.title = keybindingItemEntry.keybindingItem.when;
		} else {
			templateData.whenLabel.set('-');
			templateData.whenLabel.element.title = '';
			templateData.element.title = '';
		}

		templateData.renderDisposables.add(templateData.onDidAccept(() => {
			this.keybindingsEditor.updateKeybinding(keybindingItemEntry, keybindingItemEntry.keybindingItem.keybinding ? keybindingItemEntry.keybindingItem.keybinding.getUserSettingsLabel() || '' : '', templateData.whenInput.value);
			this.keybindingsEditor.selectKeybinding(keybindingItemEntry);
		}));

		templateData.renderDisposables.add(templateData.onDidReject(() => {
			templateData.whenInput.value = keybindingItemEntry.keybindingItem.when || '';
			this.keybindingsEditor.selectKeybinding(keybindingItemEntry);
		}));
	}