@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.
- package/lib/browser/contrib/intelligent-completions/source/base.d.ts +1 -2
- package/lib/browser/contrib/intelligent-completions/source/base.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/base.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts +2 -3
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.js +51 -21
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.js.map +1 -1
- package/package.json +21 -21
- package/src/browser/contrib/intelligent-completions/source/base.ts +0 -2
- package/src/browser/contrib/intelligent-completions/source/line-change.source.ts +79 -24
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PreferenceService } from '@opensumi/ide-core-browser';
|
|
2
|
-
import { CodeEditsRT, ConstructorOf, Disposable, IDisposable
|
|
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,
|
|
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":";;;;AAAA,qCAAyF;AACzF,iEAA+D;AAC/D,+DASmC;AACnC,qDAA4E;AAC5E,2EAOoD;AAIpD,MAAa,oBAAqB,SAAQ,4BAAU;IAGlD,YAA6B,GAA0B,EAAmB,MAA2B;QACnG,KAAK,EAAE,CAAC;QADmB,QAAG,GAAH,GAAG,CAAuB;QAAmB,WAAM,GAAN,MAAM,CAAqB;QAFrF,QAAG,GAAG,IAAA,sBAAI,EAAC,CAAC,CAAC,CAAC;IAI9B,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,IAAiB;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAlCD,oDAkCC;AAGM,IAAe,mBAAmB,GAAlC,MAAe,mBAAoB,SAAQ,4BAAU;
|
|
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 {
|
|
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,
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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;
|
|
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-
|
|
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-
|
|
23
|
-
"@opensumi/ide-core-common": "3.7.1-next-
|
|
24
|
-
"@opensumi/ide-core-node": "3.7.1-next-
|
|
25
|
-
"@opensumi/ide-debug": "3.7.1-next-
|
|
26
|
-
"@opensumi/ide-design": "3.7.1-next-
|
|
27
|
-
"@opensumi/ide-editor": "3.7.1-next-
|
|
28
|
-
"@opensumi/ide-file-service": "3.7.1-next-
|
|
29
|
-
"@opensumi/ide-file-tree-next": "3.7.1-next-
|
|
30
|
-
"@opensumi/ide-main-layout": "3.7.1-next-
|
|
31
|
-
"@opensumi/ide-markers": "3.7.1-next-
|
|
32
|
-
"@opensumi/ide-menu-bar": "3.7.1-next-
|
|
33
|
-
"@opensumi/ide-monaco": "3.7.1-next-
|
|
34
|
-
"@opensumi/ide-overlay": "3.7.1-next-
|
|
35
|
-
"@opensumi/ide-preferences": "3.7.1-next-
|
|
36
|
-
"@opensumi/ide-terminal-next": "3.7.1-next-
|
|
37
|
-
"@opensumi/ide-theme": "3.7.1-next-
|
|
38
|
-
"@opensumi/ide-utils": "3.7.1-next-
|
|
39
|
-
"@opensumi/ide-workspace": "3.7.1-next-
|
|
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-
|
|
49
|
+
"@opensumi/ide-core-browser": "3.7.1-next-1737534874.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
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,
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
32
|
-
|
|
69
|
+
this.addDispose(
|
|
70
|
+
autorunDelta(positionChangeObs, ({ lastValue, newValue }) => {
|
|
71
|
+
const contentChange = lastModelContent;
|
|
33
72
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
73
|
+
const isLineChangeEnabled = this.preferenceService.getValid(
|
|
74
|
+
AINativeSettingSectionsId.CodeEditsLineChange,
|
|
75
|
+
false,
|
|
76
|
+
);
|
|
77
|
+
if (!isLineChangeEnabled) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
37
80
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
}
|