Merge VS Code 1.31.1 (#4283)

This commit is contained in:
Matt Irvine
2019-03-15 13:09:45 -07:00
committed by GitHub
parent 7d31575149
commit 86bac90001
1716 changed files with 53308 additions and 48375 deletions

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { flatten, tail, find } from 'vs/base/common/arrays';
import { flatten, tail, find, coalesce } from 'vs/base/common/arrays';
import { IStringDictionary } from 'vs/base/common/collections';
import { Emitter, Event } from 'vs/base/common/event';
import { JSONVisitor, visit } from 'vs/base/common/json';
@@ -27,7 +27,7 @@ export abstract class AbstractSettingsModel extends EditorModel {
protected _currentResultGroups = new Map<string, ISearchResultGroup>();
public updateResultGroup(id: string, resultGroup: ISearchResultGroup): IFilterResult {
updateResultGroup(id: string, resultGroup: ISearchResultGroup): IFilterResult {
if (resultGroup) {
this._currentResultGroups.set(id, resultGroup);
} else {
@@ -52,7 +52,7 @@ export abstract class AbstractSettingsModel extends EditorModel {
});
}
public filterSettings(filter: string, groupFilter: IGroupFilter, settingMatcher: ISettingMatcher): ISettingMatch[] {
filterSettings(filter: string, groupFilter: IGroupFilter, settingMatcher: ISettingMatcher): ISettingMatch[] {
const allGroups = this.filterGroups;
const filterMatches: ISettingMatch[] = [];
@@ -76,7 +76,7 @@ export abstract class AbstractSettingsModel extends EditorModel {
return filterMatches.sort((a, b) => b.score - a.score);
}
public getPreference(key: string): ISetting {
getPreference(key: string): ISetting {
for (const group of this.settingsGroups) {
for (const section of group.sections) {
for (const setting of section.settings) {
@@ -107,9 +107,9 @@ export abstract class AbstractSettingsModel extends EditorModel {
return this.settingsGroups;
}
public abstract settingsGroups: ISettingsGroup[];
abstract settingsGroups: ISettingsGroup[];
public abstract findValueMatches(filter: string, setting: ISetting): IRange[];
abstract findValueMatches(filter: string, setting: ISetting): IRange[];
protected abstract update(): IFilterResult;
}
@@ -132,26 +132,26 @@ export class SettingsEditorModel extends AbstractSettingsModel implements ISetti
}));
}
public get uri(): URI {
get uri(): URI {
return this.settingsModel.uri;
}
public get configurationTarget(): ConfigurationTarget {
get configurationTarget(): ConfigurationTarget {
return this._configurationTarget;
}
public get settingsGroups(): ISettingsGroup[] {
get settingsGroups(): ISettingsGroup[] {
if (!this._settingsGroups) {
this.parse();
}
return this._settingsGroups;
}
public get content(): string {
get content(): string {
return this.settingsModel.getValue();
}
public findValueMatches(filter: string, setting: ISetting): IRange[] {
findValueMatches(filter: string, setting: ISetting): IRange[] {
return this.settingsModel.findMatches(filter, setting.valueRange, false, false, null, false).map(match => match.range);
}
@@ -195,7 +195,7 @@ export class SettingsEditorModel extends AbstractSettingsModel implements ISetti
}
const metadata = this.collectMetadata(resultGroups);
return <IFilterResult>{
return {
allGroups: this.settingsGroups,
filteredGroups: filteredGroup ? [filteredGroup] : [],
matches,
@@ -229,13 +229,13 @@ export class Settings2EditorModel extends AbstractSettingsModel implements ISett
return this.settingsGroups.slice(1);
}
public get settingsGroups(): ISettingsGroup[] {
get settingsGroups(): ISettingsGroup[] {
const groups = this._defaultSettings.getSettingsGroups(this.dirty);
this.dirty = false;
return groups;
}
public findValueMatches(filter: string, setting: ISetting): IRange[] {
findValueMatches(filter: string, setting: ISetting): IRange[] {
// TODO @roblou
return [];
}
@@ -251,9 +251,9 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
let currentProperty: string | null = null;
let currentParent: any = [];
let previousParents: any[] = [];
const previousParents: any[] = [];
let settingsPropertyIndex: number = -1;
let range = {
const range = {
startLineNumber: 0,
startColumn: 0,
endLineNumber: 0,
@@ -270,8 +270,8 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
// settings value started
const setting = previousParents.length === settingsPropertyIndex + 1 ? settings[settings.length - 1] : overrideSetting.overrides[overrideSetting.overrides.length - 1];
if (setting) {
let valueStartPosition = model.getPositionAt(offset);
let valueEndPosition = model.getPositionAt(offset + length);
const valueStartPosition = model.getPositionAt(offset);
const valueEndPosition = model.getPositionAt(offset + length);
setting.value = value;
setting.valueRange = {
startLineNumber: valueStartPosition.lineNumber,
@@ -286,16 +286,16 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
}
}
}
let visitor: JSONVisitor = {
const visitor: JSONVisitor = {
onObjectBegin: (offset: number, length: number) => {
if (isSettingsProperty(currentProperty, previousParents)) {
// Settings started
settingsPropertyIndex = previousParents.length;
let position = model.getPositionAt(offset);
const position = model.getPositionAt(offset);
range.startLineNumber = position.lineNumber;
range.startColumn = position.column;
}
let object = {};
const object = {};
onValue(object, offset, length);
currentParent = object;
currentProperty = null;
@@ -305,7 +305,7 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
currentProperty = name;
if (previousParents.length === settingsPropertyIndex + 1 || (previousParents.length === settingsPropertyIndex + 2 && overrideSetting !== null)) {
// setting started
let settingStartPosition = model.getPositionAt(offset);
const settingStartPosition = model.getPositionAt(offset);
const setting: ISetting = {
description: [],
descriptionIsMarkdown: false,
@@ -344,7 +344,7 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
// setting ended
const setting = previousParents.length === settingsPropertyIndex + 1 ? settings[settings.length - 1] : overrideSetting.overrides[overrideSetting.overrides.length - 1];
if (setting) {
let valueEndPosition = model.getPositionAt(offset + length);
const valueEndPosition = model.getPositionAt(offset + length);
setting.valueRange = assign(setting.valueRange, {
endLineNumber: valueEndPosition.lineNumber,
endColumn: valueEndPosition.column
@@ -361,13 +361,13 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
}
if (previousParents.length === settingsPropertyIndex) {
// settings ended
let position = model.getPositionAt(offset);
const position = model.getPositionAt(offset);
range.endLineNumber = position.lineNumber;
range.endColumn = position.column;
}
},
onArrayBegin: (offset: number, length: number) => {
let array: any[] = [];
const array: any[] = [];
onValue(array, offset, length);
previousParents.push(currentParent);
currentParent = array;
@@ -379,7 +379,7 @@ function parse(model: ITextModel, isSettingsProperty: (currentProperty: string,
// setting value ended
const setting = previousParents.length === settingsPropertyIndex + 1 ? settings[settings.length - 1] : overrideSetting.overrides[overrideSetting.overrides.length - 1];
if (setting) {
let valueEndPosition = model.getPositionAt(offset + length);
const valueEndPosition = model.getPositionAt(offset + length);
setting.valueRange = assign(setting.valueRange, {
endLineNumber: valueEndPosition.lineNumber,
endColumn: valueEndPosition.column
@@ -453,7 +453,7 @@ export class DefaultSettings extends Disposable {
getContent(forceUpdate = false): string {
if (!this._content || forceUpdate) {
this._content = this.toContent(true, this.getSettingsGroups(forceUpdate));
this.initialize();
}
return this._content;
@@ -461,12 +461,17 @@ export class DefaultSettings extends Disposable {
getSettingsGroups(forceUpdate = false): ISettingsGroup[] {
if (!this._allSettingsGroups || forceUpdate) {
this._allSettingsGroups = this.parse();
this.initialize();
}
return this._allSettingsGroups;
}
private initialize(): void {
this._allSettingsGroups = this.parse();
this._content = this.toContent(this._allSettingsGroups);
}
private parse(): ISettingsGroup[] {
const settingsGroups = this.getRegisteredGroups();
this.initAllSettingsMap(settingsGroups);
@@ -476,7 +481,7 @@ export class DefaultSettings extends Disposable {
get raw(): string {
if (!DefaultSettings._RAW) {
DefaultSettings._RAW = this.toContent(false, this.getRegisteredGroups());
DefaultSettings._RAW = this.toContent(this.getRegisteredGroups());
}
return DefaultSettings._RAW;
@@ -512,7 +517,7 @@ export class DefaultSettings extends Disposable {
}
private getMostCommonlyUsedSettings(allSettingsGroups: ISettingsGroup[]): ISettingsGroup {
const settings = this._mostCommonlyUsedSettingsKeys.map(key => {
const settings = coalesce(this._mostCommonlyUsedSettingsKeys.map(key => {
const setting = this._settingsByName.get(key);
if (setting) {
return <ISetting>{
@@ -529,7 +534,7 @@ export class DefaultSettings extends Disposable {
};
}
return null;
}).filter(setting => !!setting);
}));
return <ISettingsGroup>{
id: 'mostCommonlyUsed',
@@ -598,8 +603,8 @@ export class DefaultSettings extends Disposable {
}
private parseSettings(settingsObject: { [path: string]: IConfigurationPropertySchema; }): ISetting[] {
let result: ISetting[] = [];
for (let key in settingsObject) {
const result: ISetting[] = [];
for (const key in settingsObject) {
const prop = settingsObject[key];
if (this.matchesScope(prop)) {
const value = prop.default;
@@ -668,18 +673,14 @@ export class DefaultSettings extends Disposable {
return c1.order - c2.order;
}
private toContent(asArray: boolean, settingsGroups: ISettingsGroup[]): string {
private toContent(settingsGroups: ISettingsGroup[]): string {
const builder = new SettingsContentBuilder();
if (asArray) {
builder.pushLine('[');
}
builder.pushLine('[');
settingsGroups.forEach((settingsGroup, i) => {
builder.pushGroup(settingsGroup);
builder.pushLine(',');
});
if (asArray) {
builder.pushLine(']');
}
builder.pushLine(']');
return builder.getContent();
}
@@ -704,15 +705,15 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements
this._register(this.onDispose(() => reference.dispose()));
}
public get uri(): URI {
get uri(): URI {
return this._uri;
}
public get target(): ConfigurationTarget {
get target(): ConfigurationTarget {
return this.defaultSettings.target;
}
public get settingsGroups(): ISettingsGroup[] {
get settingsGroups(): ISettingsGroup[] {
return this.defaultSettings.getSettingsGroups();
}
@@ -841,11 +842,11 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements
};
}
public findValueMatches(filter: string, setting: ISetting): IRange[] {
findValueMatches(filter: string, setting: ISetting): IRange[] {
return [];
}
public getPreference(key: string): ISetting {
getPreference(key: string): ISetting {
for (const group of this.settingsGroups) {
for (const section of group.sections) {
for (const setting of section.settings) {
@@ -915,10 +916,10 @@ class SettingsContentBuilder {
private _pushGroup(group: ISettingsGroup): ISetting {
const indent = ' ';
let lastSetting: ISetting | null = null;
let groupStart = this.lineCountWithOffset + 1;
const groupStart = this.lineCountWithOffset + 1;
for (const section of group.sections) {
if (section.title) {
let sectionTitleStart = this.lineCountWithOffset + 1;
const sectionTitleStart = this.lineCountWithOffset + 1;
this.addDescription([section.title], indent, this._contentByLines);
section.titleRange = { startLineNumber: sectionTitleStart, startColumn: 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length };
}
@@ -986,7 +987,7 @@ class SettingsContentBuilder {
}
private pushValue(setting: ISetting, preValueConent: string, indent: string): void {
let valueString = JSON.stringify(setting.value, null, indent);
const valueString = JSON.stringify(setting.value, null, indent);
if (valueString && (typeof setting.value === 'object')) {
if (setting.overrides.length) {
this._contentByLines.push(preValueConent + ' {');
@@ -1048,7 +1049,7 @@ export function createValidator(prop: IConfigurationPropertySchema): ((value: an
type Validator<T> = { enabled: boolean, isValid: (value: T) => boolean; message: string };
let numericValidations: Validator<number>[] = isNumeric ? [
const numericValidations: Validator<number>[] = isNumeric ? [
{
enabled: exclusiveMax !== undefined && (prop.maximum === undefined || exclusiveMax <= prop.maximum),
isValid: (value => value < exclusiveMax),
@@ -1082,7 +1083,7 @@ export function createValidator(prop: IConfigurationPropertySchema): ((value: an
},
].filter(validation => validation.enabled) : [];
let stringValidations: Validator<string>[] = [
const stringValidations: Validator<string>[] = [
{
enabled: prop.maxLength !== undefined,
isValid: (value => value.length <= prop.maxLength),
@@ -1103,7 +1104,7 @@ export function createValidator(prop: IConfigurationPropertySchema): ((value: an
if (prop.type === 'string' && stringValidations.length === 0) { return null; }
if (isNullable && value === '') { return ''; }
let errors: string[] = [];
const errors: string[] = [];
if (isNumeric) {
if (value === '' || isNaN(+value)) {
@@ -1139,25 +1140,25 @@ export class DefaultKeybindingsEditorModel implements IKeybindingsEditorModel<an
private _content: string;
constructor(private _uri: URI,
@IKeybindingService private keybindingService: IKeybindingService) {
@IKeybindingService private readonly keybindingService: IKeybindingService) {
}
public get uri(): URI {
get uri(): URI {
return this._uri;
}
public get content(): string {
get content(): string {
if (!this._content) {
this._content = defaultKeybindingsContents(this.keybindingService);
}
return this._content;
}
public getPreference(): any {
getPreference(): any {
return null;
}
public dispose(): void {
dispose(): void {
// Not disposable
}
}