SpaceVim
A modular Vim/Neovim configuration
Home | About | Quick start guide | Documentation | Development | Community | Sponsors | 中文
This is a general guide for using SpaceVim as a PHP IDE, including layer configuration and usage. Each of the following sections will be covered:
To add PHP language support in SpaceVim, you need to enable the lang#php
layer. Press SPC f v d
to open
SpaceVim configuration file, and add the following snippet:
[[layers]]
name = "lang#php"
For more info, you can read the lang#php layer documentation.
lang#php
layer will load the PHP plugin automatically, unless it’s overriden in your init.toml
.
The completion menu will be opened as you type.
The checkers layer is enabled by default. This layer provides asynchronous syntax linting via neomake. It will run psalm asynchronously.
To install psalm, you may need to run:
composer require --dev vimeo/psalm
To enable language server protocol(LSP) support for php, you need to enable lsp layer for php.
[[layers]]
name = "lsp"
filetypes = ["php"]
The default language server command of php is:
['php', g:spacevim_plugin_bundle_dir . 'repos/github.com/phpactor/phpactor/bin/phpactor', 'language-server']
If you want to use intelephense
, install intelephense from command line:
npm install -g intelephense
To override the server command, you may need to use override_cmd
option:
[[layers]]
name = "lsp"
filetypes = [ "php" ]
[layers.override_cmd]
php = ["intelephense", "--stdio"]
If you are using nvim(>=0.5.0)
, you do not need to use filetypes
and override_cmd
option.
You just need to use enabled_clients
to specific the language servers.
for example:
[[layers]]
name = 'lsp'
enabled_clients = ['intelephense']
The gtags
layer provides ctags
integration for your project. It will create the index file for
each of your project. To enable gtags
layer:
[[layers]]
name = 'gtags'
With this layer, you can jump to method and class definitions easily (using ctrl + ]
by default).
Read gtags layer for more info.
To manage the alternate file for a project, you may need to create a .project_alt.json
file in the root of your
project.
for exmaple, add following content into the .project_alt.json
file:
{
"src/*.php": { "alternate": "test/{}.php" },
"test/*.php": { "alternate": "src/{}.php" }
}
with this configuration, you can jump between the source code and test file via command :A
To run current script, you can press SPC l r
, and a split window
will be openen, the output of the script will be shown in this window.
It is running asynchronously, and will not block your Vim.
The format layer is also enabled by default.
With this layer you can use key binding SPC b f
to format current buffer.
Before using this feature, please install php_beautifier:
pear install PHP_Beautifier
Start a php -a
inferior REPL process with SPC l s i
. After the REPL process being started, you can
send code to inferior process. All key bindings prefix with SPC l s
, including sending line, sending selection or even
send whole buffer.
Powered by Jekyll