UNPKG

codemirror-languageservice

Version:

Integrate a Language Server Protocol compatible language service into CodeMirror

38 lines 1.23 kB
import { fromMarkupContent } from './markup-content.js'; import { getTextDocument } from './text-document.js'; /** * Create an LSP based hover tooltip provider. * * @param options * Options to configure the hover tooltips. * @returns * A CodeMirror hover tooltip source that uses LSP based hover information. */ export function createHoverTooltipSource(options) { return async (view, pos) => { const textDocument = getTextDocument(view.state); const info = await options.doHover(textDocument, textDocument.positionAt(pos)); if (!info) { return null; } if (textDocument.version !== getTextDocument(view.state).version) { return null; } let start = pos; let end; const { contents, range } = info; if (range) { start = textDocument.offsetAt(range.start); end = textDocument.offsetAt(range.end); } const tooltipView = { dom: await fromMarkupContent(contents, document.createElement('div'), options) }; return { pos: start, end, create: () => tooltipView }; }; } //# sourceMappingURL=hover-tooltip.js.map