@opensumi/ide-ai-native 3.7.1-next-1739521933.0 → 3.7.1-next-1739761524.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.
Files changed (32) hide show
  1. package/lib/browser/components/utils.d.ts +2 -2
  2. package/lib/browser/contrib/intelligent-completions/index.d.ts +12 -8
  3. package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
  4. package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
  5. package/lib/browser/contrib/intelligent-completions/source/base.d.ts +1 -8
  6. package/lib/browser/contrib/intelligent-completions/source/base.d.ts.map +1 -1
  7. package/lib/browser/contrib/intelligent-completions/source/base.js +3 -21
  8. package/lib/browser/contrib/intelligent-completions/source/base.js.map +1 -1
  9. package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts +2 -0
  10. package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts.map +1 -1
  11. package/lib/browser/contrib/intelligent-completions/source/line-change.source.js +37 -5
  12. package/lib/browser/contrib/intelligent-completions/source/line-change.source.js.map +1 -1
  13. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.d.ts +3 -1
  14. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.d.ts.map +1 -1
  15. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.js +20 -13
  16. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.js.map +1 -1
  17. package/lib/browser/contrib/intelligent-completions/source/typing.source.d.ts +2 -2
  18. package/lib/browser/contrib/intelligent-completions/source/typing.source.d.ts.map +1 -1
  19. package/lib/browser/contrib/intelligent-completions/source/typing.source.js +8 -6
  20. package/lib/browser/contrib/intelligent-completions/source/typing.source.js.map +1 -1
  21. package/lib/browser/layout/layout.module.less +9 -9
  22. package/lib/browser/layout/tabbar.view.d.ts.map +1 -1
  23. package/lib/browser/layout/tabbar.view.js +5 -6
  24. package/lib/browser/layout/tabbar.view.js.map +1 -1
  25. package/package.json +21 -21
  26. package/src/browser/contrib/intelligent-completions/index.ts +4 -9
  27. package/src/browser/contrib/intelligent-completions/source/base.ts +5 -28
  28. package/src/browser/contrib/intelligent-completions/source/line-change.source.ts +57 -7
  29. package/src/browser/contrib/intelligent-completions/source/lint-error.source.ts +31 -19
  30. package/src/browser/contrib/intelligent-completions/source/typing.source.ts +9 -7
  31. package/src/browser/layout/layout.module.less +9 -9
  32. package/src/browser/layout/tabbar.view.tsx +10 -8
@@ -16,8 +16,8 @@ export declare const createMessageByUser: (message: UserMessageData, className?:
16
16
  relationId: string;
17
17
  text: string | React.ReactNode;
18
18
  id: string | number;
19
- position: string;
20
19
  title: string;
20
+ position: string;
21
21
  };
