@codingame/monaco-vscode-chat-service-override 11.1.2 → 12.0.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 (110) hide show
  1. package/index.d.ts +2 -1
  2. package/index.js +64 -1
  3. package/package.json +32 -13
  4. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.d.ts +21 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +73 -60
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +3 -0
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.js +73 -81
  8. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.d.ts +9 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +73 -112
  10. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.d.ts +12 -0
  11. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +253 -101
  12. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.d.ts +1 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +8 -8
  14. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.d.ts +1 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +2 -1
  16. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.d.ts +1 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +16 -14
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.d.ts +23 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatGettingStarted.js +30 -11
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.d.ts +1 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +12 -12
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.d.ts +1 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +22 -20
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.d.ts +2 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +23 -20
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +52 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +50 -47
  28. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.d.ts +1 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +124 -95
  30. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.d.ts +17 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/chatAccessibilityService.js +6 -3
  32. package/vscode/src/vs/workbench/contrib/chat/browser/chatEdinputInputContentProvider.d.ts +12 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/chatEdinputInputContentProvider.js +30 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingService.d.ts +69 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingService.js +203 -182
  36. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +103 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +458 -165
  38. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.d.ts +42 -0
  39. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditor.js +14 -10
  40. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.d.ts +26 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/{chatParticipantContributions.js → chatParticipant.contribution.js} +101 -92
  42. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.d.ts +42 -0
  43. package/vscode/src/vs/workbench/contrib/chat/browser/chatPasteProviders.js +164 -25
  44. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.d.ts +26 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/chatQuick.js +6 -5
  46. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.d.ts +30 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/chatResponseAccessibleView.js +10 -7
  48. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.d.ts +17 -0
  49. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup.js +941 -0
  50. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.d.ts +26 -0
  51. package/vscode/src/vs/workbench/contrib/chat/browser/chatVariables.js +9 -6
  52. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.d.ts +54 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/chatViewPane.js +32 -15
  54. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.d.ts +9 -0
  55. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockContextProviderService.js +1 -0
  56. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.d.ts +1 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorContrib.js +8 -6
  58. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.d.ts +26 -0
  59. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputEditorHover.js +16 -19
  60. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.d.ts +15 -0
  61. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/chatInputRelatedFilesContrib.js +108 -0
  62. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/editorHoverWrapper.d.ts +7 -0
  63. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/editorHoverWrapper.js +3 -8
  64. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/media/editorHoverWrapper.css.js +1 -1
  65. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +31 -0
  66. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.js +70 -49
  67. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatViewSetup.css.js +6 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.d.ts +7 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/{chatViewsWelcomeContributions.js → chatViewsWelcomeHandler.js} +13 -13
  70. package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.d.ts +44 -0
  71. package/vscode/src/vs/workbench/contrib/chat/common/chatCodeMapperService.js +3 -1
  72. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.d.ts +22 -0
  73. package/vscode/src/vs/workbench/contrib/chat/common/chatProgressTypes/chatToolInvocation.js +1 -0
  74. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +80 -0
  75. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.js +152 -104
  76. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.d.ts +8 -0
  77. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceTelemetry.js +2 -1
  78. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +41 -0
  79. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +2 -1
  80. package/vscode/src/vs/workbench/contrib/chat/common/chatWidgetHistoryService.d.ts +31 -0
  81. package/vscode/src/vs/workbench/contrib/chat/common/chatWidgetHistoryService.js +6 -4
  82. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.d.ts +13 -0
  83. package/vscode/src/vs/workbench/contrib/chat/common/ignoredFiles.js +1 -0
  84. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +24 -0
  85. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +23 -21
  86. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +1 -0
  87. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.js +1 -0
  88. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +39 -0
  89. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +20 -19
  90. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.service.d.ts +7 -0
  91. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.d.ts +1 -0
  92. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +30 -33
  93. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.d.ts +10 -0
  94. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibilityHelp.js +6 -4
  95. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.d.ts +10 -0
  96. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAccessibleView.js +9 -7
  97. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.d.ts +44 -0
  98. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatCurrentLine.js +247 -83
  99. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.d.ts +8 -0
  100. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatNotebook.js +5 -4
  101. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingServiceImpl.d.ts +29 -0
  102. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSavingServiceImpl.js +35 -35
  103. package/chat.js +0 -59
  104. package/vscode/src/vs/editor/common/diff/documentDiffProvider.js +0 -8
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +0 -326
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelContentProviders.js +0 -76
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorActions.js +0 -110
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorController.js +0 -287
  109. package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +0 -130
  110. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +0 -172
