2017 © Pedro Peláez
 

library padawan

Smart php completion server

image

mkusher/padawan

Smart php completion server

  • Wednesday, November 15, 2017
  • by mkusher
  • Repository
  • 20 Watchers
  • 262 Stars
  • 6,396 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 30 Forks
  • 38 Open issues
  • 8 Versions
  • 3 % Grown

The README.md

Padawan.php smart php intelligent code completion for php projects

Join the chat at https://gitter.im/mkusher/padawan.php, (*1)

Build Status Total Downloads Latest Stable Version Latest Unstable Version Scrutinizer Code Quality License, (*2)

Looking for maintainers! Please join gitter channel for discussion, (*3)

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., (*4)

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

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

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., (*7)

Demo videos

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

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 project 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., (*9)

Plugins(extensions) for padawan.php

Padawan.php can be extended by plugins, there are: - Symfony2 plugin - PHP-DI plugin, (*10)

Look at full plugins list, (*11)

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, (*12)

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

  • 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., (*14)

Note

Install igbinary PHP extension to get optimized index file size and load speed., (*15)

Roadmap

Now in progress:, (*16)

  • 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., (*17)

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., (*18)

The Versions