mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-11 18:48:33 -05:00
Vscode merge (#4582)
* Merge from vscode 37cb23d3dd4f9433d56d4ba5ea3203580719a0bd * fix issues with merges * bump node version in azpipe * replace license headers * remove duplicate launch task * fix build errors * fix build errors * fix tslint issues * working through package and linux build issues * more work * wip * fix packaged builds * working through linux build errors * wip * wip * wip * fix mac and linux file limits * iterate linux pipeline * disable editor typing * revert series to parallel * remove optimize vscode from linux * fix linting issues * revert testing change * add work round for new node * readd packaging for extensions * fix issue with angular not resolving decorator dependencies
This commit is contained in:
@@ -25,7 +25,7 @@ import { IModelContentChangedEvent, IModelDecorationsChangedEvent, IModelLanguag
|
||||
import { SearchData, SearchParams, TextModelSearch } from 'vs/editor/common/model/textModelSearch';
|
||||
import { ModelLinesTokens, ModelTokensChangedEventBuilder } from 'vs/editor/common/model/textModelTokens';
|
||||
import { getWordAtText } from 'vs/editor/common/model/wordHelper';
|
||||
import { IState, LanguageId, LanguageIdentifier, TokenizationRegistry } from 'vs/editor/common/modes';
|
||||
import { IState, LanguageId, LanguageIdentifier, TokenizationRegistry, FormattingOptions } from 'vs/editor/common/modes';
|
||||
import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry';
|
||||
import { NULL_LANGUAGE_IDENTIFIER } from 'vs/editor/common/modes/nullMode';
|
||||
import { ignoreBracketsInToken } from 'vs/editor/common/modes/supports';
|
||||
@@ -163,6 +163,7 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
public static DEFAULT_CREATION_OPTIONS: model.ITextModelCreationOptions = {
|
||||
isForSimpleWidget: false,
|
||||
tabSize: EDITOR_MODEL_DEFAULTS.tabSize,
|
||||
indentSize: EDITOR_MODEL_DEFAULTS.indentSize,
|
||||
insertSpaces: EDITOR_MODEL_DEFAULTS.insertSpaces,
|
||||
detectIndentation: false,
|
||||
defaultEOL: model.DefaultEndOfLine.LF,
|
||||
@@ -179,6 +180,7 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
const guessedIndentation = guessIndentation(textBuffer, options.tabSize, options.insertSpaces);
|
||||
return new model.TextModelResolvedOptions({
|
||||
tabSize: guessedIndentation.tabSize,
|
||||
indentSize: guessedIndentation.tabSize, // TODO@Alex: guess indentSize independent of tabSize
|
||||
insertSpaces: guessedIndentation.insertSpaces,
|
||||
trimAutoWhitespace: options.trimAutoWhitespace,
|
||||
defaultEOL: options.defaultEOL
|
||||
@@ -187,6 +189,7 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
|
||||
return new model.TextModelResolvedOptions({
|
||||
tabSize: options.tabSize,
|
||||
indentSize: options.indentSize,
|
||||
insertSpaces: options.insertSpaces,
|
||||
trimAutoWhitespace: options.trimAutoWhitespace,
|
||||
defaultEOL: options.defaultEOL
|
||||
@@ -262,8 +265,8 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
|
||||
//#region Tokenization
|
||||
private _languageIdentifier: LanguageIdentifier;
|
||||
private _tokenizationListener: IDisposable;
|
||||
private _languageRegistryListener: IDisposable;
|
||||
private readonly _tokenizationListener: IDisposable;
|
||||
private readonly _languageRegistryListener: IDisposable;
|
||||
private _revalidateTokensTimeout: any;
|
||||
/*private*/_tokens: ModelLinesTokens;
|
||||
//#endregion
|
||||
@@ -587,14 +590,23 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
return this._options;
|
||||
}
|
||||
|
||||
public getFormattingOptions(): FormattingOptions {
|
||||
return {
|
||||
tabSize: this._options.indentSize,
|
||||
insertSpaces: this._options.insertSpaces
|
||||
};
|
||||
}
|
||||
|
||||
public updateOptions(_newOpts: model.ITextModelUpdateOptions): void {
|
||||
this._assertNotDisposed();
|
||||
let tabSize = (typeof _newOpts.tabSize !== 'undefined') ? _newOpts.tabSize : this._options.tabSize;
|
||||
let indentSize = (typeof _newOpts.indentSize !== 'undefined') ? _newOpts.indentSize : this._options.indentSize;
|
||||
let insertSpaces = (typeof _newOpts.insertSpaces !== 'undefined') ? _newOpts.insertSpaces : this._options.insertSpaces;
|
||||
let trimAutoWhitespace = (typeof _newOpts.trimAutoWhitespace !== 'undefined') ? _newOpts.trimAutoWhitespace : this._options.trimAutoWhitespace;
|
||||
|
||||
let newOpts = new model.TextModelResolvedOptions({
|
||||
tabSize: tabSize,
|
||||
indentSize: indentSize,
|
||||
insertSpaces: insertSpaces,
|
||||
defaultEOL: this._options.defaultEOL,
|
||||
trimAutoWhitespace: trimAutoWhitespace
|
||||
@@ -615,15 +627,16 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
let guessedIndentation = guessIndentation(this._buffer, defaultTabSize, defaultInsertSpaces);
|
||||
this.updateOptions({
|
||||
insertSpaces: guessedIndentation.insertSpaces,
|
||||
tabSize: guessedIndentation.tabSize
|
||||
tabSize: guessedIndentation.tabSize,
|
||||
indentSize: guessedIndentation.tabSize, // TODO@Alex: guess indentSize independent of tabSize
|
||||
});
|
||||
}
|
||||
|
||||
private static _normalizeIndentationFromWhitespace(str: string, tabSize: number, insertSpaces: boolean): string {
|
||||
private static _normalizeIndentationFromWhitespace(str: string, indentSize: number, insertSpaces: boolean): string {
|
||||
let spacesCnt = 0;
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
if (str.charAt(i) === '\t') {
|
||||
spacesCnt += tabSize;
|
||||
spacesCnt += indentSize;
|
||||
} else {
|
||||
spacesCnt++;
|
||||
}
|
||||
@@ -631,8 +644,8 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
|
||||
let result = '';
|
||||
if (!insertSpaces) {
|
||||
let tabsCnt = Math.floor(spacesCnt / tabSize);
|
||||
spacesCnt = spacesCnt % tabSize;
|
||||
let tabsCnt = Math.floor(spacesCnt / indentSize);
|
||||
spacesCnt = spacesCnt % indentSize;
|
||||
for (let i = 0; i < tabsCnt; i++) {
|
||||
result += '\t';
|
||||
}
|
||||
@@ -645,33 +658,17 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static normalizeIndentation(str: string, tabSize: number, insertSpaces: boolean): string {
|
||||
public static normalizeIndentation(str: string, indentSize: number, insertSpaces: boolean): string {
|
||||
let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(str);
|
||||
if (firstNonWhitespaceIndex === -1) {
|
||||
firstNonWhitespaceIndex = str.length;
|
||||
}
|
||||
return TextModel._normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), tabSize, insertSpaces) + str.substring(firstNonWhitespaceIndex);
|
||||
return TextModel._normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex);
|
||||
}
|
||||
|
||||
public normalizeIndentation(str: string): string {
|
||||
this._assertNotDisposed();
|
||||
return TextModel.normalizeIndentation(str, this._options.tabSize, this._options.insertSpaces);
|
||||
}
|
||||
|
||||
public getOneIndent(): string {
|
||||
this._assertNotDisposed();
|
||||
let tabSize = this._options.tabSize;
|
||||
let insertSpaces = this._options.insertSpaces;
|
||||
|
||||
if (insertSpaces) {
|
||||
let result = '';
|
||||
for (let i = 0; i < tabSize; i++) {
|
||||
result += ' ';
|
||||
}
|
||||
return result;
|
||||
} else {
|
||||
return '\t';
|
||||
}
|
||||
return TextModel.normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
@@ -2574,7 +2571,7 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
// Use the line's indent
|
||||
up_belowContentLineIndex = upLineNumber - 1;
|
||||
up_belowContentLineIndent = currentIndent;
|
||||
upLineIndentLevel = Math.ceil(currentIndent / this._options.tabSize);
|
||||
upLineIndentLevel = Math.ceil(currentIndent / this._options.indentSize);
|
||||
} else {
|
||||
up_resolveIndents(upLineNumber);
|
||||
upLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, up_aboveContentLineIndent, up_belowContentLineIndent);
|
||||
@@ -2609,7 +2606,7 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
// Use the line's indent
|
||||
down_aboveContentLineIndex = downLineNumber - 1;
|
||||
down_aboveContentLineIndent = currentIndent;
|
||||
downLineIndentLevel = Math.ceil(currentIndent / this._options.tabSize);
|
||||
downLineIndentLevel = Math.ceil(currentIndent / this._options.indentSize);
|
||||
} else {
|
||||
down_resolveIndents(downLineNumber);
|
||||
downLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, down_aboveContentLineIndent, down_belowContentLineIndent);
|
||||
@@ -2657,7 +2654,7 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
// Use the line's indent
|
||||
aboveContentLineIndex = lineNumber - 1;
|
||||
aboveContentLineIndent = currentIndent;
|
||||
result[resultIndex] = Math.ceil(currentIndent / this._options.tabSize);
|
||||
result[resultIndex] = Math.ceil(currentIndent / this._options.indentSize);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2704,20 +2701,20 @@ export class TextModel extends Disposable implements model.ITextModel {
|
||||
|
||||
} else if (aboveContentLineIndent < belowContentLineIndent) {
|
||||
// we are inside the region above
|
||||
return (1 + Math.floor(aboveContentLineIndent / this._options.tabSize));
|
||||
return (1 + Math.floor(aboveContentLineIndent / this._options.indentSize));
|
||||
|
||||
} else if (aboveContentLineIndent === belowContentLineIndent) {
|
||||
// we are in between two regions
|
||||
return Math.ceil(belowContentLineIndent / this._options.tabSize);
|
||||
return Math.ceil(belowContentLineIndent / this._options.indentSize);
|
||||
|
||||
} else {
|
||||
|
||||
if (offSide) {
|
||||
// same level as region below
|
||||
return Math.ceil(belowContentLineIndent / this._options.tabSize);
|
||||
return Math.ceil(belowContentLineIndent / this._options.indentSize);
|
||||
} else {
|
||||
// we are inside the region that ends below
|
||||
return (1 + Math.floor(belowContentLineIndent / this._options.tabSize));
|
||||
return (1 + Math.floor(belowContentLineIndent / this._options.indentSize));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2733,12 +2730,12 @@ class DecorationsTrees {
|
||||
/**
|
||||
* This tree holds decorations that do not show up in the overview ruler.
|
||||
*/
|
||||
private _decorationsTree0: IntervalTree;
|
||||
private readonly _decorationsTree0: IntervalTree;
|
||||
|
||||
/**
|
||||
* This tree holds decorations that show up in the overview ruler.
|
||||
*/
|
||||
private _decorationsTree1: IntervalTree;
|
||||
private readonly _decorationsTree1: IntervalTree;
|
||||
|
||||
constructor() {
|
||||
this._decorationsTree0 = new IntervalTree();
|
||||
|
||||
Reference in New Issue
Block a user