Magento2语言服务器工具

为Magento 2开发提供编辑器语言服务(LSP)和AI代理配置服务(MCP),支持代码导航、智能补全和配置管理。

  • by mage-os-lab
  • TypeScript
  • 本地部署
  • 29 星标
  • 更新于
在 GitHub 查看 mage-os-lab/magento2-lsp

使用说明

Magento 2 lsp

Magento 2编辑器和人工智能代理工具。此软件包包括两个共享相同索引和Magento配置系统的服务器:

  • LSP服务器 -为你的编辑。转到定义,查找XML和PHP中的引用、诊断和代码镜头。
  • MCP服务器 -AI编码代理。暴露代理无法通过读取单个文件获得的合并Magento配置。

两者都是从同一个仓库安装的,但是单独配置的——编辑器中的LSP,AI代理中的MCP。它们可以一起使用或独立使用。

依据

代理编写代码,但您仍然会对其进行审查——通过击键在XML和PHP之间切换比在配置文件中快速切换要好。AI代理需要相反的东西:不是导航,而是 合并 Magento的多模块配置的结果,没有单个文件包含。

LSP服务器

与Intelepense或Phpactor一起工作-此LSP处理通用PHP工具无法看到的Magento特定连接。

  • 键入时自动完成。 跨XML配置文件和PHP的FQCN、事件名称、配置路径、ACL资源ID、模板标识符、布局句柄、块/容器名称和DB表/列名的上下文感知完成。

  • 浏览类似XML配置的代码。 转到定义并找到适用的参考文献 di.xml, events.xml, system.xml,以及布局XML——将它们链接到它们引用的PHP类、模板和配置路径。

  • 追踪插件链。 查看哪些插件拦截了一个方法,从 beforeSave 插件到它包装的方法中,并通过代码镜头直接在编辑器中查看插件计数。

  • 遵循配置路径。 从...跳下 scopeConfig->getValue('payment/account/active') 在PHP中直接 <field> 声明中 system.xml,并使用配置路径查找所有PHP文件。

  • 在键入时捕捉错误。 损坏的类引用、缺失的模板、重复的插件名称和无效的模型类都会被诊断标记——不需要等待部署来发现。

  • 了解模板覆盖。 在模块模板、主题覆盖和Hyvä兼容性模块覆盖之间导航。代码镜头一目了然地显示覆盖计数和来源。

  • 跨配置重命名。 重命名类、模板、ACL资源、配置路径或块/容器名称,并一次性更新所有XML引用(和相关的PHP字符串文字)。这涵盖了PHP LSP看不到的Magento特定引用——实际的PHP类名和文件留给Intelepense或Phpactor。

  • 解决魔术方法。 当Intelepense无法跟踪方法调用,因为它经过了DI首选项或 __call 魔术,这个LSP解决了它的具体实现。

有关完整的功能列表,请参阅 docs/features.md.

MCP服务器

将LSP服务器的Magento 2智能暴露给AI编码代理。它没有添加臃肿的工具,只是为当前的编码模型提供了真正的价值。 看 docs/mcp.md 了解设计原理、工具说明和安装说明。

需求

  • Node.js>=20

安装

npm install -g @mage-os/magento2-lsp

这提供了两个命令: magento2-lsp (LSP服务器)和 magento2-lsp-mcp (MCP服务器)。

不希望Node出现在您的主机上?看 docs/docker.md 从容器运行两个服务器。

Install from source
git clone https://github.com/mage-os-lab/magento2-lsp.git
cd magento2-lsp
npm install
npm run build

然后添加 bin/ 目录到您的 $PATH,或者直接在编辑器/代理配置中引用二进制文件。

LSP设置(编辑器)

  • 尼奥夫
  • 泽德
  • VS代码
  • 光标
  • 其他编辑 -任何支持LSP的编辑器都可以使用此服务器: magento2-lsp --stdio 向您选择的法学硕士询问安装说明。如果它需要一些特殊的包装,如VS Code或Zed do,请打开一个问题,让我知道需要什么。

MCP设置(AI代理)

看 docs/mcp.md 有关Claude Code和其他MCP兼容代理的设置说明。

运作原理

在首次打开文件时,LSP检测到Magento根目录,并读取 app/etc/config.php 并为所有XML配置文件建立索引。解析结果被缓存到 .magento2-lsp-cache.json (添加到 .gitignore)用于快速重启。文件查看器在您编辑时保持索引的最新状态。

多个Magento项目可以同时打开,每个项目都有自己的独立索引。

学分

非常感谢 很好 感谢您赞助此工具的开发!

许可证

版权所有(c)2025 Vinai Kopp。根据 MIT许可证.

发展

npm install
npm test           # run tests once
npm run test:watch # run tests in watch mode
npm run build      # compile TypeScript