@opensumi/ide-ai-native 3.2.4 → 3.2.5-next-1724062137.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 (181) hide show
  1. package/lib/browser/ai-core.contribution.d.ts +1 -0
  2. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  3. package/lib/browser/ai-core.contribution.js +14 -25
  4. package/lib/browser/ai-core.contribution.js.map +1 -1
  5. package/lib/browser/ai-editor.contribution.d.ts +1 -0
  6. package/lib/browser/ai-editor.contribution.d.ts.map +1 -1
  7. package/lib/browser/ai-editor.contribution.js +8 -0
  8. package/lib/browser/ai-editor.contribution.js.map +1 -1
  9. package/lib/browser/chat/chat-agent.service.d.ts +1 -0
  10. package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
  11. package/lib/browser/chat/chat-agent.service.js +1 -3
  12. package/lib/browser/chat/chat-agent.service.js.map +1 -1
  13. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  14. package/lib/browser/chat/chat.view.js +22 -4
  15. package/lib/browser/chat/chat.view.js.map +1 -1
  16. package/lib/browser/components/ChatEditor.d.ts +2 -1
  17. package/lib/browser/components/ChatEditor.d.ts.map +1 -1
  18. package/lib/browser/components/ChatEditor.js +8 -8
  19. package/lib/browser/components/ChatEditor.js.map +1 -1
  20. package/lib/browser/components/ChatMarkdown.d.ts +1 -0
  21. package/lib/browser/components/ChatMarkdown.d.ts.map +1 -1
  22. package/lib/browser/components/ChatMarkdown.js +2 -2
  23. package/lib/browser/components/ChatMarkdown.js.map +1 -1
  24. package/lib/browser/components/ChatThinking.d.ts.map +1 -1
  25. package/lib/browser/components/ChatThinking.js +2 -2
  26. package/lib/browser/components/ChatThinking.js.map +1 -1
  27. package/lib/browser/contextkey/ai-native.contextkey.service.d.ts +1 -0
  28. package/lib/browser/contextkey/ai-native.contextkey.service.d.ts.map +1 -1
  29. package/lib/browser/contextkey/ai-native.contextkey.service.js +1 -0
  30. package/lib/browser/contextkey/ai-native.contextkey.service.js.map +1 -1
  31. package/lib/browser/contrib/inline-completions/completeProvider.d.ts +4 -31
  32. package/lib/browser/contrib/inline-completions/completeProvider.d.ts.map +1 -1
  33. package/lib/browser/contrib/inline-completions/completeProvider.js +3 -224
  34. package/lib/browser/contrib/inline-completions/completeProvider.js.map +1 -1
  35. package/lib/browser/contrib/inline-completions/inline-completions.handler.d.ts +1 -3
  36. package/lib/browser/contrib/inline-completions/inline-completions.handler.d.ts.map +1 -1
  37. package/lib/browser/contrib/inline-completions/inline-completions.handler.js +8 -20
  38. package/lib/browser/contrib/inline-completions/inline-completions.handler.js.map +1 -1
  39. package/lib/browser/contrib/inline-completions/model/competionModel.d.ts +2 -2
  40. package/lib/browser/contrib/inline-completions/model/competionModel.d.ts.map +1 -1
  41. package/lib/browser/contrib/inline-completions/model/inlineCompletionRequestTask.d.ts +28 -0
  42. package/lib/browser/contrib/inline-completions/model/inlineCompletionRequestTask.d.ts.map +1 -0
  43. package/lib/browser/contrib/inline-completions/model/inlineCompletionRequestTask.js +210 -0
  44. package/lib/browser/contrib/inline-completions/model/inlineCompletionRequestTask.js.map +1 -0
  45. package/lib/browser/contrib/inline-completions/promptCache.d.ts +3 -2
  46. package/lib/browser/contrib/inline-completions/promptCache.d.ts.map +1 -1
  47. package/lib/browser/contrib/inline-completions/promptCache.js.map +1 -1
  48. package/lib/browser/contrib/inline-completions/service/ai-completions.service.d.ts +7 -6
  49. package/lib/browser/contrib/inline-completions/service/ai-completions.service.d.ts.map +1 -1
  50. package/lib/browser/contrib/inline-completions/service/ai-completions.service.js +48 -25
  51. package/lib/browser/contrib/inline-completions/service/ai-completions.service.js.map +1 -1
  52. package/lib/browser/contrib/intelligent-completions/diff-computer.d.ts +18 -0
  53. package/lib/browser/contrib/intelligent-completions/diff-computer.d.ts.map +1 -0
  54. package/lib/browser/contrib/intelligent-completions/diff-computer.js +144 -0
  55. package/lib/browser/contrib/intelligent-completions/diff-computer.js.map +1 -0
  56. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.d.ts +8 -0
  57. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.d.ts.map +1 -0
  58. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js +47 -0
  59. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js.map +1 -0
  60. package/lib/browser/contrib/intelligent-completions/intelligent-completions.d.ts +15 -0
  61. package/lib/browser/contrib/intelligent-completions/intelligent-completions.d.ts.map +1 -0
  62. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.d.ts +8 -0
  63. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.d.ts.map +1 -0
  64. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.js +19 -0
  65. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.js.map +1 -0
  66. package/lib/browser/contrib/intelligent-completions/intelligent-completions.handler.d.ts +20 -0
  67. package/lib/browser/contrib/intelligent-completions/intelligent-completions.handler.d.ts.map +1 -0
  68. package/lib/browser/contrib/intelligent-completions/intelligent-completions.handler.js +94 -0
  69. package/lib/browser/contrib/intelligent-completions/intelligent-completions.handler.js.map +1 -0
  70. package/lib/browser/contrib/intelligent-completions/intelligent-completions.js +3 -0
  71. package/lib/browser/contrib/intelligent-completions/intelligent-completions.js.map +1 -0
  72. package/lib/browser/contrib/intelligent-completions/multi-line.decoration.d.ts +33 -0
  73. package/lib/browser/contrib/intelligent-completions/multi-line.decoration.d.ts.map +1 -0
  74. package/lib/browser/contrib/intelligent-completions/multi-line.decoration.js +258 -0
  75. package/lib/browser/contrib/intelligent-completions/multi-line.decoration.js.map +1 -0
  76. package/lib/browser/contrib/merge-conflict/merge-conflict.feature.registry.d.ts +0 -1
  77. package/lib/browser/contrib/merge-conflict/merge-conflict.feature.registry.d.ts.map +1 -1
  78. package/lib/browser/contrib/merge-conflict/merge-conflict.feature.registry.js +0 -3
  79. package/lib/browser/contrib/merge-conflict/merge-conflict.feature.registry.js.map +1 -1
  80. package/lib/browser/contrib/rename/rename.handler.d.ts.map +1 -1
  81. package/lib/browser/contrib/rename/rename.handler.js +1 -0
  82. package/lib/browser/contrib/rename/rename.handler.js.map +1 -1
  83. package/lib/browser/index.d.ts.map +1 -1
  84. package/lib/browser/index.js +7 -0
  85. package/lib/browser/index.js.map +1 -1
  86. package/lib/browser/layout/ai-layout.d.ts.map +1 -1
  87. package/lib/browser/layout/ai-layout.js +4 -4
  88. package/lib/browser/layout/ai-layout.js.map +1 -1
  89. package/lib/browser/model/enhanceDecorationsCollection.d.ts +38 -4
  90. package/lib/browser/model/enhanceDecorationsCollection.d.ts.map +1 -1
  91. package/lib/browser/model/enhanceDecorationsCollection.js +44 -23
  92. package/lib/browser/model/enhanceDecorationsCollection.js.map +1 -1
  93. package/lib/browser/types.d.ts +20 -13
  94. package/lib/browser/types.d.ts.map +1 -1
  95. package/lib/browser/types.js +0 -4
  96. package/lib/browser/types.js.map +1 -1
  97. package/lib/browser/widget/inline-chat/inline-chat.handler.d.ts.map +1 -1
  98. package/lib/browser/widget/inline-chat/inline-chat.handler.js +31 -12
  99. package/lib/browser/widget/inline-chat/inline-chat.handler.js.map +1 -1
  100. package/lib/browser/widget/inline-chat/inline-content-widget.d.ts +5 -2
  101. package/lib/browser/widget/inline-chat/inline-content-widget.d.ts.map +1 -1
  102. package/lib/browser/widget/inline-chat/inline-content-widget.js +45 -53
  103. package/lib/browser/widget/inline-chat/inline-content-widget.js.map +1 -1
  104. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +20 -14
  105. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
  106. package/lib/browser/widget/inline-diff/inline-diff-previewer.js +114 -46
  107. package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
  108. package/lib/browser/widget/inline-diff/inline-diff-widget.d.ts +5 -2
  109. package/lib/browser/widget/inline-diff/inline-diff-widget.d.ts.map +1 -1
  110. package/lib/browser/widget/inline-diff/inline-diff-widget.js +3 -0
  111. package/lib/browser/widget/inline-diff/inline-diff-widget.js.map +1 -1
  112. package/lib/browser/widget/inline-diff/inline-diff.handler.d.ts +13 -13
  113. package/lib/browser/widget/inline-diff/inline-diff.handler.d.ts.map +1 -1
  114. package/lib/browser/widget/inline-diff/inline-diff.handler.js +71 -76
  115. package/lib/browser/widget/inline-diff/inline-diff.handler.js.map +1 -1
  116. package/lib/browser/widget/inline-input/inline-input-widget.d.ts +1 -0
  117. package/lib/browser/widget/inline-input/inline-input-widget.d.ts.map +1 -1
  118. package/lib/browser/widget/inline-input/inline-input-widget.js +1 -0
  119. package/lib/browser/widget/inline-input/inline-input-widget.js.map +1 -1
  120. package/lib/browser/widget/inline-input/inline-input.handler.js +2 -2
  121. package/lib/browser/widget/inline-input/inline-input.handler.js.map +1 -1
  122. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +28 -15
  123. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
  124. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +52 -31
  125. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
  126. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.module.less +9 -6
  127. package/lib/browser/widget/inline-stream-diff/live-preview-stack.d.ts +21 -0
  128. package/lib/browser/widget/inline-stream-diff/live-preview-stack.d.ts.map +1 -0
  129. package/lib/browser/widget/inline-stream-diff/live-preview-stack.js +41 -0
  130. package/lib/browser/widget/inline-stream-diff/live-preview-stack.js.map +1 -0
  131. package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts +105 -0
  132. package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts.map +1 -0
  133. package/lib/browser/widget/inline-stream-diff/live-preview.component.js +237 -0
  134. package/lib/browser/widget/inline-stream-diff/live-preview.component.js.map +1 -0
  135. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +27 -103
  136. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts.map +1 -1
  137. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js +185 -369
  138. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
  139. package/lib/common/index.d.ts +1 -0
  140. package/lib/common/index.d.ts.map +1 -1
  141. package/lib/common/index.js.map +1 -1
  142. package/package.json +19 -19
  143. package/src/browser/ai-core.contribution.ts +14 -28
  144. package/src/browser/ai-editor.contribution.ts +9 -0
  145. package/src/browser/chat/chat-agent.service.ts +1 -3
  146. package/src/browser/chat/chat.view.tsx +49 -4
  147. package/src/browser/components/ChatEditor.tsx +21 -7
  148. package/src/browser/components/ChatMarkdown.tsx +8 -2
  149. package/src/browser/components/ChatThinking.tsx +3 -1
  150. package/src/browser/contextkey/ai-native.contextkey.service.ts +3 -0
  151. package/src/browser/contrib/inline-completions/completeProvider.ts +7 -289
  152. package/src/browser/contrib/inline-completions/inline-completions.handler.ts +15 -22
  153. package/src/browser/contrib/inline-completions/model/competionModel.ts +3 -2
  154. package/src/browser/contrib/inline-completions/model/inlineCompletionRequestTask.ts +272 -0
  155. package/src/browser/contrib/inline-completions/promptCache.ts +3 -2
  156. package/src/browser/contrib/inline-completions/service/ai-completions.service.ts +55 -38
  157. package/src/browser/contrib/intelligent-completions/diff-computer.ts +185 -0
  158. package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +54 -0
  159. package/src/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.ts +17 -0
  160. package/src/browser/contrib/intelligent-completions/intelligent-completions.handler.ts +130 -0
  161. package/src/browser/contrib/intelligent-completions/intelligent-completions.ts +15 -0
  162. package/src/browser/contrib/intelligent-completions/multi-line.decoration.ts +325 -0
  163. package/src/browser/contrib/merge-conflict/merge-conflict.feature.registry.ts +0 -4
  164. package/src/browser/contrib/rename/rename.handler.ts +1 -0
  165. package/src/browser/index.ts +8 -1
  166. package/src/browser/layout/ai-layout.tsx +7 -1
  167. package/src/browser/model/enhanceDecorationsCollection.ts +71 -34
  168. package/src/browser/types.ts +27 -14
  169. package/src/browser/widget/inline-chat/inline-chat.handler.ts +34 -19
  170. package/src/browser/widget/inline-chat/inline-content-widget.tsx +58 -61
  171. package/src/browser/widget/inline-diff/inline-diff-previewer.ts +118 -61
  172. package/src/browser/widget/inline-diff/inline-diff-widget.tsx +8 -2
  173. package/src/browser/widget/inline-diff/inline-diff.handler.ts +83 -92
  174. package/src/browser/widget/inline-input/inline-input-widget.tsx +1 -0
  175. package/src/browser/widget/inline-input/inline-input.handler.ts +2 -2
  176. package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +98 -44
  177. package/src/browser/widget/inline-stream-diff/inline-stream-diff.module.less +9 -6
  178. package/src/browser/widget/inline-stream-diff/live-preview-stack.ts +52 -0
  179. package/src/browser/widget/inline-stream-diff/live-preview.component.tsx +388 -0
  180. package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +243 -543
  181. package/src/common/index.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.contribution.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAU,MAAM,2BAA2B,CAAC;AAIzF,qBACa,kCAAmC,YAAW,sBAAsB,EAAE,mBAAmB;IAEpG,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAgC;IAE9E,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAcjD,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;CAiB3D"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntelligentCompletionsContribution = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const ide_core_browser_2 = require("@opensumi/ide-core-browser");
