import { IDisposable, URI } from '@opensumi/ide-core-browser'; import * as monaco from '@opensumi/ide-monaco'; import { IDecorationRenderOptions } from '../common'; import { IBrowserTextEditorDecorationType, IEditorDecorationCollectionService, IEditorDecorationProvider } from './types'; export declare class EditorDecorationCollectionService implements IEditorDecorationCollectionService { decorations: Map; private readonly cssManager; private readonly themeService; private readonly iconService; private readonly eventBus; private tempId; getNextTempId(): string; decorationProviders: Map; createTextEditorDecorationType(options: IDecorationRenderOptions, key?: string): IBrowserTextEditorDecorationType; getTextEditorDecorationType(key: any): IBrowserTextEditorDecorationType | undefined; private resolveDecoration; private createThemeCSSStyleCollection; private addedThemeDecorationToCSSStyleSheet; private resolveCSSStyle; private resolveInlineCSSStyle; private resolveContentCSSStyle; static DISPLAY_INLINE_BLOCK_CLS: string; private inlineBlockDecorationDisposer; /** * 最新版chrome 中 document.caretRangeFromRange 的行为有所改变 * 如果目标位置命中的是两个 inline 元素之间, 它会认为是前一个元素的内容。 * 在之前这个结果是属于公共父级 * 这个改变会使得 monaco 中 hitTest 返回错误的结果,导致点击 decoration 的空白区域时会错误选中文本 * 此处将 before 和 after 的父级 span display 强制设置为 inline-block, 可以避免这个问题, 是否会带来其他风险未知 * @returns */ private createInlineBlockCSSStyleIfNeeded; registerDecorationProvider(provider: IEditorDecorationProvider): IDisposable; getDecorationFromProvider(uri: URI, key?: string): Promise<{ [key: string]: monaco.editor.IModelDeltaDecoration[]; }>; } //# sourceMappingURL=editor.decoration.service.d.ts.map