@codingame/monaco-vscode-telemetry-service-override 32.0.1 → 33.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 (48) hide show
  1. package/index.js +2 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/platform/telemetry/common/telemetryLogAppender.js +1 -1
  4. package/vscode/src/vs/platform/telemetry/common/telemetryService.js +21 -21
  5. package/vscode/src/vs/workbench/contrib/bracketPairColorizer2Telemetry/browser/bracketPairColorizer2Telemetry.contribution.d.ts +1 -0
  6. package/vscode/src/vs/workbench/contrib/bracketPairColorizer2Telemetry/browser/bracketPairColorizer2Telemetry.contribution.js +34 -0
  7. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/aiContributionFeature.d.ts +15 -0
  8. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/aiContributionFeature.js +97 -0
  9. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsChart.d.ts +24 -0
  10. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsChart.js +236 -0
  11. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsFeature.d.ts +24 -0
  12. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsFeature.js +213 -0
  13. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsStatusBar.d.ts +27 -0
  14. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsStatusBar.js +250 -0
  15. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editStats/media.css +127 -0
  16. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.d.ts +1 -0
  17. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetry.contribution.js +75 -0
  18. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetryContribution.d.ts +8 -0
  19. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/editTelemetryContribution.js +82 -0
  20. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/annotatedDocuments.d.ts +30 -0
  21. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/annotatedDocuments.js +79 -0
  22. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/documentWithAnnotatedEdits.d.ts +128 -0
  23. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/documentWithAnnotatedEdits.js +297 -0
  24. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/observableWorkspace.d.ts +31 -0
  25. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/observableWorkspace.js +66 -0
  26. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/utils.d.ts +9 -0
  27. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/utils.js +47 -0
  28. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/vscodeObservableWorkspace.d.ts +26 -0
  29. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/helpers/vscodeObservableWorkspace.js +84 -0
  30. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/settingIds.d.ts +2 -0
  31. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/settingIds.js +6 -0
  32. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/settings.d.ts +3 -0
  33. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/settings.js +7 -0
  34. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/arcTelemetryReporter.d.ts +37 -0
  35. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/arcTelemetryReporter.js +80 -0
  36. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/arcTelemetrySender.d.ts +20 -0
  37. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/arcTelemetrySender.js +173 -0
  38. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editSourceTrackingFeature.d.ts +23 -0
  39. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editSourceTrackingFeature.js +232 -0
  40. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editSourceTrackingImpl.d.ts +48 -0
  41. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editSourceTrackingImpl.js +292 -0
  42. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editTracker.d.ts +41 -0
  43. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/editTracker.js +99 -0
  44. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/scmAdapter.d.ts +18 -0
  45. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/scmAdapter.js +44 -0
  46. package/vscode/src/vs/workbench/contrib/editTelemetry/common/arcTracker.d.ts +29 -0
  47. package/vscode/src/vs/workbench/contrib/editTelemetry/common/arcTracker.js +64 -0
  48. package/vscode/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.js +1 -1
