import { Disposable } from "../../../../base/common/lifecycle.js"; import { ICodeEditor } from "../../../browser/editorBrowser.js"; import { IEditorContribution } from "../../../common/editorCommon.js"; import { ILanguageFeaturesService } from "../../../common/services/languageFeatures.service.js"; import { StickyScrollWidgetState } from "./stickyScrollWidget.js"; import { IStickyLineCandidateProvider } from "./stickyScrollProvider.js"; import { IInstantiationService } from "../../../../platform/instantiation/common/instantiation.js"; import { IContextMenuService } from "../../../../platform/contextview/browser/contextView.service.js"; import { IContextKeyService } from "../../../../platform/contextkey/common/contextkey.service.js"; import { ILanguageConfigurationService } from "../../../common/languages/languageConfigurationRegistry.service.js"; import { ILanguageFeatureDebounceService } from "../../../common/services/languageFeatureDebounce.service.js"; import { Event } from "../../../../base/common/event.js"; export interface IStickyScrollController { get stickyScrollCandidateProvider(): IStickyLineCandidateProvider; get stickyScrollWidgetState(): StickyScrollWidgetState; readonly stickyScrollWidgetHeight: number; isFocused(): boolean; focus(): void; focusNext(): void; focusPrevious(): void; goToFocused(): void; findScrollWidgetState(): StickyScrollWidgetState; dispose(): void; selectEditor(): void; readonly onDidChangeStickyScrollHeight: Event<{ height: number; }>; } export declare class StickyScrollController extends Disposable implements IEditorContribution, IStickyScrollController { private readonly _editor; private readonly _contextMenuService; private readonly _languageFeaturesService; private readonly _instaService; private readonly _contextKeyService; static readonly ID = "store.contrib.stickyScrollController"; private readonly _stickyScrollWidget; private readonly _stickyLineCandidateProvider; private readonly _sessionStore; private _widgetState; private _foldingModel; private _maxStickyLines; private _stickyRangeProjectedOnEditor; private _candidateDefinitionsLength; private _stickyScrollFocusedContextKey; private _stickyScrollVisibleContextKey; private _focusDisposableStore; private _focusedStickyElementIndex; private _enabled; private _focused; private _positionRevealed; private _onMouseDown; private _endLineNumbers; private _showEndForLine; private _minRebuildFromLine; private _mouseTarget; private _cursorPositionListener; private _positionLineNumber; private readonly _onDidChangeStickyScrollHeight; readonly onDidChangeStickyScrollHeight: Event<{ height: number; }>; constructor(_editor: ICodeEditor, _contextMenuService: IContextMenuService, _languageFeaturesService: ILanguageFeaturesService, _instaService: IInstantiationService, _languageConfigurationService: ILanguageConfigurationService, _languageFeatureDebounceService: ILanguageFeatureDebounceService, _contextKeyService: IContextKeyService); get stickyScrollCandidateProvider(): IStickyLineCandidateProvider; get stickyScrollWidgetState(): StickyScrollWidgetState; get stickyScrollWidgetHeight(): number; static get(editor: ICodeEditor): IStickyScrollController | null; private _disposeFocusStickyScrollStore; isFocused(): boolean; focus(): void; focusNext(): void; focusPrevious(): void; selectEditor(): void; private _focusNav; goToFocused(): void; private _revealPosition; private _revealLineInCenterIfOutsideViewport; private _reveaInEditor; private _registerMouseListeners; private _onContextMenu; private _onMouseMoveOrKeyDown; private _toggleFoldingRegionForLine; private _readConfiguration; private _readConfigurationChange; private _needsUpdate; private _onTokensChange; private _onDidResize; private _renderStickyScroll; private _updateAndGetMinRebuildFromLine; private _updateState; private _resetState; findScrollWidgetState(): StickyScrollWidgetState; dispose(): void; }