yaml-language-server
Version:
49 lines (48 loc) • 2 kB
TypeScript
import type { TextDocument } from 'vscode-languageserver-textdocument';
import type { Hover, Position } from 'vscode-languageserver-types';
import type { Telemetry } from '../telemetry';
import type { LanguageSettings } from '../yamlLanguageService';
import type { YAMLSchemaService } from './yamlSchemaService';
export declare class YAMLHover {
private readonly telemetry?;
private shouldHover;
private shouldHoverAnchor;
private indentation;
private hoverSchemaSource;
private schemaService;
constructor(schemaService: YAMLSchemaService, telemetry?: Telemetry);
configure(languageSettings: LanguageSettings): void;
doHover(document: TextDocument, position: Position, isKubernetes?: boolean): Promise<Hover | null>;
private getHover;
/**
* Resolves merge keys (<<) and anchors recursively in an object node
* @param node The object AST node to resolve
* @param doc The YAML document for resolving anchors
* @param currentRecursionLevel Current recursion level (default: 0)
* @returns A plain JavaScript object with all merges resolved
*/
private resolveMergeKeys;
/**
* Resolves a merge value (which might be an alias) and recursively resolves its merge keys
* @param node The AST node that might be an alias or object
* @param doc The YAML document for resolving anchors
* @param currentRecursionLevel Current recursion level
* @returns The resolved value
*/
private resolveMergeValue;
/**
* Converts an AST node to a plain JavaScript value
* @param node The AST node to convert
* @param doc The YAML document for resolving anchors
* @param currentRecursionLevel Current recursion level
* @returns The converted value
*/
private astNodeToValue;
/**
* Converts a YAML Node to a plain JavaScript value
* @param node The YAML node to convert
* @returns The converted value
*/
private nodeToValue;
private toMarkdown;
}