Skip to main content
Glama
nrwl

Nx MCP Server

Official
by nrwl
register-codelens.ts2.08 kB
import { GlobalConfigurationStore } from '@nx-console/vscode-configuration'; import { CodeLensProvider, ConfigurationChangeEvent, DocumentSelector, ExtensionContext, languages, workspace, } from 'vscode'; import { Disposable } from 'vscode-languageserver'; export interface NxCodeLensProvider extends CodeLensProvider { CODELENS_PATTERN: DocumentSelector; } const registeredCodeLensProviders = new Set<NxCodeLensProvider>(); const codeLensDisposables = new Set<Disposable>(); export function registerCodeLensProvider(provider: NxCodeLensProvider): void { registeredCodeLensProviders.add(provider); if (GlobalConfigurationStore.instance.get('enableCodeLens')) { codeLensDisposables.add( languages.registerCodeLensProvider(provider.CODELENS_PATTERN, provider) ); } } function disposeCodeLensProviders() { codeLensDisposables.forEach((provider) => provider.dispose()); codeLensDisposables.clear(); } function restartCodelensProviders() { registeredCodeLensProviders.forEach((provider) => { codeLensDisposables.add( languages.registerCodeLensProvider(provider.CODELENS_PATTERN, provider) ); }); } /** * Watches for settings/configuration changes and enables/disables the CodeLensProviders * @param context instance of ExtensionContext from activate */ export function watchCodeLensConfigChange(context: ExtensionContext) { context.subscriptions.push( workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => { // if the `nxConsole` config changes, check enableWorkspaceConfigCodeLens and register or dispose const affectsNxConsoleConfig = event.affectsConfiguration( GlobalConfigurationStore.configurationSection ); if (affectsNxConsoleConfig) { const enableWorkspaceConfigCodeLens = GlobalConfigurationStore.instance.get('enableCodeLens'); if (enableWorkspaceConfigCodeLens) { restartCodelensProviders(); } else if (!enableWorkspaceConfigCodeLens) { disposeCodeLensProviders(); } } }) ); }

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