@vscode/chat-lib 0.0.1 → 0.0.2
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/src/_internal/extension/xtab/common/promptCrafting.d.ts.map +1 -1
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js +6 -5
- package/dist/src/_internal/extension/xtab/common/promptCrafting.js.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts +1 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/configuration/common/configurationService.js +1 -0
- package/dist/src/_internal/platform/configuration/common/configurationService.js.map +1 -1
- package/dist/src/_internal/platform/env/common/envService.d.ts +5 -0
- package/dist/src/_internal/platform/env/common/envService.d.ts.map +1 -1
- package/dist/src/_internal/platform/env/common/envService.js +2 -1
- package/dist/src/_internal/platform/env/common/envService.js.map +1 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.d.ts +3 -0
- package/dist/src/_internal/platform/env/common/nullEnvService.d.ts.map +1 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.js +8 -1
- package/dist/src/_internal/platform/env/common/nullEnvService.js.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts +7 -0
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.d.ts.map +1 -1
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js +1 -0
- package/dist/src/_internal/platform/telemetry/common/nullExperimentationService.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts +8 -0
- package/dist/src/_internal/util/common/test/shims/chatTypes.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js +19 -1
- package/dist/src/_internal/util/common/test/shims/chatTypes.js.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.d.ts.map +1 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js +8 -1
- package/dist/src/_internal/util/common/test/shims/vscodeTypesShim.js.map +1 -1
- package/dist/src/_internal/vscodeTypes.d.ts +4 -0
- package/dist/src/_internal/vscodeTypes.d.ts.map +1 -1
- package/dist/src/_internal/vscodeTypes.js +5 -1
- package/dist/src/_internal/vscodeTypes.js.map +1 -1
- package/dist/src/main.d.ts +5 -0
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +12 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/package.json +46 -19
- package/package.json +3 -6
- package/src/_internal/extension/byok/node/openAIEndpoint.ts +0 -171
- package/src/_internal/extension/common/constants.ts +0 -90
- package/src/_internal/extension/inlineEdits/common/delayer.ts +0 -108
- package/src/_internal/extension/inlineEdits/common/editRebase.ts +0 -268
- package/src/_internal/extension/inlineEdits/common/ghNearbyNesProvider.tsx +0 -163
- package/src/_internal/extension/inlineEdits/common/nearbyCursorInlineEditProvider.ts +0 -225
- package/src/_internal/extension/inlineEdits/common/rejectionCollector.ts +0 -164
- package/src/_internal/extension/inlineEdits/node/debugRecorder.ts +0 -205
- package/src/_internal/extension/inlineEdits/node/importFiltering.ts +0 -25
- package/src/_internal/extension/inlineEdits/node/nesConfigs.ts +0 -12
- package/src/_internal/extension/inlineEdits/node/nextEditCache.ts +0 -278
- package/src/_internal/extension/inlineEdits/node/nextEditProvider.ts +0 -778
- package/src/_internal/extension/inlineEdits/node/nextEditProviderTelemetry.ts +0 -983
- package/src/_internal/extension/inlineEdits/node/nextEditResult.ts +0 -40
- package/src/_internal/extension/prompt/common/importStatement.ts +0 -25
- package/src/_internal/extension/prompt/node/chatMLFetcher.ts +0 -706
- package/src/_internal/extension/prompts/node/inline/summarizedDocument/fragments.ts +0 -146
- package/src/_internal/extension/prompts/node/inline/summarizedDocument/implementation.ts +0 -527
- package/src/_internal/extension/prompts/node/inline/summarizedDocument/projectedText.ts +0 -76
- package/src/_internal/extension/prompts/node/inline/visualization.ts +0 -65
- package/src/_internal/extension/vscode.proposed.activeComment.d.ts +0 -23
- package/src/_internal/extension/vscode.proposed.aiRelatedInformation.d.ts +0 -49
- package/src/_internal/extension/vscode.proposed.aiSettingsSearch.d.ts +0 -31
- package/src/_internal/extension/vscode.proposed.aiTextSearchProvider.d.ts +0 -41
- package/src/_internal/extension/vscode.proposed.authLearnMore.d.ts +0 -16
- package/src/_internal/extension/vscode.proposed.chatBinaryReferenceData.d.ts +0 -41
- package/src/_internal/extension/vscode.proposed.chatEditing.d.ts +0 -29
- package/src/_internal/extension/vscode.proposed.chatParticipantAdditions.d.ts +0 -636
- package/src/_internal/extension/vscode.proposed.chatParticipantPrivate.d.ts +0 -276
- package/src/_internal/extension/vscode.proposed.chatProvider.d.ts +0 -62
- package/src/_internal/extension/vscode.proposed.chatReadonlyPromptReference.d.ts +0 -17
- package/src/_internal/extension/vscode.proposed.chatReferenceDiagnostic.d.ts +0 -23
- package/src/_internal/extension/vscode.proposed.chatSessionsProvider.d.ts +0 -218
- package/src/_internal/extension/vscode.proposed.chatStatusItem.d.ts +0 -61
- package/src/_internal/extension/vscode.proposed.codeActionAI.d.ts +0 -16
- package/src/_internal/extension/vscode.proposed.commentReveal.d.ts +0 -32
- package/src/_internal/extension/vscode.proposed.contribCommentThreadAdditionalMenu.d.ts +0 -8
- package/src/_internal/extension/vscode.proposed.contribCommentsViewThreadMenus.d.ts +0 -6
- package/src/_internal/extension/vscode.proposed.contribSourceControlInputBoxMenu.d.ts +0 -7
- package/src/_internal/extension/vscode.proposed.dataChannels.d.ts +0 -19
- package/src/_internal/extension/vscode.proposed.defaultChatParticipant.d.ts +0 -52
- package/src/_internal/extension/vscode.proposed.documentFiltersExclusive.d.ts +0 -13
- package/src/_internal/extension/vscode.proposed.embeddings.d.ts +0 -33
- package/src/_internal/extension/vscode.proposed.extensionsAny.d.ts +0 -40
- package/src/_internal/extension/vscode.proposed.findFiles2.d.ts +0 -125
- package/src/_internal/extension/vscode.proposed.findTextInFiles.d.ts +0 -104
- package/src/_internal/extension/vscode.proposed.findTextInFiles2.d.ts +0 -144
- package/src/_internal/extension/vscode.proposed.inlineCompletionsAdditions.d.ts +0 -202
- package/src/_internal/extension/vscode.proposed.interactive.d.ts +0 -11
- package/src/_internal/extension/vscode.proposed.languageModelCapabilities.d.ts +0 -25
- package/src/_internal/extension/vscode.proposed.languageModelDataPart.d.ts +0 -163
- package/src/_internal/extension/vscode.proposed.languageModelSystem.d.ts +0 -17
- package/src/_internal/extension/vscode.proposed.languageModelThinkingPart.d.ts +0 -49
- package/src/_internal/extension/vscode.proposed.languageModelToolResultAudience.d.ts +0 -36
- package/src/_internal/extension/vscode.proposed.mappedEditsProvider.d.ts +0 -110
- package/src/_internal/extension/vscode.proposed.newSymbolNamesProvider.d.ts +0 -47
- package/src/_internal/extension/vscode.proposed.readonlyMessage.d.ts +0 -14
- package/src/_internal/extension/vscode.proposed.resolvers.d.ts +0 -475
- package/src/_internal/extension/vscode.proposed.scmInputBoxValueProvider.d.ts +0 -25
- package/src/_internal/extension/vscode.proposed.taskProblemMatcherStatus.d.ts +0 -42
- package/src/_internal/extension/vscode.proposed.terminalDataWriteEvent.d.ts +0 -32
- package/src/_internal/extension/vscode.proposed.terminalExecuteCommandEvent.d.ts +0 -48
- package/src/_internal/extension/vscode.proposed.terminalQuickFixProvider.d.ts +0 -87
- package/src/_internal/extension/vscode.proposed.terminalSelection.d.ts +0 -16
- package/src/_internal/extension/vscode.proposed.testObserver.d.ts +0 -199
- package/src/_internal/extension/vscode.proposed.textDocumentChangeReason.d.ts +0 -30
- package/src/_internal/extension/vscode.proposed.textSearchProvider.d.ts +0 -281
- package/src/_internal/extension/vscode.proposed.textSearchProvider2.d.ts +0 -297
- package/src/_internal/extension/xtab/common/promptCrafting.ts +0 -670
- package/src/_internal/extension/xtab/node/xtabEndpoint.ts +0 -102
- package/src/_internal/extension/xtab/node/xtabProvider.ts +0 -976
- package/src/_internal/extension/xtab/node/xtabUtils.ts +0 -62
- package/src/_internal/platform/authentication/common/authentication.ts +0 -309
- package/src/_internal/platform/authentication/common/copilotToken.ts +0 -300
- package/src/_internal/platform/authentication/common/copilotTokenManager.ts +0 -59
- package/src/_internal/platform/authentication/common/copilotTokenStore.ts +0 -40
- package/src/_internal/platform/authentication/common/staticGitHubAuthenticationService.ts +0 -96
- package/src/_internal/platform/authentication/node/copilotTokenManager.ts +0 -303
- package/src/_internal/platform/chat/common/chatMLFetcher.ts +0 -124
- package/src/_internal/platform/chat/common/chatQuotaService.ts +0 -63
- package/src/_internal/platform/chat/common/chatQuotaServiceImpl.ts +0 -96
- package/src/_internal/platform/chat/common/commonTypes.ts +0 -353
- package/src/_internal/platform/chat/common/conversationOptions.ts +0 -16
- package/src/_internal/platform/chat/common/globalStringUtils.ts +0 -54
- package/src/_internal/platform/chat/common/interactionService.ts +0 -35
- package/src/_internal/platform/configuration/common/configurationService.ts +0 -803
- package/src/_internal/platform/configuration/common/defaultsOnlyConfigurationService.ts +0 -39
- package/src/_internal/platform/configuration/common/jsonSchema.ts +0 -139
- package/src/_internal/platform/configuration/common/validator.ts +0 -242
- package/src/_internal/platform/diff/common/diffService.ts +0 -41
- package/src/_internal/platform/diff/common/diffWorker.ts +0 -83
- package/src/_internal/platform/diff/node/diffServiceImpl.ts +0 -85
- package/src/_internal/platform/editing/common/abstractText.ts +0 -177
- package/src/_internal/platform/editing/common/notebookDocumentSnapshot.ts +0 -122
- package/src/_internal/platform/editing/common/positionOffsetTransformer.ts +0 -202
- package/src/_internal/platform/editing/common/textDocumentSnapshot.ts +0 -274
- package/src/_internal/platform/endpoint/common/capiClient.ts +0 -37
- package/src/_internal/platform/endpoint/common/chatModelCapabilities.ts +0 -115
- package/src/_internal/platform/endpoint/common/domainService.ts +0 -27
- package/src/_internal/platform/endpoint/common/endpointProvider.ts +0 -104
- package/src/_internal/platform/endpoint/common/endpointTypes.ts +0 -12
- package/src/_internal/platform/endpoint/common/licenseAgreement.ts +0 -11
- package/src/_internal/platform/endpoint/common/statefulMarkerContainer.tsx +0 -85
- package/src/_internal/platform/endpoint/common/thinkingDataContainer.tsx +0 -44
- package/src/_internal/platform/endpoint/node/capiClientImpl.ts +0 -18
- package/src/_internal/platform/endpoint/node/chatEndpoint.ts +0 -435
- package/src/_internal/platform/endpoint/node/domainServiceImpl.ts +0 -80
- package/src/_internal/platform/endpoint/node/proxyXtabEndpoint.ts +0 -43
- package/src/_internal/platform/endpoint/node/responsesApi.ts +0 -326
- package/src/_internal/platform/env/common/envService.ts +0 -134
- package/src/_internal/platform/env/common/nullEnvService.ts +0 -68
- package/src/_internal/platform/env/common/packagejson.ts +0 -49
- package/src/_internal/platform/git/common/gitExtensionService.ts +0 -21
- package/src/_internal/platform/git/common/nullGitExtensionService.ts +0 -20
- package/src/_internal/platform/git/vscode/git.d.ts +0 -414
- package/src/_internal/platform/github/common/githubAPI.ts +0 -44
- package/src/_internal/platform/github/common/githubService.ts +0 -87
- package/src/_internal/platform/github/common/nullOctokitServiceImpl.ts +0 -21
- package/src/_internal/platform/ignore/common/ignoreService.ts +0 -72
- package/src/_internal/platform/inlineCompletions/common/api.ts +0 -198
- package/src/_internal/platform/inlineEdits/common/dataTypes/diagnosticData.ts +0 -32
- package/src/_internal/platform/inlineEdits/common/dataTypes/documentId.ts +0 -52
- package/src/_internal/platform/inlineEdits/common/dataTypes/edit.ts +0 -165
- package/src/_internal/platform/inlineEdits/common/dataTypes/editUtils.ts +0 -74
- package/src/_internal/platform/inlineEdits/common/dataTypes/fetchCancellationError.ts +0 -14
- package/src/_internal/platform/inlineEdits/common/dataTypes/languageContext.ts +0 -107
- package/src/_internal/platform/inlineEdits/common/dataTypes/languageId.ts +0 -14
- package/src/_internal/platform/inlineEdits/common/dataTypes/permutation.ts +0 -69
- package/src/_internal/platform/inlineEdits/common/dataTypes/rootedLineEdit.ts +0 -49
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLength.ts +0 -74
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/combineTextEditInfos.ts +0 -132
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/length.ts +0 -184
- package/src/_internal/platform/inlineEdits/common/dataTypes/textEditLengthHelper/textEditInfo.ts +0 -32
- package/src/_internal/platform/inlineEdits/common/dataTypes/xtabPromptOptions.ts +0 -89
- package/src/_internal/platform/inlineEdits/common/debugRecorderBookmark.ts +0 -10
- package/src/_internal/platform/inlineEdits/common/editReason.ts +0 -134
- package/src/_internal/platform/inlineEdits/common/inlineEditLogContext.ts +0 -490
- package/src/_internal/platform/inlineEdits/common/observableGit.ts +0 -49
- package/src/_internal/platform/inlineEdits/common/observableWorkspace.ts +0 -239
- package/src/_internal/platform/inlineEdits/common/responseProcessor.ts +0 -249
- package/src/_internal/platform/inlineEdits/common/statelessNextEditProvider.ts +0 -468
- package/src/_internal/platform/inlineEdits/common/statelessNextEditProviders.ts +0 -59
- package/src/_internal/platform/inlineEdits/common/utils/observable.ts +0 -54
- package/src/_internal/platform/inlineEdits/common/utils/stringifyChatMessages.ts +0 -29
- package/src/_internal/platform/inlineEdits/common/utils/utils.ts +0 -56
- package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/historyContextProvider.ts +0 -60
- package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesHistoryContextProvider.ts +0 -353
- package/src/_internal/platform/inlineEdits/common/workspaceEditTracker/nesXtabHistoryTracker.ts +0 -176
- package/src/_internal/platform/languageContextProvider/common/languageContextProviderService.ts +0 -25
- package/src/_internal/platform/languageContextProvider/common/nullLanguageContextProviderService.ts +0 -38
- package/src/_internal/platform/languageServer/common/languageContextService.ts +0 -186
- package/src/_internal/platform/languages/common/languageDiagnosticsService.ts +0 -67
- package/src/_internal/platform/languages/common/testLanguageDiagnosticsService.ts +0 -28
- package/src/_internal/platform/log/common/logService.ts +0 -232
- package/src/_internal/platform/nesFetch/common/completionsAPI.ts +0 -78
- package/src/_internal/platform/nesFetch/common/completionsFetchService.ts +0 -118
- package/src/_internal/platform/nesFetch/common/responseStream.ts +0 -151
- package/src/_internal/platform/nesFetch/node/completionsFetchServiceImpl.ts +0 -236
- package/src/_internal/platform/nesFetch/node/streamTransformer.ts +0 -95
- package/src/_internal/platform/networking/common/fetch.ts +0 -349
- package/src/_internal/platform/networking/common/fetcherService.ts +0 -84
- package/src/_internal/platform/networking/common/networking.ts +0 -442
- package/src/_internal/platform/networking/common/openai.ts +0 -273
- package/src/_internal/platform/networking/node/chatStream.ts +0 -137
- package/src/_internal/platform/networking/node/stream.ts +0 -749
- package/src/_internal/platform/notebook/common/alternativeContent.ts +0 -89
- package/src/_internal/platform/notebook/common/alternativeContentFormat.ts +0 -10
- package/src/_internal/platform/notebook/common/alternativeContentProvider.json.ts +0 -262
- package/src/_internal/platform/notebook/common/alternativeContentProvider.text.ts +0 -243
- package/src/_internal/platform/notebook/common/alternativeContentProvider.ts +0 -41
- package/src/_internal/platform/notebook/common/alternativeContentProvider.xml.ts +0 -205
- package/src/_internal/platform/notebook/common/alternativeNotebookDocument.ts +0 -155
- package/src/_internal/platform/notebook/common/helpers.ts +0 -212
- package/src/_internal/platform/notebook/common/notebookService.ts +0 -43
- package/src/_internal/platform/openai/node/fetch.ts +0 -596
- package/src/_internal/platform/parser/node/nodes.ts +0 -190
- package/src/_internal/platform/requestLogger/node/nullRequestLogger.ts +0 -26
- package/src/_internal/platform/requestLogger/node/requestLogger.ts +0 -383
- package/src/_internal/platform/simulationTestContext/common/simulationTestContext.ts +0 -29
- package/src/_internal/platform/snippy/common/snippyService.ts +0 -25
- package/src/_internal/platform/telemetry/common/nullExperimentationService.ts +0 -64
- package/src/_internal/platform/telemetry/common/nullTelemetryService.ts +0 -53
- package/src/_internal/platform/telemetry/common/telemetry.ts +0 -215
- package/src/_internal/platform/telemetry/common/telemetryData.ts +0 -205
- package/src/_internal/platform/thinking/common/thinking.ts +0 -61
- package/src/_internal/platform/thinking/common/thinkingUtils.ts +0 -57
- package/src/_internal/platform/tokenizer/node/parseTikTokens.ts +0 -23
- package/src/_internal/platform/tokenizer/node/tikTokenizerImpl.ts +0 -74
- package/src/_internal/platform/tokenizer/node/tikTokenizerWorker.ts +0 -24
- package/src/_internal/platform/tokenizer/node/tokenizer.ts +0 -357
- package/src/_internal/platform/workspace/common/workspaceService.ts +0 -226
- package/src/_internal/platform/workspaceRecorder/common/workspaceLog.ts +0 -118
- package/src/_internal/util/common/anomalyDetection.ts +0 -112
- package/src/_internal/util/common/arrays.ts +0 -81
- package/src/_internal/util/common/async.ts +0 -155
- package/src/_internal/util/common/cache.ts +0 -183
- package/src/_internal/util/common/crypto.ts +0 -41
- package/src/_internal/util/common/errors.ts +0 -22
- package/src/_internal/util/common/globals.d.ts +0 -12
- package/src/_internal/util/common/imageUtils.ts +0 -154
- package/src/_internal/util/common/languages.ts +0 -940
- package/src/_internal/util/common/notebooks.ts +0 -286
- package/src/_internal/util/common/result.ts +0 -71
- package/src/_internal/util/common/services.ts +0 -43
- package/src/_internal/util/common/test/shims/chatTypes.ts +0 -448
- package/src/_internal/util/common/test/shims/editing.ts +0 -233
- package/src/_internal/util/common/test/shims/enums.ts +0 -61
- package/src/_internal/util/common/test/shims/l10n.ts +0 -37
- package/src/_internal/util/common/test/shims/newSymbolName.ts +0 -23
- package/src/_internal/util/common/test/shims/terminal.ts +0 -33
- package/src/_internal/util/common/test/shims/vscodeTypesShim.ts +0 -115
- package/src/_internal/util/common/time.ts +0 -31
- package/src/_internal/util/common/tokenizer.ts +0 -30
- package/src/_internal/util/common/tracing.ts +0 -52
- package/src/_internal/util/common/types.ts +0 -33
- package/src/_internal/util/common/variableLengthQuantity.ts +0 -40
- package/src/_internal/util/node/worker.ts +0 -130
- package/src/_internal/util/vs/base/common/arrays.ts +0 -926
- package/src/_internal/util/vs/base/common/arraysFind.ts +0 -206
- package/src/_internal/util/vs/base/common/assert.ts +0 -89
- package/src/_internal/util/vs/base/common/async.ts +0 -2582
- package/src/_internal/util/vs/base/common/buffer.ts +0 -501
- package/src/_internal/util/vs/base/common/cache.ts +0 -122
- package/src/_internal/util/vs/base/common/cancellation.ts +0 -150
- package/src/_internal/util/vs/base/common/charCode.ts +0 -452
- package/src/_internal/util/vs/base/common/codicons.ts +0 -66
- package/src/_internal/util/vs/base/common/codiconsLibrary.ts +0 -618
- package/src/_internal/util/vs/base/common/codiconsUtil.ts +0 -30
- package/src/_internal/util/vs/base/common/collections.ts +0 -156
- package/src/_internal/util/vs/base/common/diff/diff.ts +0 -1317
- package/src/_internal/util/vs/base/common/diff/diffChange.ts +0 -62
- package/src/_internal/util/vs/base/common/equals.ts +0 -148
- package/src/_internal/util/vs/base/common/errors.ts +0 -342
- package/src/_internal/util/vs/base/common/event.ts +0 -1782
- package/src/_internal/util/vs/base/common/extpath.ts +0 -425
- package/src/_internal/util/vs/base/common/filters.ts +0 -928
- package/src/_internal/util/vs/base/common/functional.ts +0 -34
- package/src/_internal/util/vs/base/common/glob.ts +0 -839
- package/src/_internal/util/vs/base/common/hash.ts +0 -326
- package/src/_internal/util/vs/base/common/htmlContent.ts +0 -212
- package/src/_internal/util/vs/base/common/iconLabels.ts +0 -118
- package/src/_internal/util/vs/base/common/iterator.ts +0 -196
- package/src/_internal/util/vs/base/common/lazy.ts +0 -59
- package/src/_internal/util/vs/base/common/lifecycle.ts +0 -845
- package/src/_internal/util/vs/base/common/linkedList.ts +0 -144
- package/src/_internal/util/vs/base/common/map.ts +0 -954
- package/src/_internal/util/vs/base/common/marshallingIds.ts +0 -35
- package/src/_internal/util/vs/base/common/mime.ts +0 -136
- package/src/_internal/util/vs/base/common/naturalLanguage/korean.ts +0 -425
- package/src/_internal/util/vs/base/common/network.ts +0 -429
- package/src/_internal/util/vs/base/common/numbers.ts +0 -166
- package/src/_internal/util/vs/base/common/objects.ts +0 -242
- package/src/_internal/util/vs/base/common/observable.ts +0 -10
- package/src/_internal/util/vs/base/common/observableInternal/base.ts +0 -208
- package/src/_internal/util/vs/base/common/observableInternal/changeTracker.ts +0 -96
- package/src/_internal/util/vs/base/common/observableInternal/commonFacade/cancellation.ts +0 -9
- package/src/_internal/util/vs/base/common/observableInternal/commonFacade/deps.ts +0 -12
- package/src/_internal/util/vs/base/common/observableInternal/debugLocation.ts +0 -88
- package/src/_internal/util/vs/base/common/observableInternal/debugName.ts +0 -150
- package/src/_internal/util/vs/base/common/observableInternal/experimental/utils.ts +0 -62
- package/src/_internal/util/vs/base/common/observableInternal/index.ts +0 -61
- package/src/_internal/util/vs/base/common/observableInternal/logging/consoleObservableLogger.ts +0 -388
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerApi.d.ts +0 -154
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/debuggerRpc.ts +0 -80
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/devToolsLogger.ts +0 -485
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/rpc.ts +0 -103
- package/src/_internal/util/vs/base/common/observableInternal/logging/debugger/utils.ts +0 -69
- package/src/_internal/util/vs/base/common/observableInternal/logging/logging.ts +0 -133
- package/src/_internal/util/vs/base/common/observableInternal/map.ts +0 -81
- package/src/_internal/util/vs/base/common/observableInternal/observables/baseObservable.ts +0 -172
- package/src/_internal/util/vs/base/common/observableInternal/observables/constObservable.ts +0 -44
- package/src/_internal/util/vs/base/common/observableInternal/observables/derived.ts +0 -190
- package/src/_internal/util/vs/base/common/observableInternal/observables/derivedImpl.ts +0 -445
- package/src/_internal/util/vs/base/common/observableInternal/observables/lazyObservableValue.ts +0 -154
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableFromEvent.ts +0 -174
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignal.ts +0 -67
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableSignalFromEvent.ts +0 -62
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableValue.ts +0 -131
- package/src/_internal/util/vs/base/common/observableInternal/observables/observableValueOpts.ts +0 -37
- package/src/_internal/util/vs/base/common/observableInternal/reactions/autorun.ts +0 -188
- package/src/_internal/util/vs/base/common/observableInternal/reactions/autorunImpl.ts +0 -256
- package/src/_internal/util/vs/base/common/observableInternal/set.ts +0 -78
- package/src/_internal/util/vs/base/common/observableInternal/transaction.ts +0 -115
- package/src/_internal/util/vs/base/common/observableInternal/utils/promise.ts +0 -129
- package/src/_internal/util/vs/base/common/observableInternal/utils/runOnChange.ts +0 -65
- package/src/_internal/util/vs/base/common/observableInternal/utils/utils.ts +0 -281
- package/src/_internal/util/vs/base/common/observableInternal/utils/utilsCancellation.ts +0 -101
- package/src/_internal/util/vs/base/common/observableInternal/utils/valueWithChangeEvent.ts +0 -31
- package/src/_internal/util/vs/base/common/path.ts +0 -1591
- package/src/_internal/util/vs/base/common/platform.ts +0 -282
- package/src/_internal/util/vs/base/common/process.ts +0 -78
- package/src/_internal/util/vs/base/common/resources.ts +0 -446
- package/src/_internal/util/vs/base/common/sequence.ts +0 -36
- package/src/_internal/util/vs/base/common/sseParser.ts +0 -247
- package/src/_internal/util/vs/base/common/stopwatch.ts +0 -43
- package/src/_internal/util/vs/base/common/stream.ts +0 -792
- package/src/_internal/util/vs/base/common/strings.ts +0 -1364
- package/src/_internal/util/vs/base/common/symbols.ts +0 -11
- package/src/_internal/util/vs/base/common/themables.ts +0 -106
- package/src/_internal/util/vs/base/common/types.ts +0 -345
- package/src/_internal/util/vs/base/common/uint.ts +0 -61
- package/src/_internal/util/vs/base/common/uri.ts +0 -752
- package/src/_internal/util/vs/base/common/uuid.ts +0 -72
- package/src/_internal/util/vs/base-common.d.ts +0 -42
- package/src/_internal/util/vs/editor/common/core/editOperation.ts +0 -62
- package/src/_internal/util/vs/editor/common/core/edits/edit.ts +0 -399
- package/src/_internal/util/vs/editor/common/core/edits/lineEdit.ts +0 -414
- package/src/_internal/util/vs/editor/common/core/edits/stringEdit.ts +0 -568
- package/src/_internal/util/vs/editor/common/core/edits/textEdit.ts +0 -411
- package/src/_internal/util/vs/editor/common/core/position.ts +0 -186
- package/src/_internal/util/vs/editor/common/core/range.ts +0 -519
- package/src/_internal/util/vs/editor/common/core/ranges/lineRange.ts +0 -416
- package/src/_internal/util/vs/editor/common/core/ranges/offsetRange.ts +0 -275
- package/src/_internal/util/vs/editor/common/core/text/abstractText.ts +0 -127
- package/src/_internal/util/vs/editor/common/core/text/positionToOffset.ts +0 -26
- package/src/_internal/util/vs/editor/common/core/text/positionToOffsetImpl.ts +0 -144
- package/src/_internal/util/vs/editor/common/core/text/textLength.ts +0 -150
- package/src/_internal/util/vs/editor/common/core/wordHelper.ts +0 -177
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.ts +0 -210
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.ts +0 -109
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.ts +0 -178
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.ts +0 -331
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.ts +0 -273
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.ts +0 -475
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.ts +0 -47
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.ts +0 -248
- package/src/_internal/util/vs/editor/common/diff/defaultLinesDiffComputer/utils.ts +0 -76
- package/src/_internal/util/vs/editor/common/diff/legacyLinesDiffComputer.ts +0 -693
- package/src/_internal/util/vs/editor/common/diff/linesDiffComputer.ts +0 -61
- package/src/_internal/util/vs/editor/common/diff/rangeMapping.ts +0 -418
- package/src/_internal/util/vs/editor/common/model/prefixSumComputer.ts +0 -304
- package/src/_internal/util/vs/nls.messages.ts +0 -21
- package/src/_internal/util/vs/nls.ts +0 -243
- package/src/_internal/util/vs/platform/instantiation/common/descriptors.ts +0 -23
- package/src/_internal/util/vs/platform/instantiation/common/graph.ts +0 -113
- package/src/_internal/util/vs/platform/instantiation/common/instantiation.ts +0 -127
- package/src/_internal/util/vs/platform/instantiation/common/instantiationService.ts +0 -483
- package/src/_internal/util/vs/platform/instantiation/common/serviceCollection.ts +0 -34
- package/src/_internal/util/vs/vscode-globals-nls.d.ts +0 -42
- package/src/_internal/util/vs/vscode-globals-product.d.ts +0 -35
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/diagnostic.ts +0 -109
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/es5ClassCompat.ts +0 -34
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/location.ts +0 -51
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/markdownString.ts +0 -83
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/notebooks.ts +0 -296
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/position.ts +0 -195
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/range.ts +0 -167
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/selection.ts +0 -94
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetString.ts +0 -103
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/snippetTextEdit.ts +0 -44
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/symbolInformation.ts +0 -89
- package/src/_internal/util/vs/workbench/api/common/extHostTypes/textEdit.ts +0 -99
- package/src/_internal/vscodeTypes.ts +0 -100
- package/src/main.ts +0 -207
- package/src/package.json +0 -4063
|
@@ -1,568 +0,0 @@
|
|
|
1
|
-
//!!! DO NOT modify, this file was COPIED from 'microsoft/vscode'
|
|
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
|
-
|
|
8
|
-
import { commonPrefixLength, commonSuffixLength } from '../../../../base/common/strings';
|
|
9
|
-
import { OffsetRange } from '../ranges/offsetRange';
|
|
10
|
-
import { StringText } from '../text/abstractText';
|
|
11
|
-
import { BaseEdit, BaseReplacement } from './edit';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export abstract class BaseStringEdit<T extends BaseStringReplacement<T> = BaseStringReplacement<any>, TEdit extends BaseStringEdit<T, TEdit> = BaseStringEdit<any, any>> extends BaseEdit<T, TEdit> {
|
|
15
|
-
get TReplacement(): T {
|
|
16
|
-
throw new Error('TReplacement is not defined for BaseStringEdit');
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public static composeOrUndefined<T extends BaseStringEdit>(edits: readonly T[]): T | undefined {
|
|
20
|
-
if (edits.length === 0) {
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
let result = edits[0];
|
|
24
|
-
for (let i = 1; i < edits.length; i++) {
|
|
25
|
-
result = result.compose(edits[i]) as any;
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* r := trySwap(e1, e2);
|
|
32
|
-
* e1.compose(e2) === r.e1.compose(r.e2)
|
|
33
|
-
*/
|
|
34
|
-
public static trySwap(e1: BaseStringEdit, e2: BaseStringEdit): { e1: StringEdit; e2: StringEdit } | undefined {
|
|
35
|
-
// TODO make this more efficient
|
|
36
|
-
const e1Inv = e1.inverseOnSlice((start, endEx) => ' '.repeat(endEx - start));
|
|
37
|
-
|
|
38
|
-
const e1_ = e2.tryRebase(e1Inv);
|
|
39
|
-
if (!e1_) {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
const e2_ = e1.tryRebase(e1_);
|
|
43
|
-
if (!e2_) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return { e1: e1_, e2: e2_ };
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public apply(base: string): string {
|
|
51
|
-
const resultText: string[] = [];
|
|
52
|
-
let pos = 0;
|
|
53
|
-
for (const edit of this.replacements) {
|
|
54
|
-
resultText.push(base.substring(pos, edit.replaceRange.start));
|
|
55
|
-
resultText.push(edit.newText);
|
|
56
|
-
pos = edit.replaceRange.endExclusive;
|
|
57
|
-
}
|
|
58
|
-
resultText.push(base.substring(pos));
|
|
59
|
-
return resultText.join('');
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Creates an edit that reverts this edit.
|
|
65
|
-
*/
|
|
66
|
-
public inverseOnSlice(getOriginalSlice: (start: number, endEx: number) => string): StringEdit {
|
|
67
|
-
const edits: StringReplacement[] = [];
|
|
68
|
-
let offset = 0;
|
|
69
|
-
for (const e of this.replacements) {
|
|
70
|
-
edits.push(StringReplacement.replace(
|
|
71
|
-
OffsetRange.ofStartAndLength(e.replaceRange.start + offset, e.newText.length),
|
|
72
|
-
getOriginalSlice(e.replaceRange.start, e.replaceRange.endExclusive)
|
|
73
|
-
));
|
|
74
|
-
offset += e.newText.length - e.replaceRange.length;
|
|
75
|
-
}
|
|
76
|
-
return new StringEdit(edits);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Creates an edit that reverts this edit.
|
|
81
|
-
*/
|
|
82
|
-
public inverse(original: string): StringEdit {
|
|
83
|
-
return this.inverseOnSlice((start, endEx) => original.substring(start, endEx));
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
public rebaseSkipConflicting(base: StringEdit): StringEdit {
|
|
87
|
-
return this._tryRebase(base, false)!;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
public tryRebase(base: StringEdit): StringEdit | undefined {
|
|
91
|
-
return this._tryRebase(base, true);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
private _tryRebase(base: StringEdit, noOverlap: boolean): StringEdit | undefined {
|
|
95
|
-
const newEdits: StringReplacement[] = [];
|
|
96
|
-
|
|
97
|
-
let baseIdx = 0;
|
|
98
|
-
let ourIdx = 0;
|
|
99
|
-
let offset = 0;
|
|
100
|
-
|
|
101
|
-
while (ourIdx < this.replacements.length || baseIdx < base.replacements.length) {
|
|
102
|
-
// take the edit that starts first
|
|
103
|
-
const baseEdit = base.replacements[baseIdx];
|
|
104
|
-
const ourEdit = this.replacements[ourIdx];
|
|
105
|
-
|
|
106
|
-
if (!ourEdit) {
|
|
107
|
-
// We processed all our edits
|
|
108
|
-
break;
|
|
109
|
-
} else if (!baseEdit) {
|
|
110
|
-
// no more edits from base
|
|
111
|
-
newEdits.push(new StringReplacement(
|
|
112
|
-
ourEdit.replaceRange.delta(offset),
|
|
113
|
-
ourEdit.newText
|
|
114
|
-
));
|
|
115
|
-
ourIdx++;
|
|
116
|
-
} else if (ourEdit.replaceRange.intersectsOrTouches(baseEdit.replaceRange)) {
|
|
117
|
-
ourIdx++; // Don't take our edit, as it is conflicting -> skip
|
|
118
|
-
if (noOverlap) {
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
} else if (ourEdit.replaceRange.start < baseEdit.replaceRange.start) {
|
|
122
|
-
// Our edit starts first
|
|
123
|
-
newEdits.push(new StringReplacement(
|
|
124
|
-
ourEdit.replaceRange.delta(offset),
|
|
125
|
-
ourEdit.newText
|
|
126
|
-
));
|
|
127
|
-
ourIdx++;
|
|
128
|
-
} else {
|
|
129
|
-
baseIdx++;
|
|
130
|
-
offset += baseEdit.newText.length - baseEdit.replaceRange.length;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return new StringEdit(newEdits);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
public toJson(): ISerializedStringEdit {
|
|
138
|
-
return this.replacements.map(e => e.toJson());
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
public isNeutralOn(text: string): boolean {
|
|
142
|
-
return this.replacements.every(e => e.isNeutralOn(text));
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
public removeCommonSuffixPrefix(originalText: string): StringEdit {
|
|
146
|
-
const edits: StringReplacement[] = [];
|
|
147
|
-
for (const e of this.replacements) {
|
|
148
|
-
const edit = e.removeCommonSuffixPrefix(originalText);
|
|
149
|
-
if (!edit.isEmpty) {
|
|
150
|
-
edits.push(edit);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return new StringEdit(edits);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
public normalizeEOL(eol: '\r\n' | '\n'): StringEdit {
|
|
157
|
-
return new StringEdit(this.replacements.map(edit => edit.normalizeEOL(eol)));
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* If `e1.apply(source) === e2.apply(source)`, then `e1.normalizeOnSource(source).equals(e2.normalizeOnSource(source))`.
|
|
162
|
-
*/
|
|
163
|
-
public normalizeOnSource(source: string): StringEdit {
|
|
164
|
-
const result = this.apply(source);
|
|
165
|
-
|
|
166
|
-
const edit = StringReplacement.replace(OffsetRange.ofLength(source.length), result);
|
|
167
|
-
const e = edit.removeCommonSuffixAndPrefix(source);
|
|
168
|
-
if (e.isEmpty) {
|
|
169
|
-
return StringEdit.empty;
|
|
170
|
-
}
|
|
171
|
-
return e.toEdit();
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
removeCommonSuffixAndPrefix(source: string): TEdit {
|
|
175
|
-
return this._createNew(this.replacements.map(e => e.removeCommonSuffixAndPrefix(source))).normalize();
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
applyOnText(docContents: StringText): StringText {
|
|
179
|
-
return new StringText(this.apply(docContents.value));
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
public mapData<TData extends IEditData<TData>>(f: (replacement: T) => TData): AnnotatedStringEdit<TData> {
|
|
183
|
-
return new AnnotatedStringEdit(
|
|
184
|
-
this.replacements.map(e => new AnnotatedStringReplacement(
|
|
185
|
-
e.replaceRange,
|
|
186
|
-
e.newText,
|
|
187
|
-
f(e)
|
|
188
|
-
))
|
|
189
|
-
);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
export abstract class BaseStringReplacement<T extends BaseStringReplacement<T> = BaseStringReplacement<any>> extends BaseReplacement<T> {
|
|
194
|
-
constructor(
|
|
195
|
-
range: OffsetRange,
|
|
196
|
-
public readonly newText: string
|
|
197
|
-
) {
|
|
198
|
-
super(range);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
getNewLength(): number { return this.newText.length; }
|
|
202
|
-
|
|
203
|
-
override toString(): string {
|
|
204
|
-
return `${this.replaceRange} -> "${this.newText}"`;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
replace(str: string): string {
|
|
208
|
-
return str.substring(0, this.replaceRange.start) + this.newText + str.substring(this.replaceRange.endExclusive);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Checks if the edit would produce no changes when applied to the given text.
|
|
213
|
-
*/
|
|
214
|
-
isNeutralOn(text: string): boolean {
|
|
215
|
-
return this.newText === text.substring(this.replaceRange.start, this.replaceRange.endExclusive);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
removeCommonSuffixPrefix(originalText: string): StringReplacement {
|
|
219
|
-
const oldText = originalText.substring(this.replaceRange.start, this.replaceRange.endExclusive);
|
|
220
|
-
|
|
221
|
-
const prefixLen = commonPrefixLength(oldText, this.newText);
|
|
222
|
-
const suffixLen = Math.min(
|
|
223
|
-
oldText.length - prefixLen,
|
|
224
|
-
this.newText.length - prefixLen,
|
|
225
|
-
commonSuffixLength(oldText, this.newText)
|
|
226
|
-
);
|
|
227
|
-
|
|
228
|
-
const replaceRange = new OffsetRange(
|
|
229
|
-
this.replaceRange.start + prefixLen,
|
|
230
|
-
this.replaceRange.endExclusive - suffixLen,
|
|
231
|
-
);
|
|
232
|
-
const newText = this.newText.substring(prefixLen, this.newText.length - suffixLen);
|
|
233
|
-
|
|
234
|
-
return new StringReplacement(replaceRange, newText);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
normalizeEOL(eol: '\r\n' | '\n'): StringReplacement {
|
|
238
|
-
const newText = this.newText.replace(/\r\n|\n/g, eol);
|
|
239
|
-
return new StringReplacement(this.replaceRange, newText);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
public removeCommonSuffixAndPrefix(source: string): T {
|
|
243
|
-
return this.removeCommonSuffix(source).removeCommonPrefix(source);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
public removeCommonPrefix(source: string): T {
|
|
247
|
-
const oldText = this.replaceRange.substring(source);
|
|
248
|
-
|
|
249
|
-
const prefixLen = commonPrefixLength(oldText, this.newText);
|
|
250
|
-
if (prefixLen === 0) {
|
|
251
|
-
return this as unknown as T;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
return this.slice(this.replaceRange.deltaStart(prefixLen), new OffsetRange(prefixLen, this.newText.length));
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
public removeCommonSuffix(source: string): T {
|
|
258
|
-
const oldText = this.replaceRange.substring(source);
|
|
259
|
-
|
|
260
|
-
const suffixLen = commonSuffixLength(oldText, this.newText);
|
|
261
|
-
if (suffixLen === 0) {
|
|
262
|
-
return this as unknown as T;
|
|
263
|
-
}
|
|
264
|
-
return this.slice(this.replaceRange.deltaEnd(-suffixLen), new OffsetRange(0, this.newText.length - suffixLen));
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
public toEdit(): StringEdit {
|
|
268
|
-
return new StringEdit([this]);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
public toJson(): ISerializedStringReplacement {
|
|
272
|
-
return ({
|
|
273
|
-
txt: this.newText,
|
|
274
|
-
pos: this.replaceRange.start,
|
|
275
|
-
len: this.replaceRange.length,
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Represents a set of replacements to a string.
|
|
283
|
-
* All these replacements are applied at once.
|
|
284
|
-
*/
|
|
285
|
-
export class StringEdit extends BaseStringEdit<StringReplacement, StringEdit> {
|
|
286
|
-
public static readonly empty = new StringEdit([]);
|
|
287
|
-
|
|
288
|
-
public static create(replacements: readonly StringReplacement[]): StringEdit {
|
|
289
|
-
return new StringEdit(replacements);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
public static single(replacement: StringReplacement): StringEdit {
|
|
293
|
-
return new StringEdit([replacement]);
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
public static replace(range: OffsetRange, replacement: string): StringEdit {
|
|
297
|
-
return new StringEdit([new StringReplacement(range, replacement)]);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
public static insert(offset: number, replacement: string): StringEdit {
|
|
301
|
-
return new StringEdit([new StringReplacement(OffsetRange.emptyAt(offset), replacement)]);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
public static delete(range: OffsetRange): StringEdit {
|
|
305
|
-
return new StringEdit([new StringReplacement(range, '')]);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
public static fromJson(data: ISerializedStringEdit): StringEdit {
|
|
309
|
-
return new StringEdit(data.map(StringReplacement.fromJson));
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
public static compose(edits: readonly StringEdit[]): StringEdit {
|
|
313
|
-
if (edits.length === 0) {
|
|
314
|
-
return StringEdit.empty;
|
|
315
|
-
}
|
|
316
|
-
let result = edits[0];
|
|
317
|
-
for (let i = 1; i < edits.length; i++) {
|
|
318
|
-
result = result.compose(edits[i]);
|
|
319
|
-
}
|
|
320
|
-
return result;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* The replacements are applied in order!
|
|
325
|
-
* Equals `StringEdit.compose(replacements.map(r => r.toEdit()))`, but is much more performant.
|
|
326
|
-
*/
|
|
327
|
-
public static composeSequentialReplacements(replacements: readonly StringReplacement[]): StringEdit {
|
|
328
|
-
let edit = StringEdit.empty;
|
|
329
|
-
let curEditReplacements: StringReplacement[] = []; // These are reverse sorted
|
|
330
|
-
|
|
331
|
-
for (const r of replacements) {
|
|
332
|
-
const last = curEditReplacements.at(-1);
|
|
333
|
-
if (!last || r.replaceRange.isBefore(last.replaceRange)) {
|
|
334
|
-
// Detect subsequences of reverse sorted replacements
|
|
335
|
-
curEditReplacements.push(r);
|
|
336
|
-
} else {
|
|
337
|
-
// Once the subsequence is broken, compose the current replacements and look for a new subsequence.
|
|
338
|
-
edit = edit.compose(StringEdit.create(curEditReplacements.reverse()));
|
|
339
|
-
curEditReplacements = [r];
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
edit = edit.compose(StringEdit.create(curEditReplacements.reverse()));
|
|
344
|
-
return edit;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
constructor(replacements: readonly StringReplacement[]) {
|
|
348
|
-
super(replacements);
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
protected override _createNew(replacements: readonly StringReplacement[]): StringEdit {
|
|
352
|
-
return new StringEdit(replacements);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Warning: Be careful when changing this type, as it is used for serialization!
|
|
358
|
-
*/
|
|
359
|
-
export type ISerializedStringEdit = ISerializedStringReplacement[];
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Warning: Be careful when changing this type, as it is used for serialization!
|
|
363
|
-
*/
|
|
364
|
-
export interface ISerializedStringReplacement {
|
|
365
|
-
txt: string;
|
|
366
|
-
pos: number;
|
|
367
|
-
len: number;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
export class StringReplacement extends BaseStringReplacement<StringReplacement> {
|
|
371
|
-
public static insert(offset: number, text: string): StringReplacement {
|
|
372
|
-
return new StringReplacement(OffsetRange.emptyAt(offset), text);
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
public static replace(range: OffsetRange, text: string): StringReplacement {
|
|
376
|
-
return new StringReplacement(range, text);
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
public static delete(range: OffsetRange): StringReplacement {
|
|
380
|
-
return new StringReplacement(range, '');
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
public static fromJson(data: ISerializedStringReplacement): StringReplacement {
|
|
384
|
-
return new StringReplacement(OffsetRange.ofStartAndLength(data.pos, data.len), data.txt);
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
override equals(other: StringReplacement): boolean {
|
|
388
|
-
return this.replaceRange.equals(other.replaceRange) && this.newText === other.newText;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
override tryJoinTouching(other: StringReplacement): StringReplacement | undefined {
|
|
392
|
-
return new StringReplacement(this.replaceRange.joinRightTouching(other.replaceRange), this.newText + other.newText);
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
override slice(range: OffsetRange, rangeInReplacement?: OffsetRange): StringReplacement {
|
|
396
|
-
return new StringReplacement(range, rangeInReplacement ? rangeInReplacement.substring(this.newText) : this.newText);
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
export function applyEditsToRanges(sortedRanges: OffsetRange[], edit: StringEdit): OffsetRange[] {
|
|
401
|
-
sortedRanges = sortedRanges.slice();
|
|
402
|
-
|
|
403
|
-
// treat edits as deletion of the replace range and then as insertion that extends the first range
|
|
404
|
-
const result: OffsetRange[] = [];
|
|
405
|
-
|
|
406
|
-
let offset = 0;
|
|
407
|
-
|
|
408
|
-
for (const e of edit.replacements) {
|
|
409
|
-
while (true) {
|
|
410
|
-
// ranges before the current edit
|
|
411
|
-
const r = sortedRanges[0];
|
|
412
|
-
if (!r || r.endExclusive >= e.replaceRange.start) {
|
|
413
|
-
break;
|
|
414
|
-
}
|
|
415
|
-
sortedRanges.shift();
|
|
416
|
-
result.push(r.delta(offset));
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
const intersecting: OffsetRange[] = [];
|
|
420
|
-
while (true) {
|
|
421
|
-
const r = sortedRanges[0];
|
|
422
|
-
if (!r || !r.intersectsOrTouches(e.replaceRange)) {
|
|
423
|
-
break;
|
|
424
|
-
}
|
|
425
|
-
sortedRanges.shift();
|
|
426
|
-
intersecting.push(r);
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
for (let i = intersecting.length - 1; i >= 0; i--) {
|
|
430
|
-
let r = intersecting[i];
|
|
431
|
-
|
|
432
|
-
const overlap = r.intersect(e.replaceRange)!.length;
|
|
433
|
-
r = r.deltaEnd(-overlap + (i === 0 ? e.newText.length : 0));
|
|
434
|
-
|
|
435
|
-
const rangeAheadOfReplaceRange = r.start - e.replaceRange.start;
|
|
436
|
-
if (rangeAheadOfReplaceRange > 0) {
|
|
437
|
-
r = r.delta(-rangeAheadOfReplaceRange);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
if (i !== 0) {
|
|
441
|
-
r = r.delta(e.newText.length);
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
// We already took our offset into account.
|
|
445
|
-
// Because we add r back to the queue (which then adds offset again),
|
|
446
|
-
// we have to remove it here.
|
|
447
|
-
r = r.delta(-(e.newText.length - e.replaceRange.length));
|
|
448
|
-
|
|
449
|
-
sortedRanges.unshift(r);
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
offset += e.newText.length - e.replaceRange.length;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
while (true) {
|
|
456
|
-
const r = sortedRanges[0];
|
|
457
|
-
if (!r) {
|
|
458
|
-
break;
|
|
459
|
-
}
|
|
460
|
-
sortedRanges.shift();
|
|
461
|
-
result.push(r.delta(offset));
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
return result;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* Represents data associated to a single edit, which survives certain edit operations.
|
|
469
|
-
*/
|
|
470
|
-
export interface IEditData<T> {
|
|
471
|
-
join(other: T): T | undefined;
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
export class VoidEditData implements IEditData<VoidEditData> {
|
|
475
|
-
join(other: VoidEditData): VoidEditData | undefined {
|
|
476
|
-
return this;
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
/**
|
|
481
|
-
* Represents a set of replacements to a string.
|
|
482
|
-
* All these replacements are applied at once.
|
|
483
|
-
*/
|
|
484
|
-
export class AnnotatedStringEdit<T extends IEditData<T>> extends BaseStringEdit<AnnotatedStringReplacement<T>, AnnotatedStringEdit<T>> {
|
|
485
|
-
public static readonly empty = new AnnotatedStringEdit<never>([]);
|
|
486
|
-
|
|
487
|
-
public static create<T extends IEditData<T>>(replacements: readonly AnnotatedStringReplacement<T>[]): AnnotatedStringEdit<T> {
|
|
488
|
-
return new AnnotatedStringEdit(replacements);
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
public static single<T extends IEditData<T>>(replacement: AnnotatedStringReplacement<T>): AnnotatedStringEdit<T> {
|
|
492
|
-
return new AnnotatedStringEdit([replacement]);
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
public static replace<T extends IEditData<T>>(range: OffsetRange, replacement: string, data: T): AnnotatedStringEdit<T> {
|
|
496
|
-
return new AnnotatedStringEdit([new AnnotatedStringReplacement(range, replacement, data)]);
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
public static insert<T extends IEditData<T>>(offset: number, replacement: string, data: T): AnnotatedStringEdit<T> {
|
|
500
|
-
return new AnnotatedStringEdit([new AnnotatedStringReplacement(OffsetRange.emptyAt(offset), replacement, data)]);
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
public static delete<T extends IEditData<T>>(range: OffsetRange, data: T): AnnotatedStringEdit<T> {
|
|
504
|
-
return new AnnotatedStringEdit([new AnnotatedStringReplacement(range, '', data)]);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
public static compose<T extends IEditData<T>>(edits: readonly AnnotatedStringEdit<T>[]): AnnotatedStringEdit<T> {
|
|
508
|
-
if (edits.length === 0) {
|
|
509
|
-
return AnnotatedStringEdit.empty;
|
|
510
|
-
}
|
|
511
|
-
let result = edits[0];
|
|
512
|
-
for (let i = 1; i < edits.length; i++) {
|
|
513
|
-
result = result.compose(edits[i]);
|
|
514
|
-
}
|
|
515
|
-
return result;
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
constructor(replacements: readonly AnnotatedStringReplacement<T>[]) {
|
|
519
|
-
super(replacements);
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
protected override _createNew(replacements: readonly AnnotatedStringReplacement<T>[]): AnnotatedStringEdit<T> {
|
|
523
|
-
return new AnnotatedStringEdit<T>(replacements);
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
toStringEdit(): StringEdit {
|
|
527
|
-
return new StringEdit(this.replacements.map(e => new StringReplacement(e.replaceRange, e.newText)));
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
export class AnnotatedStringReplacement<T extends IEditData<T>> extends BaseStringReplacement<AnnotatedStringReplacement<T>> {
|
|
532
|
-
public static insert<T extends IEditData<T>>(offset: number, text: string, data: T): AnnotatedStringReplacement<T> {
|
|
533
|
-
return new AnnotatedStringReplacement<T>(OffsetRange.emptyAt(offset), text, data);
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
public static replace<T extends IEditData<T>>(range: OffsetRange, text: string, data: T): AnnotatedStringReplacement<T> {
|
|
537
|
-
return new AnnotatedStringReplacement<T>(range, text, data);
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
public static delete<T extends IEditData<T>>(range: OffsetRange, data: T): AnnotatedStringReplacement<T> {
|
|
541
|
-
return new AnnotatedStringReplacement<T>(range, '', data);
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
constructor(
|
|
545
|
-
range: OffsetRange,
|
|
546
|
-
newText: string,
|
|
547
|
-
public readonly data: T
|
|
548
|
-
) {
|
|
549
|
-
super(range, newText);
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
override equals(other: AnnotatedStringReplacement<T>): boolean {
|
|
553
|
-
return this.replaceRange.equals(other.replaceRange) && this.newText === other.newText && this.data === other.data;
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
tryJoinTouching(other: AnnotatedStringReplacement<T>): AnnotatedStringReplacement<T> | undefined {
|
|
557
|
-
const joined = this.data.join(other.data);
|
|
558
|
-
if (joined === undefined) {
|
|
559
|
-
return undefined;
|
|
560
|
-
}
|
|
561
|
-
return new AnnotatedStringReplacement(this.replaceRange.joinRightTouching(other.replaceRange), this.newText + other.newText, joined);
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
slice(range: OffsetRange, rangeInReplacement?: OffsetRange): AnnotatedStringReplacement<T> {
|
|
565
|
-
return new AnnotatedStringReplacement(range, rangeInReplacement ? rangeInReplacement.substring(this.newText) : this.newText, this.data);
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
|