@@ -1,17 +1,19 @@
1
- import { InlineChatController } from '@codingame/monaco-vscode-chat-interactive-notebook-search-terminal-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
2
- import { CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_RESPONSE_FOCUSED } from '@codingame/monaco-vscode-chat-interactive-notebook-search-terminal-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
1
+
2
+ import { InlineChatController } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
3
+ import { CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_RESPONSE_FOCUSED } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
3
4
  import { ICodeEditorService } from 'vscode/vscode/vs/editor/browser/services/codeEditorService';
4
5
  import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
5
- import { AccessibleContentProvider } from 'vscode/vscode/vs/platform/accessibility/browser/accessibleView';
6
+ import { AccessibleViewType, AccessibleContentProvider, AccessibleViewProviderId } from 'vscode/vscode/vs/platform/accessibility/browser/accessibleView';
6
7
  import { MarkdownString } from 'vscode/vscode/vs/base/common/htmlContent';
7
8
  import { renderMarkdownAsPlaintext } from 'vscode/vscode/vs/base/browser/markdownRenderer';
9
+ import { AccessibilityVerbositySettingId } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
8
10
 
9
11
  class InlineChatAccessibleView {
10
12
  constructor() {
11
13
  this.priority = 100;
12
14
  this.name = 'inlineChat';
13
15
  this.when = ( ContextKeyExpr.or(CTX_INLINE_CHAT_FOCUSED, CTX_INLINE_CHAT_RESPONSE_FOCUSED));
14
- this.type = "view" ;
16
+ this.type = AccessibleViewType.View;
15
17
  }
16
18
  getProvider(accessor) {
17
19
  const codeEditorService = accessor.get(ICodeEditorService);
@@ -28,11 +30,11 @@ class InlineChatAccessibleView {
28
30
  return;
29
31
  }
30
32
  return ( new AccessibleContentProvider(
31
- "inlineChat" ,
32
- { type: "view" },
33
+ AccessibleViewProviderId.InlineChat,
34
+ { type: AccessibleViewType.View },
33
35
  () => renderMarkdownAsPlaintext(( new MarkdownString(responseContent)), true),
34
36
  () => controller.focus(),
35
- "accessibility.verbosity.inlineChat"
37
+ AccessibilityVerbositySettingId.InlineChat
36
38
  ));
37
39
  }
38
40
  }
