4D文档查看器
用于浏览4D命令文档的VS代码扩展和MCP(模型上下文协议)服务器。
概述
该项目提供 双向 要访问4D命令文档:
- VS代码扩展:通过智能命令检测直接在VS Code中浏览文档
- MCP服务器:与Claude等AI助手一起用作模型上下文协议服务器
这两种模式共享相同的缓存系统,以提高性能。
特性
VS代码扩展功能
- 智能命令检测:自动检测来自以下来源的4D命令:
- 选中文本 - 光标位置的单词 - LSP/悬停信息 - 剥离命令编号(例如。, :C123 格式)获取命令名时
- 两种显示模式:
- 在浏览器中打开(快速外部参考) - 在编辑器webview中打开(具有CSS样式的集成文档)
- 上下文菜单集成:右键单击命令可快速访问
- 自动缓存:更快的后续查找
MCP服务器功能
- 获取4D命令文档:检索任何4D命令的HTML文档
- 智能缓存:自动将文档缓存在特定于操作系统的缓存目录中
- 缓存管理:需要获取新文档时清除缓存
- 浏览器集成:直接在默认浏览器中打开文档URL
安装
作为VS代码扩展
- 构建扩展:
npm install
npm run build- 本地安装:
- 按 F5 在新的VS Code窗口中运行扩展(用于开发) - 或者打包并安装:
npm run package
code --install-extension mcp-4d-docs-0.1.0.vsix作为MCP服务器
# Clone or navigate to the project
cd mcp-4d-docs
# Install dependencies
npm install
# Build the TypeScript code
npm run build用法
使用VS代码扩展
- 打开4D代码文件(或任何文件)
- 选择4D命令名称或将光标放在其上
- 使用以下方法之一:
- 命令面板 (Cmd+Shift+P): - 4D: Open Command Documentation in Browser - 4D: Open Command Documentation in Editor - 右键单击上下文菜单: - 选择命令文本,右键单击,选择选项 - 键盘快捷键:(可以在VS Code中配置)
如果没有检测到命令,系统将提示您手动输入一个。
用作MCP服务器
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"4d-docs": {
"command": "node",
"args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]
}
}
}对于VS代码,添加到 .vscode/mcp.json:
{
"mcpServers": {
"4d-docs": {
"command": "node",
"args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]
}
}
}可用的MCP工具
get_4d_command_docs
获取4D命令的文档。
参数:
command_name(string):4D命令的名称(例如,“活动快照”、“列表排列”)
退货:
- 从中提取的HTML文档内容 `
标签内 ` 章节
例子:
// Fetches from https://developer.4d.com/docs/commands/activity-snapshot
get_4d_command_docs("ACTIVITY SNAPSHOT")clear4d_docs_cache
清除所有缓存的文档文件。
退货:
- 指示已清除文件数的消息
open4d_command_in_browser
在默认web浏览器中打开4D命令文档页面。
参数:
command_name(string):4D命令的名称(例如,“活动快照”、“列表排列”)
退货:
- 确认URL已打开的消息
例子:
// Opens https://developer.4d.com/docs/commands/activity-snapshot in your browser
open_4d_command_in_browser("ACTIVITY SNAPSHOT")运作原理
- 命令检测 (VS代码扩展):
- 首先检查所选文本 - 回退到光标位置的单词 - 在可用时使用LSP悬停信息 - 如果需要,提示手动输入
- URL译码:命令名称转换为小写,空格替换为连字符
- 示例:“活动快照”→ “活动快照”
- 文档获取:服务器从以下位置请求文档:
- https://developer.4d.com/docs/commands/
- HTML提取:服务器解析HTML并提取 `
节点内部 ` 标签
- 链接重写:相对
/docs/链接转换为绝对URL
- 缓存:结果缓存在操作系统缓存目录中:
- macOS: ~/Library/Caches/mcp-4d-docs/ - 视窗: %LOCALAPPDATA%\mcp-4d-docs\ - Linux: ~/.cache/mcp-4d-docs/
- 缓存键:每个命令都使用其名称的MD5哈希作为文件名进行缓存
- 显示 (VS代码扩展):
- 浏览器模式:直接打开URL - Webview模式:显示具有4D CSS样式和VS Code主题集成的缓存HTML
发展
项目结构
mcp-4d-docs/
├── src/
│ ├── index.ts # MCP server implementation
│ ├── extension.ts # VS Code extension entry point
│ ├── docService.ts # Shared documentation service
│ ├── commandDetector.ts # Command name detection logic
│ └── webviewProvider.ts # Webview panel management
├── build/ # Compiled JavaScript output
├── logo.png # Extension icon
├── package.json # Project metadata & VS Code extension config
├── tsconfig.json # TypeScript configuration
├── .vscodeignore # Files excluded from extension package
└── README.md建筑
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run watch
# Package extension
npm run package测试扩展
按 F5 在VS Code中启动加载了扩展的扩展开发主机。
测试MCP服务器
# Use MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js依赖项
@modelcontextprotocol/sdk-模型上下文协议SDKcheerio-HTML解析@types/vscode-VS代码API类型@vscode/vsce-VS代码扩展打包
配置
扩展设置
该扩展可以开箱即用,无需配置。它将:
- 打开4D文件时激活(
onLanguage:4d) - 可通过命令选项板用于任何文件类型
- 将文档缓存在系统缓存目录中
自定义密钥绑定
您可以在VS Code中添加自定义键盘快捷键:
{
"key": "cmd+k cmd+d",
"command": "4d-docs.openInWebview",
"when": "editorTextFocus"
},
{
"key": "cmd+k cmd+b",
"command": "4d-docs.openInBrowser",
"when": "editorTextFocus"
}出版
个人使用
该扩展已准备好在本地使用。在构建和包装之后:
npm run package
code --install-extension mcp-4d-docs-0.1.0.vsix用于分销
在发布到VS代码市场之前:
- 更新发布者名称 在
package.json:
"publisher": "your-actual-publisher-id"- 添加存储库URL 在
package.json:
"repository": {
"type": "git",
"url": "https://github.com/yourusername/mcp-4d-docs.git"
}- 添加许可证文件 (例如,带有MIT许可证文本的LICENSE.txt)
- 发布到市场:
vsce publish或者创建VSIX以进行共享:
npm run package
# Share the .vsix file许可证
麻省理工学院
贡献
欢迎投稿!请随时提交问题或拉取请求。
- \[\]如果远程CSS不存在(例如,如果它被重命名),请考虑在插件中嵌入一个。
- \[\]支持4D语言高亮显示(Prism?)。
- \[\]通过命令面板请求文档时,请按住一个键,以允许强制下载(即绕过缓存)。
