monaco-editor11 1.0.7 → 1.0.9

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.
Files changed (237) hide show
  1. package/dist/assets/css.worker-C7FogG4G.js +93 -0
  2. package/dist/assets/editor.worker-iXcRX1Tq.js +26 -0
  3. package/dist/assets/html.worker-C8VxctEJ.js +470 -0
  4. package/dist/assets/json.worker-CMC9kgPL.js +58 -0
  5. package/dist/assets/ts.worker-CtTJ3hNN.js +67731 -0
  6. package/dist/index.d.ts +0 -6
  7. package/dist/monaco-editor11.es.js +49 -78
  8. package/dist/monaco-editor11.umd.js +1 -50
  9. package/dist/monaco.d.ts +8 -0
  10. package/dist/workers/common/initialize.js +16 -0
  11. package/dist/workers/common/workers.js +141 -0
  12. package/dist/workers/editor/common/abstractSyntaxTokenBackend.js +128 -0
  13. package/dist/workers/editor/common/abstractText.js +89 -0
  14. package/dist/workers/editor/common/ast.js +485 -0
  15. package/dist/workers/editor/common/autoIndent.js +390 -0
  16. package/dist/workers/editor/common/beforeEditPositionMapper.js +110 -0
  17. package/dist/workers/editor/common/bracketPairsImpl.js +717 -0
  18. package/dist/workers/editor/common/bracketPairsTree.js +343 -0
  19. package/dist/workers/editor/common/brackets.js +108 -0
  20. package/dist/workers/editor/common/characterClassifier.js +59 -0
  21. package/dist/workers/editor/common/characterPair.js +40 -0
  22. package/dist/workers/editor/common/colorizedBracketPairsDecorationProvider.js +97 -0
  23. package/dist/workers/editor/common/columnRange.js +35 -0
  24. package/dist/workers/editor/common/combineTextEditInfos.js +124 -0
  25. package/dist/workers/editor/common/common.js +20 -0
  26. package/dist/workers/editor/common/computeMovedLines.js +249 -0
  27. package/dist/workers/editor/common/concat23Trees.js +192 -0
  28. package/dist/workers/editor/common/contiguousMultilineTokens.js +32 -0
  29. package/dist/workers/editor/common/contiguousMultilineTokensBuilder.js +23 -0
  30. package/dist/workers/editor/common/contiguousTokensEditing.js +128 -0
  31. package/dist/workers/editor/common/contiguousTokensStore.js +207 -0
  32. package/dist/workers/editor/common/coordinatesConverter.js +51 -0
  33. package/dist/workers/editor/common/cursor.js +899 -0
  34. package/dist/workers/editor/common/cursorAtomicMoveOperations.js +145 -0
  35. package/dist/workers/editor/common/cursorCollection.js +194 -0
  36. package/dist/workers/editor/common/cursorColumnSelection.js +93 -0
  37. package/dist/workers/editor/common/cursorColumns.js +112 -0
  38. package/dist/workers/editor/common/cursorCommon.js +250 -0
  39. package/dist/workers/editor/common/cursorContext.js +15 -0
  40. package/dist/workers/editor/common/cursorDeleteOperations.js +231 -0
  41. package/dist/workers/editor/common/cursorMoveCommands.js +676 -0
  42. package/dist/workers/editor/common/cursorMoveOperations.js +290 -0
  43. package/dist/workers/editor/common/cursorTypeEditOperations.js +968 -0
  44. package/dist/workers/editor/common/cursorTypeOperations.js +173 -0
  45. package/dist/workers/editor/common/cursorUtils.js +75 -0
  46. package/dist/workers/editor/common/cursorWordOperations.js +720 -0
  47. package/dist/workers/editor/common/defaultDocumentColorsComputer.js +138 -0
  48. package/dist/workers/editor/common/defaultLinesDiffComputer.js +188 -0
  49. package/dist/workers/editor/common/diffAlgorithm.js +139 -0
  50. package/dist/workers/editor/common/diffEditor.js +38 -0
  51. package/dist/workers/editor/common/dynamicProgrammingDiffing.js +101 -0
  52. package/dist/workers/editor/common/edit.js +183 -0
  53. package/dist/workers/editor/common/editOperation.js +36 -0
  54. package/dist/workers/editor/common/editStack.js +363 -0
  55. package/dist/workers/editor/common/editorAction.js +26 -0
  56. package/dist/workers/editor/common/editorBaseApi.js +43 -0
  57. package/dist/workers/editor/common/editorColorRegistry.js +102 -0
  58. package/dist/workers/editor/common/editorCommon.js +13 -0
  59. package/dist/workers/editor/common/editorConfigurationSchema.js +338 -0
  60. package/dist/workers/editor/common/editorContextKeys.js +84 -0
  61. package/dist/workers/editor/common/editorFeatures.js +17 -0
  62. package/dist/workers/editor/common/editorOptions.js +3440 -0
  63. package/dist/workers/editor/common/editorTheme.js +23 -0
  64. package/dist/workers/editor/common/editorWebWorker.js +299 -0
  65. package/dist/workers/editor/common/editorWorker.js +9 -0
  66. package/dist/workers/editor/common/editorWorkerHost.js +15 -0
  67. package/dist/workers/editor/common/editorZoom.js +26 -0
  68. package/dist/workers/editor/common/electricCharacter.js +55 -0
  69. package/dist/workers/editor/common/encodedTokenAttributes.js +79 -0
  70. package/dist/workers/editor/common/enterAction.js +53 -0
  71. package/dist/workers/editor/common/eolCounter.js +44 -0
  72. package/dist/workers/editor/common/findSectionHeaders.js +128 -0
  73. package/dist/workers/editor/common/fixBrackets.js +67 -0
  74. package/dist/workers/editor/common/fixedArray.js +70 -0
  75. package/dist/workers/editor/common/fontInfo.js +172 -0
  76. package/dist/workers/editor/common/fontInfoFromSettings.js +29 -0
  77. package/dist/workers/editor/common/getIconClasses.js +106 -0
  78. package/dist/workers/editor/common/getPositionOffsetTransformerFromTextModel.js +24 -0
  79. package/dist/workers/editor/common/glyphLanesModel.js +61 -0
  80. package/dist/workers/editor/common/guidesTextModelPart.js +405 -0
  81. package/dist/workers/editor/common/heuristicSequenceOptimizations.js +374 -0
  82. package/dist/workers/editor/common/indentRules.js +63 -0
  83. package/dist/workers/editor/common/indentation.js +39 -0
  84. package/dist/workers/editor/common/indentationGuesser.js +178 -0
  85. package/dist/workers/editor/common/indentationLineProcessor.js +193 -0
  86. package/dist/workers/editor/common/inlineDecorations.js +26 -0
  87. package/dist/workers/editor/common/inplaceReplaceSupport.js +87 -0
  88. package/dist/workers/editor/common/inputMode.js +22 -0
  89. package/dist/workers/editor/common/intervalTree.js +1002 -0
  90. package/dist/workers/editor/common/language.js +9 -0
  91. package/dist/workers/editor/common/languageBracketsConfiguration.js +133 -0
  92. package/dist/workers/editor/common/languageConfiguration.js +138 -0
  93. package/dist/workers/editor/common/languageConfigurationRegistry.js +361 -0
  94. package/dist/workers/editor/common/languageFeatureDebounce.js +137 -0
  95. package/dist/workers/editor/common/languageFeatureRegistry.js +180 -0
  96. package/dist/workers/editor/common/languageFeatures.js +9 -0
  97. package/dist/workers/editor/common/languageFeaturesService.js +47 -0
  98. package/dist/workers/editor/common/languageSelector.js +112 -0
  99. package/dist/workers/editor/common/languageService.js +92 -0
  100. package/dist/workers/editor/common/languages.js +522 -0
  101. package/dist/workers/editor/common/languagesAssociations.js +193 -0
  102. package/dist/workers/editor/common/languagesRegistry.js +237 -0
  103. package/dist/workers/editor/common/legacyLinesDiffComputer.js +468 -0
  104. package/dist/workers/editor/common/length.js +129 -0
  105. package/dist/workers/editor/common/lineDecorations.js +208 -0
  106. package/dist/workers/editor/common/lineEdit.js +75 -0
  107. package/dist/workers/editor/common/lineHeights.js +370 -0
  108. package/dist/workers/editor/common/linePart.js +25 -0
  109. package/dist/workers/editor/common/lineRange.js +312 -0
  110. package/dist/workers/editor/common/lineSequence.js +36 -0
  111. package/dist/workers/editor/common/lineTokens.js +405 -0
  112. package/dist/workers/editor/common/linesDiffComputer.js +29 -0
  113. package/dist/workers/editor/common/linesDiffComputers.js +13 -0
  114. package/dist/workers/editor/common/linesLayout.js +765 -0
  115. package/dist/workers/editor/common/linesSliceCharSequence.js +205 -0
  116. package/dist/workers/editor/common/linkComputer.js +269 -0
  117. package/dist/workers/editor/common/markerDecorations.js +9 -0
  118. package/dist/workers/editor/common/markerDecorationsService.js +248 -0
  119. package/dist/workers/editor/common/minimapTokensColorTracker.js +58 -0
  120. package/dist/workers/editor/common/mirrorTextModel.js +117 -0
  121. package/dist/workers/editor/common/model.js +9 -0
  122. package/dist/workers/editor/common/modelLineProjection.js +350 -0
  123. package/dist/workers/editor/common/modelLineProjectionData.js +297 -0
  124. package/dist/workers/editor/common/modelService.js +413 -0
  125. package/dist/workers/editor/common/modesRegistry.js +75 -0
  126. package/dist/workers/editor/common/monospaceLineBreaksComputer.js +473 -0
  127. package/dist/workers/editor/common/myersDiffAlgorithm.js +159 -0
  128. package/dist/workers/editor/common/nodeReader.js +127 -0
  129. package/dist/workers/editor/common/nullTokenize.js +29 -0
  130. package/dist/workers/editor/common/offsetRange.js +225 -0
  131. package/dist/workers/editor/common/onEnter.js +109 -0
  132. package/dist/workers/editor/common/oneCursor.js +117 -0
  133. package/dist/workers/editor/common/overviewZoneManager.js +176 -0
  134. package/dist/workers/editor/common/parser.js +121 -0
  135. package/dist/workers/editor/common/pieceTreeBase.js +1473 -0
  136. package/dist/workers/editor/common/pieceTreeTextBuffer.js +461 -0
  137. package/dist/workers/editor/common/pieceTreeTextBufferBuilder.js +140 -0
  138. package/dist/workers/editor/common/point.js +50 -0
  139. package/dist/workers/editor/common/position.js +142 -0
  140. package/dist/workers/editor/common/positionToOffset.js +17 -0
  141. package/dist/workers/editor/common/positionToOffsetImpl.js +98 -0
  142. package/dist/workers/editor/common/prefixSumComputer.js +226 -0
  143. package/dist/workers/editor/common/range.js +421 -0
  144. package/dist/workers/editor/common/rangeMapping.js +229 -0
  145. package/dist/workers/editor/common/rangeSingleLine.js +17 -0
  146. package/dist/workers/editor/common/rbTreeBase.js +362 -0
  147. package/dist/workers/editor/common/rect.js +163 -0
  148. package/dist/workers/editor/common/replaceCommand.js +158 -0
  149. package/dist/workers/editor/common/resolverService.js +5 -0
  150. package/dist/workers/editor/common/rgba.js +35 -0
  151. package/dist/workers/editor/common/richEditBrackets.js +356 -0
  152. package/dist/workers/editor/common/selection.js +145 -0
  153. package/dist/workers/editor/common/semanticTokensDto.js +82 -0
  154. package/dist/workers/editor/common/semanticTokensProviderStyling.js +263 -0
  155. package/dist/workers/editor/common/semanticTokensStyling.js +9 -0
  156. package/dist/workers/editor/common/semanticTokensStylingService.js +47 -0
  157. package/dist/workers/editor/common/shiftCommand.js +241 -0
  158. package/dist/workers/editor/common/smallImmutableSet.js +108 -0
  159. package/dist/workers/editor/common/sparseMultilineTokens.js +548 -0
  160. package/dist/workers/editor/common/sparseTokensStore.js +210 -0
  161. package/dist/workers/editor/common/standaloneEnums.js +1017 -0
  162. package/dist/workers/editor/common/standaloneStrings.js +42 -0
  163. package/dist/workers/editor/common/stringBuilder.js +122 -0
  164. package/dist/workers/editor/common/stringEdit.js +165 -0
  165. package/dist/workers/editor/common/supports.js +58 -0
  166. package/dist/workers/editor/common/surroundSelectionCommand.js +44 -0
  167. package/dist/workers/editor/common/textChange.js +248 -0
  168. package/dist/workers/editor/common/textEdit.js +269 -0
  169. package/dist/workers/editor/common/textLength.js +87 -0
  170. package/dist/workers/editor/common/textModel.js +2031 -0
  171. package/dist/workers/editor/common/textModelBracketPairs.js +45 -0
  172. package/dist/workers/editor/common/textModelDefaults.js +18 -0
  173. package/dist/workers/editor/common/textModelEditSource.js +166 -0
  174. package/dist/workers/editor/common/textModelEvents.js +216 -0
  175. package/dist/workers/editor/common/textModelGuides.js +40 -0
  176. package/dist/workers/editor/common/textModelPart.js +23 -0
  177. package/dist/workers/editor/common/textModelSearch.js +455 -0
  178. package/dist/workers/editor/common/textModelStringEdit.js +11 -0
  179. package/dist/workers/editor/common/textModelSync.impl.js +307 -0
  180. package/dist/workers/editor/common/textModelText.js +26 -0
  181. package/dist/workers/editor/common/textModelTokens.js +436 -0
  182. package/dist/workers/editor/common/textResourceConfiguration.js +6 -0
  183. package/dist/workers/editor/common/textToHtmlTokenizer.js +139 -0
  184. package/dist/workers/editor/common/tokenStore.js +407 -0
  185. package/dist/workers/editor/common/tokenWithTextArray.js +73 -0
  186. package/dist/workers/editor/common/tokenization.js +287 -0
  187. package/dist/workers/editor/common/tokenizationRegistry.js +123 -0
  188. package/dist/workers/editor/common/tokenizationTextModelPart.js +275 -0
  189. package/dist/workers/editor/common/tokenizer.js +301 -0
  190. package/dist/workers/editor/common/tokenizerSyntaxTokenBackend.js +261 -0
  191. package/dist/workers/editor/common/treeSitterLibraryService.js +9 -0
  192. package/dist/workers/editor/common/treeSitterSyntaxTokenBackend.js +167 -0
  193. package/dist/workers/editor/common/treeSitterThemeService.js +9 -0
  194. package/dist/workers/editor/common/treeSitterTokenizationImpl.js +713 -0
  195. package/dist/workers/editor/common/treeSitterTree.js +395 -0
  196. package/dist/workers/editor/common/treeViewsDnd.js +24 -0
  197. package/dist/workers/editor/common/treeViewsDndService.js +12 -0
  198. package/dist/workers/editor/common/trimTrailingWhitespaceCommand.js +98 -0
  199. package/dist/workers/editor/common/unicodeTextModelHighlighter.js +188 -0
  200. package/dist/workers/editor/common/utils.js +62 -0
  201. package/dist/workers/editor/common/viewContext.js +22 -0
  202. package/dist/workers/editor/common/viewEventHandler.js +186 -0
  203. package/dist/workers/editor/common/viewEvents.js +180 -0
  204. package/dist/workers/editor/common/viewLayout.js +368 -0
  205. package/dist/workers/editor/common/viewLineRenderer.js +948 -0
  206. package/dist/workers/editor/common/viewLinesViewportData.js +30 -0
  207. package/dist/workers/editor/common/viewModel.js +98 -0
  208. package/dist/workers/editor/common/viewModelDecoration.js +55 -0
  209. package/dist/workers/editor/common/viewModelDecorations.js +132 -0
  210. package/dist/workers/editor/common/viewModelEventDispatcher.js +398 -0
  211. package/dist/workers/editor/common/viewModelImpl.js +1163 -0
  212. package/dist/workers/editor/common/viewModelLines.js +938 -0
  213. package/dist/workers/editor/common/wordCharacterClassifier.js +87 -0
  214. package/dist/workers/editor/common/wordHelper.js +127 -0
  215. package/dist/workers/editor/editor.worker.js +11 -0
  216. package/dist/workers/language/css.worker.js +8 -0
  217. package/dist/workers/language/cssMode.js +198 -0
  218. package/dist/workers/language/cssWorker.js +183 -0
  219. package/dist/workers/language/html.worker.js +8 -0
  220. package/dist/workers/language/htmlMode.js +213 -0
  221. package/dist/workers/language/htmlWorker.js +126 -0
  222. package/dist/workers/language/json.worker.js +8 -0
  223. package/dist/workers/language/jsonMode.js +224 -0
  224. package/dist/workers/language/jsonWorker.js +187 -0
  225. package/dist/workers/language/languageFeatures.js +1009 -0
  226. package/dist/workers/language/lib.index.js +103 -0
  227. package/dist/workers/language/lib.js +1107 -0
  228. package/dist/workers/language/lspLanguageFeatures.js +716 -0
  229. package/dist/workers/language/monaco.contribution.js +144 -0
  230. package/dist/workers/language/tokenization.js +189 -0
  231. package/dist/workers/language/ts.worker.js +14 -0
  232. package/dist/workers/language/tsMode.js +212 -0
  233. package/dist/workers/language/tsWorker.js +352 -0
  234. package/dist/workers/language/typescriptServices.js +210154 -0
  235. package/dist/workers/language/typescriptServicesMetadata.js +3 -0
  236. package/dist/workers/language/workerManager.js +65 -0
  237. package/package.json +3 -2
