monaco-editor11 1.0.9 → 1.1.1
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.
- package/dist/index.d.ts +1 -1
- package/dist/monaco-editor11.es.js +12 -16
- package/dist/monaco-editor11.umd.js +1 -1
- package/package.json +2 -2
- package/dist/monaco.d.ts +0 -8
- package/dist/workers/common/initialize.js +0 -16
- package/dist/workers/common/workers.js +0 -141
- package/dist/workers/editor/common/abstractSyntaxTokenBackend.js +0 -128
- package/dist/workers/editor/common/abstractText.js +0 -89
- package/dist/workers/editor/common/ast.js +0 -485
- package/dist/workers/editor/common/autoIndent.js +0 -390
- package/dist/workers/editor/common/beforeEditPositionMapper.js +0 -110
- package/dist/workers/editor/common/bracketPairsImpl.js +0 -717
- package/dist/workers/editor/common/bracketPairsTree.js +0 -343
- package/dist/workers/editor/common/brackets.js +0 -108
- package/dist/workers/editor/common/characterClassifier.js +0 -59
- package/dist/workers/editor/common/characterPair.js +0 -40
- package/dist/workers/editor/common/colorizedBracketPairsDecorationProvider.js +0 -97
- package/dist/workers/editor/common/columnRange.js +0 -35
- package/dist/workers/editor/common/combineTextEditInfos.js +0 -124
- package/dist/workers/editor/common/common.js +0 -20
- package/dist/workers/editor/common/computeMovedLines.js +0 -249
- package/dist/workers/editor/common/concat23Trees.js +0 -192
- package/dist/workers/editor/common/contiguousMultilineTokens.js +0 -32
- package/dist/workers/editor/common/contiguousMultilineTokensBuilder.js +0 -23
- package/dist/workers/editor/common/contiguousTokensEditing.js +0 -128
- package/dist/workers/editor/common/contiguousTokensStore.js +0 -207
- package/dist/workers/editor/common/coordinatesConverter.js +0 -51
- package/dist/workers/editor/common/cursor.js +0 -899
- package/dist/workers/editor/common/cursorAtomicMoveOperations.js +0 -145
- package/dist/workers/editor/common/cursorCollection.js +0 -194
- package/dist/workers/editor/common/cursorColumnSelection.js +0 -93
- package/dist/workers/editor/common/cursorColumns.js +0 -112
- package/dist/workers/editor/common/cursorCommon.js +0 -250
- package/dist/workers/editor/common/cursorContext.js +0 -15
- package/dist/workers/editor/common/cursorDeleteOperations.js +0 -231
- package/dist/workers/editor/common/cursorMoveCommands.js +0 -676
- package/dist/workers/editor/common/cursorMoveOperations.js +0 -290
- package/dist/workers/editor/common/cursorTypeEditOperations.js +0 -968
- package/dist/workers/editor/common/cursorTypeOperations.js +0 -173
- package/dist/workers/editor/common/cursorUtils.js +0 -75
- package/dist/workers/editor/common/cursorWordOperations.js +0 -720
- package/dist/workers/editor/common/defaultDocumentColorsComputer.js +0 -138
- package/dist/workers/editor/common/defaultLinesDiffComputer.js +0 -188
- package/dist/workers/editor/common/diffAlgorithm.js +0 -139
- package/dist/workers/editor/common/diffEditor.js +0 -38
- package/dist/workers/editor/common/dynamicProgrammingDiffing.js +0 -101
- package/dist/workers/editor/common/edit.js +0 -183
- package/dist/workers/editor/common/editOperation.js +0 -36
- package/dist/workers/editor/common/editStack.js +0 -363
- package/dist/workers/editor/common/editorAction.js +0 -26
- package/dist/workers/editor/common/editorBaseApi.js +0 -43
- package/dist/workers/editor/common/editorColorRegistry.js +0 -102
- package/dist/workers/editor/common/editorCommon.js +0 -13
- package/dist/workers/editor/common/editorConfigurationSchema.js +0 -338
- package/dist/workers/editor/common/editorContextKeys.js +0 -84
- package/dist/workers/editor/common/editorFeatures.js +0 -17
- package/dist/workers/editor/common/editorOptions.js +0 -3440
- package/dist/workers/editor/common/editorTheme.js +0 -23
- package/dist/workers/editor/common/editorWebWorker.js +0 -299
- package/dist/workers/editor/common/editorWorker.js +0 -9
- package/dist/workers/editor/common/editorWorkerHost.js +0 -15
- package/dist/workers/editor/common/editorZoom.js +0 -26
- package/dist/workers/editor/common/electricCharacter.js +0 -55
- package/dist/workers/editor/common/encodedTokenAttributes.js +0 -79
- package/dist/workers/editor/common/enterAction.js +0 -53
- package/dist/workers/editor/common/eolCounter.js +0 -44
- package/dist/workers/editor/common/findSectionHeaders.js +0 -128
- package/dist/workers/editor/common/fixBrackets.js +0 -67
- package/dist/workers/editor/common/fixedArray.js +0 -70
- package/dist/workers/editor/common/fontInfo.js +0 -172
- package/dist/workers/editor/common/fontInfoFromSettings.js +0 -29
- package/dist/workers/editor/common/getIconClasses.js +0 -106
- package/dist/workers/editor/common/getPositionOffsetTransformerFromTextModel.js +0 -24
- package/dist/workers/editor/common/glyphLanesModel.js +0 -61
- package/dist/workers/editor/common/guidesTextModelPart.js +0 -405
- package/dist/workers/editor/common/heuristicSequenceOptimizations.js +0 -374
- package/dist/workers/editor/common/indentRules.js +0 -63
- package/dist/workers/editor/common/indentation.js +0 -39
- package/dist/workers/editor/common/indentationGuesser.js +0 -178
- package/dist/workers/editor/common/indentationLineProcessor.js +0 -193
- package/dist/workers/editor/common/inlineDecorations.js +0 -26
- package/dist/workers/editor/common/inplaceReplaceSupport.js +0 -87
- package/dist/workers/editor/common/inputMode.js +0 -22
- package/dist/workers/editor/common/intervalTree.js +0 -1002
- package/dist/workers/editor/common/language.js +0 -9
- package/dist/workers/editor/common/languageBracketsConfiguration.js +0 -133
- package/dist/workers/editor/common/languageConfiguration.js +0 -138
- package/dist/workers/editor/common/languageConfigurationRegistry.js +0 -361
- package/dist/workers/editor/common/languageFeatureDebounce.js +0 -137
- package/dist/workers/editor/common/languageFeatureRegistry.js +0 -180
- package/dist/workers/editor/common/languageFeatures.js +0 -9
- package/dist/workers/editor/common/languageFeaturesService.js +0 -47
- package/dist/workers/editor/common/languageSelector.js +0 -112
- package/dist/workers/editor/common/languageService.js +0 -92
- package/dist/workers/editor/common/languages.js +0 -522
- package/dist/workers/editor/common/languagesAssociations.js +0 -193
- package/dist/workers/editor/common/languagesRegistry.js +0 -237
- package/dist/workers/editor/common/legacyLinesDiffComputer.js +0 -468
- package/dist/workers/editor/common/length.js +0 -129
- package/dist/workers/editor/common/lineDecorations.js +0 -208
- package/dist/workers/editor/common/lineEdit.js +0 -75
- package/dist/workers/editor/common/lineHeights.js +0 -370
- package/dist/workers/editor/common/linePart.js +0 -25
- package/dist/workers/editor/common/lineRange.js +0 -312
- package/dist/workers/editor/common/lineSequence.js +0 -36
- package/dist/workers/editor/common/lineTokens.js +0 -405
- package/dist/workers/editor/common/linesDiffComputer.js +0 -29
- package/dist/workers/editor/common/linesDiffComputers.js +0 -13
- package/dist/workers/editor/common/linesLayout.js +0 -765
- package/dist/workers/editor/common/linesSliceCharSequence.js +0 -205
- package/dist/workers/editor/common/linkComputer.js +0 -269
- package/dist/workers/editor/common/markerDecorations.js +0 -9
- package/dist/workers/editor/common/markerDecorationsService.js +0 -248
- package/dist/workers/editor/common/minimapTokensColorTracker.js +0 -58
- package/dist/workers/editor/common/mirrorTextModel.js +0 -117
- package/dist/workers/editor/common/model.js +0 -9
- package/dist/workers/editor/common/modelLineProjection.js +0 -350
- package/dist/workers/editor/common/modelLineProjectionData.js +0 -297
- package/dist/workers/editor/common/modelService.js +0 -413
- package/dist/workers/editor/common/modesRegistry.js +0 -75
- package/dist/workers/editor/common/monospaceLineBreaksComputer.js +0 -473
- package/dist/workers/editor/common/myersDiffAlgorithm.js +0 -159
- package/dist/workers/editor/common/nodeReader.js +0 -127
- package/dist/workers/editor/common/nullTokenize.js +0 -29
- package/dist/workers/editor/common/offsetRange.js +0 -225
- package/dist/workers/editor/common/onEnter.js +0 -109
- package/dist/workers/editor/common/oneCursor.js +0 -117
- package/dist/workers/editor/common/overviewZoneManager.js +0 -176
- package/dist/workers/editor/common/parser.js +0 -121
- package/dist/workers/editor/common/pieceTreeBase.js +0 -1473
- package/dist/workers/editor/common/pieceTreeTextBuffer.js +0 -461
- package/dist/workers/editor/common/pieceTreeTextBufferBuilder.js +0 -140
- package/dist/workers/editor/common/point.js +0 -50
- package/dist/workers/editor/common/position.js +0 -142
- package/dist/workers/editor/common/positionToOffset.js +0 -17
- package/dist/workers/editor/common/positionToOffsetImpl.js +0 -98
- package/dist/workers/editor/common/prefixSumComputer.js +0 -226
- package/dist/workers/editor/common/range.js +0 -421
- package/dist/workers/editor/common/rangeMapping.js +0 -229
- package/dist/workers/editor/common/rangeSingleLine.js +0 -17
- package/dist/workers/editor/common/rbTreeBase.js +0 -362
- package/dist/workers/editor/common/rect.js +0 -163
- package/dist/workers/editor/common/replaceCommand.js +0 -158
- package/dist/workers/editor/common/resolverService.js +0 -5
- package/dist/workers/editor/common/rgba.js +0 -35
- package/dist/workers/editor/common/richEditBrackets.js +0 -356
- package/dist/workers/editor/common/selection.js +0 -145
- package/dist/workers/editor/common/semanticTokensDto.js +0 -82
- package/dist/workers/editor/common/semanticTokensProviderStyling.js +0 -263
- package/dist/workers/editor/common/semanticTokensStyling.js +0 -9
- package/dist/workers/editor/common/semanticTokensStylingService.js +0 -47
- package/dist/workers/editor/common/shiftCommand.js +0 -241
- package/dist/workers/editor/common/smallImmutableSet.js +0 -108
- package/dist/workers/editor/common/sparseMultilineTokens.js +0 -548
- package/dist/workers/editor/common/sparseTokensStore.js +0 -210
- package/dist/workers/editor/common/standaloneEnums.js +0 -1017
- package/dist/workers/editor/common/standaloneStrings.js +0 -42
- package/dist/workers/editor/common/stringBuilder.js +0 -122
- package/dist/workers/editor/common/stringEdit.js +0 -165
- package/dist/workers/editor/common/supports.js +0 -58
- package/dist/workers/editor/common/surroundSelectionCommand.js +0 -44
- package/dist/workers/editor/common/textChange.js +0 -248
- package/dist/workers/editor/common/textEdit.js +0 -269
- package/dist/workers/editor/common/textLength.js +0 -87
- package/dist/workers/editor/common/textModel.js +0 -2031
- package/dist/workers/editor/common/textModelBracketPairs.js +0 -45
- package/dist/workers/editor/common/textModelDefaults.js +0 -18
- package/dist/workers/editor/common/textModelEditSource.js +0 -166
- package/dist/workers/editor/common/textModelEvents.js +0 -216
- package/dist/workers/editor/common/textModelGuides.js +0 -40
- package/dist/workers/editor/common/textModelPart.js +0 -23
- package/dist/workers/editor/common/textModelSearch.js +0 -455
- package/dist/workers/editor/common/textModelStringEdit.js +0 -11
- package/dist/workers/editor/common/textModelSync.impl.js +0 -307
- package/dist/workers/editor/common/textModelText.js +0 -26
- package/dist/workers/editor/common/textModelTokens.js +0 -436
- package/dist/workers/editor/common/textResourceConfiguration.js +0 -6
- package/dist/workers/editor/common/textToHtmlTokenizer.js +0 -139
- package/dist/workers/editor/common/tokenStore.js +0 -407
- package/dist/workers/editor/common/tokenWithTextArray.js +0 -73
- package/dist/workers/editor/common/tokenization.js +0 -287
- package/dist/workers/editor/common/tokenizationRegistry.js +0 -123
- package/dist/workers/editor/common/tokenizationTextModelPart.js +0 -275
- package/dist/workers/editor/common/tokenizer.js +0 -301
- package/dist/workers/editor/common/tokenizerSyntaxTokenBackend.js +0 -261
- package/dist/workers/editor/common/treeSitterLibraryService.js +0 -9
- package/dist/workers/editor/common/treeSitterSyntaxTokenBackend.js +0 -167
- package/dist/workers/editor/common/treeSitterThemeService.js +0 -9
- package/dist/workers/editor/common/treeSitterTokenizationImpl.js +0 -713
- package/dist/workers/editor/common/treeSitterTree.js +0 -395
- package/dist/workers/editor/common/treeViewsDnd.js +0 -24
- package/dist/workers/editor/common/treeViewsDndService.js +0 -12
- package/dist/workers/editor/common/trimTrailingWhitespaceCommand.js +0 -98
- package/dist/workers/editor/common/unicodeTextModelHighlighter.js +0 -188
- package/dist/workers/editor/common/utils.js +0 -62
- package/dist/workers/editor/common/viewContext.js +0 -22
- package/dist/workers/editor/common/viewEventHandler.js +0 -186
- package/dist/workers/editor/common/viewEvents.js +0 -180
- package/dist/workers/editor/common/viewLayout.js +0 -368
- package/dist/workers/editor/common/viewLineRenderer.js +0 -948
- package/dist/workers/editor/common/viewLinesViewportData.js +0 -30
- package/dist/workers/editor/common/viewModel.js +0 -98
- package/dist/workers/editor/common/viewModelDecoration.js +0 -55
- package/dist/workers/editor/common/viewModelDecorations.js +0 -132
- package/dist/workers/editor/common/viewModelEventDispatcher.js +0 -398
- package/dist/workers/editor/common/viewModelImpl.js +0 -1163
- package/dist/workers/editor/common/viewModelLines.js +0 -938
- package/dist/workers/editor/common/wordCharacterClassifier.js +0 -87
- package/dist/workers/editor/common/wordHelper.js +0 -127
- package/dist/workers/language/cssMode.js +0 -198
- package/dist/workers/language/cssWorker.js +0 -183
- package/dist/workers/language/htmlMode.js +0 -213
- package/dist/workers/language/htmlWorker.js +0 -126
- package/dist/workers/language/jsonMode.js +0 -224
- package/dist/workers/language/jsonWorker.js +0 -187
- package/dist/workers/language/languageFeatures.js +0 -1009
- package/dist/workers/language/lib.index.js +0 -103
- package/dist/workers/language/lib.js +0 -1107
- package/dist/workers/language/lspLanguageFeatures.js +0 -716
- package/dist/workers/language/monaco.contribution.js +0 -144
- package/dist/workers/language/tokenization.js +0 -189
- package/dist/workers/language/tsMode.js +0 -212
- package/dist/workers/language/tsWorker.js +0 -352
- package/dist/workers/language/typescriptServices.js +0 -210154
- package/dist/workers/language/typescriptServicesMetadata.js +0 -3
- package/dist/workers/language/workerManager.js +0 -65
- /package/dist/workers/{language/css.worker.js → css.worker.js} +0 -0
- /package/dist/workers/{editor/editor.worker.js → editor.worker.js} +0 -0
- /package/dist/workers/{language/html.worker.js → html.worker.js} +0 -0
- /package/dist/workers/{language/json.worker.js → json.worker.js} +0 -0
- /package/dist/workers/{language/ts.worker.js → ts.worker.js} +0 -0
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
import { TokenMetadata } from '../encodedTokenAttributes.js';
|
|
2
|
-
import { OffsetRange } from '../core/ranges/offsetRange.js';
|
|
3
|
-
import { onUnexpectedError } from '../../../base/common/errors.js';
|
|
4
|
-
|
|
5
|
-
/*---------------------------------------------------------------------------------------------
|
|
6
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
8
|
-
*--------------------------------------------------------------------------------------------*/
|
|
9
|
-
class LineTokens {
|
|
10
|
-
static createEmpty(lineContent, decoder) {
|
|
11
|
-
const defaultMetadata = LineTokens.defaultTokenMetadata;
|
|
12
|
-
const tokens = new Uint32Array(2);
|
|
13
|
-
tokens[0] = lineContent.length;
|
|
14
|
-
tokens[1] = defaultMetadata;
|
|
15
|
-
return new LineTokens(tokens, lineContent, decoder);
|
|
16
|
-
}
|
|
17
|
-
static createFromTextAndMetadata(data, decoder) {
|
|
18
|
-
let offset = 0;
|
|
19
|
-
let fullText = '';
|
|
20
|
-
const tokens = new Array();
|
|
21
|
-
for (const { text, metadata } of data) {
|
|
22
|
-
tokens.push(offset + text.length, metadata);
|
|
23
|
-
offset += text.length;
|
|
24
|
-
fullText += text;
|
|
25
|
-
}
|
|
26
|
-
return new LineTokens(new Uint32Array(tokens), fullText, decoder);
|
|
27
|
-
}
|
|
28
|
-
static convertToEndOffset(tokens, lineTextLength) {
|
|
29
|
-
const tokenCount = (tokens.length >>> 1);
|
|
30
|
-
const lastTokenIndex = tokenCount - 1;
|
|
31
|
-
for (let tokenIndex = 0; tokenIndex < lastTokenIndex; tokenIndex++) {
|
|
32
|
-
tokens[tokenIndex << 1] = tokens[(tokenIndex + 1) << 1];
|
|
33
|
-
}
|
|
34
|
-
tokens[lastTokenIndex << 1] = lineTextLength;
|
|
35
|
-
}
|
|
36
|
-
static findIndexInTokensArray(tokens, desiredIndex) {
|
|
37
|
-
if (tokens.length <= 2) {
|
|
38
|
-
return 0;
|
|
39
|
-
}
|
|
40
|
-
let low = 0;
|
|
41
|
-
let high = (tokens.length >>> 1) - 1;
|
|
42
|
-
while (low < high) {
|
|
43
|
-
const mid = low + Math.floor((high - low) / 2);
|
|
44
|
-
const endOffset = tokens[(mid << 1)];
|
|
45
|
-
if (endOffset === desiredIndex) {
|
|
46
|
-
return mid + 1;
|
|
47
|
-
}
|
|
48
|
-
else if (endOffset < desiredIndex) {
|
|
49
|
-
low = mid + 1;
|
|
50
|
-
}
|
|
51
|
-
else if (endOffset > desiredIndex) {
|
|
52
|
-
high = mid;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return low;
|
|
56
|
-
}
|
|
57
|
-
static { this.defaultTokenMetadata = ((0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)
|
|
58
|
-
| (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)
|
|
59
|
-
| (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0; }
|
|
60
|
-
constructor(tokens, text, decoder) {
|
|
61
|
-
this._lineTokensBrand = undefined;
|
|
62
|
-
const tokensLength = tokens.length > 1 ? tokens[tokens.length - 2] : 0;
|
|
63
|
-
if (tokensLength !== text.length) {
|
|
64
|
-
onUnexpectedError(new Error('Token length and text length do not match!'));
|
|
65
|
-
}
|
|
66
|
-
this._tokens = tokens;
|
|
67
|
-
this._tokensCount = (this._tokens.length >>> 1);
|
|
68
|
-
this._text = text;
|
|
69
|
-
this.languageIdCodec = decoder;
|
|
70
|
-
}
|
|
71
|
-
getTextLength() {
|
|
72
|
-
return this._text.length;
|
|
73
|
-
}
|
|
74
|
-
equals(other) {
|
|
75
|
-
if (other instanceof LineTokens) {
|
|
76
|
-
return this.slicedEquals(other, 0, this._tokensCount);
|
|
77
|
-
}
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
slicedEquals(other, sliceFromTokenIndex, sliceTokenCount) {
|
|
81
|
-
if (this._text !== other._text) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
if (this._tokensCount !== other._tokensCount) {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
const from = (sliceFromTokenIndex << 1);
|
|
88
|
-
const to = from + (sliceTokenCount << 1);
|
|
89
|
-
for (let i = from; i < to; i++) {
|
|
90
|
-
if (this._tokens[i] !== other._tokens[i]) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
getLineContent() {
|
|
97
|
-
return this._text;
|
|
98
|
-
}
|
|
99
|
-
getCount() {
|
|
100
|
-
return this._tokensCount;
|
|
101
|
-
}
|
|
102
|
-
getStartOffset(tokenIndex) {
|
|
103
|
-
if (tokenIndex > 0) {
|
|
104
|
-
return this._tokens[(tokenIndex - 1) << 1];
|
|
105
|
-
}
|
|
106
|
-
return 0;
|
|
107
|
-
}
|
|
108
|
-
getMetadata(tokenIndex) {
|
|
109
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
110
|
-
return metadata;
|
|
111
|
-
}
|
|
112
|
-
getLanguageId(tokenIndex) {
|
|
113
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
114
|
-
const languageId = TokenMetadata.getLanguageId(metadata);
|
|
115
|
-
return this.languageIdCodec.decodeLanguageId(languageId);
|
|
116
|
-
}
|
|
117
|
-
getStandardTokenType(tokenIndex) {
|
|
118
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
119
|
-
return TokenMetadata.getTokenType(metadata);
|
|
120
|
-
}
|
|
121
|
-
getForeground(tokenIndex) {
|
|
122
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
123
|
-
return TokenMetadata.getForeground(metadata);
|
|
124
|
-
}
|
|
125
|
-
getClassName(tokenIndex) {
|
|
126
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
127
|
-
return TokenMetadata.getClassNameFromMetadata(metadata);
|
|
128
|
-
}
|
|
129
|
-
getInlineStyle(tokenIndex, colorMap) {
|
|
130
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
131
|
-
return TokenMetadata.getInlineStyleFromMetadata(metadata, colorMap);
|
|
132
|
-
}
|
|
133
|
-
getPresentation(tokenIndex) {
|
|
134
|
-
const metadata = this._tokens[(tokenIndex << 1) + 1];
|
|
135
|
-
return TokenMetadata.getPresentationFromMetadata(metadata);
|
|
136
|
-
}
|
|
137
|
-
getEndOffset(tokenIndex) {
|
|
138
|
-
return this._tokens[tokenIndex << 1];
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Find the token containing offset `offset`.
|
|
142
|
-
* @param offset The search offset
|
|
143
|
-
* @return The index of the token containing the offset.
|
|
144
|
-
*/
|
|
145
|
-
findTokenIndexAtOffset(offset) {
|
|
146
|
-
return LineTokens.findIndexInTokensArray(this._tokens, offset);
|
|
147
|
-
}
|
|
148
|
-
inflate() {
|
|
149
|
-
return this;
|
|
150
|
-
}
|
|
151
|
-
sliceAndInflate(startOffset, endOffset, deltaOffset) {
|
|
152
|
-
return new SliceLineTokens(this, startOffset, endOffset, deltaOffset);
|
|
153
|
-
}
|
|
154
|
-
sliceZeroCopy(range) {
|
|
155
|
-
return this.sliceAndInflate(range.start, range.endExclusive, 0);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* @pure
|
|
159
|
-
* @param insertTokens Must be sorted by offset.
|
|
160
|
-
*/
|
|
161
|
-
withInserted(insertTokens) {
|
|
162
|
-
if (insertTokens.length === 0) {
|
|
163
|
-
return this;
|
|
164
|
-
}
|
|
165
|
-
let nextOriginalTokenIdx = 0;
|
|
166
|
-
let nextInsertTokenIdx = 0;
|
|
167
|
-
let text = '';
|
|
168
|
-
const newTokens = new Array();
|
|
169
|
-
let originalEndOffset = 0;
|
|
170
|
-
while (true) {
|
|
171
|
-
const nextOriginalTokenEndOffset = nextOriginalTokenIdx < this._tokensCount ? this._tokens[nextOriginalTokenIdx << 1] : -1;
|
|
172
|
-
const nextInsertToken = nextInsertTokenIdx < insertTokens.length ? insertTokens[nextInsertTokenIdx] : null;
|
|
173
|
-
if (nextOriginalTokenEndOffset !== -1 && (nextInsertToken === null || nextOriginalTokenEndOffset <= nextInsertToken.offset)) {
|
|
174
|
-
// original token ends before next insert token
|
|
175
|
-
text += this._text.substring(originalEndOffset, nextOriginalTokenEndOffset);
|
|
176
|
-
const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];
|
|
177
|
-
newTokens.push(text.length, metadata);
|
|
178
|
-
nextOriginalTokenIdx++;
|
|
179
|
-
originalEndOffset = nextOriginalTokenEndOffset;
|
|
180
|
-
}
|
|
181
|
-
else if (nextInsertToken) {
|
|
182
|
-
if (nextInsertToken.offset > originalEndOffset) {
|
|
183
|
-
// insert token is in the middle of the next token.
|
|
184
|
-
text += this._text.substring(originalEndOffset, nextInsertToken.offset);
|
|
185
|
-
const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];
|
|
186
|
-
newTokens.push(text.length, metadata);
|
|
187
|
-
originalEndOffset = nextInsertToken.offset;
|
|
188
|
-
}
|
|
189
|
-
text += nextInsertToken.text;
|
|
190
|
-
newTokens.push(text.length, nextInsertToken.tokenMetadata);
|
|
191
|
-
nextInsertTokenIdx++;
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return new LineTokens(new Uint32Array(newTokens), text, this.languageIdCodec);
|
|
198
|
-
}
|
|
199
|
-
getTokensInRange(range) {
|
|
200
|
-
const builder = new TokenArrayBuilder();
|
|
201
|
-
const startTokenIndex = this.findTokenIndexAtOffset(range.start);
|
|
202
|
-
const endTokenIndex = this.findTokenIndexAtOffset(range.endExclusive);
|
|
203
|
-
for (let tokenIndex = startTokenIndex; tokenIndex <= endTokenIndex; tokenIndex++) {
|
|
204
|
-
const tokenRange = new OffsetRange(this.getStartOffset(tokenIndex), this.getEndOffset(tokenIndex));
|
|
205
|
-
const length = tokenRange.intersectionLength(range);
|
|
206
|
-
if (length > 0) {
|
|
207
|
-
builder.add(length, this.getMetadata(tokenIndex));
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return builder.build();
|
|
211
|
-
}
|
|
212
|
-
getTokenText(tokenIndex) {
|
|
213
|
-
const startOffset = this.getStartOffset(tokenIndex);
|
|
214
|
-
const endOffset = this.getEndOffset(tokenIndex);
|
|
215
|
-
const text = this._text.substring(startOffset, endOffset);
|
|
216
|
-
return text;
|
|
217
|
-
}
|
|
218
|
-
forEach(callback) {
|
|
219
|
-
const tokenCount = this.getCount();
|
|
220
|
-
for (let tokenIndex = 0; tokenIndex < tokenCount; tokenIndex++) {
|
|
221
|
-
callback(tokenIndex);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
toString() {
|
|
225
|
-
let result = '';
|
|
226
|
-
this.forEach((i) => {
|
|
227
|
-
result += `[${this.getTokenText(i)}]{${this.getClassName(i)}}`;
|
|
228
|
-
});
|
|
229
|
-
return result;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
class SliceLineTokens {
|
|
233
|
-
constructor(source, startOffset, endOffset, deltaOffset) {
|
|
234
|
-
this._source = source;
|
|
235
|
-
this._startOffset = startOffset;
|
|
236
|
-
this._endOffset = endOffset;
|
|
237
|
-
this._deltaOffset = deltaOffset;
|
|
238
|
-
this._firstTokenIndex = source.findTokenIndexAtOffset(startOffset);
|
|
239
|
-
this.languageIdCodec = source.languageIdCodec;
|
|
240
|
-
this._tokensCount = 0;
|
|
241
|
-
for (let i = this._firstTokenIndex, len = source.getCount(); i < len; i++) {
|
|
242
|
-
const tokenStartOffset = source.getStartOffset(i);
|
|
243
|
-
if (tokenStartOffset >= endOffset) {
|
|
244
|
-
break;
|
|
245
|
-
}
|
|
246
|
-
this._tokensCount++;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
getMetadata(tokenIndex) {
|
|
250
|
-
return this._source.getMetadata(this._firstTokenIndex + tokenIndex);
|
|
251
|
-
}
|
|
252
|
-
getLanguageId(tokenIndex) {
|
|
253
|
-
return this._source.getLanguageId(this._firstTokenIndex + tokenIndex);
|
|
254
|
-
}
|
|
255
|
-
getLineContent() {
|
|
256
|
-
return this._source.getLineContent().substring(this._startOffset, this._endOffset);
|
|
257
|
-
}
|
|
258
|
-
equals(other) {
|
|
259
|
-
if (other instanceof SliceLineTokens) {
|
|
260
|
-
return (this._startOffset === other._startOffset
|
|
261
|
-
&& this._endOffset === other._endOffset
|
|
262
|
-
&& this._deltaOffset === other._deltaOffset
|
|
263
|
-
&& this._source.slicedEquals(other._source, this._firstTokenIndex, this._tokensCount));
|
|
264
|
-
}
|
|
265
|
-
return false;
|
|
266
|
-
}
|
|
267
|
-
getCount() {
|
|
268
|
-
return this._tokensCount;
|
|
269
|
-
}
|
|
270
|
-
getStandardTokenType(tokenIndex) {
|
|
271
|
-
return this._source.getStandardTokenType(this._firstTokenIndex + tokenIndex);
|
|
272
|
-
}
|
|
273
|
-
getForeground(tokenIndex) {
|
|
274
|
-
return this._source.getForeground(this._firstTokenIndex + tokenIndex);
|
|
275
|
-
}
|
|
276
|
-
getEndOffset(tokenIndex) {
|
|
277
|
-
const tokenEndOffset = this._source.getEndOffset(this._firstTokenIndex + tokenIndex);
|
|
278
|
-
return Math.min(this._endOffset, tokenEndOffset) - this._startOffset + this._deltaOffset;
|
|
279
|
-
}
|
|
280
|
-
getClassName(tokenIndex) {
|
|
281
|
-
return this._source.getClassName(this._firstTokenIndex + tokenIndex);
|
|
282
|
-
}
|
|
283
|
-
getInlineStyle(tokenIndex, colorMap) {
|
|
284
|
-
return this._source.getInlineStyle(this._firstTokenIndex + tokenIndex, colorMap);
|
|
285
|
-
}
|
|
286
|
-
getPresentation(tokenIndex) {
|
|
287
|
-
return this._source.getPresentation(this._firstTokenIndex + tokenIndex);
|
|
288
|
-
}
|
|
289
|
-
findTokenIndexAtOffset(offset) {
|
|
290
|
-
return this._source.findTokenIndexAtOffset(offset + this._startOffset - this._deltaOffset) - this._firstTokenIndex;
|
|
291
|
-
}
|
|
292
|
-
getTokenText(tokenIndex) {
|
|
293
|
-
const adjustedTokenIndex = this._firstTokenIndex + tokenIndex;
|
|
294
|
-
const tokenStartOffset = this._source.getStartOffset(adjustedTokenIndex);
|
|
295
|
-
const tokenEndOffset = this._source.getEndOffset(adjustedTokenIndex);
|
|
296
|
-
let text = this._source.getTokenText(adjustedTokenIndex);
|
|
297
|
-
if (tokenStartOffset < this._startOffset) {
|
|
298
|
-
text = text.substring(this._startOffset - tokenStartOffset);
|
|
299
|
-
}
|
|
300
|
-
if (tokenEndOffset > this._endOffset) {
|
|
301
|
-
text = text.substring(0, text.length - (tokenEndOffset - this._endOffset));
|
|
302
|
-
}
|
|
303
|
-
return text;
|
|
304
|
-
}
|
|
305
|
-
forEach(callback) {
|
|
306
|
-
for (let tokenIndex = 0; tokenIndex < this.getCount(); tokenIndex++) {
|
|
307
|
-
callback(tokenIndex);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
function getStandardTokenTypeAtPosition(model, position) {
|
|
312
|
-
const lineNumber = position.lineNumber;
|
|
313
|
-
if (!model.tokenization.isCheapToTokenize(lineNumber)) {
|
|
314
|
-
return undefined;
|
|
315
|
-
}
|
|
316
|
-
model.tokenization.forceTokenization(lineNumber);
|
|
317
|
-
const lineTokens = model.tokenization.getLineTokens(lineNumber);
|
|
318
|
-
const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);
|
|
319
|
-
const tokenType = lineTokens.getStandardTokenType(tokenIndex);
|
|
320
|
-
return tokenType;
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* This class represents a sequence of tokens.
|
|
324
|
-
* Conceptually, each token has a length and a metadata number.
|
|
325
|
-
* A token array might be used to annotate a string with metadata.
|
|
326
|
-
* Use {@link TokenArrayBuilder} to efficiently create a token array.
|
|
327
|
-
*
|
|
328
|
-
* TODO: Make this class more efficient (e.g. by using a Int32Array).
|
|
329
|
-
*/
|
|
330
|
-
class TokenArray {
|
|
331
|
-
static fromLineTokens(lineTokens) {
|
|
332
|
-
const tokenInfo = [];
|
|
333
|
-
for (let i = 0; i < lineTokens.getCount(); i++) {
|
|
334
|
-
tokenInfo.push(new TokenInfo(lineTokens.getEndOffset(i) - lineTokens.getStartOffset(i), lineTokens.getMetadata(i)));
|
|
335
|
-
}
|
|
336
|
-
return TokenArray.create(tokenInfo);
|
|
337
|
-
}
|
|
338
|
-
static create(tokenInfo) {
|
|
339
|
-
return new TokenArray(tokenInfo);
|
|
340
|
-
}
|
|
341
|
-
constructor(_tokenInfo) {
|
|
342
|
-
this._tokenInfo = _tokenInfo;
|
|
343
|
-
}
|
|
344
|
-
toLineTokens(lineContent, decoder) {
|
|
345
|
-
return LineTokens.createFromTextAndMetadata(this.map((r, t) => ({ text: r.substring(lineContent), metadata: t.metadata })), decoder);
|
|
346
|
-
}
|
|
347
|
-
forEach(cb) {
|
|
348
|
-
let lengthSum = 0;
|
|
349
|
-
for (const tokenInfo of this._tokenInfo) {
|
|
350
|
-
const range = new OffsetRange(lengthSum, lengthSum + tokenInfo.length);
|
|
351
|
-
cb(range, tokenInfo);
|
|
352
|
-
lengthSum += tokenInfo.length;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
map(cb) {
|
|
356
|
-
const result = [];
|
|
357
|
-
let lengthSum = 0;
|
|
358
|
-
for (const tokenInfo of this._tokenInfo) {
|
|
359
|
-
const range = new OffsetRange(lengthSum, lengthSum + tokenInfo.length);
|
|
360
|
-
result.push(cb(range, tokenInfo));
|
|
361
|
-
lengthSum += tokenInfo.length;
|
|
362
|
-
}
|
|
363
|
-
return result;
|
|
364
|
-
}
|
|
365
|
-
slice(range) {
|
|
366
|
-
const result = [];
|
|
367
|
-
let lengthSum = 0;
|
|
368
|
-
for (const tokenInfo of this._tokenInfo) {
|
|
369
|
-
const tokenStart = lengthSum;
|
|
370
|
-
const tokenEndEx = tokenStart + tokenInfo.length;
|
|
371
|
-
if (tokenEndEx > range.start) {
|
|
372
|
-
if (tokenStart >= range.endExclusive) {
|
|
373
|
-
break;
|
|
374
|
-
}
|
|
375
|
-
const deltaBefore = Math.max(0, range.start - tokenStart);
|
|
376
|
-
const deltaAfter = Math.max(0, tokenEndEx - range.endExclusive);
|
|
377
|
-
result.push(new TokenInfo(tokenInfo.length - deltaBefore - deltaAfter, tokenInfo.metadata));
|
|
378
|
-
}
|
|
379
|
-
lengthSum += tokenInfo.length;
|
|
380
|
-
}
|
|
381
|
-
return TokenArray.create(result);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
class TokenInfo {
|
|
385
|
-
constructor(length, metadata) {
|
|
386
|
-
this.length = length;
|
|
387
|
-
this.metadata = metadata;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* TODO: Make this class more efficient (e.g. by using a Int32Array).
|
|
392
|
-
*/
|
|
393
|
-
class TokenArrayBuilder {
|
|
394
|
-
constructor() {
|
|
395
|
-
this._tokens = [];
|
|
396
|
-
}
|
|
397
|
-
add(length, metadata) {
|
|
398
|
-
this._tokens.push(new TokenInfo(length, metadata));
|
|
399
|
-
}
|
|
400
|
-
build() {
|
|
401
|
-
return TokenArray.create(this._tokens);
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
export { LineTokens, TokenArray, TokenArrayBuilder, TokenInfo, getStandardTokenTypeAtPosition };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
class LinesDiff {
|
|
6
|
-
constructor(changes,
|
|
7
|
-
/**
|
|
8
|
-
* Sorted by original line ranges.
|
|
9
|
-
* The original line ranges and the modified line ranges must be disjoint (but can be touching).
|
|
10
|
-
*/
|
|
11
|
-
moves,
|
|
12
|
-
/**
|
|
13
|
-
* Indicates if the time out was reached.
|
|
14
|
-
* In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time.
|
|
15
|
-
*/
|
|
16
|
-
hitTimeout) {
|
|
17
|
-
this.changes = changes;
|
|
18
|
-
this.moves = moves;
|
|
19
|
-
this.hitTimeout = hitTimeout;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
class MovedText {
|
|
23
|
-
constructor(lineRangeMapping, changes) {
|
|
24
|
-
this.lineRangeMapping = lineRangeMapping;
|
|
25
|
-
this.changes = changes;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export { LinesDiff, MovedText };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { LegacyLinesDiffComputer } from './legacyLinesDiffComputer.js';
|
|
2
|
-
import { DefaultLinesDiffComputer } from './defaultLinesDiffComputer/defaultLinesDiffComputer.js';
|
|
3
|
-
|
|
4
|
-
/*---------------------------------------------------------------------------------------------
|
|
5
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
6
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
7
|
-
*--------------------------------------------------------------------------------------------*/
|
|
8
|
-
const linesDiffComputers = {
|
|
9
|
-
getLegacy: () => new LegacyLinesDiffComputer(),
|
|
10
|
-
getDefault: () => new DefaultLinesDiffComputer(),
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export { linesDiffComputers };
|