22
22
  export declare const createMessageByAI: (message: AIMessageData, className?: string) => {
23
23
  type: string;
@@ -26,8 +26,8 @@ export declare const createMessageByAI: (message: AIMessageData, className?: str
26
26
  relationId: string;
27
27
  text: string | React.ReactNode;
28
28
  id: string | number;
29
- position: string;
30
29
  title: string;
30
+ position: string;
31
31
  };
32
32
  export declare const extractIcon: (question: ISampleQuestions) => ISampleQuestions;
33
33
  export {};
@@ -9,15 +9,19 @@ export interface IIntelligentCompletionsResult<T = any> {
9
9
  */
10
10
  extra?: T;
11
11
  }
12
- export interface ICodeEditsContextBean {
13
- typing: ECodeEditsSourceTyping;
12
+ export type ICodeEditsContextBean = {
13
+ typing: ECodeEditsSourceTyping.LinterErrors;
14
14
  position: IPosition;
15
- data: {
16
- [ECodeEditsSourceTyping.LinterErrors]?: ILinterErrorData;
17
- [ECodeEditsSourceTyping.LineChange]?: ILineChangeData;
18
- [ECodeEditsSourceTyping.Typing]?: IModelContentChangedEvent;
19
- };
20
- }
15
+ data: ILinterErrorData;
16
+ } | {
17
+ typing: ECodeEditsSourceTyping.LineChange;
18
+ position: IPosition;
19
+ data: ILineChangeData;
20
+ } | {
21
+ typing: ECodeEditsSourceTyping.Typing;
22
+ position: IPosition;
23
+ data: IModelContentChangedEvent;
24
+ };
21
25
  export interface ICodeEdit {
22
26
  /**
23
27
  * 插入的文本
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,GAAG;IACpD,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;CACX;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE;QACJ,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACzD,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,EAAE,eAAe,CAAC;QACtD,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB,CAAC;KAC7D,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAqB,SAAQ,UAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,gBAAgB;IAIlD,IAAW,KAAK,IAAI,SAAS,EAAE,CAE9B;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,GAAG;IACpD,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;CACX;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,sBAAsB,CAAC,YAAY,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC5F;IAAE,MAAM,EAAE,sBAAsB,CAAC,UAAU,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GACzF;IAAE,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAEpG,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAqB,SAAQ,UAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,gBAAgB;IAIlD,IAAW,KAAK,IAAI,SAAS,EAAE,CAE9B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/index.ts"],"names":[],"mappings":";;;AAAA,+DAA+E;AAsC/E,MAAa,oBAAqB,SAAQ,4BAAU;IAClD,YAA6B,GAAqB;QAChD,KAAK,EAAE,CAAC;QADmB,QAAG,GAAH,GAAG,CAAkB;IAElD,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB,CAAC;CACF;AARD,oDAQC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/index.ts"],"names":[],"mappings":";;;AAAA,+DAA+E;AAiC/E,MAAa,oBAAqB,SAAQ,4BAAU;IAClD,YAA6B,GAAqB;QAChD,KAAK,EAAE,CAAC;QADmB,QAAG,GAAH,GAAG,CAAkB;IAElD,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB,CAAC;CACF;AARD,oDAQC"}
@@ -9,15 +9,8 @@ export declare class CodeEditsContextBean extends Disposable {
9
9
  constructor(raw: ICodeEditsContextBean, source: BaseCodeEditsSource);
10
10
  get priority(): number;
11
11
  get bean(): ICodeEditsContextBean;
12
- get typing(): import("@opensumi/ide-core-browser").ECodeEditsSourceTyping;
13
12
  get position(): import("@opensumi/ide-monaco").IPosition;
14
- get data(): {
15
- lint_errors?: import("./lint-error.source").ILinterErrorData;
16
- line_change?: import("./line-change.source").ILineChangeData;
17
- typing?: import("@opensumi/ide-monaco").IModelContentChangedEvent;
18
- };
19
13
  get token(): import("@opensumi/ide-monaco").CancellationToken;
20
- joinData(data: ICodeEditsContextBean['data']): void;
21
14
  reporterStart(): void;
22
15
  cancelToken(): void;
23
16
  reporterEnd(data: CodeEditsRT): void;
@@ -36,7 +29,7 @@ export declare abstract class BaseCodeEditsSource extends Disposable {
36
29
  constructor(monacoEditor: ICodeEditor);
37
30
  protected get model(): import("@opensumi/ide-monaco").ITextModel | null;
38
31
  protected resetBean(): void;
39
- protected setBean(bean: Omit<ICodeEditsContextBean, 'position'>): void;
32
+ protected setBean(bean: ICodeEditsContextBean): void;
40
33
  reporterStart(): void;
41
34
  reporterEnd(data: CodeEditsRT): void;
42
35
  }
@@ -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,EAEZ,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,MAAM,gEAEhB;IAED,IAAW,QAAQ,6CAElB;IAED,IAAW,IAAI;;;;MAEd;IAED,IAAW,KAAK,qDAEf;IAEM,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC;IAI5C,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,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAOxD,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;CAyD7C"}
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"}
@@ -20,21 +20,12 @@ class CodeEditsContextBean extends ide_core_common_1.Disposable {
20
20
  get bean() {
21
21
  return this.raw;
22
22
  }
23
- get typing() {
24
- return this.raw.typing;
25
- }
26
23
  get position() {
27
24
  return this.raw.position;
28
25
  }
29
- get data() {
30
- return this.raw.data;
31
- }
32
26
  get token() {
33
27
  return this.source.token;
34
28
  }
35
- joinData(data) {
36
- this.raw.data = { ...this.data, ...data };
37
- }
38
29
  reporterStart() {
39
30
  return this.source.reporterStart();
40
31
  }
@@ -73,7 +64,7 @@ let BaseCodeEditsSource = class BaseCodeEditsSource extends ide_core_common_1.Di
73
64
  }
74
65
  setBean(bean) {
75
66
  (0, observable_1.transaction)((tx) => {
76
- const context = new CodeEditsContextBean({ ...bean, position: this.monacoEditor.getPosition() }, this);
67
+ const context = new CodeEditsContextBean(bean, this);
77
68
  this.codeEditsContextBean.set(context, tx);
78
69
  });
79
70
  }
@@ -82,7 +73,7 @@ let BaseCodeEditsSource = class BaseCodeEditsSource extends ide_core_common_1.Di
82
73
  if (context) {
83
74
  const relationID = this.aiReporter.start(ide_core_common_1.AIServiceType.CodeEdits, {
84
75
  type: ide_core_common_1.AIServiceType.CodeEdits,
85
- actionSource: context === null || context === void 0 ? void 0 : context.typing,
76
+ actionSource: context === null || context === void 0 ? void 0 : context.bean.typing,
86
77
  });
87
78
  (0, observable_1.transaction)((tx) => {
88
79
  this.relationID.set(relationID, tx);
@@ -136,19 +127,10 @@ let CodeEditsSourceCollection = class CodeEditsSourceCollection extends ide_core
136
127
  let contextBean;
137
128
  for (const source of lastSources) {
138
129
  const value = source.codeEditsContextBean.get();
139
- if (!value) {
140
- return;
141
- }
142
- if (!contextBean) {
143
- contextBean = value;
144
- }
145
- if (value.priority >= highestPriority) {
130
+ if (value && value.priority >= highestPriority) {
146
131
  highestPriority = value.priority;
147
- value.joinData(contextBean.data);
148
132
  contextBean = value;
149
133
  }
150
- // 将多个 source 的 data 合并到一起
151
- contextBean.joinData(value.data);
152
134
  }
153
135
  (0, observable_1.transaction)((tx) => {
154
136
  // 只通知最高优先级的结果
@@ -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,8 +1,10 @@
1
1
  import { IDisposable } from '@opensumi/ide-core-common';
2
+ import { IModelContentChangedEvent } from '@opensumi/ide-monaco';
2
3
  import { BaseCodeEditsSource } from './base';
3
4
  export interface ILineChangeData {
4
5
  currentLineNumber: number;
5
6
  preLineNumber?: number;
7
+ change?: IModelContentChangedEvent;
6
8
  }
7
9
  export declare class LineChangeCodeEditsSource extends BaseCodeEditsSource {
8
10
  priority: number;
@@ -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;AAI3G,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;IAEb,KAAK,IAAI,WAAW;CAmC5B"}
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"}
@@ -9,11 +9,41 @@ const base_1 = require("./base");
9
9
  let LineChangeCodeEditsSource = class LineChangeCodeEditsSource extends base_1.BaseCodeEditsSource {
10
10
  constructor() {
11
11
  super(...arguments);
12
- this.priority = 1;
12
+ this.priority = 2;
13
13
  }
14
14
  mount() {
15
+ const modelContentChangeObs = (0, observable_1.observableFromEvent)(this, this.monacoEditor.onDidChangeModelContent, (event) => event);
15
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
+ }));
16
45
  this.addDispose((0, observable_1.autorunDelta)(positionChangeObs, ({ lastValue, newValue }) => {
46
+ const contentChange = lastModelContent;
17
47
  const isLineChangeEnabled = this.preferenceService.getValid(ide_core_common_1.AINativeSettingSectionsId.CodeEditsLineChange, false);
18
48
  if (!isLineChangeEnabled) {
19
49
  return false;
@@ -23,14 +53,16 @@ let LineChangeCodeEditsSource = class LineChangeCodeEditsSource extends base_1.B
23
53
  if (prePosition && prePosition.lineNumber !== (currentPosition === null || currentPosition === void 0 ? void 0 : currentPosition.lineNumber)) {
24
54
  this.setBean({
25
55
  typing: ide_core_common_1.ECodeEditsSourceTyping.LineChange,
56
+ position: currentPosition,
26
57
  data: {
27
- [ide_core_common_1.ECodeEditsSourceTyping.LineChange]: {
28
- preLineNumber: prePosition.lineNumber,
29
- currentLineNumber: currentPosition.lineNumber,
30
- },
58
+ preLineNumber: prePosition.lineNumber,
59
+ currentLineNumber: currentPosition.lineNumber,
60
+ change: contentChange,
31
61
  },
32
62
  });
33
63
  }
64
+ // 消费完之后设置为 undefined,避免下次获取到缓存的值
65
+ lastModelContent = undefined;
34
66
  }));
35
67
  return this;
36
68
  }
@@ -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;AAE3G,2EAA+F;AAE/F,iCAA6C;AAQtC,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,0BAAmB;IAA3D;;QACE,aAAQ,GAAG,CAAC,CAAC;IAqCtB,CAAC;IAnCQ,KAAK;QACV,MAAM,iBAAiB,GAAG,IAAA,gCAAmB,EAC3C,IAAI,EACJ,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAC3C,CAAC,KAAkC,EAAE,EAAE,CAAC,KAAK,CAC9C,CAAC;QAEF,IAAI,CAAC,UAAU,CACb,IAAA,yBAAY,EAAC,iBAAiB,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CACzD,2CAAyB,CAAC,mBAAmB,EAC7C,KAAK,CACN,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,WAAW,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC;YACxC,MAAM,eAAe,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;YAC3C,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,MAAK,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,CAAA,EAAE,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC;oBACX,MAAM,EAAE,wCAAsB,CAAC,UAAU;oBACzC,IAAI,EAAE;wBACJ,CAAC,wCAAsB,CAAC,UAAU,CAAC,EAAE;4BACnC,aAAa,EAAE,WAAW,CAAC,UAAU;4BACrC,iBAAiB,EAAE,eAAe,CAAC,UAAU;yBAC9C;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAtCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,eAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;GAClB,yBAAyB,CAsCrC"}
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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"}
@@ -4,6 +4,7 @@ import { URI } from '@opensumi/ide-monaco/lib/browser/monaco-api';
4
4
  import { IRelatedInformation } from '@opensumi/monaco-editor-core/esm/vs/platform/markers/common/markers';
5
5
  import { BaseCodeEditsSource } from './base';
6
6
  export interface ILinterErrorData {
7
+ relativeWorkspacePath: string;
7
8
  errors: Array<IMarkerErrorData>;
8
9
  }
9
10
  export interface IMarkerErrorData {
@@ -18,7 +19,8 @@ export interface IMarkerErrorData {
18
19
  }
19
20
  export declare class LintErrorCodeEditsSource extends BaseCodeEditsSource {
20
21
  priority: number;
22
+ private readonly workspaceService;
21
23
  mount(): IDisposable;
22
- protected doTrigger(position: Position): void;
24
+ protected doTrigger(position: Position): Promise<void>;
23
25
  }
24
26
  //# sourceMappingURL=lint-error.source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lint-error.source.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/lint-error.source.ts"],"names":[],"mappings":"AACA,OAAO,EAAqD,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAA+B,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,GAAG,EAAE,MAAM,6CAA6C,CAAC;AAGlE,OAAO,EAGL,mBAAmB,EAEpB,MAAM,qEAAqE,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,EAAE,SAAS,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC5C;AAuBD,qBACa,wBAAyB,SAAQ,mBAAmB;IACxD,QAAQ,SAAK;IAEb,KAAK,IAAI,WAAW;IA2B3B,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ;CAwBvC"}
1
+ {"version":3,"file":"lint-error.source.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/lint-error.source.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA+B,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,GAAG,EAAE,MAAM,6CAA6C,CAAC;AAGlE,OAAO,EAGL,mBAAmB,EAEpB,MAAM,qEAAqE,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,aAAa,EAAE,SAAS,CAAC;QACzB,WAAW,EAAE,SAAS,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC5C;AAuBD,qBACa,wBAAyB,SAAQ,mBAAmB;IACxD,QAAQ,SAAK;IAGpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAE9C,KAAK,IAAI,WAAW;cA2BX,SAAS,CAAC,QAAQ,EAAE,QAAQ;CA0B7C"}
@@ -4,7 +4,7 @@ exports.LintErrorCodeEditsSource = 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
+ const ide_workspace_1 = require("@opensumi/ide-workspace");
8
8
  const standaloneServices_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices");
9
9
  const markers_1 = require("@opensumi/monaco-editor-core/esm/vs/platform/markers/common/markers");
10
10
  const base_1 = require("./base");
@@ -33,26 +33,28 @@ var MarkerErrorData;
33
33
  let LintErrorCodeEditsSource = class LintErrorCodeEditsSource extends base_1.BaseCodeEditsSource {
34
34
  constructor() {
35
35
  super(...arguments);
36
- this.priority = 0;
36
+ this.priority = 1;
37
37
  }
38
38
  mount() {
39
- const positionChangeObs = (0, observable_1.observableFromEvent)(this, this.monacoEditor.onDidChangeCursorPosition, (event) => event);
40
- this.addDispose((0, observable_1.autorunDelta)(positionChangeObs, ({ lastValue, newValue }) => {
41
- const prePosition = lastValue === null || lastValue === void 0 ? void 0 : lastValue.position;
42
- const currentPosition = newValue === null || newValue === void 0 ? void 0 : newValue.position;
39
+ let prePosition = this.monacoEditor.getPosition();
40
+ this.addDispose(
41
+ // 仅在光标的行号发生变化时,才触发
42
+ ide_core_common_1.Event.debounce(this.monacoEditor.onDidChangeCursorPosition, (_, e) => e, ide_core_common_1.FRAME_THREE)(async (event) => {
43
+ const currentPosition = event.position;
43
44
  // 如果是 selection 则不触发
44
45
  const selection = this.monacoEditor.getSelection();
45
46
  if (!(selection === null || selection === void 0 ? void 0 : selection.isEmpty())) {
46
47
  return;
47
48
  }
48
- // 仅在光标的行号发生变化时,才触发
49
- if (prePosition && prePosition.lineNumber !== (currentPosition === null || currentPosition === void 0 ? void 0 : currentPosition.lineNumber)) {
50
- this.doTrigger(currentPosition);
49
+ if (prePosition && prePosition.lineNumber !== currentPosition.lineNumber) {
50
+ await this.doTrigger(currentPosition);
51
51
  }
52
+ prePosition = currentPosition;
52
53
  }));
53
54
  return this;
54
55
  }
55
- doTrigger(position) {
56
+ async doTrigger(position) {
57
+ var _a;
56
58
  const isLintErrorsEnabled = this.preferenceService.getValid(ide_core_common_1.AINativeSettingSectionsId.CodeEditsLintErrors, false);
57
59
  if (!isLintErrorsEnabled || !this.model) {
58
60
  return;
@@ -62,18 +64,23 @@ let LintErrorCodeEditsSource = class LintErrorCodeEditsSource extends base_1.Bas
62
64
  let markers = markerService.read({ resource, severities: markers_1.MarkerSeverity.Error });
63
65
  markers = markers.filter((marker) => Math.abs(marker.startLineNumber - position.lineNumber) <= 1);
64
66
  if (markers.length) {
67
+ const relativeWorkspacePath = await this.workspaceService.asRelativePath(resource.path);
65
68
  this.setBean({
66
69
  typing: ide_core_common_1.ECodeEditsSourceTyping.LinterErrors,
70
+ position,
67
71
  data: {
68
- [ide_core_common_1.ECodeEditsSourceTyping.LinterErrors]: {
69
- errors: markers.map((marker) => MarkerErrorData.toData(marker)),
70
- },
72
+ relativeWorkspacePath: (_a = relativeWorkspacePath === null || relativeWorkspacePath === void 0 ? void 0 : relativeWorkspacePath.path) !== null && _a !== void 0 ? _a : resource.path,
73
+ errors: markers.map((marker) => MarkerErrorData.toData(marker)),
71
74
  },
72
75
  });
73
76
  }
74
77
  }
75
78
  };
76
79
  exports.LintErrorCodeEditsSource = LintErrorCodeEditsSource;
80
+ tslib_1.__decorate([
81
+ (0, di_1.Autowired)(ide_workspace_1.IWorkspaceService),
82
+ tslib_1.__metadata("design:type", Object)
83
+ ], LintErrorCodeEditsSource.prototype, "workspaceService", void 0);
77
84
  exports.LintErrorCodeEditsSource = LintErrorCodeEditsSource = tslib_1.__decorate([
78
85
  (0, di_1.Injectable)({ multiple: true })
79
86
  ], LintErrorCodeEditsSource);
@@ -1 +1 @@
1
- {"version":3,"file":"lint-error.source.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/lint-error.source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint-error.source.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/lint-error.source.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { IDisposable } from '@opensumi/ide-core-common';
2
- import { IModelContentChangedEvent } from '@opensumi/ide-monaco';
2
+ import { IModelContentChangedEvent, Position } from '@opensumi/ide-monaco';
3
3
  import { BaseCodeEditsSource } from './base';
4
4
  export declare class TypingCodeEditsSource extends BaseCodeEditsSource {
5
5
  priority: number;
6
6
  mount(): IDisposable;
7
- protected doTrigger(data: IModelContentChangedEvent): Promise<void>;
7
+ protected doTrigger(position: Position, data: IModelContentChangedEvent): Promise<void>;
8
8
  }
9
9
  //# sourceMappingURL=typing.source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typing.source.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/typing.source.ts"],"names":[],"mappings":"AACA,OAAO,EAAqD,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,qBACa,qBAAsB,SAAQ,mBAAmB;IACrD,QAAQ,SAAK;IAEb,KAAK,IAAI,WAAW;cASX,SAAS,CAAC,IAAI,EAAE,yBAAyB;CAc1D"}
1
+ {"version":3,"file":"typing.source.d.ts","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/typing.source.ts"],"names":[],"mappings":"AACA,OAAO,EAAqD,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3G,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,qBACa,qBAAsB,SAAQ,mBAAmB;IACrD,QAAQ,SAAK;IAEb,KAAK,IAAI,WAAW;cAYX,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB;CAa9E"}
@@ -8,24 +8,26 @@ const base_1 = require("./base");
8
8
  let TypingCodeEditsSource = class TypingCodeEditsSource extends base_1.BaseCodeEditsSource {
9
9
  constructor() {
10
10
  super(...arguments);
11
- this.priority = 2;
11
+ this.priority = 0;
12
12
  }
13
13
  mount() {
14
14
  this.addDispose(this.monacoEditor.onDidChangeModelContent((event) => {
15
- this.doTrigger(event);
15
+ const position = this.monacoEditor.getPosition();
16
+ if (position) {
17
+ this.doTrigger(position, event);
18
+ }
16
19
  }));
17
20
  return this;
18
21
  }
19
- async doTrigger(data) {
22
+ async doTrigger(position, data) {
20
23
  const isTypingEnabled = this.preferenceService.getValid(ide_core_common_1.AINativeSettingSectionsId.CodeEditsTyping, false);
21
24
  if (!isTypingEnabled || !this.model) {
22
25
  return;
23
26
  }
24
27
  this.setBean({
25
28
  typing: ide_core_common_1.ECodeEditsSourceTyping.Typing,
26
- data: {
27
- [ide_core_common_1.ECodeEditsSourceTyping.Typing]: data,
28
- },
29
+ position,
30
+ data,
29
31
  });
30
32
  }
31
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"typing.source.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/typing.source.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAA2G;AAG3G,iCAA6C;AAGtC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,0BAAmB;IAAvD;;QACE,aAAQ,GAAG,CAAC,CAAC;IAyBtB,CAAC;IAvBQ,KAAK;QACV,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,KAAgC,EAAE,EAAE;YAC7E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,IAA+B;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,2CAAyB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAE1G,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC;YACX,MAAM,EAAE,wCAAsB,CAAC,MAAM;YACrC,IAAI,EAAE;gBACJ,CAAC,wCAAsB,CAAC,MAAM,CAAC,EAAE,IAAI;aACtC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1BY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;GAClB,qBAAqB,CA0BjC"}
1
+ {"version":3,"file":"typing.source.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/source/typing.source.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAA2G;AAG3G,iCAA6C;AAGtC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,0BAAmB;IAAvD;;QACE,aAAQ,GAAG,CAAC,CAAC;IA2BtB,CAAC;IAzBQ,KAAK;QACV,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,KAAgC,EAAE,EAAE;YAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,QAAkB,EAAE,IAA+B;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,2CAAyB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAE1G,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC;YACX,MAAM,EAAE,wCAAsB,CAAC,MAAM;YACrC,QAAQ;YACR,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5BY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;GAClB,qBAAqB,CA4BjC"}
@@ -119,20 +119,20 @@
119
119
  border: none;
120
120
  }
121
121
 
122
+ .header {
123
+ height: 36px;
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: space-between;
127
+ padding: 0 10px;
128
+ background-color: var(--editorGroupHeader-tabsBackground);
129
+ }
130
+
122
131
  .right_slot_container_wrap {
123
132
  height: 100%;
124
133
  display: flex;
125
134
  flex-direction: column;
126
135
 
127
- .header {
128
- height: 36px;
129
- display: flex;
130
- align-items: center;
131
- justify-content: space-between;
132
- padding: 0 10px;
133
- background-color: var(--editorGroupHeader-tabsBackground);
134
- }
135
-
136
136
  .container {
137
137
  flex: 1;
138
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tabbar.view.d.ts","sourceRoot":"","sources":["../../../src/browser/layout/tabbar.view.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EACL,qBAAqB,EAKtB,MAAM,4BAA4B,CAAC;AA0CpC,eAAO,MAAM,iBAAiB,+BAG3B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBAiBA,CAAC;AAEF,eAAO,MAAM,wBAAwB,+BAGlC;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBAiBA,CAAC;AAEF,eAAO,MAAM,iBAAiB,+BAG3B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBAA8G,CAAC;AAiDhH,eAAO,MAAM,kBAAkB,+BAG5B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBA4CA,CAAC"}
1
+ {"version":3,"file":"tabbar.view.d.ts","sourceRoot":"","sources":["../../../src/browser/layout/tabbar.view.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EACL,qBAAqB,EAKtB,MAAM,4BAA4B,CAAC;AA0CpC,eAAO,MAAM,iBAAiB,+BAG3B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBAiBA,CAAC;AAEF,eAAO,MAAM,wBAAwB,+BAGlC;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBAiBA,CAAC;AAEF,eAAO,MAAM,iBAAiB,+BAG3B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBAA8G,CAAC;AAiDhH,eAAO,MAAM,kBAAkB,+BAG5B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC,sBA8CA,CAAC"}
@@ -60,12 +60,11 @@ const AIRightTabRenderer = ({ className, components, }) => {
60
60
  const ContainerViewFn = (0, react_1.useCallback)((props) => {
61
61
  const { component } = props;
62
62
  const { options } = component;
63
- return (react_1.default.createElement(panel_view_1.ContainerView, { ...props, renderContainerWrap: ({ children }) => (react_1.default.createElement("div", { className: layout_module_less_1.default.right_slot_container_wrap },
64
- react_1.default.createElement("div", { className: layout_module_less_1.default.header },
65
- react_1.default.createElement("span", { className: layout_module_less_1.default.title }, options && options.title),
66
- react_1.default.createElement("div", { className: layout_module_less_1.default.side },
67
- react_1.default.createElement(ai_native_1.EnhancePopover, { id: 'ai_right_panel_header_close', title: (0, ide_core_common_1.localize)('editor.title.context.close') },
68
- react_1.default.createElement(ai_native_1.EnhanceIcon, { icon: 'close', onClick: handleClose })))),
63
+ return (react_1.default.createElement(panel_view_1.ContainerView, { ...props, customTitleBar: react_1.default.createElement("div", { className: layout_module_less_1.default.header },
64
+ react_1.default.createElement("span", { className: layout_module_less_1.default.title }, options && options.title),
65
+ react_1.default.createElement("div", { className: layout_module_less_1.default.side },
66
+ react_1.default.createElement(ai_native_1.EnhancePopover, { id: 'ai_right_panel_header_close', title: (0, ide_core_common_1.localize)('editor.title.context.close') },
67
+ react_1.default.createElement(ai_native_1.EnhanceIcon, { icon: 'close', onClick: handleClose })))), renderContainerWrap: ({ children }) => (react_1.default.createElement("div", { className: layout_module_less_1.default.right_slot_container_wrap },
69
68
  react_1.default.createElement("div", { className: layout_module_less_1.default.container }, children))) }));
70
69
  }, []);
71
70
  const rightTabRenderClassName = (0, react_1.useMemo)(() => (designLayoutConfig.useMergeRightWithLeftPanel ? layout_module_less_1.default.right_tab_renderer : ''), [designLayoutConfig]);
@@ -1 +1 @@
1
- {"version":3,"file":"tabbar.view.js","sourceRoot":"","sources":["../../../src/browser/layout/tabbar.view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabbar.view.js","sourceRoot":"","sources":["../../../src/browser/layout/tabbar.view.tsx"],"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-1739521933.0",
3
+ "version": "3.7.1-next-1739761524.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-1739521933.0",
23
- "@opensumi/ide-core-common": "3.7.1-next-1739521933.0",
24
- "@opensumi/ide-core-node": "3.7.1-next-1739521933.0",
25
- "@opensumi/ide-debug": "3.7.1-next-1739521933.0",
26
- "@opensumi/ide-design": "3.7.1-next-1739521933.0",
27
- "@opensumi/ide-editor": "3.7.1-next-1739521933.0",
28
- "@opensumi/ide-file-service": "3.7.1-next-1739521933.0",
29
- "@opensumi/ide-file-tree-next": "3.7.1-next-1739521933.0",
30
- "@opensumi/ide-main-layout": "3.7.1-next-1739521933.0",
31
- "@opensumi/ide-markers": "3.7.1-next-1739521933.0",
32
- "@opensumi/ide-menu-bar": "3.7.1-next-1739521933.0",
33
- "@opensumi/ide-monaco": "3.7.1-next-1739521933.0",
34
- "@opensumi/ide-overlay": "3.7.1-next-1739521933.0",
35
- "@opensumi/ide-preferences": "3.7.1-next-1739521933.0",
36
- "@opensumi/ide-terminal-next": "3.7.1-next-1739521933.0",
37
- "@opensumi/ide-theme": "3.7.1-next-1739521933.0",
38
- "@opensumi/ide-utils": "3.7.1-next-1739521933.0",
39
- "@opensumi/ide-workspace": "3.7.1-next-1739521933.0",
22
+ "@opensumi/ide-components": "3.7.1-next-1739761524.0",
23
+ "@opensumi/ide-core-common": "3.7.1-next-1739761524.0",
24
+ "@opensumi/ide-core-node": "3.7.1-next-1739761524.0",
25
+ "@opensumi/ide-debug": "3.7.1-next-1739761524.0",
26
+ "@opensumi/ide-design": "3.7.1-next-1739761524.0",
27
+ "@opensumi/ide-editor": "3.7.1-next-1739761524.0",
28
+ "@opensumi/ide-file-service": "3.7.1-next-1739761524.0",
29
+ "@opensumi/ide-file-tree-next": "3.7.1-next-1739761524.0",
30
+ "@opensumi/ide-main-layout": "3.7.1-next-1739761524.0",
31
+ "@opensumi/ide-markers": "3.7.1-next-1739761524.0",
32
+ "@opensumi/ide-menu-bar": "3.7.1-next-1739761524.0",
33
+ "@opensumi/ide-monaco": "3.7.1-next-1739761524.0",
34
+ "@opensumi/ide-overlay": "3.7.1-next-1739761524.0",
35
+ "@opensumi/ide-preferences": "3.7.1-next-1739761524.0",
36
+ "@opensumi/ide-terminal-next": "3.7.1-next-1739761524.0",
37
+ "@opensumi/ide-theme": "3.7.1-next-1739761524.0",
38
+ "@opensumi/ide-utils": "3.7.1-next-1739761524.0",
39
+ "@opensumi/ide-workspace": "3.7.1-next-1739761524.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-1739521933.0"
49
+ "@opensumi/ide-core-browser": "3.7.1-next-1739761524.0"
50
50
  },
51
- "gitHead": "05e473d447ad4f49d0e3c1560faaeaf4ff12455c"
51
+ "gitHead": "d2494ff57e60c4da393378932d8d0f53fa3f875f"
52
52
  }
@@ -12,15 +12,10 @@ export interface IIntelligentCompletionsResult<T = any> {
12
12
  extra?: T;
13
13
  }
14
14
 
15
- export interface ICodeEditsContextBean {
16
- typing: ECodeEditsSourceTyping;
17
- position: IPosition;
18
- data: {
19
- [ECodeEditsSourceTyping.LinterErrors]?: ILinterErrorData;
20
- [ECodeEditsSourceTyping.LineChange]?: ILineChangeData;
21
- [ECodeEditsSourceTyping.Typing]?: IModelContentChangedEvent;
22
- };
23
- }
15
+ export type ICodeEditsContextBean =
16
+ | { typing: ECodeEditsSourceTyping.LinterErrors; position: IPosition; data: ILinterErrorData }
17
+ | { typing: ECodeEditsSourceTyping.LineChange; position: IPosition; data: ILineChangeData }
18
+ | { typing: ECodeEditsSourceTyping.Typing; position: IPosition; data: IModelContentChangedEvent };
24
19
 
25
20
  export interface ICodeEdit {
26
21
  /**
@@ -7,6 +7,7 @@ import {
7
7
  Disposable,
8
8
  IAIReporter,
9
9
  IDisposable,
10
+ MaybePromise,
10
11
  uuid,
11
12
  } from '@opensumi/ide-core-common';
12
13
  import { CancellationTokenSource, ICodeEditor } from '@opensumi/ide-monaco';
@@ -36,26 +37,14 @@ export class CodeEditsContextBean extends Disposable {
36
37
  return this.raw;
37
38
  }
38
39
 
39
- public get typing() {
40
- return this.raw.typing;
41
- }
42
-
43
40
  public get position() {
44
41
  return this.raw.position;
45
42
  }
46
43
 
47
- public get data() {
48
- return this.raw.data;
49
- }
50
-
51
44
  public get token() {
52
45
  return this.source.token;
53
46
  }
54
47
 
55
- public joinData(data: ICodeEditsContextBean['data']) {
56
- this.raw.data = { ...this.data, ...data };
57
- }
58
-
59
48
  public reporterStart() {
60
49
  return this.source.reporterStart();
61
50
  }
@@ -109,9 +98,9 @@ export abstract class BaseCodeEditsSource extends Disposable {
109
98
  });
110
99
  }
111
100
 
112
- protected setBean(bean: Omit<ICodeEditsContextBean, 'position'>) {
101
+ protected setBean(bean: ICodeEditsContextBean) {
113
102
  transaction((tx) => {
114
- const context = new CodeEditsContextBean({ ...bean, position: this.monacoEditor.getPosition()! }, this);
103
+ const context = new CodeEditsContextBean(bean, this);
115
104
  this.codeEditsContextBean.set(context, tx);
116
105
  });
117
106
  }
@@ -121,7 +110,7 @@ export abstract class BaseCodeEditsSource extends Disposable {
121
110
  if (context) {
122
111
  const relationID = this.aiReporter.start(AIServiceType.CodeEdits, {
123
112
  type: AIServiceType.CodeEdits,
124
- actionSource: context?.typing,
113
+ actionSource: context?.bean.typing,
125
114
  });
126
115
 
127
116
  transaction((tx) => {
@@ -177,23 +166,11 @@ export class CodeEditsSourceCollection extends Disposable {
177
166
 
178
167
  for (const source of lastSources) {
179
168
  const value = source.codeEditsContextBean.get();
180
- if (!value) {
181
- return;
182
- }
183
-
184
- if (!contextBean) {
185
- contextBean = value;
186
- }
187
169
 
188
- if (value.priority >= highestPriority) {
170
+ if (value && value.priority >= highestPriority) {
189
171
  highestPriority = value.priority;
190
-
191
- value.joinData(contextBean.data);
192
172
  contextBean = value;
193
173
  }
194
-
195
- // 将多个 source 的 data 合并到一起
196
- contextBean.joinData(value.data);
197
174
  }
198
175
 
199
176
  transaction((tx) => {
@@ -1,28 +1,75 @@
1
1
  import { Injectable } from '@opensumi/di';
2
2
  import { AINativeSettingSectionsId, ECodeEditsSourceTyping, IDisposable } from '@opensumi/ide-core-common';
3
- import { ICursorPositionChangedEvent } from '@opensumi/ide-monaco';
4
- import { autorunDelta, observableFromEvent } from '@opensumi/ide-monaco/lib/common/observable';
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';
5
10
 
6
11
  import { BaseCodeEditsSource } from './base';
7
12
 
8
13
  export interface ILineChangeData {
9
14
  currentLineNumber: number;
10
15
  preLineNumber?: number;
16
+ change?: IModelContentChangedEvent;
11
17
  }
12
18
 
13
19
  @Injectable({ multiple: true })
14
20
  export class LineChangeCodeEditsSource extends BaseCodeEditsSource {
15
- public priority = 1;
21
+ public priority = 2;
16
22
 
17
23
  public mount(): IDisposable {
24
+ const modelContentChangeObs = observableFromEvent<IModelContentChangedEvent>(
25
+ this,
26
+ this.monacoEditor.onDidChangeModelContent,
27
+ (event: IModelContentChangedEvent) => event,
28
+ );
18
29
  const positionChangeObs = observableFromEvent<ICursorPositionChangedEvent>(
19
30
  this,
20
31
  this.monacoEditor.onDidChangeCursorPosition,
21
32
  (event: ICursorPositionChangedEvent) => event,
22
33
  );
23
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;
59
+ this.addDispose(
60
+ /**
61
+ * 由于 monaco 的 changeModelContent 事件比 changeCursorPosition 事件先触发,所以这里需要拿上一次的值进行消费
62
+ * 否则永远返回 undefined
63
+ */
64
+ autorunDelta(latestModelContentChangeObs, ({ lastValue }) => {
65
+ lastModelContent = lastValue;
66
+ }),
67
+ );
68
+
24
69
  this.addDispose(
25
70
  autorunDelta(positionChangeObs, ({ lastValue, newValue }) => {
71
+ const contentChange = lastModelContent;
72
+
26
73
  const isLineChangeEnabled = this.preferenceService.getValid(
27
74
  AINativeSettingSectionsId.CodeEditsLineChange,
28
75
  false,
@@ -36,14 +83,17 @@ export class LineChangeCodeEditsSource extends BaseCodeEditsSource {
36
83
  if (prePosition && prePosition.lineNumber !== currentPosition?.lineNumber) {
37
84
  this.setBean({
38
85
  typing: ECodeEditsSourceTyping.LineChange,
86
+ position: currentPosition,
39
87
  data: {
40
- [ECodeEditsSourceTyping.LineChange]: {
41
- preLineNumber: prePosition.lineNumber,
42
- currentLineNumber: currentPosition.lineNumber,
43
- },
88
+ preLineNumber: prePosition.lineNumber,
89
+ currentLineNumber: currentPosition.lineNumber,
90
+ change: contentChange,
44
91
  },
45
92
  });
46
93
  }
94
+
95
+ // 消费完之后设置为 undefined,避免下次获取到缓存的值
96
+ lastModelContent = undefined;
47
97
  }),
48
98
  );
49
99
 
@@ -1,8 +1,14 @@
1
- import { Injectable } from '@opensumi/di';
2
- import { AINativeSettingSectionsId, ECodeEditsSourceTyping, IDisposable } from '@opensumi/ide-core-common';
1
+ import { Autowired, Injectable } from '@opensumi/di';
2
+ import {
3
+ AINativeSettingSectionsId,
4
+ ECodeEditsSourceTyping,
5
+ Event,
6
+ FRAME_THREE,
7
+ IDisposable,
8
+ } from '@opensumi/ide-core-common';
3
9
  import { ICursorPositionChangedEvent, IPosition, Position } from '@opensumi/ide-monaco';
4
10
  import { URI } from '@opensumi/ide-monaco/lib/browser/monaco-api';
5
- import { autorunDelta, observableFromEvent } from '@opensumi/ide-monaco/lib/common/observable';
11
+ import { IWorkspaceService } from '@opensumi/ide-workspace';
6
12
  import { StandaloneServices } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
7
13
  import {
8
14
  IMarker,
@@ -14,6 +20,7 @@ import {
14
20
  import { BaseCodeEditsSource } from './base';
15
21
 
16
22
  export interface ILinterErrorData {
23
+ relativeWorkspacePath: string;
17
24
  errors: Array<IMarkerErrorData>;
18
25
  }
19
26
 
@@ -51,19 +58,22 @@ namespace MarkerErrorData {
51
58
 
52
59
  @Injectable({ multiple: true })
53
60
  export class LintErrorCodeEditsSource extends BaseCodeEditsSource {
54
- public priority = 0;
61
+ public priority = 1;
62
+
63
+ @Autowired(IWorkspaceService)
64
+ private readonly workspaceService: IWorkspaceService;
55
65
 
56
66
  public mount(): IDisposable {
57
- const positionChangeObs = observableFromEvent<ICursorPositionChangedEvent>(
58
- this,
59
- this.monacoEditor.onDidChangeCursorPosition,
60
- (event: ICursorPositionChangedEvent) => event,
61
- );
67
+ let prePosition = this.monacoEditor.getPosition();
62
68
 
63
69
  this.addDispose(
64
- autorunDelta(positionChangeObs, ({ lastValue, newValue }) => {
65
- const prePosition = lastValue?.position;
66
- const currentPosition = newValue?.position;
70
+ // 仅在光标的行号发生变化时,才触发
71
+ Event.debounce(
72
+ this.monacoEditor.onDidChangeCursorPosition,
73
+ (_, e) => e,
74
+ FRAME_THREE,
75
+ )(async (event: ICursorPositionChangedEvent) => {
76
+ const currentPosition = event.position;
67
77
 
68
78
  // 如果是 selection 则不触发
69
79
  const selection = this.monacoEditor.getSelection();
@@ -71,16 +81,16 @@ export class LintErrorCodeEditsSource extends BaseCodeEditsSource {
71
81
  return;
72
82
  }
73
83
 
74
- // 仅在光标的行号发生变化时,才触发
75
- if (prePosition && prePosition.lineNumber !== currentPosition?.lineNumber) {
76
- this.doTrigger(currentPosition);
84
+ if (prePosition && prePosition.lineNumber !== currentPosition.lineNumber) {
85
+ await this.doTrigger(currentPosition);
77
86
  }
87
+ prePosition = currentPosition;
78
88
  }),
79
89
  );
80
90
  return this;
81
91
  }
82
92
 
83
- protected doTrigger(position: Position) {
93
+ protected async doTrigger(position: Position) {
84
94
  const isLintErrorsEnabled = this.preferenceService.getValid(AINativeSettingSectionsId.CodeEditsLintErrors, false);
85
95
 
86
96
  if (!isLintErrorsEnabled || !this.model) {
@@ -94,12 +104,14 @@ export class LintErrorCodeEditsSource extends BaseCodeEditsSource {
94
104
  markers = markers.filter((marker) => Math.abs(marker.startLineNumber - position.lineNumber) <= 1);
95
105
 
96
106
  if (markers.length) {
107
+ const relativeWorkspacePath = await this.workspaceService.asRelativePath(resource.path);
108
+
97
109
  this.setBean({
98
110
  typing: ECodeEditsSourceTyping.LinterErrors,
111
+ position,
99
112
  data: {
100
- [ECodeEditsSourceTyping.LinterErrors]: {
101
- errors: markers.map((marker) => MarkerErrorData.toData(marker)),
102
- },
113
+ relativeWorkspacePath: relativeWorkspacePath?.path ?? resource.path,
114
+ errors: markers.map((marker) => MarkerErrorData.toData(marker)),
103
115
  },
104
116
  });
105
117
  }
@@ -1,23 +1,26 @@
1
1
  import { Injectable } from '@opensumi/di';
2
2
  import { AINativeSettingSectionsId, ECodeEditsSourceTyping, IDisposable } from '@opensumi/ide-core-common';
3
- import { IModelContentChangedEvent } from '@opensumi/ide-monaco';
3
+ import { IModelContentChangedEvent, Position } from '@opensumi/ide-monaco';
4
4
 
5
5
  import { BaseCodeEditsSource } from './base';
6
6
 
7
7
  @Injectable({ multiple: true })
8
8
  export class TypingCodeEditsSource extends BaseCodeEditsSource {
9
- public priority = 2;
9
+ public priority = 0;
10
10
 
11
11
  public mount(): IDisposable {
12
12
  this.addDispose(
13
13
  this.monacoEditor.onDidChangeModelContent((event: IModelContentChangedEvent) => {
14
- this.doTrigger(event);
14
+ const position = this.monacoEditor.getPosition();
15
+ if (position) {
16
+ this.doTrigger(position, event);
17
+ }
15
18
  }),
16
19
  );
17
20
  return this;
18
21
  }
19
22
 
20
- protected async doTrigger(data: IModelContentChangedEvent) {
23
+ protected async doTrigger(position: Position, data: IModelContentChangedEvent) {
21
24
  const isTypingEnabled = this.preferenceService.getValid(AINativeSettingSectionsId.CodeEditsTyping, false);
22
25
 
23
26
  if (!isTypingEnabled || !this.model) {
@@ -26,9 +29,8 @@ export class TypingCodeEditsSource extends BaseCodeEditsSource {
26
29
 
27
30
  this.setBean({
28
31
  typing: ECodeEditsSourceTyping.Typing,
29
- data: {
30
- [ECodeEditsSourceTyping.Typing]: data,
31
- },
32
+ position,
33
+ data,
32
34
  });
33
35
  }
34
36
  }
@@ -119,20 +119,20 @@
119
119
  border: none;
120
120
  }
121
121
 
122
+ .header {
123
+ height: 36px;
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: space-between;
127
+ padding: 0 10px;
128
+ background-color: var(--editorGroupHeader-tabsBackground);
129
+ }
130
+
122
131
  .right_slot_container_wrap {
123
132
  height: 100%;
124
133
  display: flex;
125
134
  flex-direction: column;
126
135
 
127
- .header {
128
- height: 36px;
129
- display: flex;
130
- align-items: center;
131
- justify-content: space-between;
132
- padding: 0 10px;
133
- background-color: var(--editorGroupHeader-tabsBackground);
134
- }
135
-
136
136
  .container {
137
137
  flex: 1;
138
138
  }
@@ -174,16 +174,18 @@ export const AIRightTabRenderer = ({
174
174
  return (
175
175
  <ContainerView
176
176
  {...props}
177
+ customTitleBar={
178
+ <div className={styles.header}>
179
+ <span className={styles.title}>{options && options.title}</span>
180
+ <div className={styles.side}>
181
+ <EnhancePopover id={'ai_right_panel_header_close'} title={localize('editor.title.context.close')}>
182
+ <EnhanceIcon icon='close' onClick={handleClose} />
183
+ </EnhancePopover>
184
+ </div>
185
+ </div>
186
+ }
177
187
  renderContainerWrap={({ children }) => (
178
188
  <div className={styles.right_slot_container_wrap}>
179
- <div className={styles.header}>
180
- <span className={styles.title}>{options && options.title}</span>
181
- <div className={styles.side}>
182
- <EnhancePopover id={'ai_right_panel_header_close'} title={localize('editor.title.context.close')}>
183
- <EnhanceIcon icon='close' onClick={handleClose} />
184
- </EnhancePopover>
185
- </div>
186
- </div>
187
189
  <div className={styles.container}>{children}</div>
188
190
  </div>
189
191
  )}