UNPKG

monaco-editor-core

Version:

A browser based code editor

32 lines (31 loc) 1.55 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Lazy } from '../../../common/lazy.js'; const nullHoverDelegateFactory = () => ({ get delay() { return -1; }, dispose: () => { }, showHover: () => { return undefined; }, }); let hoverDelegateFactory = nullHoverDelegateFactory; const defaultHoverDelegateMouse = new Lazy(() => hoverDelegateFactory('mouse', false)); const defaultHoverDelegateElement = new Lazy(() => hoverDelegateFactory('element', false)); // TODO: Remove when getDefaultHoverDelegate is no longer used export function setHoverDelegateFactory(hoverDelegateProvider) { hoverDelegateFactory = hoverDelegateProvider; } // TODO: Refine type for use in new IHoverService interface export function getDefaultHoverDelegate(placement) { if (placement === 'element') { return defaultHoverDelegateElement.value; } return defaultHoverDelegateMouse.value; } // TODO: Create equivalent in IHoverService export function createInstantHoverDelegate() { // Creates a hover delegate with instant hover enabled. // This hover belongs to the consumer and requires the them to dispose it. // Instant hover only makes sense for 'element' placement. return hoverDelegateFactory('element', true); }