padawan.php


Ⅰ. 插件描述

php intelligent code completion http server

Ⅱ. 基本信息

创建日期:  2015-04-12
使用用户:  1
Github星:  263
插件作者:  padawan-php

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'mkusher/padawan-php'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'mkusher/padawan-php'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'mkusher/padawan-php'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/mkusher/padawan.php

Ⅳ. 文档说明

Padawan.php smart php intelligent code completion for php projects

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

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

Looking for maintainers! Please join gitter channel for discussion

Padawan.php is an http server that parses your project and gives you
completions.
Padawan.php looks recursively for all php files of a composer project, parses
doc-comments and function declarations of each class and creates an index
from them. After that it autoupdates the index and gives you completion
as you type.

Padawan.php can be extended by various plugins, which will bring some
extra completion, framework integrations or so.
See this paragraph to learn more

It tries to be a Jedi,
but currently it's only a padawan :)

Plugins for editors

  1. Vim
  2. Neovim
  3. Sublime Text: Padawan for ST3 and SublimePHPCompanion

If you wish to write your own plugin, vim plugin example may serve
as a source of inspiration. Look at
wiki page for
some documentation.
You are welcome to open an issue if you have any questions.

Demo videos

Watch this short videos to see what it can already do(image is clickable)
ScreenShot
ScreenShot

How to use

  • Install padawan.php through composer:
$ composer global require mkusher/padawan
PATH=$PATH:$HOME/.composer/vendor/bin
  • Install plugin for your editor.
  • Run index generation command in your php composer
  1. folder:
padawan generate
  • Start padawan's server
padawan-server
  • Enjoy smart completion

Check out how to do this in the plugin documentation for specific editor above.

Plugins(extensions) for padawan.php

Padawan.php can be extended by plugins, there are:

  • Symfony2 plugin
  • PHP-DI plugin

Look at full plugins list

Why not the original plugin

This project was inspired by
phpcomplete-extended by M2mdas
and started as a fork with a completely rewritten index generation part.
But as of now it is a completely new project with different design principles

M2mdas's plugin is pretty good, but has some core bugs due to
self-written parser:

  • It does not support files with 2 or more classes in it
  • It fails on parsing RabbitMQ classes and many others
  • So it has some design faults and needs a global plugin redesign
  • It is ill-suited for adding assignment parsing
  • It is vim-only and is written in VimScript

So, I decided to create my own project.

Note

Install igbinary PHP extension to get optimized index file size and load speed.

Roadmap

Now in progress:

  • Implement go to definition, go to assingment, show documentation
  • Add plugins for editors(emacs, atom and etc.)
  • Extend type guessing(process classes' contructors, class doc-comment, foreach loops)
  • Implement index updating

License

MIT licensed.

Acknowledgements

This plugin would not have been possible without the works of
Nikita Popov on his amazing PHP-Parser,
React team on their http server,
M2mdas,
Dave Halter
and many others.

添加新评论