@@ -0,0 +1,44 @@
1
+ import { Disposable } from "vscode/vscode/vs/base/common/lifecycle";
2
+ import { ICodeEditor } from "vscode/vscode/vs/editor/browser/editorBrowser";
3
+ import { IEditorContribution } from "vscode/vscode/vs/editor/common/editorCommon";
4
+ import { RawContextKey } from "vscode/vscode/vs/platform/contextkey/common/contextkey";
5
+ import { IContextKeyService } from "vscode/vscode/vs/platform/contextkey/common/contextkey.service";
6
+ import { EditorAction2, ServicesAccessor } from "vscode/vscode/vs/editor/browser/editorExtensions";
7
+ import { IPosition } from "vscode/vscode/vs/editor/common/core/position";
8
+ import { URI } from "vscode/vscode/vs/base/common/uri";
9
+ import { IKeybindingService } from "vscode/vscode/vs/platform/keybinding/common/keybinding.service";
10
+ import { ICommandService } from "vscode/vscode/vs/platform/commands/common/commands.service";
11
+ import { IChatAgentService } from "vscode/vscode/vs/workbench/contrib/chat/common/chatAgents.service";
12
+ import { IMarkerDecorationsService } from "vscode/vscode/vs/editor/common/services/markerDecorations";
13
+ import { IContextMenuService } from "vscode/vscode/vs/platform/contextview/browser/contextView.service";
14
+ import { IConfigurationService } from "vscode/vscode/vs/platform/configuration/common/configuration.service";
15
+ export declare const CTX_INLINE_CHAT_SHOWING_HINT: RawContextKey<boolean>;
16
+ export declare class InlineChatExpandLineAction extends EditorAction2 {
17
+ constructor();
18
+ runEditorCommand(_accessor: ServicesAccessor, editor: ICodeEditor): Promise<void>;
19
+ }
20
+ export declare class ShowInlineChatHintAction extends EditorAction2 {
21
+ constructor();
22
+ runEditorCommand(_accessor: ServicesAccessor, editor: ICodeEditor, ...args: [
23
+ uri: URI,
24
+ position: IPosition,
25
+ ...rest: any[]
26
+ ]): Promise<void>;
27
+ }
28
+ export declare class InlineChatHintsController extends Disposable implements IEditorContribution {
29
+ private readonly _contextMenuService;
30
+ private readonly _configurationService;
31
+ static readonly ID = "editor.contrib.inlineChatHints";
32
+ static get(editor: ICodeEditor): InlineChatHintsController | null;
33
+ private readonly _editor;
34
+ private readonly _ctxShowingHint;
35
+ private readonly _visibilityObs;
36
+ constructor(editor: ICodeEditor, contextKeyService: IContextKeyService, commandService: ICommandService, keybindingService: IKeybindingService, chatAgentService: IChatAgentService, markerDecorationService: IMarkerDecorationsService, _contextMenuService: IContextMenuService, _configurationService: IConfigurationService);
37
+ private _showContextMenu;
38
+ show(): void;
39
+ hide(): void;
40
+ }
41
+ export declare class HideInlineChatHintAction extends EditorAction2 {
42
+ constructor();
43
+ runEditorCommand(_accessor: ServicesAccessor, editor: ICodeEditor): Promise<void>;
44
+ }
@@ -1,96 +1,65 @@
1
- import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
2
- import { DisposableStore, MutableDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
1
+
2
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
3
+ import { Disposable, MutableDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
4
+ import { MouseTargetType } from 'vscode/vscode/vs/editor/browser/editorBrowser';
3
5
  import { localize, localize2 } from 'vscode/vscode/vs/nls';
4
6
  import { RawContextKey, ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
5
7
  import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
6
- import { IChatAgentService } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
7
- import { InlineChatController } from '@codingame/monaco-vscode-chat-interactive-notebook-search-terminal-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
8
- import { CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_HAS_AGENT } from '@codingame/monaco-vscode-chat-interactive-notebook-search-terminal-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
8
+ import { InlineChatController, State } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
9
+ import { CTX_INLINE_CHAT_VISIBLE, CTX_INLINE_CHAT_HAS_AGENT, ACTION_START, InlineChatConfigKeys } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/common/inlineChat';
9
10
  import { EditorAction2 } from 'vscode/vscode/vs/editor/browser/editorExtensions';
10
11
  import { EditOperation } from 'vscode/vscode/vs/editor/common/core/editOperation';
11
12
  import { Range } from 'vscode/vscode/vs/editor/common/core/range';
12
13
  import { Position } from 'vscode/vscode/vs/editor/common/core/position';
13
- import { AbstractInlineChatAction } from '@codingame/monaco-vscode-chat-notebook-terminal-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatActions';
14
+ import { AbstractInlineChatAction } from '@codingame/monaco-vscode-4a36e358-d94d-55e0-86ee-3bcd543d9d3f-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatActions';
14
15
  import { EditorContextKeys } from 'vscode/vscode/vs/editor/common/editorContextKeys';
16
+ import { TrackedRangeStickiness } from 'vscode/vscode/vs/editor/common/model';
17
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
18
+ import { isEqual } from 'vscode/vscode/vs/base/common/resources';
19
+ import { StandardTokenType } from 'vscode/vscode/vs/editor/common/encodedTokenAttributes';
20
+ import { observableValue } from 'vscode/vscode/vs/base/common/observableInternal/base';
21
+ import 'vscode/vscode/vs/base/common/arrays';
22
+ import { Event } from 'vscode/vscode/vs/base/common/event';
23
+ import { autorun } from 'vscode/vscode/vs/base/common/observableInternal/autorun';
24
+ import { derived } from 'vscode/vscode/vs/base/common/observableInternal/derived';
25
+ import 'vscode/vscode/vs/base/common/cancellation';
26
+ import { observableFromEvent } from 'vscode/vscode/vs/base/common/observableInternal/utils';
27
+ import { KeyMod, KeyCode, KeyChord } from 'vscode/vscode/vs/base/common/keyCodes';
28
+ import { KeybindingWeight } from 'vscode/vscode/vs/platform/keybinding/common/keybindingsRegistry';
29
+ import '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css';
30
+ import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding.service';
31
+ import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
32
+ import { InlineCompletionsController } from 'vscode/vscode/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController';
33
+ import { ChatAgentLocation } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatAgents';
34
+ import { IChatAgentService } from 'vscode/vscode/vs/workbench/contrib/chat/common/chatAgents.service';
35
+ import { IMarkerDecorationsService } from 'vscode/vscode/vs/editor/common/services/markerDecorations';
36
+ import { IContextMenuService } from 'vscode/vscode/vs/platform/contextview/browser/contextView.service';
37
+ import { toAction } from 'vscode/vscode/vs/base/common/actions';
38
+ import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
39
+ import { observableCodeEditor } from 'vscode/vscode/vs/editor/browser/observableCodeEditor';
40
+ import { PLAINTEXT_LANGUAGE_ID } from 'vscode/vscode/vs/editor/common/languages/modesRegistry';
41
+ import { createStyleSheet2 } from 'vscode/vscode/vs/base/browser/domStylesheets';
42
+ import { stringValue } from 'vscode/vscode/vs/base/browser/cssValue';
15
43
 
16
- const CTX_INLINE_CHAT_EXPANSION = ( (new RawContextKey('inlineChatExpansion', false, ( localize(
17
- 7698,
18
- "Whether the inline chat expansion is enabled when at the end of a just-typed line"
19
- )))));
20
- let InlineChatExansionContextKey = class InlineChatExansionContextKey {
21
- static { this.Id = 'editor.inlineChatExpansion'; }
22
- constructor(editor, contextKeyService, chatAgentService) {
23
- this._store = ( (new DisposableStore()));
24
- this._editorListener = this._store.add(( (new MutableDisposable())));
25
- this._ctxInlineChatExpansion = CTX_INLINE_CHAT_EXPANSION.bindTo(contextKeyService);
26
- const update = () => {
27
- if (editor.hasModel() && chatAgentService.getAgents().length > 0) {
28
- this._install(editor);
29
- }
30
- else {
31
- this._uninstall();
32
- }
33
- };
34
- this._store.add(chatAgentService.onDidChangeAgents(update));
35
- this._store.add(editor.onDidChangeModel(update));
36
- update();
37
- }
38
- dispose() {
39
- this._ctxInlineChatExpansion.reset();
40
- this._store.dispose();
41
- }
42
- _install(editor) {
43
- const store = ( (new DisposableStore()));
44
- this._editorListener.value = store;
45
- const model = editor.getModel();
46
- const lastChangeEnds = [];
47
- store.add(editor.onDidChangeCursorPosition(e => {
48
- let enabled = false;
49
- if (e.reason === 0 ) {
50
- const position = editor.getPosition();
51
- const positionOffset = model.getOffsetAt(position);
52
- const lineLength = model.getLineLength(position.lineNumber);
53
- const firstNonWhitespace = model.getLineFirstNonWhitespaceColumn(position.lineNumber);
54
- if (firstNonWhitespace !== 0 && position.column > lineLength && lastChangeEnds.includes(positionOffset)) {
55
- enabled = true;
56
- }
57
- }
58
- lastChangeEnds.length = 0;
59
- this._ctxInlineChatExpansion.set(enabled);
60
- }));
61
- store.add(editor.onDidChangeModelContent(e => {
62
- lastChangeEnds.length = 0;
63
- for (const change of e.changes) {
64
- const changeEnd = change.rangeOffset + change.text.length;
65
- lastChangeEnds.push(changeEnd);
66
- }
67
- queueMicrotask(() => {
68
- if (lastChangeEnds.length > 0) {
69
- this._ctxInlineChatExpansion.set(false);
70
- }
71
- });
72
- }));
73
- }
74
- _uninstall() {
75
- this._editorListener.clear();
76
- }
77
- };
78
- InlineChatExansionContextKey = ( (__decorate([
79
- ( (__param(1, IContextKeyService))),
80
- ( (__param(2, IChatAgentService)))
81
- ], InlineChatExansionContextKey)));
44
+ var InlineChatHintsController_1;
45
+ const CTX_INLINE_CHAT_SHOWING_HINT = ( new RawContextKey('inlineChatShowingHint', false, ( localize(6767, "Whether inline chat shows a contextual hint"))));
46
+ const _inlineChatActionId = 'inlineChat.startWithCurrentLine';
82
47
  class InlineChatExpandLineAction extends EditorAction2 {
83
48
  constructor() {
84
49
  super({
85
- id: 'inlineChat.startWithCurrentLine',
50
+ id: _inlineChatActionId,
86
51
  category: AbstractInlineChatAction.category,
87
- title: ( localize2(7699, "Start in Editor with Current Line")),
52
+ title: ( localize2(6768, "Start in Editor with Current Line")),
88
53
  f1: true,
89
- precondition: ( (ContextKeyExpr.and(
90
- (CTX_INLINE_CHAT_VISIBLE.negate()),
91
- CTX_INLINE_CHAT_HAS_AGENT,
92
- EditorContextKeys.writable
93
- ))),
54
+ precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
55
+ keybinding: [{
56
+ when: CTX_INLINE_CHAT_SHOWING_HINT,
57
+ weight: KeybindingWeight.WorkbenchContrib + 1,
58
+ primary: KeyMod.CtrlCmd | KeyCode.KeyI
59
+ }, {
60
+ weight: KeybindingWeight.WorkbenchContrib,
61
+ primary: KeyChord(KeyMod.CtrlCmd | KeyCode.KeyK, KeyCode.KeyI),
62
+ }]
94
63
  });
95
64
  }
96
65
  async runEditorCommand(_accessor, editor) {
@@ -104,7 +73,7 @@ class InlineChatExpandLineAction extends EditorAction2 {
104
73
  const startColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);
105
74
  const endColumn = model.getLineMaxColumn(lineNumber);
106
75
  let undoEdits = [];
107
- model.pushEditOperations(null, [EditOperation.replace(( (new Range(lineNumber, startColumn, lineNumber, endColumn))), '')], (edits) => {
76
+ model.pushEditOperations(null, [EditOperation.replace(( new Range(lineNumber, startColumn, lineNumber, endColumn)), '')], (edits) => {
108
77
  undoEdits = edits;
109
78
  return null;
110
79
  });
@@ -114,16 +83,211 @@ class InlineChatExpandLineAction extends EditorAction2 {
114
83
  await ctrl.run({
115
84
  autoSend: true,
116
85
  message: lineContent.trim(),
117
- position: ( (new Position(lineNumber, startColumn)))
86
+ position: ( new Position(lineNumber, startColumn))
118
87
  });
119
88
  }
120
89
  finally {
121
90
  d.dispose();
122
91
  }
123
- if (lastState === "CANCEL" ) {
92
+ if (lastState === State.CANCEL) {
124
93
  model.pushEditOperations(null, undoEdits, () => null);
125
94
  }
126
95
  }
127
96
  }
97
+ class ShowInlineChatHintAction extends EditorAction2 {
98
+ constructor() {
99
+ super({
100
+ id: 'inlineChat.showHint',
101
+ category: AbstractInlineChatAction.category,
102
+ title: ( localize2(6769, "Show Inline Chat Hint")),
103
+ f1: false,
104
+ precondition: ( ContextKeyExpr.and(( CTX_INLINE_CHAT_VISIBLE.negate()), CTX_INLINE_CHAT_HAS_AGENT, EditorContextKeys.writable)),
105
+ });
106
+ }
107
+ async runEditorCommand(_accessor, editor, ...args) {
108
+ if (!editor.hasModel()) {
109
+ return;
110
+ }
111
+ const ctrl = InlineChatHintsController.get(editor);
112
+ if (!ctrl) {
113
+ return;
114
+ }
115
+ const [uri, position] = args;
116
+ if (!URI.isUri(uri) || !Position.isIPosition(position)) {
117
+ ctrl.hide();
118
+ return;
119
+ }
120
+ const model = editor.getModel();
121
+ if (!isEqual(model.uri, uri)) {
122
+ ctrl.hide();
123
+ return;
124
+ }
125
+ model.tokenization.forceTokenization(position.lineNumber);
126
+ const tokens = model.tokenization.getLineTokens(position.lineNumber);
127
+ const tokenIndex = tokens.findTokenIndexAtOffset(position.column - 1);
128
+ const tokenType = tokens.getStandardTokenType(tokenIndex);
129
+ if (tokenType === StandardTokenType.Comment) {
130
+ ctrl.hide();
131
+ }
132
+ else {
133
+ ctrl.show();
134
+ }
135
+ }
136
+ }
137
+ let InlineChatHintsController = class InlineChatHintsController extends Disposable {
138
+ static { InlineChatHintsController_1 = this; }
139
+ static { this.ID = 'editor.contrib.inlineChatHints'; }
140
+ static get(editor) {
141
+ return editor.getContribution(InlineChatHintsController_1.ID);
142
+ }
143
+ constructor(editor, contextKeyService, commandService, keybindingService, chatAgentService, markerDecorationService, _contextMenuService, _configurationService) {
144
+ super();
145
+ this._contextMenuService = _contextMenuService;
146
+ this._configurationService = _configurationService;
147
+ this._visibilityObs = observableValue(this, false);
148
+ this._editor = editor;
149
+ this._ctxShowingHint = CTX_INLINE_CHAT_SHOWING_HINT.bindTo(contextKeyService);
150
+ const ghostCtrl = InlineCompletionsController.get(editor);
151
+ this._store.add(commandService.onWillExecuteCommand(e => {
152
+ if (e.commandId === _inlineChatActionId || e.commandId === ACTION_START) {
153
+ this.hide();
154
+ }
155
+ }));
156
+ this._store.add(this._editor.onMouseDown(e => {
157
+ if (e.target.type !== MouseTargetType.CONTENT_TEXT) {
158
+ return;
159
+ }
160
+ if (!e.target.element?.classList.contains('inline-chat-hint-text')) {
161
+ return;
162
+ }
163
+ if (e.event.leftButton) {
164
+ commandService.executeCommand(_inlineChatActionId);
165
+ this.hide();
166
+ }
167
+ else if (e.event.rightButton) {
168
+ e.event.preventDefault();
169
+ this._showContextMenu(e.event, e.target.element?.classList.contains('whitespace')
170
+ ? InlineChatConfigKeys.LineEmptyHint
171
+ : InlineChatConfigKeys.LineNLHint);
172
+ }
173
+ }));
174
+ const markerSuppression = this._store.add(( new MutableDisposable()));
175
+ const decos = this._editor.createDecorationsCollection();
176
+ const editorObs = observableCodeEditor(editor);
177
+ const keyObs = observableFromEvent(keybindingService.onDidUpdateKeybindings, _ => keybindingService.lookupKeybinding(ACTION_START)?.getLabel());
178
+ const configSignal = observableFromEvent(Event.filter(_configurationService.onDidChangeConfiguration, e => e.affectsConfiguration(InlineChatConfigKeys.LineEmptyHint) || e.affectsConfiguration(InlineChatConfigKeys.LineNLHint)), () => undefined);
179
+ const showDataObs = derived(r => {
180
+ const ghostState = ghostCtrl?.model.read(r)?.state.read(r);
181
+ const textFocus = editorObs.isTextFocused.read(r);
182
+ const position = editorObs.cursorPosition.read(r);
183
+ const model = editorObs.model.read(r);
184
+ const kb = keyObs.read(r);
185
+ configSignal.read(r);
186
+ if (ghostState !== undefined || !kb || !position || !model || !textFocus) {
187
+ return undefined;
188
+ }
189
+ if (model.getLanguageId() === PLAINTEXT_LANGUAGE_ID || model.getLanguageId() === 'markdown') {
190
+ return undefined;
191
+ }
192
+ const visible = this._visibilityObs.read(r);
193
+ const isEol = model.getLineMaxColumn(position.lineNumber) === position.column;
194
+ const isWhitespace = model.getLineLastNonWhitespaceColumn(position.lineNumber) === 0 && model.getValueLength() > 0 && position.column > 1;
195
+ if (isWhitespace) {
196
+ return _configurationService.getValue(InlineChatConfigKeys.LineEmptyHint)
197
+ ? { isEol, isWhitespace, kb, position, model }
198
+ : undefined;
199
+ }
200
+ if (visible && isEol && _configurationService.getValue(InlineChatConfigKeys.LineNLHint)) {
201
+ return { isEol, isWhitespace, kb, position, model };
202
+ }
203
+ return undefined;
204
+ });
205
+ const style = createStyleSheet2();
206
+ this._store.add(style);
207
+ this._store.add(autorun(r => {
208
+ const showData = showDataObs.read(r);
209
+ if (!showData) {
210
+ decos.clear();
211
+ markerSuppression.clear();
212
+ this._ctxShowingHint.reset();
213
+ return;
214
+ }
215
+ const agentName = chatAgentService.getDefaultAgent(ChatAgentLocation.Editor)?.name ?? ( localize(6770, "Chat"));
216
+ const { position, isEol, isWhitespace, kb, model } = showData;
217
+ const inlineClassName = ['a' , 'inline-chat-hint', 'inline-chat-hint-text'];
218
+ let content;
219
+ if (isWhitespace) {
220
+ content = '\u00a0' + ( localize(6771, "{0} to edit with {1}", kb, agentName));
221
+ }
222
+ else if (isEol) {
223
+ content = '\u00a0' + ( localize(6772, "{0} to continue with {1}", kb, agentName));
224
+ }
225
+ else {
226
+ content = '\u200a' + kb + '\u200a';
227
+ inlineClassName.push('embedded');
228
+ }
229
+ style.setStyle(`.inline-chat-hint-text::after { content: ${stringValue(content)} }`);
230
+ if (isWhitespace) {
231
+ inlineClassName.push('whitespace');
232
+ }
233
+ this._ctxShowingHint.set(true);
234
+ decos.set([{
235
+ range: Range.fromPositions(position),
236
+ options: {
237
+ description: 'inline-chat-hint-line',
238
+ showIfCollapsed: true,
239
+ stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
240
+ afterContentClassName: inlineClassName.join(' '),
241
+ }
242
+ }]);
243
+ markerSuppression.value = markerDecorationService.addMarkerSuppression(model.uri, model.validateRange(( new Range(position.lineNumber, 1, position.lineNumber, Number.MAX_SAFE_INTEGER))));
244
+ }));
245
+ }
246
+ _showContextMenu(event, setting) {
247
+ this._contextMenuService.showContextMenu({
248
+ getAnchor: () => ({ x: event.posx, y: event.posy }),
249
+ getActions: () => [
250
+ toAction({
251
+ id: 'inlineChat.disableHint',
252
+ label: ( localize(6773, "Disable Inline Chat Hint")),
253
+ run: async () => {
254
+ await this._configurationService.updateValue(setting, false);
255
+ }
256
+ })
257
+ ]
258
+ });
259
+ }
260
+ show() {
261
+ this._visibilityObs.set(true, undefined);
262
+ }
263
+ hide() {
264
+ this._visibilityObs.set(false, undefined);
265
+ }
266
+ };
267
+ InlineChatHintsController = InlineChatHintsController_1 = ( __decorate([
268
+ ( __param(1, IContextKeyService)),
269
+ ( __param(2, ICommandService)),
270
+ ( __param(3, IKeybindingService)),
271
+ ( __param(4, IChatAgentService)),
272
+ ( __param(5, IMarkerDecorationsService)),
273
+ ( __param(6, IContextMenuService)),
274
+ ( __param(7, IConfigurationService))
275
+ ], InlineChatHintsController));
276
+ class HideInlineChatHintAction extends EditorAction2 {
277
+ constructor() {
278
+ super({
279
+ id: 'inlineChat.hideHint',
280
+ title: ( localize2(6774, "Hide Inline Chat Hint")),
281
+ precondition: CTX_INLINE_CHAT_SHOWING_HINT,
282
+ keybinding: {
283
+ weight: KeybindingWeight.EditorContrib - 10,
284
+ primary: KeyCode.Escape
285
+ }
286
+ });
287
+ }
288
+ async runEditorCommand(_accessor, editor) {
289
+ InlineChatHintsController.get(editor)?.hide();
290
+ }
291
+ }
128
292
 
129
- export { CTX_INLINE_CHAT_EXPANSION, InlineChatExansionContextKey, InlineChatExpandLineAction };
293
+ export { CTX_INLINE_CHAT_SHOWING_HINT, HideInlineChatHintAction, InlineChatExpandLineAction, InlineChatHintsController, ShowInlineChatHintAction };
@@ -0,0 +1,8 @@
1
+ import { IInlineChatSessionService } from "vscode/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service";
2
+ import { INotebookEditorService } from "vscode/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service";
3
+ import { IEditorService } from "vscode/vscode/vs/workbench/services/editor/common/editorService.service";
4
+ export declare class InlineChatNotebookContribution {
5
+ private readonly _store;
6
+ constructor(sessionService: IInlineChatSessionService, editorService: IEditorService, notebookEditorService: INotebookEditorService);
7
+ dispose(): void;
8
+ }
@@ -1,15 +1,16 @@
1
- import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
1
+
2
+ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6';
2
3
  import { illegalState } from 'vscode/vscode/vs/base/common/errors';
3
4
  import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
4
5
  import { Schemas } from 'vscode/vscode/vs/base/common/network';
5
6
  import { isEqual } from 'vscode/vscode/vs/base/common/resources';
6
- import { InlineChatController } from '@codingame/monaco-vscode-chat-interactive-notebook-search-terminal-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
7
+ import { InlineChatController } from '@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatController';
7
8
  import { IInlineChatSessionService } from 'vscode/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service';
8
9
  import { INotebookEditorService } from 'vscode/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.service';
9
10
  import { CellUri } from 'vscode/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
10
11
  import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
11
- import { NotebookTextDiffEditor } from '@codingame/monaco-vscode-chat-notebook-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor';
12
- import { NotebookMultiTextDiffEditor } from '@codingame/monaco-vscode-chat-notebook-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor';
12
+ import { NotebookTextDiffEditor } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor';
13
+ import { NotebookMultiTextDiffEditor } from '@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common/vscode/vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor';
13
14
 
14
15
  let InlineChatNotebookContribution = class InlineChatNotebookContribution {
15
16
  constructor(sessionService, editorService, notebookEditorService) {
@@ -0,0 +1,29 @@
1
+ import { IConfigurationService } from "vscode/vscode/vs/platform/configuration/common/configuration.service";
2
+ import { Session } from "@codingame/monaco-vscode-c465110a-57c0-59d7-a6b2-be0a4db7e517-common/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSession";
3
+ import { IInlineChatSessionService } from "vscode/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.service";
4
+ import { IEditorGroupsService } from "vscode/vscode/vs/workbench/services/editor/common/editorGroupsService.service";
5
+ import { IFilesConfigurationService } from "vscode/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.service";
6
+ import { ITextFileService } from "vscode/vscode/vs/workbench/services/textfile/common/textfiles.service";
7
+ import { IInlineChatSavingService } from "vscode/vscode/vs/workbench/contrib/inlineChat/browser/inlineChatSavingService.service";
8
+ import { IWorkingCopyFileService } from "vscode/vscode/vs/workbench/services/workingCopy/common/workingCopyFileService.service";
9
+ import { IDialogService } from "vscode/vscode/vs/platform/dialogs/common/dialogs.service";
10
+ import { ILabelService } from "vscode/vscode/vs/platform/label/common/label.service";
11
+ export declare class InlineChatSavingServiceImpl implements IInlineChatSavingService {
12
+ private readonly _fileConfigService;
13
+ private readonly _editorGroupService;
14
+ private readonly _textFileService;
15
+ private readonly _configService;
16
+ private readonly _workingCopyFileService;
17
+ private readonly _dialogService;
18
+ private readonly _labelService;
19
+ readonly _serviceBrand: undefined;
20
+ private readonly _store;
21
+ private readonly _saveParticipant;
22
+ private readonly _sessionData;
23
+ constructor(_fileConfigService: IFilesConfigurationService, _editorGroupService: IEditorGroupsService, _textFileService: ITextFileService, _inlineChatSessionService: IInlineChatSessionService, _configService: IConfigurationService, _workingCopyFileService: IWorkingCopyFileService, _dialogService: IDialogService, _labelService: ILabelService);
24
+ dispose(): void;
25
+ markChanged(session: Session): void;
26
+ private _installSaveParticpant;
27
+ private _participate;
28
+ private _isDisabled;
29
+ }