@@ -0,0 +1,75 @@
1
+
2
+ import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
3
+ import { EditTelemetryContribution } from './editTelemetryContribution.js';
4
+ import { AI_STATS_SETTING_ID, EDIT_TELEMETRY_SETTING_ID } from './settingIds.js';
5
+ import { Extensions } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configurationRegistry';
6
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
+ import { EDIT_TELEMETRY_SHOW_DECORATIONS, EDIT_TELEMETRY_SHOW_STATUS_BAR, EDIT_TELEMETRY_DETAILS_SETTING_ID } from './settings.js';
8
+ import { registerWorkbenchContribution2, WorkbenchPhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions';
9
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/extensions';
10
+ import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
11
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/editTelemetry/browser/telemetry/aiEditTelemetry/aiEditTelemetryServiceImpl';
12
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/uuid';
13
+
14
+ registerWorkbenchContribution2(
15
+ "EditTelemetryContribution",
16
+ EditTelemetryContribution,
17
+ WorkbenchPhase.AfterRestored
18
+ );
19
+ const configurationRegistry = ( Registry.as(Extensions.Configuration));
20
+ configurationRegistry.registerConfiguration({
21
+ id: "task",
22
+ order: 100,
23
+ title: ( localize(9445, "Edit Telemetry")),
24
+ type: "object",
25
+ properties: {
26
+ [EDIT_TELEMETRY_SETTING_ID]: {
27
+ markdownDescription: ( localize(
28
+ 9446,
29
+ "Controls whether to enable telemetry for edit statistics (only sends statistics if general telemetry is enabled)."
30
+ )),
31
+ type: "boolean",
32
+ default: true,
33
+ tags: ["experimental"],
34
+ experiment: {
35
+ mode: "auto"
36
+ }
37
+ },
38
+ [AI_STATS_SETTING_ID]: {
39
+ markdownDescription: ( localize(
40
+ 9447,
41
+ "Controls whether to enable AI statistics in the editor. The gauge shows the average AI rate across 5-minute sessions, where each session's rate is calculated as AI-inserted characters divided by total inserted characters."
42
+ )),
43
+ type: "boolean",
44
+ default: false,
45
+ tags: ["experimental"],
46
+ experiment: {
47
+ mode: "auto"
48
+ }
49
+ },
50
+ [EDIT_TELEMETRY_DETAILS_SETTING_ID]: {
51
+ markdownDescription: ( localize(
52
+ 9448,
53
+ "Controls whether to enable telemetry for detailed edit statistics (only sends statistics if general telemetry is enabled)."
54
+ )),
55
+ type: "boolean",
56
+ default: false,
57
+ tags: ["experimental"],
58
+ experiment: {
59
+ mode: "auto"
60
+ }
61
+ },
62
+ [EDIT_TELEMETRY_SHOW_STATUS_BAR]: {
63
+ markdownDescription: ( localize(9449, "Controls whether to show the status bar for edit telemetry.")),
64
+ type: "boolean",
65
+ default: false,
66
+ tags: ["experimental"]
67
+ },
68
+ [EDIT_TELEMETRY_SHOW_DECORATIONS]: {
69
+ markdownDescription: ( localize(9450, "Controls whether to show decorations for edit telemetry.")),
70
+ type: "boolean",
71
+ default: false,
72
+ tags: ["experimental"]
73
+ }
74
+ }
75
+ });
@@ -0,0 +1,8 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
3
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
4
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
5
+ import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
6
+ export declare class EditTelemetryContribution extends Disposable {
7
+ constructor(instantiationService: IInstantiationService, configurationService: IConfigurationService, telemetryService: ITelemetryService, chatEntitlementService: IChatEntitlementService);
8
+ }
@@ -0,0 +1,82 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
+ import { IConfigurationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service';
6
+ import { CommandsRegistry } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands';
7
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
+ import { observableConfigValue } from '@codingame/monaco-vscode-api/vscode/vs/platform/observable/common/platformObservableUtils';
9
+ import { telemetryLevelEnabled, TelemetryLevel } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry';
10
+ import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
11
+ import { AnnotatedDocuments } from './helpers/annotatedDocuments.js';
12
+ import { EditTrackingFeature } from './telemetry/editSourceTrackingFeature.js';
13
+ import { VSCodeWorkspace } from './helpers/vscodeObservableWorkspace.js';
14
+ import { AiStatsFeature } from './editStats/aiStatsFeature.js';
15
+ import { EDIT_TELEMETRY_SETTING_ID, AI_STATS_SETTING_ID } from './settingIds.js';
16
+ import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
17
+ import { AiContributionFeature } from './aiContributionFeature.js';
18
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
19
+ import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
20
+
21
+ let EditTelemetryContribution = class EditTelemetryContribution extends Disposable {
22
+ constructor(
23
+ instantiationService,
24
+ configurationService,
25
+ telemetryService,
26
+ chatEntitlementService
27
+ ) {
28
+ super();
29
+ const workspace = derived(
30
+ reader => reader.store.add(instantiationService.createInstance(VSCodeWorkspace))
31
+ );
32
+ const annotatedDocuments = derived(reader => reader.store.add(
33
+ instantiationService.createInstance(AnnotatedDocuments, workspace.read(reader))
34
+ ));
35
+ const editSourceTrackingEnabled = observableConfigValue(EDIT_TELEMETRY_SETTING_ID, true, configurationService);
36
+ this._register(autorun(r => {
37
+ const enabled = editSourceTrackingEnabled.read(r);
38
+ if (!enabled || !telemetryLevelEnabled(telemetryService, TelemetryLevel.USAGE)) {
39
+ return;
40
+ }
41
+ r.store.add(
42
+ instantiationService.createInstance(EditTrackingFeature, workspace.read(r), annotatedDocuments.read(r))
43
+ );
44
+ }));
45
+ const aiStatsEnabled = observableConfigValue(AI_STATS_SETTING_ID, true, configurationService);
46
+ this._register(autorun(r => {
47
+ const enabled = aiStatsEnabled.read(r);
48
+ const aiDisabled = chatEntitlementService.sentimentObs.read(r).hidden;
49
+ if (!enabled || aiDisabled) {
50
+ return;
51
+ }
52
+ r.store.add(
53
+ instantiationService.createInstance(AiStatsFeature, annotatedDocuments.read(r))
54
+ );
55
+ }));
56
+ this._register(
57
+ CommandsRegistry.registerCommand("_aiEdits.hasAiContributions", () => false)
58
+ );
59
+ this._register(
60
+ CommandsRegistry.registerCommand("_aiEdits.clearAiContributions", () => {})
61
+ );
62
+ this._register(
63
+ CommandsRegistry.registerCommand("_aiEdits.clearAllAiContributions", () => {})
64
+ );
65
+ const addAICoAuthor = observableConfigValue("git.addAICoAuthor", "off", configurationService);
66
+ this._register(autorun(r => {
67
+ if (addAICoAuthor.read(r) === "off") {
68
+ return;
69
+ }
70
+ const aiDisabled = chatEntitlementService.sentimentObs.read(r).hidden;
71
+ if (aiDisabled) {
72
+ return;
73
+ }
74
+ r.store.add(
75
+ instantiationService.createInstance(AiContributionFeature, annotatedDocuments.read(r))
76
+ );
77
+ }));
78
+ }
79
+ };
80
+ EditTelemetryContribution = ( __decorate([( __param(0, IInstantiationService)), ( __param(1, IConfigurationService)), ( __param(2, ITelemetryService)), ( __param(3, IChatEntitlementService))], EditTelemetryContribution));
81
+
82
+ export { EditTelemetryContribution };
@@ -0,0 +1,30 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservable, IReader } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
4
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
5
+ import { IEditorGroupsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service";
6
+ import { IDocumentWithAnnotatedEdits, EditSourceData } from "./documentWithAnnotatedEdits.js";
7
+ import { ObservableWorkspace, IObservableDocument } from "./observableWorkspace.js";
8
+ export interface IAnnotatedDocuments {
9
+ readonly documents: IObservable<readonly AnnotatedDocument[]>;
10
+ }
11
+ export declare class AnnotatedDocuments extends Disposable implements IAnnotatedDocuments {
12
+ private readonly _workspace;
13
+ private readonly _instantiationService;
14
+ readonly documents: IObservable<readonly AnnotatedDocument[]>;
15
+ private readonly _states;
16
+ constructor(_workspace: ObservableWorkspace, _instantiationService: IInstantiationService);
17
+ }
18
+ export declare class UriVisibilityProvider {
19
+ private readonly _editorGroupsService;
20
+ private readonly visibleUris;
21
+ constructor(_editorGroupsService: IEditorGroupsService);
22
+ isVisible(uri: URI, reader: IReader): boolean;
23
+ }
24
+ export declare class AnnotatedDocument extends Disposable {
25
+ readonly document: IObservableDocument;
26
+ readonly isVisible: IObservable<boolean>;
27
+ private readonly _instantiationService;
28
+ readonly documentWithAnnotations: IDocumentWithAnnotatedEdits<EditSourceData>;
29
+ constructor(document: IObservableDocument, isVisible: IObservable<boolean>, _instantiationService: IInstantiationService);
30
+ }
@@ -0,0 +1,79 @@
1
+
2
+ import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
3
+ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
4
+ import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
5
+ import { isDefined } from '@codingame/monaco-vscode-api/vscode/vs/base/common/types';
6
+ import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
7
+ import { EditorResourceAccessor } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
8
+ import { IEditorGroupsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service';
9
+ import { DocumentWithSourceAnnotatedEdits, CombineStreamedChanges, MinimizeEditsProcessor } from './documentWithAnnotatedEdits.js';
10
+ import { mapObservableArrayCached, derivedObservableWithCache } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/utils/utils';
11
+ import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
12
+ import { observableSignalFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableSignalFromEvent';
13
+ import { observableFromEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/observableFromEvent';
14
+
15
+ let AnnotatedDocuments = class AnnotatedDocuments extends Disposable {
16
+ constructor(_workspace, _instantiationService) {
17
+ super();
18
+ this._workspace = _workspace;
19
+ this._instantiationService = _instantiationService;
20
+ const uriVisibilityProvider = this._instantiationService.createInstance(UriVisibilityProvider);
21
+ this._states = mapObservableArrayCached(this, this._workspace.documents, (doc, store) => {
22
+ const docIsVisible = derived(reader => uriVisibilityProvider.isVisible(doc.uri, reader));
23
+ const wasEverVisible = derivedObservableWithCache(this, (reader, lastVal) => lastVal || docIsVisible.read(reader));
24
+ return ( wasEverVisible.map(v => v ? store.add(
25
+ this._instantiationService.createInstance(AnnotatedDocument, doc, docIsVisible)
26
+ ) : undefined));
27
+ });
28
+ this.documents = ( this._states.map((vals, reader) => ( vals.map(v => v.read(reader))).filter(isDefined)));
29
+ this.documents.recomputeInitiallyAndOnChange(this._store);
30
+ }
31
+ };
32
+ AnnotatedDocuments = ( __decorate([( __param(1, IInstantiationService))], AnnotatedDocuments));
33
+ let UriVisibilityProvider = class UriVisibilityProvider {
34
+ constructor(_editorGroupsService) {
35
+ this._editorGroupsService = _editorGroupsService;
36
+ const onDidAddGroupSignal = observableSignalFromEvent(this, this._editorGroupsService.onDidAddGroup);
37
+ const onDidRemoveGroupSignal = observableSignalFromEvent(this, this._editorGroupsService.onDidRemoveGroup);
38
+ const groups = derived(this, reader => {
39
+ onDidAddGroupSignal.read(reader);
40
+ onDidRemoveGroupSignal.read(reader);
41
+ return this._editorGroupsService.groups;
42
+ });
43
+ this.visibleUris = ( mapObservableArrayCached(this, groups, g => {
44
+ const editors = observableFromEvent(this, g.onDidModelChange, () => g.editors);
45
+ return ( editors.map(e => ( e.map(editor => EditorResourceAccessor.getCanonicalUri(editor)))));
46
+ }).map((editors, reader) => {
47
+ const map = ( new Map());
48
+ for (const urisObs of editors) {
49
+ for (const uri of urisObs.read(reader)) {
50
+ if (isDefined(uri)) {
51
+ map.set(( uri.toString()), uri);
52
+ }
53
+ }
54
+ }
55
+ return map;
56
+ }));
57
+ }
58
+ isVisible(uri, reader) {
59
+ return ( this.visibleUris.read(reader).has(( uri.toString())));
60
+ }
61
+ };
62
+ UriVisibilityProvider = ( __decorate([( __param(0, IEditorGroupsService))], UriVisibilityProvider));
63
+ let AnnotatedDocument = class AnnotatedDocument extends Disposable {
64
+ constructor(document, isVisible, _instantiationService) {
65
+ super();
66
+ this.document = document;
67
+ this.isVisible = isVisible;
68
+ this._instantiationService = _instantiationService;
69
+ let processedDoc = this._store.add(( new DocumentWithSourceAnnotatedEdits(document)));
70
+ processedDoc = this._store.add(
71
+ this._instantiationService.createInstance(CombineStreamedChanges, processedDoc)
72
+ );
73
+ processedDoc = this._store.add(( new MinimizeEditsProcessor(processedDoc)));
74
+ this.documentWithAnnotations = processedDoc;
75
+ }
76
+ };
77
+ AnnotatedDocument = ( __decorate([( __param(2, IInstantiationService))], AnnotatedDocument));
78
+
79
+ export { AnnotatedDocument, AnnotatedDocuments, UriVisibilityProvider };
@@ -0,0 +1,128 @@
1
+ import { Disposable, DisposableStore } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
+ import { IObservableWithChange } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable";
3
+ import { AnnotatedStringEdit, IEditData, StringEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/edits/stringEdit";
4
+ import { StringText } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/text/abstractText";
5
+ import { IEditorWorkerService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/editorWorker.service";
6
+ import { TextModelEditSource } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/textModelEditSource";
7
+ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
8
+ import { IObservableDocument } from "./observableWorkspace.js";
9
+ export interface IDocumentWithAnnotatedEdits<TEditData extends IEditData<TEditData> = EditKeySourceData> {
10
+ readonly value: IObservableWithChange<StringText, {
11
+ edit: AnnotatedStringEdit<TEditData>;
12
+ }>;
13
+ waitForQueue(): Promise<void>;
14
+ }
15
+ /**
16
+ * Creates a document that is a delayed copy of the original document,
17
+ * but with edits annotated with the source of the edit.
18
+ */
19
+ export declare class DocumentWithSourceAnnotatedEdits extends Disposable implements IDocumentWithAnnotatedEdits<EditSourceData> {
20
+ private readonly _originalDoc;
21
+ readonly value: IObservableWithChange<StringText, {
22
+ edit: AnnotatedStringEdit<EditSourceData>;
23
+ }>;
24
+ constructor(_originalDoc: IObservableDocument);
25
+ waitForQueue(): Promise<void>;
26
+ }
27
+ /**
28
+ * Only joins touching edits if the source and the metadata is the same (e.g. requestUuids must be equal).
29
+ */
30
+ export declare class EditSourceData implements IEditData<EditSourceData> {
31
+ readonly editSource: TextModelEditSource;
32
+ readonly source: EditSource;
33
+ readonly key: string;
34
+ constructor(editSource: TextModelEditSource);
35
+ join(data: EditSourceData): EditSourceData | undefined;
36
+ toEditSourceData(): EditKeySourceData;
37
+ }
38
+ export declare class EditKeySourceData implements IEditData<EditKeySourceData> {
39
+ readonly key: string;
40
+ readonly source: EditSource;
41
+ readonly representative: TextModelEditSource;
42
+ constructor(key: string, source: EditSource, representative: TextModelEditSource);
43
+ join(data: EditKeySourceData): EditKeySourceData | undefined;
44
+ }
45
+ export declare abstract class EditSourceBase {
46
+ private static _cache;
47
+ static create(reason: TextModelEditSource): EditSource;
48
+ abstract getColor(): string;
49
+ }
50
+ export type EditSource = InlineSuggestEditSource | ChatEditSource | IdeEditSource | UserEditSource | UnknownEditSource | ExternalEditSource;
51
+ export declare class InlineSuggestEditSource extends EditSourceBase {
52
+ readonly kind: "completion" | "nes";
53
+ readonly extensionId: string;
54
+ readonly providerId: string;
55
+ readonly type: "word" | "line" | undefined;
56
+ readonly category = "ai";
57
+ readonly feature = "inlineSuggest";
58
+ constructor(kind: "completion" | "nes", extensionId: string, providerId: string, type: "word" | "line" | undefined);
59
+ toString(): string;
60
+ getColor(): string;
61
+ }
62
+ declare class ChatEditSource extends EditSourceBase {
63
+ readonly kind: "sidebar" | "inline";
64
+ readonly category = "ai";
65
+ readonly feature = "chat";
66
+ constructor(kind: "sidebar" | "inline");
67
+ toString(): string;
68
+ getColor(): string;
69
+ }
70
+ declare class IdeEditSource extends EditSourceBase {
71
+ readonly feature: "suggest" | "format" | string;
72
+ readonly category = "ide";
73
+ constructor(feature: "suggest" | "format" | string);
74
+ toString(): string;
75
+ getColor(): string;
76
+ }
77
+ declare class UserEditSource extends EditSourceBase {
78
+ readonly category = "user";
79
+ constructor();
80
+ toString(): string;
81
+ getColor(): string;
82
+ }
83
+ /** Caused by external tools that trigger a reload from disk */
84
+ declare class ExternalEditSource extends EditSourceBase {
85
+ readonly category = "external";
86
+ constructor();
87
+ toString(): string;
88
+ getColor(): string;
89
+ }
90
+ declare class UnknownEditSource extends EditSourceBase {
91
+ readonly category = "unknown";
92
+ constructor();
93
+ toString(): string;
94
+ getColor(): string;
95
+ }
96
+ export declare class CombineStreamedChanges<TEditData extends (EditKeySourceData | EditSourceData) & IEditData<TEditData>> extends Disposable implements IDocumentWithAnnotatedEdits<TEditData> {
97
+ private readonly _originalDoc;
98
+ private readonly _instantiationService;
99
+ private readonly _value;
100
+ readonly value: IObservableWithChange<StringText, {
101
+ edit: AnnotatedStringEdit<TEditData>;
102
+ }>;
103
+ private readonly _runStore;
104
+ private _runQueue;
105
+ private readonly _diffService;
106
+ constructor(_originalDoc: IDocumentWithAnnotatedEdits<TEditData>, _instantiationService: IInstantiationService);
107
+ _restart(): Promise<void>;
108
+ private _run;
109
+ waitForQueue(): Promise<void>;
110
+ }
111
+ export declare class DiffService {
112
+ private readonly _editorWorkerService;
113
+ constructor(_editorWorkerService: IEditorWorkerService);
114
+ computeDiff(original: string, modified: string): Promise<StringEdit>;
115
+ }
116
+ export declare class MinimizeEditsProcessor<TEditData extends IEditData<TEditData>> extends Disposable implements IDocumentWithAnnotatedEdits<TEditData> {
117
+ private readonly _originalDoc;
118
+ readonly value: IObservableWithChange<StringText, {
119
+ edit: AnnotatedStringEdit<TEditData>;
120
+ }>;
121
+ constructor(_originalDoc: IDocumentWithAnnotatedEdits<TEditData>);
122
+ waitForQueue(): Promise<void>;
123
+ }
124
+ /**
125
+ * Removing the metadata allows touching edits from the same source to merged, even if they were caused by different actions (e.g. two user edits).
126
+ */
127
+ export declare function createDocWithJustReason(docWithAnnotatedEdits: IDocumentWithAnnotatedEdits<EditSourceData>, store: DisposableStore): IDocumentWithAnnotatedEdits<EditKeySourceData>;
128
+ export {};