Skip to main content
Glama
nrwl

Nx MCP Server

Official
by nrwl
get-hover.ts1.44 kB
import { ASTNode, JSONDocument, StringASTNode, } from 'vscode-json-languageservice'; import { TextDocument } from 'vscode-languageserver-textdocument'; import { Hover, HoverParams } from 'vscode-languageserver'; import { getJsonLanguageService, isExecutorStringNode, } from '@nx-console/language-server-utils'; export async function getHover( hoverParams: HoverParams, jsonAst: JSONDocument, document: TextDocument ): Promise<Hover | null | undefined> { const hover = await getJsonLanguageService()?.doHover( document, hoverParams.position, jsonAst ); if (!hover) { return; } const offset = document.offsetAt(hoverParams.position); const node = jsonAst.getNodeFromOffset(offset); if (!node) { return hover; } if (isNxExecutorStringNode(node)) { hover.contents = { kind: 'markdown', value: `[View executor documentation on nx.dev](${constructExecutorUrl( node.value )})`, }; } return hover; } function isNxExecutorStringNode(node: ASTNode): node is StringASTNode { return ( isExecutorStringNode(node) && (RegExp(/@nx|@nrwl\/\w+:\w+/).test(node.value) || RegExp(/nx:\w+/).test(node.value)) ); } function constructExecutorUrl(executor: string): string { const [packageName, executorName] = executor .replace(/@nx|@nrwl/, '') .split(':'); return `https://nx.dev/packages/${packageName}/executors/${executorName}`; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nrwl/nx-console'

If you have feedback or need assistance with the MCP directory API, please join our Discord server