Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English

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'
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

Releases

Packages

Contributors

Languages