8
+ const command_1 = require("@opensumi/ide-core-browser/lib/ai-native/command");
9
+ const ai_native_1 = require("@opensumi/ide-core-browser/lib/contextkey/ai-native");
10
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
11
+ const intelligent_completions_handler_1 = require("./intelligent-completions.handler");
12
+ let IntelligentCompletionsContribution = class IntelligentCompletionsContribution {
13
+ registerCommands(commands) {
14
+ commands.registerCommand(command_1.AI_MULTI_LINE_COMPLETION_HIDE, {
15
+ execute: () => {
16
+ this.intelligentCompletionsHandler.hide();
17
+ },
18
+ });
19
+ commands.registerCommand(command_1.AI_MULTI_LINE_COMPLETION_ACCEPT, {
20
+ execute: () => {
21
+ this.intelligentCompletionsHandler.accept();
22
+ },
23
+ });
24
+ }
25
+ registerKeybindings(keybindings) {
26
+ keybindings.registerKeybinding({
27
+ command: command_1.AI_MULTI_LINE_COMPLETION_HIDE.id,
28
+ keybinding: ide_core_browser_1.Key.ESCAPE.code,
29
+ when: ai_native_1.MultiLineCompletionsIsVisible.raw,
30
+ priority: 100,
31
+ });
32
+ keybindings.registerKeybinding({
33
+ command: command_1.AI_MULTI_LINE_COMPLETION_ACCEPT.id,
34
+ keybinding: ide_core_browser_1.Key.TAB.code,
35
+ when: ai_native_1.MultiLineCompletionsIsVisible.raw,
36
+ }, ide_core_browser_2.KeybindingScope.USER);
37
+ }
38
+ };
39
+ tslib_1.__decorate([
40
+ (0, di_1.Autowired)(intelligent_completions_handler_1.IntelligentCompletionsHandler),
41
+ tslib_1.__metadata("design:type", intelligent_completions_handler_1.IntelligentCompletionsHandler)
42
+ ], IntelligentCompletionsContribution.prototype, "intelligentCompletionsHandler", void 0);
43
+ IntelligentCompletionsContribution = tslib_1.__decorate([
44
+ (0, ide_core_common_1.Domain)(ide_core_browser_2.ClientAppContribution, ide_core_browser_2.KeybindingContribution, ide_core_common_1.CommandContribution)
45
+ ], IntelligentCompletionsContribution);
46
+ exports.IntelligentCompletionsContribution = IntelligentCompletionsContribution;
47
+ //# sourceMappingURL=intelligent-completions.contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.contribution.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts"],"names":[],"mappings":";;;;AAAA,qCAAyC;AACzC,iEAAiD;AACjD,iEAKoC;AACpC,8EAG0D;AAC1D,mFAAoG;AACpG,+DAAyF;AAEzF,uFAAkF;AAG3E,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAI7C,gBAAgB,CAAC,QAAyB;QACxC,QAAQ,CAAC,eAAe,CAAC,uCAA6B,EAAE;YACtD,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC;YAC5C,CAAC;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAC,yCAA+B,EAAE;YACxD,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,CAAC;YAC9C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,WAA+B;QACjD,WAAW,CAAC,kBAAkB,CAAC;YAC7B,OAAO,EAAE,uCAA6B,CAAC,EAAE;YACzC,UAAU,EAAE,sBAAG,CAAC,MAAM,CAAC,IAAI;YAC3B,IAAI,EAAE,yCAA6B,CAAC,GAAG;YACvC,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;QAEH,WAAW,CAAC,kBAAkB,CAC5B;YACE,OAAO,EAAE,yCAA+B,CAAC,EAAE;YAC3C,UAAU,EAAE,sBAAG,CAAC,GAAG,CAAC,IAAI;YACxB,IAAI,EAAE,yCAA6B,CAAC,GAAG;SACxC,EACD,kCAAe,CAAC,IAAI,CACrB,CAAC;IACJ,CAAC;CACF,CAAA;AAlCC;IAAC,IAAA,cAAS,EAAC,+DAA6B,CAAC;sCACO,+DAA6B;yFAAC;AAFnE,kCAAkC;IAD9C,IAAA,wBAAM,EAAC,wCAAqB,EAAE,yCAAsB,EAAE,qCAAmB,CAAC;GAC9D,kCAAkC,CAmC9C;AAnCY,gFAAkC"}
@@ -0,0 +1,15 @@
1
+ import { InlineCompletion } from '@opensumi/ide-monaco';
2
+ export interface IIntelligentCompletionsResult<T = any> {
3
+ readonly items: InlineCompletion[];
4
+ /**
5
+ * 是否开启多行补全
6
+ * 开启后,items 中的 range 必填
7
+ * 否则显示默认的 inline completion
8
+ */
9
+ readonly enableMultiLine?: boolean | undefined;
10
+ /**
11
+ * 定义的额外信息
12
+ */
13
+ extra?: T;
14
+ }
15
+ //# sourceMappingURL=intelligent-completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,GAAG;IACpD,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/C;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;CACX"}
@@ -0,0 +1,8 @@
1
+ import { Disposable } from '@opensumi/ide-core-common';
2
+ import { IIntelligentCompletionProvider, IIntelligentCompletionsRegistry } from '../../types';
3
+ export declare class IntelligentCompletionsRegistry extends Disposable implements IIntelligentCompletionsRegistry {
4
+ private provider;
5
+ registerIntelligentCompletionProvider(provider: IIntelligentCompletionProvider): void;
6
+ getProvider(): IIntelligentCompletionProvider | undefined;
7
+ }
8
+ //# sourceMappingURL=intelligent-completions.feature.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.feature.registry.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAE9F,qBACa,8BAA+B,SAAQ,UAAW,YAAW,+BAA+B;IACvG,OAAO,CAAC,QAAQ,CAA6C;IAE7D,qCAAqC,CAAC,QAAQ,EAAE,8BAA8B,GAAG,IAAI;IAIrF,WAAW,IAAI,8BAA8B,GAAG,SAAS;CAG1D"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntelligentCompletionsRegistry = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
7
+ let IntelligentCompletionsRegistry = class IntelligentCompletionsRegistry extends ide_core_common_1.Disposable {
8
+ registerIntelligentCompletionProvider(provider) {
9
+ this.provider = provider;
10
+ }
11
+ getProvider() {
12
+ return this.provider;
13
+ }
14
+ };
15
+ IntelligentCompletionsRegistry = tslib_1.__decorate([
16
+ (0, di_1.Injectable)()
17
+ ], IntelligentCompletionsRegistry);
18
+ exports.IntelligentCompletionsRegistry = IntelligentCompletionsRegistry;
19
+ //# sourceMappingURL=intelligent-completions.feature.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.feature.registry.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAAuD;AAKhD,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,4BAAU;IAG5D,qCAAqC,CAAC,QAAwC;QAC5E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF,CAAA;AAVY,8BAA8B;IAD1C,IAAA,eAAU,GAAE;GACA,8BAA8B,CAU1C;AAVY,wEAA8B"}
@@ -0,0 +1,20 @@
1
+ import { Disposable, IAICompletionOption, IDisposable } from '@opensumi/ide-core-common';
2
+ import { IEditor } from '@opensumi/ide-editor';
3
+ import { IIntelligentCompletionsResult } from './intelligent-completions';
4
+ export declare class IntelligentCompletionsHandler extends Disposable {
5
+ private readonly injector;
6
+ private intelligentCompletionsRegistry;
7
+ private cancelIndicator;
8
+ private cancelToken;
9
+ private multiLineDiffComputer;
10
+ private multiLineDecorationModel;
11
+ private editor;
12
+ private aiNativeContextKey;
13
+ private get monacoEditor();
14
+ fetchProvider(bean: IAICompletionOption): Promise<IIntelligentCompletionsResult | undefined>;
15
+ applyInlineDecorations(completionModel: IIntelligentCompletionsResult): IIntelligentCompletionsResult<any> | undefined;
16
+ hide(): void;
17
+ accept(): void;
18
+ registerFeature(editor: IEditor): IDisposable;
19
+ }
20
+ //# sourceMappingURL=intelligent-completions.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.handler.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,UAAU,EACV,mBAAmB,EACnB,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAO/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAI1E,qBACa,6BAA8B,SAAQ,UAAU;IAE3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAGpC,OAAO,CAAC,8BAA8B,CAAiC;IAEvE,OAAO,CAAC,eAAe,CAAiC;IAExD,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,qBAAqB,CAAsD;IACnF,OAAO,CAAC,wBAAwB,CAA2B;IAE3D,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,KAAK,YAAY,GAEvB;IAEY,aAAa,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,GAAG,SAAS,CAAC;IAoBlG,sBAAsB,CAAC,eAAe,EAAE,6BAA6B;IAkCrE,IAAI;IAMJ,MAAM;IAiBN,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW;CAQrD"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntelligentCompletionsHandler = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
7
+ const ide_monaco_1 = require("@opensumi/ide-monaco");
8
+ const editOperation_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/core/editOperation");
9
+ const ai_native_contextkey_service_1 = require("../../contextkey/ai-native.contextkey.service");
10
+ const diff_computer_1 = require("./diff-computer");
11
+ const intelligent_completions_feature_registry_1 = require("./intelligent-completions.feature.registry");
12
+ const multi_line_decoration_1 = require("./multi-line.decoration");
13
+ let IntelligentCompletionsHandler = class IntelligentCompletionsHandler extends ide_core_common_1.Disposable {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.cancelIndicator = new ide_core_common_1.CancellationTokenSource();
17
+ this.multiLineDiffComputer = new diff_computer_1.MultiLineDiffComputer();
18
+ }
19
+ cancelToken() {
20
+ this.cancelIndicator.cancel();
21
+ this.cancelIndicator = new ide_core_common_1.CancellationTokenSource();
22
+ }
23
+ get monacoEditor() {
24
+ return this.editor.monacoEditor;
25
+ }
26
+ async fetchProvider(bean) {
27
+ const provider = this.intelligentCompletionsRegistry.getProvider();
28
+ if (!provider) {
29
+ return;
30
+ }
31
+ const position = this.monacoEditor.getPosition();
32
+ const intelligentCompletionModel = await provider(this.monacoEditor, position, bean, this.cancelIndicator.token);
33
+ if (intelligentCompletionModel &&
34
+ intelligentCompletionModel.enableMultiLine &&
35
+ intelligentCompletionModel.items.length > 0) {
36
+ return this.applyInlineDecorations(intelligentCompletionModel);
37
+ }
38
+ return intelligentCompletionModel;
39
+ }
40
+ applyInlineDecorations(completionModel) {
41
+ const { items } = completionModel;
42
+ const position = this.monacoEditor.getPosition();
43
+ const model = this.monacoEditor.getModel();
44
+ const { range, insertText } = items[0];
45
+ // 如果只是开启了 enableMultiLine 而没有传递 range ,则不显示 multi line
46
+ if (!range) {
47
+ return completionModel;
48
+ }
49
+ const originalContent = model === null || model === void 0 ? void 0 : model.getValueInRange(range);
50
+ const diffComputerResult = this.multiLineDiffComputer.diff(originalContent, insertText.toString());
51
+ if (diffComputerResult) {
52
+ const inlineModifications = this.multiLineDecorationModel.applyInlineDecorations(this.monacoEditor, diffComputerResult, position.lineNumber, position);
53
+ if (inlineModifications) {
54
+ this.aiNativeContextKey.multiLineCompletionsIsVisible.set(true);
55
+ this.multiLineDecorationModel.updateLineModificationDecorations(inlineModifications);
56
+ }
57
+ else {
58
+ this.aiNativeContextKey.multiLineCompletionsIsVisible.reset();
59
+ this.multiLineDecorationModel.clearDecorations();
60
+ }
61
+ }
62
+ }
63
+ hide() {
64
+ this.cancelToken();
65
+ this.aiNativeContextKey.multiLineCompletionsIsVisible.reset();
66
+ this.multiLineDecorationModel.clearDecorations();
67
+ }
68
+ accept() {
69
+ const edits = this.multiLineDecorationModel.getEdits();
70
+ this.editor.monacoEditor.pushUndoStop();
71
+ this.editor.monacoEditor.executeEdits('multiLineCompletions.accept', edits.map((edit) => editOperation_1.EditOperation.insert(ide_monaco_1.Position.lift({ lineNumber: edit.range.startLineNumber, column: edit.range.startColumn }), edit.text)));
72
+ this.hide();
73
+ }
74
+ registerFeature(editor) {
75
+ this.editor = editor;
76
+ const { monacoEditor } = editor;
77
+ this.multiLineDecorationModel = new multi_line_decoration_1.MultiLineDecorationModel(monacoEditor);
78
+ this.aiNativeContextKey = this.injector.get(ai_native_contextkey_service_1.AINativeContextKey, [monacoEditor.contextKeyService]);
79
+ return this;
80
+ }
81
+ };
82
+ tslib_1.__decorate([
83
+ (0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
84
+ tslib_1.__metadata("design:type", di_1.Injector)
85
+ ], IntelligentCompletionsHandler.prototype, "injector", void 0);
86
+ tslib_1.__decorate([
87
+ (0, di_1.Autowired)(ide_core_common_1.IntelligentCompletionsRegistryToken),
88
+ tslib_1.__metadata("design:type", intelligent_completions_feature_registry_1.IntelligentCompletionsRegistry)
89
+ ], IntelligentCompletionsHandler.prototype, "intelligentCompletionsRegistry", void 0);
90
+ IntelligentCompletionsHandler = tslib_1.__decorate([
91
+ (0, di_1.Injectable)()
92
+ ], IntelligentCompletionsHandler);
93
+ exports.IntelligentCompletionsHandler = IntelligentCompletionsHandler;
94
+ //# sourceMappingURL=intelligent-completions.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.handler.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=intelligent-completions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-completions.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/intelligent-completions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { ICodeEditor, IPosition } from '@opensumi/ide-monaco';
2
+ import { IDiffChangeResult } from './diff-computer';
3
+ export interface IModificationsInline {
4
+ newValue: string;
5
+ oldValue: string;
6
+ lineNumber?: number;
7
+ column?: number;
8
+ isEolLine?: boolean;
9
+ }
10
+ export declare const GHOST_TEXT_DESCRIPTION = "ghost-text-decoration";
11
+ export declare const GHOST_TEXT = "ghost-text";
12
+ export declare class MultiLineDecorationModel {
13
+ private readonly editor;
14
+ private ghostTextDecorations;
15
+ constructor(editor: ICodeEditor);
16
+ /**
17
+ * 切割 diff 计算结果的换行符
18
+ */
19
+ private splitDiffChanges;
20
+ /**
21
+ * 合并连续的修改操作
22
+ */
23
+ private combineContinuousMods;
24
+ private processLineModifications;
25
+ clearDecorations(): void;
26
+ getEdits(): {
27
+ range: import("@opensumi/ide-monaco").IRange;
28
+ text: string;
29
+ }[];
30
+ updateLineModificationDecorations(modifications: IModificationsInline[]): void;
31
+ applyInlineDecorations(editor: ICodeEditor, changes: IDiffChangeResult[], startLine: number, cursorPosition: IPosition): IModificationsInline[] | undefined;
32
+ }
33
+ //# sourceMappingURL=multi-line.decoration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-line.decoration.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/multi-line.decoration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAyB,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAKtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAYD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,UAAU,eAAe,CAAC;AAEvC,qBAAa,wBAAwB;IAGvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,oBAAoB,CAA+B;gBAE9B,MAAM,EAAE,WAAW;IAIhD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,wBAAwB;IA8EzB,gBAAgB,IAAI,IAAI;IAIxB,QAAQ;;;;IAYR,iCAAiC,CAAC,aAAa,EAAE,oBAAoB,EAAE;IAgCvE,sBAAsB,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,SAAS,GACxB,oBAAoB,EAAE,GAAG,SAAS;CAwGtC"}
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiLineDecorationModel = exports.GHOST_TEXT = exports.GHOST_TEXT_DESCRIPTION = void 0;
4
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
5
+ const ide_monaco_1 = require("@opensumi/ide-monaco");
6
+ const strings_1 = require("@opensumi/ide-utils/lib/strings");
7
+ const enhanceDecorationsCollection_1 = require("../../model/enhanceDecorationsCollection");
8
+ var EProcessStatus;
9
+ (function (EProcessStatus) {
10
+ EProcessStatus["beginning"] = "beginning";
11
+ EProcessStatus["end"] = "end";
12
+ })(EProcessStatus || (EProcessStatus = {}));
13
+ // https://github.com/microsoft/vscode/blob/main/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts#L156
14
+ exports.GHOST_TEXT_DESCRIPTION = 'ghost-text-decoration';
15
+ exports.GHOST_TEXT = 'ghost-text';
16
+ class MultiLineDecorationModel {
17
+ constructor(editor) {
18
+ this.editor = editor;
19
+ this.ghostTextDecorations = new enhanceDecorationsCollection_1.EnhanceDecorationsCollection(this.editor);
20
+ }
21
+ /**
22
+ * 切割 diff 计算结果的换行符
23
+ */
24
+ splitDiffChanges(lines, eol) {
25
+ const modifiedLines = lines.flatMap((line) => {
26
+ const segments = line.value.split(eol);
27
+ const wrap = (value) => ({ value, added: line.added, removed: line.removed });
28
+ return segments
29
+ .flatMap((segment, index) => {
30
+ if (index < segments.length - 1) {
31
+ return [wrap(segment), wrap(eol)];
32
+ }
33
+ return wrap(segment);
34
+ })
35
+ .filter((line) => line.value !== strings_1.empty);
36
+ });
37
+ // 对处理后的结果进行调整,确保相邻的添加和删除操作合并
38
+ for (let i = 0; i < modifiedLines.length - 1; i++) {
39
+ const currentLine = modifiedLines[i];
40
+ const nextLine = modifiedLines[i + 1];
41
+ // 如果当前行是删除操作,下一行是添加操作,并且下一行的值以当前行的值开头,则合并这两个操作
42
+ if (currentLine.removed && nextLine.added && nextLine.value.startsWith(currentLine.value)) {
43
+ currentLine.added = true;
44
+ currentLine.removed = true;
45
+ }
46
+ }
47
+ return modifiedLines;
48
+ }
49
+ /**
50
+ * 合并连续的修改操作
51
+ */
52
+ combineContinuousMods(changes) {
53
+ const lines = [];
54
+ let currentLineContent = strings_1.empty;
55
+ for (const change of changes) {
56
+ if (change.isEolLine) {
57
+ lines.push(currentLineContent);
58
+ currentLineContent = strings_1.empty;
59
+ }
60
+ else {
61
+ currentLineContent += change.newValue;
62
+ }
63
+ }
64
+ if (currentLineContent !== strings_1.empty) {
65
+ lines.push(currentLineContent);
66
+ }
67
+ return lines;
68
+ }
69
+ processLineModifications(waitAddModificationsLines, eol, previous, next) {
70
+ const lines = this.combineContinuousMods(waitAddModificationsLines);
71
+ const len = lines.length;
72
+ const fullLineMods = [];
73
+ const inlineMods = [];
74
+ if (len === 0) {
75
+ return {
76
+ fullLineMods,
77
+ inlineMods,
78
+ };
79
+ }
80
+ const firstLine = lines[0];
81
+ const lastLine = lines[len - 1];
82
+ if (len === 1) {
83
+ if (!(0, ide_core_common_1.isUndefined)(previous) && previous.value !== eol) {
84
+ inlineMods.push({
85
+ status: EProcessStatus.beginning,
86
+ newValue: previous.value + firstLine,
87
+ oldValue: previous.value,
88
+ });
89
+ }
90
+ else if (!(0, ide_core_common_1.isUndefined)(next) && next.value !== eol) {
91
+ inlineMods.push({
92
+ status: EProcessStatus.end,
93
+ newValue: lastLine + next.value,
94
+ oldValue: next.value,
95
+ });
96
+ }
97
+ else {
98
+ fullLineMods.push(firstLine);
99
+ }
100
+ return {
101
+ fullLineMods,
102
+ inlineMods,
103
+ };
104
+ }
105
+ if ((0, ide_core_common_1.isUndefined)(previous) || previous.value === eol) {
106
+ fullLineMods.push(firstLine);
107
+ }
108
+ else {
109
+ inlineMods.push({
110
+ status: EProcessStatus.beginning,
111
+ newValue: previous.value + firstLine,
112
+ oldValue: previous.value,
113
+ });
114
+ }
115
+ if (len > 2) {
116
+ const middleLines = lines.slice(1, -1);
117
+ for (const line of middleLines) {
118
+ fullLineMods.push(line);
119
+ }
120
+ }
121
+ if ((0, ide_core_common_1.isUndefined)(next) || next.value === eol) {
122
+ fullLineMods.push(lastLine);
123
+ }
124
+ else {
125
+ inlineMods.push({
126
+ status: EProcessStatus.end,
127
+ newValue: lastLine + next.value,
128
+ oldValue: next.value,
129
+ });
130
+ }
131
+ return {
132
+ fullLineMods,
133
+ inlineMods,
134
+ };
135
+ }
136
+ clearDecorations() {
137
+ this.ghostTextDecorations.clear();
138
+ }
139
+ getEdits() {
140
+ const decorations = this.ghostTextDecorations.getDecorations();
141
+ const edits = decorations.map(({ editorDecoration, range }) => {
142
+ var _a;
143
+ const options = editorDecoration.options;
144
+ const text = ((_a = options.after) === null || _a === void 0 ? void 0 : _a.content) || '';
145
+ return { range, text };
146
+ });
147
+ return edits;
148
+ }
149
+ updateLineModificationDecorations(modifications) {
150
+ if (modifications.length === 0) {
151
+ this.clearDecorations();
152
+ return;
153
+ }
154
+ const decorations = modifications.map((modification) => {
155
+ let content;
156
+ if (modification.newValue.startsWith(modification.oldValue)) {
157
+ content = modification.newValue.slice(modification.oldValue.length);
158
+ }
159
+ else {
160
+ const oldValueIndex = modification.newValue.indexOf(modification.oldValue);
161
+ content = oldValueIndex !== -1 ? modification.newValue.slice(0, oldValueIndex) : modification.newValue;
162
+ }
163
+ return {
164
+ range: ide_monaco_1.Range.fromPositions(new ide_monaco_1.Position(modification.lineNumber, modification.column)),
165
+ options: {
166
+ description: exports.GHOST_TEXT,
167
+ showIfCollapsed: true,
168
+ after: {
169
+ content,
170
+ inlineClassName: exports.GHOST_TEXT_DESCRIPTION,
171
+ },
172
+ },
173
+ };
174
+ });
175
+ this.ghostTextDecorations.set(decorations);
176
+ }
177
+ applyInlineDecorations(editor, changes, startLine, cursorPosition) {
178
+ startLine = Math.max(startLine - 1, 0);
179
+ const model = editor.getModel();
180
+ if (!model) {
181
+ return;
182
+ }
183
+ const eol = model.getEOL();
184
+ changes = this.splitDiffChanges(changes, eol);
185
+ changes.unshift({
186
+ value: eol,
187
+ added: undefined,
188
+ removed: undefined,
189
+ });
190
+ const currentLineText = model.getLineContent(cursorPosition.lineNumber);
191
+ const resultModifications = [];
192
+ let lastChange;
193
+ let waitAddModificationsLines = [];
194
+ let columnNumber = 1;
195
+ const processChange = (change) => {
196
+ const { fullLineMods, inlineMods } = this.processLineModifications(waitAddModificationsLines, eol, lastChange, change);
197
+ inlineMods.forEach((mod) => resultModifications.push({
198
+ lineNumber: mod.status === EProcessStatus.beginning ? startLine : startLine + 1,
199
+ column: mod.status === EProcessStatus.beginning ? columnNumber : 1,
200
+ newValue: mod.newValue,
201
+ oldValue: mod.oldValue,
202
+ }));
203
+ return {
204
+ fullLineMods,
205
+ inlineMods,
206
+ };
207
+ };
208
+ let currentLineIndex = startLine;
209
+ let previousValue = strings_1.empty;
210
+ let isEmptyLine = currentLineText.trim() === strings_1.empty;
211
+ for (const change of changes) {
212
+ if (change.added) {
213
+ const isEolLine = change.value === eol;
214
+ if (isEolLine) {
215
+ previousValue = strings_1.empty;
216
+ }
217
+ waitAddModificationsLines.push({
218
+ isEolLine,
219
+ lineNumber: startLine,
220
+ newValue: isEolLine ? strings_1.empty : change.value,
221
+ oldValue: isEolLine ? strings_1.empty : previousValue,
222
+ });
223
+ }
224
+ else {
225
+ const { inlineMods } = processChange(change);
226
+ if (startLine === cursorPosition.lineNumber && inlineMods.length > 0) {
227
+ isEmptyLine = false;
228
+ if (startLine <= cursorPosition.lineNumber && columnNumber < cursorPosition.column) {
229
+ return;
230
+ }
231
+ }
232
+ lastChange = change;
233
+ waitAddModificationsLines = [];
234
+ // 如果 change 的值是 eol,则开启新的一行进行计算
235
+ if (change.value === eol) {
236
+ currentLineIndex++;
237
+ columnNumber = 1;
238
+ previousValue = strings_1.empty;
239
+ }
240
+ else {
241
+ startLine = Math.max(startLine, currentLineIndex);
242
+ columnNumber += change.value.length;
243
+ previousValue += change.value;
244
+ }
245
+ }
246
+ }
247
+ const { fullLineMods } = processChange(undefined);
248
+ if (startLine <= cursorPosition.lineNumber && columnNumber < cursorPosition.column) {
249
+ return;
250
+ }
251
+ if (!isEmptyLine && fullLineMods.length > 0) {
252
+ return;
253
+ }
254
+ return resultModifications;
255
+ }
256
+ }
257
+ exports.MultiLineDecorationModel = MultiLineDecorationModel;
258
+ //# sourceMappingURL=multi-line.decoration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-line.decoration.js","sourceRoot":"","sources":["../../../../src/browser/contrib/intelligent-completions/multi-line.decoration.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { Disposable, IInternalResolveConflictRegistry, IResolveConflictHandler,
2
2
  import { IResolveConflictRegistry } from '../../types';
3
3
  export declare class ResolveConflictRegistry extends Disposable implements IResolveConflictRegistry, IInternalResolveConflictRegistry {
4
4
  private readonly providerMap;
5
- dispose(): void;
6
5
  registerResolveConflictProvider(editorMode: MergeConflictEditorMode, handler: IResolveConflictHandler): void;
7
6
  getThreeWayHandler(): IResolveConflictHandler | undefined;
8
7
  getTraditionalHandler(): IResolveConflictHandler | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"merge-conflict.feature.registry.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/merge-conflict/merge-conflict.feature.registry.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBACa,uBACX,SAAQ,UACR,YAAW,wBAAwB,EAAE,gCAAgC;IAErE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+D;IAElF,OAAO;IAIhB,+BAA+B,CAAC,UAAU,EAAE,uBAAuB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAQ5G,kBAAkB,IAAI,uBAAuB,GAAG,SAAS;IAIzD,qBAAqB,IAAI,uBAAuB,GAAG,SAAS;CAG7D"}
1
+ {"version":3,"file":"merge-conflict.feature.registry.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/merge-conflict/merge-conflict.feature.registry.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,qBACa,uBACX,SAAQ,UACR,YAAW,wBAAwB,EAAE,gCAAgC;IAErE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+D;IAE3F,+BAA+B,CAAC,UAAU,EAAE,uBAAuB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAQ5G,kBAAkB,IAAI,uBAAuB,GAAG,SAAS;IAIzD,qBAAqB,IAAI,uBAAuB,GAAG,SAAS;CAG7D"}
@@ -9,9 +9,6 @@ let ResolveConflictRegistry = class ResolveConflictRegistry extends ide_core_com
9
9
  super(...arguments);
10
10
  this.providerMap = new Map();
11
11
  }
