@opensumi/ide-ai-native 3.7.1-next-1737368070.0 → 3.7.1-next-1737534874.0

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.
@@ -1,5 +1,5 @@
1
1
  import { PreferenceService } from '@opensumi/ide-core-browser';
2
- import { CodeEditsRT, ConstructorOf, Disposable, IDisposable, MaybePromise } from '@opensumi/ide-core-common';
2
+ import { CodeEditsRT, ConstructorOf, Disposable, IDisposable } from '@opensumi/ide-core-common';
3
3
  import { ICodeEditor } from '@opensumi/ide-monaco';
4
4
  import { ICodeEditsContextBean } from '../index';
5
5
  export declare class CodeEditsContextBean extends Disposable {
@@ -21,7 +21,6 @@ export declare abstract class BaseCodeEditsSource extends Disposable {
21
21
  protected preferenceService: PreferenceService;
22
22
  private cancellationTokenSource;
23
23
  private readonly relationID;
24
- protected abstract doTrigger(...args: any[]): MaybePromise<void>;
25
24
  readonly codeEditsContextBean: import("@opensumi/ide-monaco/lib/common/observable").ISettableObservable<CodeEditsContextBean | undefined, void> & import("@opensumi/monaco-editor-core/esm/vs/base/common/lifecycle").IDisposable;
26
25
  abstract priority: number;
27
26
  abstract mount(): IDisposable;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAEL,WAAW,EACX,aAAa,EACb,UAAU,EAEV,WAAW,EACX,YAAY,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA2B,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAU5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,oBAAqB,SAAQ,UAAU;IAGtC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAyB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFhF,SAAgB,GAAG,SAAW;gBAED,GAAG,EAAE,qBAAqB,EAAmB,MAAM,EAAE,mBAAmB;IAIrG,IAAW,QAAQ,WAElB;IAED,IAAW,IAAI,0BAEd;IAED,IAAW,QAAQ,6CAElB;IAED,IAAW,KAAK,qDAEf;IAEM,aAAa;IAIb,WAAW;IAIX,WAAW,CAAC,IAAI,EAAE,WAAW;CAGrC;AAED,8BACsB,mBAAoB,SAAQ,UAAU;IA0BlC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW;IAxBpE,OAAO,CAAC,UAAU,CAAc;IAGhC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwD;IAEnF,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAEhE,SAAgB,oBAAoB,qMAAgF;IACpH,SAAgB,QAAQ,EAAE,MAAM,CAAC;aACjB,KAAK,IAAI,WAAW;IACpC,IAAW,KAAK,qDAEf;IAEM,WAAW;gBAOyB,YAAY,EAAE,WAAW;IAIpE,SAAS,KAAK,KAAK,qDAElB;IAED,SAAS,CAAC,SAAS;IAOnB,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB;IAOtC,aAAa;IAcb,WAAW,CAAC,IAAI,EAAE,WAAW;CAMrC;AAED,qBACa,yBAA0B,SAAQ,UAAU;IAOrD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC,SAAgB,oBAAoB,qMAAgF;gBAGjG,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,EACxD,YAAY,EAAE,WAAW;CA6C7C"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAEL,WAAW,EACX,aAAa,EACb,UAAU,EAEV,WAAW,EAGZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA2B,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAU5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,oBAAqB,SAAQ,UAAU;IAGtC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAyB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFhF,SAAgB,GAAG,SAAW;gBAED,GAAG,EAAE,qBAAqB,EAAmB,MAAM,EAAE,mBAAmB;IAIrG,IAAW,QAAQ,WAElB;IAED,IAAW,IAAI,0BAEd;IAED,IAAW,QAAQ,6CAElB;IAED,IAAW,KAAK,qDAEf;IAEM,aAAa;IAIb,WAAW;IAIX,WAAW,CAAC,IAAI,EAAE,WAAW;CAGrC;AAED,8BACsB,mBAAoB,SAAQ,UAAU;IAwBlC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW;IAtBpE,OAAO,CAAC,UAAU,CAAc;IAGhC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwD;IAEnF,SAAgB,oBAAoB,qMAAgF;IACpH,SAAgB,QAAQ,EAAE,MAAM,CAAC;aACjB,KAAK,IAAI,WAAW;IACpC,IAAW,KAAK,qDAEf;IAEM,WAAW;gBAOyB,YAAY,EAAE,WAAW;IAIpE,SAAS,KAAK,KAAK,qDAElB;IAED,SAAS,CAAC,SAAS;IAOnB,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB;IAOtC,aAAa;IAcb,WAAW,CAAC,IAAI,EAAE,WAAW;CAMrC;AAED,qBACa,yBAA0B,SAAQ,UAAU;IAOrD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC,SAAgB,oBAAoB,qMAAgF;gBAGjG,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,EACxD,YAAY,EAAE,WAAW;CA6C7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/base.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { IDisposable } from '@opensumi/ide-core-common';
2
- import { Position } from '@opensumi/ide-monaco';
2
+ import { IModelContentChangedEvent } from '@opensumi/ide-monaco';
3
3
  import { BaseCodeEditsSource } from './base';
4
4
  export interface ILineChangeData {
5
5
  currentLineNumber: number;
6
6
  preLineNumber?: number;
7
+ change?: IModelContentChangedEvent;
7
8
  }
8
9
  export declare class LineChangeCodeEditsSource extends BaseCodeEditsSource {
9
10
  priority: number;
10
- private prePosition;
11
11
  mount(): IDisposable;
12
- protected doTrigger(position: Position): void;
13
12
  }
14
13
  //# sourceMappingURL=line-change.source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"line-change.source.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/line-change.source.ts"],"names":[],"mappings":"AACA,OAAO,EAAqD,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAA+B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBACa,yBAA0B,SAAQ,mBAAmB;IACzD,QAAQ,SAAK;IAEpB,OAAO,CAAC,WAAW,CAAmC;IAE/C,KAAK,IAAI,WAAW;IAa3B,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ;CAgBvC"}
1
+ {"version":3,"file":"line-change.source.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/line-change.source.ts"],"names":[],"mappings":"AACA,OAAO,EAAqD,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAA+B,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQ9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAED,qBACa,yBAA0B,SAAQ,mBAAmB;IACzD,QAAQ,SAAK;IAEb,KAAK,IAAI,WAAW;CA+E5B"}
@@ -4,38 +4,68 @@ exports.LineChangeCodeEditsSource = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const di_1 = require("@opensumi/di");
6
6
  const ide_core_common_1 = require("@opensumi/ide-core-common");
7
+ const observable_1 = require("@opensumi/ide-monaco/lib/common/observable");
7
8
  const base_1 = require("./base");
8
9
  let LineChangeCodeEditsSource = class LineChangeCodeEditsSource extends base_1.BaseCodeEditsSource {
9
10
  constructor() {
10
11
  super(...arguments);
11
12
  this.priority = 2;
12
- this.prePosition = this.monacoEditor.getPosition();
13
13
  }
14
14
  mount() {
15
- this.addDispose(this.monacoEditor.onDidChangeCursorPosition((event) => {
16
- const currentPosition = event.position;
17
- if (this.prePosition && this.prePosition.lineNumber !== currentPosition.lineNumber) {
18
- this.doTrigger(currentPosition);
19
- this.prePosition = currentPosition;
15
+ const modelContentChangeObs = (0, observable_1.observableFromEvent)(this, this.monacoEditor.onDidChangeModelContent, (event) => event);
16
+ const positionChangeObs = (0, observable_1.observableFromEvent)(this, this.monacoEditor.onDidChangeCursorPosition, (event) => event);
17
+ const latestModelContentChangeObs = (0, observable_1.derivedHandleChanges)({
18
+ owner: this,
19
+ createEmptyChangeSummary: () => ({ change: undefined }),
20
+ handleChange: (ctx, changeSummary) => {
21
+ // 如果只是改了光标则设置 change 为空,避免获取到缓存的 change
22
+ if (ctx.didChange(positionChangeObs)) {
23
+ changeSummary.change = undefined;
24
+ }
25
+ else {
26
+ changeSummary.change = modelContentChangeObs.get();
27
+ }
28
+ return true;
29
+ },
30
+ }, (reader, changeSummary) => {
31
+ positionChangeObs.read(reader);
32
+ modelContentChangeObs.read(reader);
33
+ return changeSummary.change;
34
+ });
35
+ this.addDispose((0, observable_1.recomputeInitiallyAndOnChange)(latestModelContentChangeObs));
36
+ let lastModelContent;
37
+ this.addDispose(
38
+ /**
39
+ * 由于 monaco 的 changeModelContent 事件比 changeCursorPosition 事件先触发,所以这里需要拿上一次的值进行消费
40
+ * 否则永远返回 undefined
41
+ */
42
+ (0, observable_1.autorunDelta)(latestModelContentChangeObs, ({ lastValue }) => {
43
+ lastModelContent = lastValue;
44
+ }));
45
+ this.addDispose((0, observable_1.autorunDelta)(positionChangeObs, ({ lastValue, newValue }) => {
46
+ const contentChange = lastModelContent;
47
+ const isLineChangeEnabled = this.preferenceService.getValid(ide_core_common_1.AINativeSettingSectionsId.CodeEditsLineChange, false);
48
+ if (!isLineChangeEnabled) {
49
+ return false;
50
+ }
51
+ const prePosition = lastValue === null || lastValue === void 0 ? void 0 : lastValue.position;
52
+ const currentPosition = newValue === null || newValue === void 0 ? void 0 : newValue.position;
53
+ if (prePosition && prePosition.lineNumber !== (currentPosition === null || currentPosition === void 0 ? void 0 : currentPosition.lineNumber)) {
54
+ this.setBean({
55
+ typing: ide_core_common_1.ECodeEditsSourceTyping.LineChange,
56
+ position: currentPosition,
57
+ data: {
58
+ preLineNumber: prePosition.lineNumber,
59
+ currentLineNumber: currentPosition.lineNumber,
60
+ change: contentChange,
61
+ },
62
+ });
20
63
  }
64
+ // 消费完之后设置为 undefined,避免下次获取到缓存的值
65
+ lastModelContent = undefined;
21
66
  }));
22
67
  return this;
23
68
  }
24
- doTrigger(position) {
25
- var _a;
26
- const isLineChangeEnabled = this.preferenceService.getValid(ide_core_common_1.AINativeSettingSectionsId.CodeEditsLineChange, false);
27
- if (!isLineChangeEnabled || !position) {
28
- return;
29
- }
30
- this.setBean({
31
- typing: ide_core_common_1.ECodeEditsSourceTyping.LineChange,
32
- position,
33
- data: {
34
- preLineNumber: (_a = this.prePosition) === null || _a === void 0 ? void 0 : _a.lineNumber,
35
- currentLineNumber: position.lineNumber,
36
- },
37
- });
38
- }
39
69
  };
40
70
  exports.LineChangeCodeEditsSource = LineChangeCodeEditsSource;
41
71
  exports.LineChangeCodeEditsSource = LineChangeCodeEditsSource = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"line-change.source.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/line-change.source.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAA2G;AAG3G,iCAA6C;AAQtC,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,0BAAmB;IAA3D;;QACE,aAAQ,GAAG,CAAC,CAAC;QAEZ,gBAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IA+BxD,CAAC;IA7BQ,KAAK;QACV,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,KAAkC,EAAE,EAAE;YACjF,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC;YACvC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,eAAe,CAAC,UAAU,EAAE,CAAC;gBACnF,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;gBAChC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,SAAS,CAAC,QAAkB;;QACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,2CAAyB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAElH,IAAI,CAAC,mBAAmB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC;YACX,MAAM,EAAE,wCAAsB,CAAC,UAAU;YACzC,QAAQ;YACR,IAAI,EAAE;gBACJ,aAAa,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,UAAU;gBAC3C,iBAAiB,EAAE,QAAQ,CAAC,UAAU;aACvC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAlCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,eAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;GAClB,yBAAyB,CAkCrC"}
1
+ {"version":3,"file":"line-change.source.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/line-change.source.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-ai-native",
3
- "version": "3.7.1-next-1737368070.0",
3
+ "version": "3.7.1-next-1737534874.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -19,24 +19,24 @@
19
19
  "url": "git@github.com:opensumi/core.git"
20
20
  },
21
21
  "dependencies": {
22
- "@opensumi/ide-components": "3.7.1-next-1737368070.0",
23
- "@opensumi/ide-core-common": "3.7.1-next-1737368070.0",
24
- "@opensumi/ide-core-node": "3.7.1-next-1737368070.0",
25
- "@opensumi/ide-debug": "3.7.1-next-1737368070.0",
26
- "@opensumi/ide-design": "3.7.1-next-1737368070.0",
27
- "@opensumi/ide-editor": "3.7.1-next-1737368070.0",
28
- "@opensumi/ide-file-service": "3.7.1-next-1737368070.0",
29
- "@opensumi/ide-file-tree-next": "3.7.1-next-1737368070.0",
30
- "@opensumi/ide-main-layout": "3.7.1-next-1737368070.0",
31
- "@opensumi/ide-markers": "3.7.1-next-1737368070.0",
32
- "@opensumi/ide-menu-bar": "3.7.1-next-1737368070.0",
33
- "@opensumi/ide-monaco": "3.7.1-next-1737368070.0",
34
- "@opensumi/ide-overlay": "3.7.1-next-1737368070.0",
35
- "@opensumi/ide-preferences": "3.7.1-next-1737368070.0",
36
- "@opensumi/ide-terminal-next": "3.7.1-next-1737368070.0",
37
- "@opensumi/ide-theme": "3.7.1-next-1737368070.0",
38
- "@opensumi/ide-utils": "3.7.1-next-1737368070.0",
39
- "@opensumi/ide-workspace": "3.7.1-next-1737368070.0",
22
+ "@opensumi/ide-components": "3.7.1-next-1737534874.0",
23
+ "@opensumi/ide-core-common": "3.7.1-next-1737534874.0",
24
+ "@opensumi/ide-core-node": "3.7.1-next-1737534874.0",
25
+ "@opensumi/ide-debug": "3.7.1-next-1737534874.0",
26
+ "@opensumi/ide-design": "3.7.1-next-1737534874.0",
27
+ "@opensumi/ide-editor": "3.7.1-next-1737534874.0",
28
+ "@opensumi/ide-file-service": "3.7.1-next-1737534874.0",
29
+ "@opensumi/ide-file-tree-next": "3.7.1-next-1737534874.0",
30
+ "@opensumi/ide-main-layout": "3.7.1-next-1737534874.0",
31
+ "@opensumi/ide-markers": "3.7.1-next-1737534874.0",
32
+ "@opensumi/ide-menu-bar": "3.7.1-next-1737534874.0",
33
+ "@opensumi/ide-monaco": "3.7.1-next-1737534874.0",
34
+ "@opensumi/ide-overlay": "3.7.1-next-1737534874.0",
35
+ "@opensumi/ide-preferences": "3.7.1-next-1737534874.0",
36
+ "@opensumi/ide-terminal-next": "3.7.1-next-1737534874.0",
37
+ "@opensumi/ide-theme": "3.7.1-next-1737534874.0",
38
+ "@opensumi/ide-utils": "3.7.1-next-1737534874.0",
39
+ "@opensumi/ide-workspace": "3.7.1-next-1737534874.0",
40
40
  "@xterm/xterm": "5.5.0",
41
41
  "ansi-regex": "^2.0.0",
42
42
  "dom-align": "^1.7.0",
@@ -46,7 +46,7 @@
46
46
  "web-tree-sitter": "0.22.6"
47
47
  },
48
48
  "devDependencies": {
49
- "@opensumi/ide-core-browser": "3.7.1-next-1737368070.0"
49
+ "@opensumi/ide-core-browser": "3.7.1-next-1737534874.0"
50
50
  },
51
- "gitHead": "54bc272ac04f5cf93da7f7f1794f79f510c39685"
51
+ "gitHead": "c003e4f34881a58178bf3d6cc75b8ada1f912458"
52
52
  }
@@ -69,8 +69,6 @@ export abstract class BaseCodeEditsSource extends Disposable {
69
69
  private cancellationTokenSource = new CancellationTokenSource();
70
70
  private readonly relationID = observableValue<string | undefined>(this, undefined);
71
71
 
72
- protected abstract doTrigger(...args: any[]): MaybePromise<void>;
73
-
74
72
  public readonly codeEditsContextBean = disposableObservableValue<CodeEditsContextBean | undefined>(this, undefined);
75
73
  public abstract priority: number;
76
74
  public abstract mount(): IDisposable;
@@ -1,47 +1,102 @@
1
1
  import { Injectable } from '@opensumi/di';
2
2
  import { AINativeSettingSectionsId, ECodeEditsSourceTyping, IDisposable } from '@opensumi/ide-core-common';
3
- import { ICursorPositionChangedEvent, Position } from '@opensumi/ide-monaco';
3
+ import { ICursorPositionChangedEvent, IModelContentChangedEvent } from '@opensumi/ide-monaco';
4
+ import {
5
+ autorunDelta,
6
+ derivedHandleChanges,
7
+ observableFromEvent,
8
+ recomputeInitiallyAndOnChange,
9
+ } from '@opensumi/ide-monaco/lib/common/observable';
4
10
 
5
11
  import { BaseCodeEditsSource } from './base';
6
12
 
7
13
  export interface ILineChangeData {
8
14
  currentLineNumber: number;
9
15
  preLineNumber?: number;
16
+ change?: IModelContentChangedEvent;
10
17
  }
11
18
 
12
19
  @Injectable({ multiple: true })
13
20
  export class LineChangeCodeEditsSource extends BaseCodeEditsSource {
14
21
  public priority = 2;
15
22
 
16
- private prePosition = this.monacoEditor.getPosition();
17
-
18
23
  public mount(): IDisposable {
24
+ const modelContentChangeObs = observableFromEvent<IModelContentChangedEvent>(
25
+ this,
26
+ this.monacoEditor.onDidChangeModelContent,
27
+ (event: IModelContentChangedEvent) => event,
28
+ );
29
+ const positionChangeObs = observableFromEvent<ICursorPositionChangedEvent>(
30
+ this,
31
+ this.monacoEditor.onDidChangeCursorPosition,
32
+ (event: ICursorPositionChangedEvent) => event,
33
+ );
34
+
35
+ const latestModelContentChangeObs = derivedHandleChanges(
36
+ {
37
+ owner: this,
38
+ createEmptyChangeSummary: () => ({ change: undefined }),
39
+ handleChange: (ctx, changeSummary: { change: IModelContentChangedEvent | undefined }) => {
40
+ // 如果只是改了光标则设置 change 为空,避免获取到缓存的 change
41
+ if (ctx.didChange(positionChangeObs)) {
42
+ changeSummary.change = undefined;
43
+ } else {
44
+ changeSummary.change = modelContentChangeObs.get();
45
+ }
46
+ return true;
47
+ },
48
+ },
49
+ (reader, changeSummary) => {
50
+ positionChangeObs.read(reader);
51
+ modelContentChangeObs.read(reader);
52
+ return changeSummary.change;
53
+ },
54
+ );
55
+
56
+ this.addDispose(recomputeInitiallyAndOnChange(latestModelContentChangeObs));
57
+
58
+ let lastModelContent: IModelContentChangedEvent | undefined;
19
59
  this.addDispose(
20
- this.monacoEditor.onDidChangeCursorPosition((event: ICursorPositionChangedEvent) => {
21
- const currentPosition = event.position;
22
- if (this.prePosition && this.prePosition.lineNumber !== currentPosition.lineNumber) {
23
- this.doTrigger(currentPosition);
24
- this.prePosition = currentPosition;
25
- }
60
+ /**
61
+ * 由于 monaco 的 changeModelContent 事件比 changeCursorPosition 事件先触发,所以这里需要拿上一次的值进行消费
62
+ * 否则永远返回 undefined
63
+ */
64
+ autorunDelta(latestModelContentChangeObs, ({ lastValue }) => {
65
+ lastModelContent = lastValue;
26
66
  }),
27
67
  );
28
- return this;
29
- }
30
68
 
31
- protected doTrigger(position: Position) {
32
- const isLineChangeEnabled = this.preferenceService.getValid(AINativeSettingSectionsId.CodeEditsLineChange, false);
69
+ this.addDispose(
70
+ autorunDelta(positionChangeObs, ({ lastValue, newValue }) => {
71
+ const contentChange = lastModelContent;
33
72
 
34
- if (!isLineChangeEnabled || !position) {
35
- return;
36
- }
73
+ const isLineChangeEnabled = this.preferenceService.getValid(
74
+ AINativeSettingSectionsId.CodeEditsLineChange,
75
+ false,
76
+ );
77
+ if (!isLineChangeEnabled) {
78
+ return false;
79
+ }
37
80
 
38
- this.setBean({
39
- typing: ECodeEditsSourceTyping.LineChange,
40
- position,
41
- data: {
42
- preLineNumber: this.prePosition?.lineNumber,
43
- currentLineNumber: position.lineNumber,
44
- },
45
- });
81
+ const prePosition = lastValue?.position;
82
+ const currentPosition = newValue?.position;
83
+ if (prePosition && prePosition.lineNumber !== currentPosition?.lineNumber) {
84
+ this.setBean({
85
+ typing: ECodeEditsSourceTyping.LineChange,
86
+ position: currentPosition,
87
+ data: {
88
+ preLineNumber: prePosition.lineNumber,
89
+ currentLineNumber: currentPosition.lineNumber,
90
+ change: contentChange,
91
+ },
92
+ });
93
+ }
94
+
95
+ // 消费完之后设置为 undefined,避免下次获取到缓存的值
96
+ lastModelContent = undefined;
97
+ }),
98
+ );
99
+
100
+ return this;
46
101
  }
47
102
  }