Merge from vscode 64980ea1f3f532c82bb6c28d27bba9ef2c5b4463 (#7206)

* Merge from vscode 64980ea1f3f532c82bb6c28d27bba9ef2c5b4463

* fix config changes

* fix strictnull checks
This commit is contained in:
Anthony Dresser
2019-09-15 22:38:26 -07:00
committed by GitHub
parent fa6c52699e
commit ea0f9e6ce9
1226 changed files with 21541 additions and 17633 deletions

View File

@@ -26,7 +26,6 @@ import { ResolvedKeybindingItem } from 'vs/platform/keybinding/common/resolvedKe
import { INotificationService } from 'vs/platform/notification/common/notification';
import { Registry } from 'vs/platform/registry/common/platform';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { keybindingsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils';
import { ExtensionMessageCollector, ExtensionsRegistry } from 'vs/workbench/services/extensions/common/extensionsRegistry';
import { IUserKeybindingItem, KeybindingIO, OutputBuilder } from 'vs/workbench/services/keybinding/common/keybindingIO';
import { IKeyboardMapper } from 'vs/workbench/services/keybinding/common/keyboardMapper';
@@ -226,7 +225,6 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService {
}
}));
keybindingsTelemetry(telemetryService, this);
let data = this.keymapService.getCurrentKeyboardLayout();
/* __GDPR__
"keyboardLayout" : {
@@ -602,10 +600,12 @@ let commandsSchemas: IJSONSchema[] = [];
let commandsEnum: string[] = [];
let commandsEnumDescriptions: (string | undefined)[] = [];
let schema: IJSONSchema = {
'id': schemaId,
'type': 'array',
'title': nls.localize('keybindings.json.title', "Keybindings configuration"),
'definitions': {
id: schemaId,
type: 'array',
title: nls.localize('keybindings.json.title', "Keybindings configuration"),
allowsTrailingCommas: true,
allowComments: true,
definitions: {
'editorGroupsSchema': {
'type': 'array',
'items': {
@@ -623,7 +623,7 @@ let schema: IJSONSchema = {
}
}
},
'items': {
items: {
'required': ['key'],
'type': 'object',
'defaultSnippets': [{ 'body': { 'key': '$1', 'command': '$2', 'when': '$3' } }],

View File

@@ -495,7 +495,7 @@ class UserKeyboardLayout extends Disposable {
}
class BrowserKeymapService extends Disposable implements IKeymapService {
public _serviceBrand: any;
public _serviceBrand: undefined;
private readonly _onDidChangeKeyboardMapper = new Emitter<void>();
public readonly onDidChangeKeyboardMapper: Event<void> = this._onDidChangeKeyboardMapper.event;

View File

@@ -20,7 +20,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
import { IFileService } from 'vs/platform/files/common/files';
import { ServiceIdentifier, createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IUserFriendlyKeybinding } from 'vs/platform/keybinding/common/keybinding';
import { ResolvedKeybindingItem } from 'vs/platform/keybinding/common/resolvedKeybindingItem';
import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles';
@@ -30,7 +30,7 @@ export const IKeybindingEditingService = createDecorator<IKeybindingEditingServi
export interface IKeybindingEditingService {
_serviceBrand: ServiceIdentifier<any>;
_serviceBrand: undefined;
editKeybinding(keybindingItem: ResolvedKeybindingItem, key: string, when: string | undefined): Promise<void>;
@@ -41,7 +41,7 @@ export interface IKeybindingEditingService {
export class KeybindingsEditingService extends Disposable implements IKeybindingEditingService {
public _serviceBrand: any;
public _serviceBrand: undefined;
private queue: Queue<void>;
private resource: URI = this.environmentService.keybindingsResource;
@@ -259,4 +259,4 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding
}
}
registerSingleton(IKeybindingEditingService, KeybindingsEditingService, true);
registerSingleton(IKeybindingEditingService, KeybindingsEditingService, true);

View File

@@ -5,7 +5,7 @@
import { Event } from 'vs/base/common/event';
import { isWindows, isLinux } from 'vs/base/common/platform';
import { createDecorator, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { DispatchConfig } from 'vs/workbench/services/keybinding/common/dispatchConfig';
import { IKeyboardMapper } from 'vs/workbench/services/keybinding/common/keyboardMapper';
import { IKeyboardEvent } from 'vs/platform/keybinding/common/keybinding';
@@ -94,7 +94,7 @@ export type IKeyboardLayoutInfo = (IWindowsKeyboardLayoutInfo | ILinuxKeyboardLa
export const IKeymapService = createDecorator<IKeymapService>('keymapService');
export interface IKeymapService {
_serviceBrand: ServiceIdentifier<any>;
_serviceBrand: undefined;
onDidChangeKeyboardMapper: Event<void>;
getKeyboardMapper(dispatchConfig: DispatchConfig): IKeyboardMapper;
getCurrentKeyboardLayout(): IKeyboardLayoutInfo | null;

View File

@@ -239,6 +239,7 @@ export class WindowsKeyboardMapper implements IKeyboardMapper {
}
let producesLetter: boolean[] = [];
let producesLetters = false;
this._codeInfo = [];
for (let strCode in rawMappings) {
@@ -301,11 +302,13 @@ export class WindowsKeyboardMapper implements IKeyboardMapper {
if (charCode >= CharCode.a && charCode <= CharCode.z) {
const upperCaseValue = CharCode.A + (charCode - CharCode.a);
producesLetter[upperCaseValue] = true;
producesLetters = true;
this._keyCodeToLabel[keyCode] = String.fromCharCode(CharCode.A + (charCode - CharCode.a));
}
else if (charCode >= CharCode.A && charCode <= CharCode.Z) {
producesLetter[charCode] = true;
producesLetters = true;
this._keyCodeToLabel[keyCode] = value;
}
@@ -348,6 +351,30 @@ export class WindowsKeyboardMapper implements IKeyboardMapper {
_registerLetterIfMissing(CharCode.X, KeyCode.KEY_X);
_registerLetterIfMissing(CharCode.Y, KeyCode.KEY_Y);
_registerLetterIfMissing(CharCode.Z, KeyCode.KEY_Z);
if (!producesLetters) {
// Since this keyboard layout produces no latin letters at all, most of the UI will use the
// US kb layout equivalent for UI labels, so also try to render other keys with the US labels
// for consistency...
const _registerLabel = (keyCode: KeyCode, charCode: CharCode): void => {
// const existingLabel = this._keyCodeToLabel[keyCode];
// const existingCharCode = (existingLabel ? existingLabel.charCodeAt(0) : CharCode.Null);
// if (existingCharCode < 32 || existingCharCode > 126) {
this._keyCodeToLabel[keyCode] = String.fromCharCode(charCode);
// }
};
_registerLabel(KeyCode.US_SEMICOLON, CharCode.Semicolon);
_registerLabel(KeyCode.US_EQUAL, CharCode.Equals);
_registerLabel(KeyCode.US_COMMA, CharCode.Comma);
_registerLabel(KeyCode.US_MINUS, CharCode.Dash);
_registerLabel(KeyCode.US_DOT, CharCode.Period);
_registerLabel(KeyCode.US_SLASH, CharCode.Slash);
_registerLabel(KeyCode.US_BACKTICK, CharCode.BackTick);
_registerLabel(KeyCode.US_OPEN_SQUARE_BRACKET, CharCode.OpenSquareBracket);
_registerLabel(KeyCode.US_BACKSLASH, CharCode.Backslash);
_registerLabel(KeyCode.US_CLOSE_SQUARE_BRACKET, CharCode.CloseSquareBracket);
_registerLabel(KeyCode.US_QUOTE, CharCode.SingleQuote);
}
}
public dumpDebugInfo(): string {

View File

@@ -132,7 +132,7 @@ export class KeyboardMapperFactory {
}
class NativeKeymapService extends Disposable implements IKeymapService {
public _serviceBrand: any;
public _serviceBrand: undefined;
private readonly _onDidChangeKeyboardMapper = new Emitter<void>();
public readonly onDidChangeKeyboardMapper: Event<void> = this._onDidChangeKeyboardMapper.event;

View File

@@ -46,14 +46,14 @@ import { Schemas } from 'vs/base/common/network';
import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemProvider';
import { URI } from 'vs/base/common/uri';
import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider';
import { parseArgs } from 'vs/platform/environment/node/argv';
import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
import { IWindowConfiguration } from 'vs/platform/windows/common/windows';
class TestEnvironmentService extends WorkbenchEnvironmentService {
constructor(private _appSettingsHome: URI) {
super(parseArgs(process.argv) as IWindowConfiguration, process.execPath);
super(parseArgs(process.argv, OPTIONS) as IWindowConfiguration, process.execPath);
}
get appSettingsHome() { return this._appSettingsHome; }

View File

@@ -68,7 +68,7 @@ export function assertMapping(writeFileIfDifferent: boolean, mapper: IKeyboardMa
let expected = buff.toString();
const actual = mapper.dumpDebugInfo();
if (actual !== expected && writeFileIfDifferent) {
const destPath = filePath.replace(/vscode\/out\/vs/, 'vscode/src/vs');
const destPath = filePath.replace(/vscode[\/\\]out[\/\\]vs/, 'vscode/src/vs');
writeFile(destPath, actual);
}

View File

@@ -78,9 +78,9 @@ suite('keyboardMapper - MAC fallback', () => {
test('resolveUserBinding Cmd+[Comma] Cmd+/', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(false, false, false, true, ScanCode.Comma),
new SimpleKeybinding(false, false, false, true, KeyCode.US_SLASH),
],
new ScanCodeBinding(false, false, false, true, ScanCode.Comma),
new SimpleKeybinding(false, false, false, true, KeyCode.US_SLASH),
],
[{
label: '⌘, ⌘/',
ariaLabel: 'Command+, Command+/',
@@ -183,9 +183,9 @@ suite('keyboardMapper - LINUX fallback', () => {
test('resolveUserBinding Ctrl+[Comma] Ctrl+/', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
[{
label: 'Ctrl+, Ctrl+/',
ariaLabel: 'Control+, Control+/',
@@ -201,8 +201,8 @@ suite('keyboardMapper - LINUX fallback', () => {
test('resolveUserBinding Ctrl+[Comma]', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
],
[{
label: 'Ctrl+,',
ariaLabel: 'Control+,',

View File

@@ -752,9 +752,9 @@ suite('keyboardMapper - LINUX de_ch', () => {
test('resolveUserBinding Ctrl+[Comma] Ctrl+/', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
[{
label: 'Ctrl+, Ctrl+Shift+7',
ariaLabel: 'Control+, Control+Shift+7',
@@ -1135,9 +1135,9 @@ suite('keyboardMapper - LINUX en_us', () => {
test('resolveUserBinding Ctrl+[Comma] Ctrl+/', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
[{
label: 'Ctrl+, Ctrl+/',
ariaLabel: 'Control+, Control+/',
@@ -1153,8 +1153,8 @@ suite('keyboardMapper - LINUX en_us', () => {
test('resolveUserBinding Ctrl+[Comma]', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma)
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma)
],
[{
label: 'Ctrl+,',
ariaLabel: 'Control+,',

View File

@@ -203,15 +203,15 @@
| Ctrl+Alt+Equal | --- | Ctrl+Alt+= | Ctrl+Alt+= | ctrl+alt+oem_plus | NO |
| Ctrl+Shift+Alt+Equal | --- | Ctrl+Shift+Alt+= | Ctrl+Shift+Alt+= | ctrl+shift+alt+oem_plus | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| BracketLeft | х | [ | х | oem_4 | NO |
| Shift+BracketLeft | Х | Shift+[ | Shift+х | shift+oem_4 | NO |
| Ctrl+Alt+BracketLeft | --- | Ctrl+Alt+[ | Ctrl+Alt+х | ctrl+alt+oem_4 | NO |
| Ctrl+Shift+Alt+BracketLeft | --- | Ctrl+Shift+Alt+[ | Ctrl+Shift+Alt+х | ctrl+shift+alt+oem_4 | NO |
| BracketLeft | х | [ | [ | oem_4 | NO |
| Shift+BracketLeft | Х | Shift+[ | Shift+[ | shift+oem_4 | NO |
| Ctrl+Alt+BracketLeft | --- | Ctrl+Alt+[ | Ctrl+Alt+[ | ctrl+alt+oem_4 | NO |
| Ctrl+Shift+Alt+BracketLeft | --- | Ctrl+Shift+Alt+[ | Ctrl+Shift+Alt+[ | ctrl+shift+alt+oem_4 | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| BracketRight | ъ | ] | ъ | oem_6 | NO |
| Shift+BracketRight | Ъ | Shift+] | Shift+ъ | shift+oem_6 | NO |
| Ctrl+Alt+BracketRight | --- | Ctrl+Alt+] | Ctrl+Alt+ъ | ctrl+alt+oem_6 | NO |
| Ctrl+Shift+Alt+BracketRight | --- | Ctrl+Shift+Alt+] | Ctrl+Shift+Alt+ъ | ctrl+shift+alt+oem_6 | NO |
| BracketRight | ъ | ] | ] | oem_6 | NO |
| Shift+BracketRight | Ъ | Shift+] | Shift+] | shift+oem_6 | NO |
| Ctrl+Alt+BracketRight | --- | Ctrl+Alt+] | Ctrl+Alt+] | ctrl+alt+oem_6 | NO |
| Ctrl+Shift+Alt+BracketRight | --- | Ctrl+Shift+Alt+] | Ctrl+Shift+Alt+] | ctrl+shift+alt+oem_6 | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| Backslash | \ | \ | \ | oem_5 | NO |
| Shift+Backslash | / | Shift+\ | Shift+\ | shift+oem_5 | NO |
@@ -225,35 +225,35 @@
-----------------------------------------------------------------------------------------------------------------------------------------
| HW Code combination | Key | KeyCode combination | UI label | User settings | WYSIWYG |
-----------------------------------------------------------------------------------------------------------------------------------------
| Semicolon | ж | ; | ж | oem_1 | NO |
| Shift+Semicolon | Ж | Shift+; | Shift+ж | shift+oem_1 | NO |
| Ctrl+Alt+Semicolon | --- | Ctrl+Alt+; | Ctrl+Alt+ж | ctrl+alt+oem_1 | NO |
| Ctrl+Shift+Alt+Semicolon | --- | Ctrl+Shift+Alt+; | Ctrl+Shift+Alt+ж | ctrl+shift+alt+oem_1 | NO |
| Semicolon | ж | ; | ; | oem_1 | NO |
| Shift+Semicolon | Ж | Shift+; | Shift+; | shift+oem_1 | NO |
| Ctrl+Alt+Semicolon | --- | Ctrl+Alt+; | Ctrl+Alt+; | ctrl+alt+oem_1 | NO |
| Ctrl+Shift+Alt+Semicolon | --- | Ctrl+Shift+Alt+; | Ctrl+Shift+Alt+; | ctrl+shift+alt+oem_1 | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| Quote | э | ' | э | oem_7 | NO |
| Shift+Quote | Э | Shift+' | Shift+э | shift+oem_7 | NO |
| Ctrl+Alt+Quote | --- | Ctrl+Alt+' | Ctrl+Alt+э | ctrl+alt+oem_7 | NO |
| Ctrl+Shift+Alt+Quote | --- | Ctrl+Shift+Alt+' | Ctrl+Shift+Alt+э | ctrl+shift+alt+oem_7 | NO |
| Quote | э | ' | ' | oem_7 | NO |
| Shift+Quote | Э | Shift+' | Shift+' | shift+oem_7 | NO |
| Ctrl+Alt+Quote | --- | Ctrl+Alt+' | Ctrl+Alt+' | ctrl+alt+oem_7 | NO |
| Ctrl+Shift+Alt+Quote | --- | Ctrl+Shift+Alt+' | Ctrl+Shift+Alt+' | ctrl+shift+alt+oem_7 | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| Backquote | ё | ` | ё | oem_3 | NO |
| Shift+Backquote | Ё | Shift+` | Shift+ё | shift+oem_3 | NO |
| Ctrl+Alt+Backquote | --- | Ctrl+Alt+` | Ctrl+Alt+ё | ctrl+alt+oem_3 | NO |
| Ctrl+Shift+Alt+Backquote | --- | Ctrl+Shift+Alt+` | Ctrl+Shift+Alt+ё | ctrl+shift+alt+oem_3 | NO |
| Backquote | ё | ` | ` | oem_3 | NO |
| Shift+Backquote | Ё | Shift+` | Shift+` | shift+oem_3 | NO |
| Ctrl+Alt+Backquote | --- | Ctrl+Alt+` | Ctrl+Alt+` | ctrl+alt+oem_3 | NO |
| Ctrl+Shift+Alt+Backquote | --- | Ctrl+Shift+Alt+` | Ctrl+Shift+Alt+` | ctrl+shift+alt+oem_3 | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| Comma | б | , | б | oem_comma | NO |
| Shift+Comma | Б | Shift+, | Shift+б | shift+oem_comma | NO |
| Ctrl+Alt+Comma | --- | Ctrl+Alt+, | Ctrl+Alt+б | ctrl+alt+oem_comma | NO |
| Ctrl+Shift+Alt+Comma | --- | Ctrl+Shift+Alt+, | Ctrl+Shift+Alt+б | ctrl+shift+alt+oem_comma | NO |
| Comma | б | , | , | oem_comma | NO |
| Shift+Comma | Б | Shift+, | Shift+, | shift+oem_comma | NO |
| Ctrl+Alt+Comma | --- | Ctrl+Alt+, | Ctrl+Alt+, | ctrl+alt+oem_comma | NO |
| Ctrl+Shift+Alt+Comma | --- | Ctrl+Shift+Alt+, | Ctrl+Shift+Alt+, | ctrl+shift+alt+oem_comma | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| Period | ю | . | ю | oem_period | NO |
| Shift+Period | Ю | Shift+. | Shift+ю | shift+oem_period | NO |
| Ctrl+Alt+Period | --- | Ctrl+Alt+. | Ctrl+Alt+ю | ctrl+alt+oem_period | NO |
| Ctrl+Shift+Alt+Period | --- | Ctrl+Shift+Alt+. | Ctrl+Shift+Alt+ю | ctrl+shift+alt+oem_period | NO |
| Period | ю | . | . | oem_period | NO |
| Shift+Period | Ю | Shift+. | Shift+. | shift+oem_period | NO |
| Ctrl+Alt+Period | --- | Ctrl+Alt+. | Ctrl+Alt+. | ctrl+alt+oem_period | NO |
| Ctrl+Shift+Alt+Period | --- | Ctrl+Shift+Alt+. | Ctrl+Shift+Alt+. | ctrl+shift+alt+oem_period | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| Slash | . | / | . | oem_2 | NO |
| Shift+Slash | , | Shift+/ | Shift+. | shift+oem_2 | NO |
| Ctrl+Alt+Slash | --- | Ctrl+Alt+/ | Ctrl+Alt+. | ctrl+alt+oem_2 | NO |
| Ctrl+Shift+Alt+Slash | --- | Ctrl+Shift+Alt+/ | Ctrl+Shift+Alt+. | ctrl+shift+alt+oem_2 | NO |
| Slash | . | / | / | oem_2 | NO |
| Shift+Slash | , | Shift+/ | Shift+/ | shift+oem_2 | NO |
| Ctrl+Alt+Slash | --- | Ctrl+Alt+/ | Ctrl+Alt+/ | ctrl+alt+oem_2 | NO |
| Ctrl+Shift+Alt+Slash | --- | Ctrl+Shift+Alt+/ | Ctrl+Shift+Alt+/ | ctrl+shift+alt+oem_2 | NO |
-----------------------------------------------------------------------------------------------------------------------------------------
| HW Code combination | Key | KeyCode combination | UI label | User settings | WYSIWYG |
-----------------------------------------------------------------------------------------------------------------------------------------

View File

@@ -280,9 +280,9 @@ suite('keyboardMapper - WINDOWS de_ch', () => {
test('resolveUserBinding Ctrl+[Comma] Ctrl+/', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
[{
label: 'Ctrl+, Ctrl+§',
ariaLabel: 'Control+, Control+§',
@@ -351,9 +351,9 @@ suite('keyboardMapper - WINDOWS en_us', () => {
test('resolveUserBinding Ctrl+[Comma] Ctrl+/', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
new SimpleKeybinding(true, false, false, false, KeyCode.US_SLASH),
],
[{
label: 'Ctrl+, Ctrl+/',
ariaLabel: 'Control+, Control+/',
@@ -369,8 +369,8 @@ suite('keyboardMapper - WINDOWS en_us', () => {
test('resolveUserBinding Ctrl+[Comma]', () => {
assertResolveUserBinding(
mapper, [
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
],
new ScanCodeBinding(true, false, false, false, ScanCode.Comma),
],
[{
label: 'Ctrl+,',
ariaLabel: 'Control+,',