UNPKG

claude-code-emacs-mcp-server

Version:

MCP server for Claude Code Emacs integration

85 lines 3.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleGetDiagnostics = handleGetDiagnostics; async function handleGetDiagnostics(bridge, args) { if (!bridge.isConnected()) { return { content: [ { type: 'text', text: 'Error: Emacs is not connected' } ], diagnostics: [], isError: true }; } try { // Get project-wide diagnostics using the specified buffer's LSP context const result = await bridge.request('getDiagnostics', { buffer: args.buffer }); const diagnostics = result?.diagnostics || []; if (diagnostics.length === 0) { return { content: [ { type: 'text', text: `No diagnostics found in project (executed from buffer ${args.buffer})` } ], diagnostics: [] }; } // Group diagnostics by file const byFile = diagnostics.reduce((acc, diag) => { if (!acc[diag.file]) { acc[diag.file] = []; } acc[diag.file].push(diag); return acc; }, {}); // Format output const output = Object.entries(byFile).map(([file, diags]) => { const fileSection = `## ${file}\n`; const diagList = diags.map(d => `- **${d.severity.toUpperCase()}** [${d.source}] Line ${d.line}:${d.column}\n ${d.message}`).join('\n'); return fileSection + diagList; }).join('\n\n'); const summary = `Found ${diagnostics.length} diagnostic${diagnostics.length !== 1 ? 's' : ''} in ${Object.keys(byFile).length} file${Object.keys(byFile).length !== 1 ? 's' : ''}`; // Transform diagnostics to match schema structure const structuredDiagnostics = Object.entries(byFile).map(([file, diags]) => ({ file, diagnostics: diags.map(d => ({ range: { start: { line: d.line - 1, character: d.column }, // Convert to 0-based end: { line: d.line - 1, character: d.column } // Single point for now }, severity: d.severity, message: d.message, source: d.source })) })); return { content: [ { type: 'text', text: `${summary}\n\n${output}` } ], diagnostics: structuredDiagnostics }; } catch (error) { return { content: [ { type: 'text', text: `Error getting diagnostics: ${error instanceof Error ? error.message : 'Unknown error'}` } ], diagnostics: [], isError: true }; } } //# sourceMappingURL=diagnostic-tools.js.map