import { Disposable } from "../../../../base/common/lifecycle.js"; import { ICodeEditor, IEditorMouseEvent } from "../../../../editor/browser/editorBrowser.js"; import { ICodeEditorService } from "../../../../editor/browser/services/codeEditorService.service.js"; import { IRange, Range } from "../../../../editor/common/core/range.js"; import { IEditorContribution } from "../../../../editor/common/editorCommon.js"; import * as languages from "../../../../editor/common/languages.js"; import { IContextMenuService } from "../../../../platform/contextview/browser/contextView.service.js"; import { IInstantiationService } from "../../../../platform/instantiation/common/instantiation.js"; import { IQuickInputService } from "../../../../platform/quickinput/common/quickInput.service.js"; import { ICommentService } from "./commentService.service.js"; import { CommentWidgetFocus, ReviewZoneWidget } from "./commentThreadZoneWidget.js"; import { IEditorService } from "../../../services/editor/common/editorService.service.js"; import { IViewsService } from "../../../services/views/common/viewsService.service.js"; import { IConfigurationService } from "../../../../platform/configuration/common/configuration.service.js"; import { IContextKeyService } from "../../../../platform/contextkey/common/contextkey.service.js"; import { IKeybindingService } from "../../../../platform/keybinding/common/keybinding.service.js"; import { IAccessibilityService } from "../../../../platform/accessibility/common/accessibility.service.js"; import { IUriIdentityService } from "../../../../platform/uriIdentity/common/uriIdentity.service.js"; import { INotificationService } from "../../../../platform/notification/common/notification.service.js"; export declare const ID = "editor.contrib.review"; /** * Navigate to the next or previous comment in the current thread. * @param type */ export declare function moveToNextCommentInThread(commentInfo: { thread: languages.CommentThread; comment?: languages.Comment; } | undefined, type: "next" | "previous"): { comment: languages.Comment; thread: languages.CommentThread; } | undefined; export declare function revealCommentThread(commentService: ICommentService, editorService: IEditorService, uriIdentityService: IUriIdentityService, commentThread: languages.CommentThread, comment: languages.Comment | undefined, focusReply?: boolean, pinned?: boolean, preserveFocus?: boolean, sideBySide?: boolean): void; export declare class CommentController extends Disposable implements IEditorContribution { private readonly commentService; private readonly instantiationService; private readonly codeEditorService; private readonly contextMenuService; private readonly quickInputService; private readonly viewsService; private readonly configurationService; private readonly editorService; private readonly keybindingService; private readonly accessibilityService; private readonly notificationService; private readonly localToDispose; private editor; private _commentWidgets; private _commentInfos; private _commentingRangeDecorator; private _commentThreadRangeDecorator; private mouseDownInfo; private _commentingRangeSpaceReserved; private _commentingRangeAmountReserved; private _computePromise; private _computeAndSetPromise; private _addInProgress; private _emptyThreadsToAddQueue; private _computeCommentingRangeScheduler; private _pendingNewCommentCache; private _pendingEditsCache; private _inProcessContinueOnComments; private _editorDisposables; private _activeCursorHasCommentingRange; private _activeCursorHasComment; private _activeEditorHasCommentingRange; private _commentWidgetVisible; private _hasRespondedToEditorChange; constructor(editor: ICodeEditor, commentService: ICommentService, instantiationService: IInstantiationService, codeEditorService: ICodeEditorService, contextMenuService: IContextMenuService, quickInputService: IQuickInputService, viewsService: IViewsService, configurationService: IConfigurationService, contextKeyService: IContextKeyService, editorService: IEditorService, keybindingService: IKeybindingService, accessibilityService: IAccessibilityService, notificationService: INotificationService); private registerEditorListeners; private clearEditorListeners; private onEditorMouseLeave; private onEditorMouseMove; private onEditorChangeCursorSelection; private onEditorChangeCursorPosition; private isEditorInlineOriginal; private beginCompute; private beginComputeCommentingRanges; static get(editor: ICodeEditor): CommentController | null; revealCommentThread(threadId: string, commentUniqueId: number | undefined, fetchOnceIfNotExist: boolean, focus: CommentWidgetFocus): void; collapseAll(): void; collapseVisibleComments(): Promise; private _updateCommentWidgetVisibleContext; expandAll(): void; expandUnresolved(): void; nextCommentThread(focusThread: boolean): void; private _findNearestCommentThread; previousCommentThread(focusThread: boolean): void; private _findNearestCommentingRange; nextCommentingRange(): void; previousCommentingRange(): void; dispose(): void; private onWillChangeModel; private handleCommentAdded; onModelChanged(): void; private resumePendingComment; private beginComputeAndHandleEditorChange; private openCommentsView; private displayCommentThread; private onEditorMouseDown; private onEditorMouseUp; getCommentsAtLine(commentRange: Range | undefined): ReviewZoneWidget[]; addOrToggleCommentAtLine(commentRange: Range | undefined, e: IEditorMouseEvent | undefined): Promise; private processNextThreadToAdd; private clipUserRangeToCommentRange; addCommentAtLine(range: Range | undefined, e: IEditorMouseEvent | undefined): Promise; private getCommentProvidersQuickPicks; private getContextMenuActions; addCommentAtLine2(range: Range | undefined, ownerId: string): void; private getExistingCommentEditorOptions; private getWithoutCommentsEditorOptions; private getWithCommentsLineDecorationWidth; private getWithCommentsEditorOptions; private updateEditorLayoutOptions; private ensureCommentingRangeReservedAmount; private tryUpdateReservedSpace; private setComments; collapseAndFocusRange(threadId: string): void; private removeCommentWidgetsAndStoreCache; }