padawan-php / padawan.vim

A vim plugin for padawan.php completion server
MIT License
79 stars 6 forks source link

Padawan.vim

Padawan.vim is a vim plugin for padawan.php server , a smart PHP code completion server for Composer projects.

This plugin includes:

Demo video

Currently Padawan.vim offers basic completion for methods and classes based on doc comments and method signatures.

Click the image below to watch a short video on what Padawan.vim can already do. ScreenShot

Requirements

Padawan.vim requires:

  1. PHP 5.5+
  2. Composer
  3. Vim with +python

Installation

You can install Padawan.vim using any of the popular plugin managers like Pathogen, Vundle, Neobundle or Plug.

Pathogen

To install Padawan.vim with Pathogen do the following steps:

$ cd ~/.vim/bundle
$ git clone https://github.com/mkusher/padawan.vim.git

Plug

Add this to your vimrc

Plug 'mkusher/padawan.vim'

Vundle

Add this to your vimrc

Plugin 'mkusher/padawan.vim'

NeoBundle

Add this to your vimrc

NeoBundle 'mkusher/padawan.vim'

How to use

Index generation can take a while, but needs to be performed only once per project.

Autocomplete engines

YouCompleteMe

You should set semantic triggers like

let g:ycm_semantic_triggers = {}
let g:ycm_semantic_triggers.php =
\ ['->', '::', '(', 'use ', 'namespace ', '\']

Neocomplete

You should set omni input patterns like

let g:neocomplete#force_omni_input_patterns = {}
let g:neocomplete#force_omni_input_patterns.php =
\ '\h\w*\|[^- \t]->\w*'

Plugins(Extensions)

You can extend Padawan.php by installing different plugins. See Plugins List for more info.

Installing

To install a plugin, run :PadawanAddPlugin PLUGIN_NAME, for example:

:PadawanAddPlugin mkusher/padawan-symfony

Removing

To remove a plugin, run :PadawanRemovePlugin PLUGIN_NAME, for example:

:PadawanRemovePlugin mkusher/padawan-symfony

Configuring

You may want to change Composer to the one already installed on your system. You can do so by with the following line:

let g:padawan#composer_command = 'php /usr/bin/composer.phar'

Another configurable option is http request timeout. The following example sets it to 100 ms:

let g:padawan#timeout = 0.1

If you don't want to use composer global for installing padawan, then you should configure commands for running padawan:

let g:padawan#cli = '/path/to/padawan.php/bin/padawan'
let g:padawan#server_command = '/path/to/padawan.php/bin/padawan-server'

Vim functions

For quick access to the functions below, map them to keys of your choice.

Index generation

Use padawan#GenerateIndex() function:

:call padawan#GenerateIndex()

Index saving

Use padawan#SaveIndex() function:

:call padawan#SaveIndex()

Starting server

Use padawan#StartServer() function:

:call padawan#StartServer()

Stopping server

Use padawan#StopServer() function:

:call padawan#StopServer()

Restarting server

Use padawan#RestartServer() function:

:call padawan#RestartServer()