claude-code-emacs-mcp-server
Version:
MCP server for Claude Code Emacs integration
68 lines • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleGetCurrentSelection = handleGetCurrentSelection;
async function handleGetCurrentSelection(bridge, args) {
if (!bridge.isConnected()) {
return {
content: [
{
type: 'text',
text: 'Error: Emacs is not connected'
}
],
isError: true
};
}
try {
const result = await bridge.request('getCurrentSelection', args);
if (!result.text) {
return {
content: [
{
type: 'text',
text: 'No text is currently selected'
}
],
// Return empty structured data when no selection
selection: undefined,
file: undefined,
start: undefined,
end: undefined
};
}
const lineInfo = result.startLine === result.endLine
? `Line ${result.startLine}`
: `Lines ${result.startLine}-${result.endLine}`;
return {
content: [
{
type: 'text',
text: `Selected text from ${result.fileName}:\n${lineInfo}, columns ${result.startChar}-${result.endChar}\n\n\`\`\`\n${result.text}\n\`\`\``
}
],
// Include structured data matching the schema
selection: result.text,
file: result.fileName,
start: {
line: result.startLine,
column: result.startChar
},
end: {
line: result.endLine,
column: result.endChar
}
};
}
catch (error) {
return {
content: [
{
type: 'text',
text: `Error getting current selection: ${error instanceof Error ? error.message : 'Unknown error'}`
}
],
isError: true
};
}
}
//# sourceMappingURL=selection-tools.js.map