12
- dispose() {
13
- super.dispose();
14
- }
15
12
  registerResolveConflictProvider(editorMode, handler) {
16
13
  if (this.providerMap.has(editorMode)) {
17
14
  throw new Error(`Conflict provider for ${editorMode} already exists`);
@@ -1 +1 @@
1
- {"version":3,"file":"merge-conflict.feature.registry.js","sourceRoot":"","sources":["../../../../src/browser/contrib/merge-conflict/merge-conflict.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAKmC;AAK5B,IAAM,uBAAuB,GAA7B,MAAM,uBACX,SAAQ,4BAAU;IADb;;QAIY,gBAAW,GAAG,IAAI,GAAG,EAAoD,CAAC;IAqB7F,CAAC;IAnBU,OAAO;QACd,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,+BAA+B,CAAC,UAAmC,EAAE,OAAgC;QACnG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,iBAAiB,CAAC,CAAC;SACvE;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,yCAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,yCAAuB,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;CACF,CAAA;AAzBY,uBAAuB;IADnC,IAAA,eAAU,GAAE;GACA,uBAAuB,CAyBnC;AAzBY,0DAAuB"}
1
+ {"version":3,"file":"merge-conflict.feature.registry.js","sourceRoot":"","sources":["../../../../src/browser/contrib/merge-conflict/merge-conflict.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,+DAKmC;AAK5B,IAAM,uBAAuB,GAA7B,MAAM,uBACX,SAAQ,4BAAU;IADb;;QAIY,gBAAW,GAAG,IAAI,GAAG,EAAoD,CAAC;IAiB7F,CAAC;IAfC,+BAA+B,CAAC,UAAmC,EAAE,OAAgC;QACnG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,iBAAiB,CAAC,CAAC;SACvE;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,yCAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,yCAAuB,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;CACF,CAAA;AArBY,uBAAuB;IADnC,IAAA,eAAU,GAAE;GACA,uBAAuB,CAqBnC;AArBY,0DAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"rename.handler.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/rename/rename.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,UAAU,EAAgC,MAAM,2BAA2B,CAAC;AAKvH,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAIlD,qBACa,aAAc,SAAQ,uBAAuB;IAExD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA2B;IAGnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAGzC,OAAO,CAAC,sBAAsB,CAAyB;IAEvD,OAAO,CAAC,6BAA6B,CAAqB;IAC1D,OAAO,CAAC,+BAA+B,CAAqB;IAE5D,YAAY;CAqEb"}
1
+ {"version":3,"file":"rename.handler.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/rename/rename.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,UAAU,EAAgC,MAAM,2BAA2B,CAAC;AAKvH,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAIlD,qBACa,aAAc,SAAQ,uBAAuB;IAExD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA2B;IAGnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAGzC,OAAO,CAAC,sBAAsB,CAAyB;IAEvD,OAAO,CAAC,6BAA6B,CAAqB;IAC1D,OAAO,CAAC,+BAA+B,CAAqB;IAE5D,YAAY;CAsEb"}
@@ -21,6 +21,7 @@ let RenameHandler = class RenameHandler extends base_1.IAIMonacoContribHandler {
21
21
  message: 'start',
22
22
  type: ide_core_common_1.AISerivceType.Rename,
23
23
  modelRequestStartTime: startTime,
24
+ content: model.getValue(),
24
25
  });
25
26
  this.lastModelRequestRenameSessionId = relationId;
26
27
  const toDispose = token.onCancellationRequested(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"rename.handler.js","sourceRoot":"","sources":["../../../../src/browser/contrib/rename/rename.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rename.handler.js","sourceRoot":"","sources":["../../../../src/browser/contrib/rename/rename.handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAGL,qBAAqB,EACrB,aAAa,EASd,MAAM,4BAA4B,CAAC;AA2BpC,qBACa,cAAe,SAAQ,aAAa;IAE/C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;;IAOzD,oBAAoB,SAA4B;IAChD,SAAS,EAAE,QAAQ,EAAE,CA+DnB;IAEF,YAAY;;;;QAMV;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAGL,qBAAqB,EACrB,aAAa,EASd,MAAM,4BAA4B,CAAC;AA6BpC,qBACa,cAAe,SAAQ,aAAa;IAE/C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;;IAOzD,oBAAoB,SAA4B;IAChD,SAAS,EAAE,QAAQ,EAAE,CAoEnB;IAEF,YAAY;;;;QAMV;CACH"}