@@ -0,0 +1,45 @@
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 BracketInfo {
6
+ constructor(range,
7
+ /** 0-based level */
8
+ nestingLevel, nestingLevelOfEqualBracketType, isInvalid) {
9
+ this.range = range;
10
+ this.nestingLevel = nestingLevel;
11
+ this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;
12
+ this.isInvalid = isInvalid;
13
+ }
14
+ }
15
+ class BracketPairInfo {
16
+ constructor(range, openingBracketRange, closingBracketRange,
17
+ /** 0-based */
18
+ nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode) {
19
+ this.range = range;
20
+ this.openingBracketRange = openingBracketRange;
21
+ this.closingBracketRange = closingBracketRange;
22
+ this.nestingLevel = nestingLevel;
23
+ this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;
24
+ this.bracketPairNode = bracketPairNode;
25
+ }
26
+ get openingBracketInfo() {
27
+ return this.bracketPairNode.openingBracket.bracketInfo;
28
+ }
29
+ }
30
+ class BracketPairWithMinIndentationInfo extends BracketPairInfo {
31
+ constructor(range, openingBracketRange, closingBracketRange,
32
+ /**
33
+ * 0-based
34
+ */
35
+ nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode,
36
+ /**
37
+ * -1 if not requested, otherwise the size of the minimum indentation in the bracket pair in terms of visible columns.
38
+ */
39
+ minVisibleColumnIndentation) {
40
+ super(range, openingBracketRange, closingBracketRange, nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode);
41
+ this.minVisibleColumnIndentation = minVisibleColumnIndentation;
42
+ }
43
+ }
44
+
45
+ export { BracketInfo, BracketPairInfo, BracketPairWithMinIndentationInfo };
@@ -0,0 +1,18 @@
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
+ const EDITOR_MODEL_DEFAULTS = {
6
+ tabSize: 4,
7
+ indentSize: 4,
8
+ insertSpaces: true,
9
+ detectIndentation: true,
10
+ trimAutoWhitespace: true,
11
+ largeFileOptimizations: true,
12
+ bracketPairColorizationOptions: {
13
+ enabled: true,
14
+ independentColorPoolPerBracketType: false,
15
+ },
16
+ };
17
+
18
+ export { EDITOR_MODEL_DEFAULTS };
@@ -0,0 +1,166 @@
1
+ import { prefixedUuid } from '../../base/common/uuid.js';
2
+ import { TextLength } from './core/text/textLength.js';
3
+
4
+ const privateSymbol = Symbol('TextModelEditSource');
5
+ class TextModelEditSource {
6
+ constructor(metadata, _privateCtorGuard) {
7
+ this.metadata = metadata;
8
+ }
9
+ toString() {
10
+ return `${this.metadata.source}`;
11
+ }
12
+ getType() {
13
+ const metadata = this.metadata;
14
+ switch (metadata.source) {
15
+ case 'cursor':
16
+ return metadata.kind;
17
+ case 'inlineCompletionAccept':
18
+ return metadata.source + (metadata.$nes ? ':nes' : '');
19
+ case 'unknown':
20
+ return metadata.name || 'unknown';
21
+ default:
22
+ return metadata.source;
23
+ }
24
+ }
25
+ /**
26
+ * Converts the metadata to a key string.
27
+ * Only includes properties/values that have `level` many `$` prefixes or less.
28
+ */
29
+ toKey(level, filter = {}) {
30
+ const metadata = this.metadata;
31
+ const keys = Object.entries(metadata).filter(([key, value]) => {
32
+ const filterVal = filter[key];
33
+ if (filterVal !== undefined) {
34
+ return filterVal;
35
+ }
36
+ const prefixCount = (key.match(/\$/g) || []).length;
37
+ return prefixCount <= level && value !== undefined && value !== null && value !== '';
38
+ }).map(([key, value]) => `${key}:${value}`);
39
+ return keys.join('-');
40
+ }
41
+ }
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ function createEditSource(metadata) {
44
+ // eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any
45
+ return new TextModelEditSource(metadata, privateSymbol);
46
+ }
47
+ const EditSources = {
48
+ unknown(data) {
49
+ return createEditSource({
50
+ source: 'unknown',
51
+ name: data.name,
52
+ });
53
+ },
54
+ rename: () => createEditSource({ source: 'rename' }),
55
+ chatApplyEdits(data) {
56
+ return createEditSource({
57
+ source: 'Chat.applyEdits',
58
+ $modelId: avoidPathRedaction(data.modelId),
59
+ $extensionId: data.extensionId?.extensionId,
60
+ $extensionVersion: data.extensionId?.version,
61
+ $$languageId: data.languageId,
62
+ $$sessionId: data.sessionId,
63
+ $$requestId: data.requestId,
64
+ $$mode: data.mode,
65
+ $$codeBlockSuggestionId: data.codeBlockSuggestionId,
66
+ });
67
+ },
68
+ chatUndoEdits: () => createEditSource({ source: 'Chat.undoEdits' }),
69
+ chatReset: () => createEditSource({ source: 'Chat.reset' }),
70
+ inlineCompletionAccept(data) {
71
+ return createEditSource({
72
+ source: 'inlineCompletionAccept',
73
+ $nes: data.nes,
74
+ ...toProperties(data.providerId),
75
+ $$requestUuid: data.requestUuid,
76
+ $$languageId: data.languageId,
77
+ });
78
+ },
79
+ inlineCompletionPartialAccept(data) {
80
+ return createEditSource({
81
+ source: 'inlineCompletionPartialAccept',
82
+ type: data.type,
83
+ $nes: data.nes,
84
+ ...toProperties(data.providerId),
85
+ $$requestUuid: data.requestUuid,
86
+ $$languageId: data.languageId,
87
+ });
88
+ },
89
+ inlineChatApplyEdit(data) {
90
+ return createEditSource({
91
+ source: 'inlineChat.applyEdits',
92
+ $modelId: avoidPathRedaction(data.modelId),
93
+ $extensionId: data.extensionId?.extensionId,
94
+ $extensionVersion: data.extensionId?.version,
95
+ $$sessionId: data.sessionId,
96
+ $$requestId: data.requestId,
97
+ $$languageId: data.languageId,
98
+ });
99
+ },
100
+ reloadFromDisk: () => createEditSource({ source: 'reloadFromDisk' }),
101
+ cursor(data) {
102
+ return createEditSource({
103
+ source: 'cursor',
104
+ kind: data.kind,
105
+ detailedSource: data.detailedSource,
106
+ });
107
+ },
108
+ setValue: () => createEditSource({ source: 'setValue' }),
109
+ eolChange: () => createEditSource({ source: 'eolChange' }),
110
+ applyEdits: () => createEditSource({ source: 'applyEdits' }),
111
+ snippet: () => createEditSource({ source: 'snippet' }),
112
+ suggest: (data) => createEditSource({ source: 'suggest', ...toProperties(data.providerId) }),
113
+ codeAction: (data) => createEditSource({ source: 'codeAction', $kind: data.kind, ...toProperties(data.providerId) })
114
+ };
115
+ function toProperties(version) {
116
+ if (!version) {
117
+ return {};
118
+ }
119
+ return {
120
+ $extensionId: version.extensionId,
121
+ $extensionVersion: version.extensionVersion,
122
+ $providerId: version.providerId,
123
+ };
124
+ }
125
+ function avoidPathRedaction(str) {
126
+ if (str === undefined) {
127
+ return undefined;
128
+ }
129
+ // To avoid false-positive file path redaction.
130
+ return str.replaceAll('/', '|');
131
+ }
132
+ class EditDeltaInfo {
133
+ static fromText(text) {
134
+ const linesAdded = TextLength.ofText(text).lineCount;
135
+ const charsAdded = text.length;
136
+ return new EditDeltaInfo(linesAdded, 0, charsAdded, 0);
137
+ }
138
+ static tryCreate(linesAdded, linesRemoved, charsAdded, charsRemoved) {
139
+ if (linesAdded === undefined || linesRemoved === undefined || charsAdded === undefined || charsRemoved === undefined) {
140
+ return undefined;
141
+ }
142
+ return new EditDeltaInfo(linesAdded, linesRemoved, charsAdded, charsRemoved);
143
+ }
144
+ constructor(linesAdded, linesRemoved, charsAdded, charsRemoved) {
145
+ this.linesAdded = linesAdded;
146
+ this.linesRemoved = linesRemoved;
147
+ this.charsAdded = charsAdded;
148
+ this.charsRemoved = charsRemoved;
149
+ }
150
+ }
151
+ var EditSuggestionId;
152
+ (function (EditSuggestionId) {
153
+ /**
154
+ * Use AiEditTelemetryServiceImpl to create a new id!
155
+ */
156
+ function newId(genPrefixedUuid) {
157
+ const id = genPrefixedUuid ? genPrefixedUuid('sgt') : prefixedUuid('sgt');
158
+ return toEditIdentity(id);
159
+ }
160
+ EditSuggestionId.newId = newId;
161
+ })(EditSuggestionId || (EditSuggestionId = {}));
162
+ function toEditIdentity(id) {
163
+ return id;
164
+ }
165
+
166
+ export { EditDeltaInfo, EditSources, EditSuggestionId, TextModelEditSource };
@@ -0,0 +1,216 @@
1
+ /**
2
+ * An event describing that a model has been reset to a new value.
3
+ * @internal
4
+ */
5
+ class ModelRawFlush {
6
+ constructor() {
7
+ this.changeType = 1 /* RawContentChangedType.Flush */;
8
+ }
9
+ }
10
+ /**
11
+ * Represents text injected on a line
12
+ * @internal
13
+ */
14
+ class LineInjectedText {
15
+ static applyInjectedText(lineText, injectedTexts) {
16
+ if (!injectedTexts || injectedTexts.length === 0) {
17
+ return lineText;
18
+ }
19
+ let result = '';
20
+ let lastOriginalOffset = 0;
21
+ for (const injectedText of injectedTexts) {
22
+ result += lineText.substring(lastOriginalOffset, injectedText.column - 1);
23
+ lastOriginalOffset = injectedText.column - 1;
24
+ result += injectedText.options.content;
25
+ }
26
+ result += lineText.substring(lastOriginalOffset);
27
+ return result;
28
+ }
29
+ static fromDecorations(decorations) {
30
+ const result = [];
31
+ for (const decoration of decorations) {
32
+ if (decoration.options.before && decoration.options.before.content.length > 0) {
33
+ result.push(new LineInjectedText(decoration.ownerId, decoration.range.startLineNumber, decoration.range.startColumn, decoration.options.before, 0));
34
+ }
35
+ if (decoration.options.after && decoration.options.after.content.length > 0) {
36
+ result.push(new LineInjectedText(decoration.ownerId, decoration.range.endLineNumber, decoration.range.endColumn, decoration.options.after, 1));
37
+ }
38
+ }
39
+ result.sort((a, b) => {
40
+ if (a.lineNumber === b.lineNumber) {
41
+ if (a.column === b.column) {
42
+ return a.order - b.order;
43
+ }
44
+ return a.column - b.column;
45
+ }
46
+ return a.lineNumber - b.lineNumber;
47
+ });
48
+ return result;
49
+ }
50
+ constructor(ownerId, lineNumber, column, options, order) {
51
+ this.ownerId = ownerId;
52
+ this.lineNumber = lineNumber;
53
+ this.column = column;
54
+ this.options = options;
55
+ this.order = order;
56
+ }
57
+ }
58
+ /**
59
+ * An event describing that a line has changed in a model.
60
+ * @internal
61
+ */
62
+ class ModelRawLineChanged {
63
+ constructor(lineNumber, detail, injectedText) {
64
+ this.changeType = 2 /* RawContentChangedType.LineChanged */;
65
+ this.lineNumber = lineNumber;
66
+ this.detail = detail;
67
+ this.injectedText = injectedText;
68
+ }
69
+ }
70
+ /**
71
+ * An event describing that a line height has changed in the model.
72
+ * @internal
73
+ */
74
+ class ModelLineHeightChanged {
75
+ constructor(ownerId, decorationId, lineNumber, lineHeight) {
76
+ this.ownerId = ownerId;
77
+ this.decorationId = decorationId;
78
+ this.lineNumber = lineNumber;
79
+ this.lineHeight = lineHeight;
80
+ }
81
+ }
82
+ /**
83
+ * An event describing that a line height has changed in the model.
84
+ * @internal
85
+ */
86
+ class ModelFontChanged {
87
+ constructor(ownerId, lineNumber) {
88
+ this.ownerId = ownerId;
89
+ this.lineNumber = lineNumber;
90
+ }
91
+ }
92
+ /**
93
+ * An event describing that line(s) have been deleted in a model.
94
+ * @internal
95
+ */
96
+ class ModelRawLinesDeleted {
97
+ constructor(fromLineNumber, toLineNumber) {
98
+ this.changeType = 3 /* RawContentChangedType.LinesDeleted */;
99
+ this.fromLineNumber = fromLineNumber;
100
+ this.toLineNumber = toLineNumber;
101
+ }
102
+ }
103
+ /**
104
+ * An event describing that line(s) have been inserted in a model.
105
+ * @internal
106
+ */
107
+ class ModelRawLinesInserted {
108
+ constructor(fromLineNumber, toLineNumber, detail, injectedTexts) {
109
+ this.changeType = 4 /* RawContentChangedType.LinesInserted */;
110
+ this.injectedTexts = injectedTexts;
111
+ this.fromLineNumber = fromLineNumber;
112
+ this.toLineNumber = toLineNumber;
113
+ this.detail = detail;
114
+ }
115
+ }
116
+ /**
117
+ * An event describing that a model has had its EOL changed.
118
+ * @internal
119
+ */
120
+ class ModelRawEOLChanged {
121
+ constructor() {
122
+ this.changeType = 5 /* RawContentChangedType.EOLChanged */;
123
+ }
124
+ }
125
+ /**
126
+ * An event describing a change in the text of a model.
127
+ * @internal
128
+ */
129
+ class ModelRawContentChangedEvent {
130
+ constructor(changes, versionId, isUndoing, isRedoing) {
131
+ this.changes = changes;
132
+ this.versionId = versionId;
133
+ this.isUndoing = isUndoing;
134
+ this.isRedoing = isRedoing;
135
+ this.resultingSelection = null;
136
+ }
137
+ containsEvent(type) {
138
+ for (let i = 0, len = this.changes.length; i < len; i++) {
139
+ const change = this.changes[i];
140
+ if (change.changeType === type) {
141
+ return true;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ static merge(a, b) {
147
+ const changes = [].concat(a.changes).concat(b.changes);
148
+ const versionId = b.versionId;
149
+ const isUndoing = (a.isUndoing || b.isUndoing);
150
+ const isRedoing = (a.isRedoing || b.isRedoing);
151
+ return new ModelRawContentChangedEvent(changes, versionId, isUndoing, isRedoing);
152
+ }
153
+ }
154
+ /**
155
+ * An event describing a change in injected text.
156
+ * @internal
157
+ */
158
+ class ModelInjectedTextChangedEvent {
159
+ constructor(changes) {
160
+ this.changes = changes;
161
+ }
162
+ }
163
+ /**
164
+ * An event describing a change of a line height.
165
+ * @internal
166
+ */
167
+ class ModelLineHeightChangedEvent {
168
+ constructor(changes) {
169
+ this.changes = changes;
170
+ }
171
+ }
172
+ /**
173
+ * An event describing a change in fonts.
174
+ * @internal
175
+ */
176
+ class ModelFontChangedEvent {
177
+ constructor(changes) {
178
+ this.changes = changes;
179
+ }
180
+ }
181
+ /**
182
+ * @internal
183
+ */
184
+ class InternalModelContentChangeEvent {
185
+ constructor(rawContentChangedEvent, contentChangedEvent) {
186
+ this.rawContentChangedEvent = rawContentChangedEvent;
187
+ this.contentChangedEvent = contentChangedEvent;
188
+ }
189
+ merge(other) {
190
+ const rawContentChangedEvent = ModelRawContentChangedEvent.merge(this.rawContentChangedEvent, other.rawContentChangedEvent);
191
+ const contentChangedEvent = InternalModelContentChangeEvent._mergeChangeEvents(this.contentChangedEvent, other.contentChangedEvent);
192
+ return new InternalModelContentChangeEvent(rawContentChangedEvent, contentChangedEvent);
193
+ }
194
+ static _mergeChangeEvents(a, b) {
195
+ const changes = [].concat(a.changes).concat(b.changes);
196
+ const eol = b.eol;
197
+ const versionId = b.versionId;
198
+ const isUndoing = (a.isUndoing || b.isUndoing);
199
+ const isRedoing = (a.isRedoing || b.isRedoing);
200
+ const isFlush = (a.isFlush || b.isFlush);
201
+ const isEolChange = a.isEolChange && b.isEolChange; // both must be true to not confuse listeners who skip such edits
202
+ return {
203
+ changes: changes,
204
+ eol: eol,
205
+ isEolChange: isEolChange,
206
+ versionId: versionId,
207
+ isUndoing: isUndoing,
208
+ isRedoing: isRedoing,
209
+ isFlush: isFlush,
210
+ detailedReasons: a.detailedReasons.concat(b.detailedReasons),
211
+ detailedReasonsChangeLengths: a.detailedReasonsChangeLengths.concat(b.detailedReasonsChangeLengths),
212
+ };
213
+ }
214
+ }
215
+
216
+ export { InternalModelContentChangeEvent, LineInjectedText, ModelFontChanged, ModelFontChangedEvent, ModelInjectedTextChangedEvent, ModelLineHeightChanged, ModelLineHeightChangedEvent, ModelRawContentChangedEvent, ModelRawEOLChanged, ModelRawFlush, ModelRawLineChanged, ModelRawLinesDeleted, ModelRawLinesInserted };
@@ -0,0 +1,40 @@
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
+ var HorizontalGuidesState;
6
+ (function (HorizontalGuidesState) {
7
+ HorizontalGuidesState[HorizontalGuidesState["Disabled"] = 0] = "Disabled";
8
+ HorizontalGuidesState[HorizontalGuidesState["EnabledForActive"] = 1] = "EnabledForActive";
9
+ HorizontalGuidesState[HorizontalGuidesState["Enabled"] = 2] = "Enabled";
10
+ })(HorizontalGuidesState || (HorizontalGuidesState = {}));
11
+ class IndentGuide {
12
+ constructor(visibleColumn, column, className,
13
+ /**
14
+ * If set, this indent guide is a horizontal guide (no vertical part).
15
+ * It starts at visibleColumn and continues until endColumn.
16
+ */
17
+ horizontalLine,
18
+ /**
19
+ * If set (!= -1), only show this guide for wrapped lines that don't contain this model column, but are after it.
20
+ */
21
+ forWrappedLinesAfterColumn, forWrappedLinesBeforeOrAtColumn) {
22
+ this.visibleColumn = visibleColumn;
23
+ this.column = column;
24
+ this.className = className;
25
+ this.horizontalLine = horizontalLine;
26
+ this.forWrappedLinesAfterColumn = forWrappedLinesAfterColumn;
27
+ this.forWrappedLinesBeforeOrAtColumn = forWrappedLinesBeforeOrAtColumn;
28
+ if ((visibleColumn !== -1) === (column !== -1)) {
29
+ throw new Error();
30
+ }
31
+ }
32
+ }
33
+ class IndentGuideHorizontalLine {
34
+ constructor(top, endColumn) {
35
+ this.top = top;
36
+ this.endColumn = endColumn;
37
+ }
38
+ }
39
+
40
+ export { HorizontalGuidesState, IndentGuide, IndentGuideHorizontalLine };
@@ -0,0 +1,23 @@
1
+ import { Disposable } from '../../../base/common/lifecycle.js';
2
+
3
+ /*---------------------------------------------------------------------------------------------
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License. See License.txt in the project root for license information.
6
+ *--------------------------------------------------------------------------------------------*/
7
+ class TextModelPart extends Disposable {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._isDisposed = false;
11
+ }
12
+ dispose() {
13
+ super.dispose();
14
+ this._isDisposed = true;
15
+ }
16
+ assertNotDisposed() {
17
+ if (this._isDisposed) {
18
+ throw new Error('TextModelPart is disposed!');
19
+ }
20
+ }
21
+ }
22
+
23
+ export { TextModelPart };