mkusher/padawan

智能PHP补全服务器

v0.2.1 2015-09-09 17:09 UTC

README

Join the chat at https://gitter.im/mkusher/padawan.php

Build Status Total Downloads Latest Stable Version Latest Unstable Version Scrutinizer Code Quality License

正在寻找维护者!请加入gitter频道进行讨论

Padawan.php 是一个http服务器,它可以解析你的项目并提供补全功能。Padawan.php 会递归地查找composer项目的所有PHP文件,解析每个类的doc注释和函数声明,并从这些信息中创建索引。之后,它会自动更新索引,并在你输入时提供补全。

Padawan.php 可以通过各种插件进行扩展,这些插件可以提供额外的补全、框架集成等功能。 查看此部分以获取更多信息

它试图成为 Jedi,但目前它只是一个垫脚石 :)

编辑器插件

  1. Vim
  2. Neovim
  3. Sublime Text: Padawan for ST3SublimePHPCompanion

如果你希望编写自己的插件,Vim插件示例可以作为灵感来源。查看 wiki页面 获取一些文档。如果你有任何问题,欢迎提出问题。

演示视频

观看以下简短视频,了解它已经能做什么(图片可点击) ScreenShot ScreenShot

如何使用

  • 通过 composer 安装 padawan.php
$ composer global require mkusher/padawan
PATH=$PATH:$HOME/.composer/vendor/bin
  • 安装你编辑器的插件。
  • 在你的php composer项目文件夹中运行索引生成命令
padawan generate
  • 启动padawan的服务器
padawan-server
  • 享受智能补全

查看特定编辑器插件文档中的操作方法。

Padawan.php的插件(扩展)

Padawan.php可以通过插件进行扩展,目前有

  • Symfony2插件
  • PHP-DI插件

查看 完整插件列表

为什么不使用原始插件

本项目受到 M2mdas的phpcomplete-extended 的启发,最初是一个完全重写的索引生成部分的分支。但到目前为止,它是一个完全新的项目,具有不同的设计原则。

M2mdas的插件相当不错,但由于自写的解析器存在一些核心错误。

  • 它不支持包含2个或更多类的文件
  • 它在解析RabbitMQ类和其他许多类时失败
  • 因此,它存在一些设计缺陷,需要全局插件重设计
  • 它不适合添加赋值解析
  • 它是Vim专属的,并使用VimScript编写

因此,我决定创建自己的项目。

注意

安装 igbinary PHP 扩展以获得优化的索引文件大小和加载速度。

路线图

正在进行中

  • 实现 转到定义转到赋值显示文档
  • 添加编辑器插件(emacs, atom 等。)
  • 扩展类型猜测(处理类的构造函数、类文档注释、foreach 循环)
  • 实现索引更新

许可证

MIT 许可证。

鸣谢

如果没有以下人士的工作,这个插件将无法实现:Nikita Popov 的惊人的 PHP-Parser,React 团队在其 HTTP 服务器上的工作,M2mdas,Dave Halter 以及许多其他人。