Lua version of phpactor nvim plugin.
It allows to use phpactor commands using new neovim lua api. It uses vim.ui
and vim.notify
to provide modern UI using plugins like nvim-notify, notifier.nvim,
dressing.nvim or telescope.nvim.
I've only implemented commands that are not available using LSP Code Actions.
It also automaticly install, update and configure phpactor using nvim-lspconfig.
This provides PhpActor
command to call phpactor rpc methods:
PhpActor [
class_inflect
context_menu
expand_class
generate_accessor
change_visibility
copy_class
import_class
import_missing_classes
move_class
navigate
new_class
transform
update
config
status
cache_clear
copy_fcqn
lsp/status
lsp/reindex
lsp/debug/config
lsp/debug/config
blackfire/start
blackfire/stop
]
You can also use the lua function require('phpactor').rpc(name, options)
.
Eg: :lua require('phpactor').rpc('context_menu', {})
Install the plugin with your preferred package manager:
-- Lua
{
{
"gbprod/phpactor.nvim",
build = function()
require("phpactor.handler.update")()
end,
dependencies = {
"nvim-lua/plenary.nvim",
"neovim/nvim-lspconfig"
},
opts = {
-- you're options coes here
},
},
}
phpactor.nvim
comes with the following defaults:
{
install = {
path = vim.fn.stdpath("data") .. "/opt/",
branch = "master",
bin = vim.fn.stdpath("data") .. "/opt/phpactor/bin/phpactor",
php_bin = "php",
composer_bin = "composer",
git_bin = "git",
check_on_startup = "none",
},
lspconfig = {
enabled = true,
options = {},
},
}
install.path
Default : vim.fn.stdpath("data") .. "/opt/"
Path where phpactor will be installed by the plugin. This could be an existing install of phpactor.
install.branch
Default : master
Branch that will be used for phpactor.
install.bin
Default: vim.fn.stdpath("data") .. "/opt/phpactor/bin/phpactor"
Phpactor binary.
install.php_bin
Default: php
Php binary.
install.composer_bin
Default: composer
Composer binary.
install.git_bin
Default: git
Git binary.
install.check_on_startup
Default: none
Accepted values: none|daily|always
This will check if phpactor install is up-to-date on nvim startup. This could be slow, use wisely.
lspconfig.enabled
Default: true
Does phpactor.nvim
should configure lsp server using nvim-lspconfig.
lspconfig.options
Default: {}
This is here where you can define options to pass to nvim-lspconfig.
Basicly, you should pass a on_attach
function to set your mappings ;)
This plugin works out-of-the-box with nvim-neo-tree/neo-tree.nvim.
If you execute a PhpActor navigate
command on a file/folder in neo-tree, it will use this file as source.
Eg. If you run PhpActor new_class
in a neo-tree buffer, this will create a new class inside the folder you are in.