Skip to content

Xerkus/phpcd.vim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

asciicast

简介

PHPCD,全称 PHP Completion Daemon,译为 PHP 补全服务。PHPCD 实现了 Vim 的 omni 补全接口,提供 PHP 相关的智能补全和定义跳转服务。

PHPCD 的 VimL 部分基于phpcomplete.vim,感谢原项目贡献者的努力。原项目的 3k+ 行代码已经被裁剪为 1.5k 行,可维护性大为增强。

因为 PHPCD 利用 PHP 的反射机制进行补全和跳转,所以 PHPCD 几乎不需要事先生成索引文件,启动速度、补全速度和跳转速度都非常快,代码也非常简洁。

PHPCD 目前只能配合NeoVim工作,这是一个艰难的抉择。

特色

  • 快、轻、强
  • 静态调用Class::method()显示静态成员和方法;动态调用$class->method()显示非静态成员变量和方法
  • 真正识别selfstatic$this上下文环境
  • 支持通过多种方式推断变量类型:
    • 变量类型注解 /* @var $yourvar YourClass *//* @var YourClass $yourvar */
    • 使用 new 初始化类实例 $instance = new Class;
    • 函数(全局函数、成员函数和匿名函数)参数的类型提示 function (Foo $foo) { // .. }
    • 使用函数块注释中 @return 制定函数返回值的类型
  • 补全成员方法和成员属性的时候自动显示块注释
  • 支持内建类的方法、属性、常量的补全
  • 增强型定义跳转ctrl+]

安装指南

环境要求

  1. PHP 5.3+
  2. socket 扩展
  3. PCNTL 扩展
  4. Msgpack 0.5.7+ 扩展
  5. Composer 支持
  6. NeoVim

安装 PHPCD

推荐使用Vim-Plug管理 Vim 插件。

安装 Vim-Plug 后,添加:

Plug 'phpvim/phpcd.vim', { 'for': 'php' }
Plug 'vim-scripts/progressbar-widget' " 用来显示索引进度的插件

然后执行:PlugInstall进行安装。

启用 PHPCD

在配置文件中指定 PHPCD 为 PHP 的 omni 补全引擎:

autocmd FileType php setlocal omnifunc=phpcd#CompletePHP

使用方法

首先运行 composer update 更新依赖并生成自动加载文件,然后打开 NeoVim。

打开一个 php 文件,如果一切正常的话,几秒钟后 NeoVim 状态栏会显示更新进度条。进度条走完则可开始使用。

补全按Ctrl+xCtrl+o,跳转按ctrl+]

About

PHP 补全服务(PHP Completion Daemon)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vim Script 58.2%
  • PHP 40.6%
  • Shell 1.2%