if lazyvim_docs then -- LSP Server to use for PHP. -- Set to "intelephense" to use intelephense instead of phpactor. vim.g.lazyvim_php_lsp = "intelephense" end local lsp = vim.g.lazyvim_php_lsp or "phpactor" return { recommended = { ft = "php", root = { "composer.json", ".phpactor.json", ".phpactor.yml" }, }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "php" } }, }, { "neovim/nvim-lspconfig", opts = { servers = { phpactor = { enabled = lsp == "phpactor", }, intelephense = { enabled = lsp == "intelephense", }, [lsp] = { enabled = true, }, }, }, }, { "williamboman/mason.nvim", opts = { ensure_installed = { "phpcs", "php-cs-fixer", }, }, }, { "mfussenegger/nvim-dap", optional = true, opts = function() local dap = require("dap") local path = require("mason-registry").get_package("php-debug-adapter"):get_install_path() dap.adapters.php = { type = "executable", command = "node", args = { path .. "/extension/out/phpDebug.js" }, } end, }, { "nvimtools/none-ls.nvim", optional = true, opts = function(_, opts) local nls = require("null-ls") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.phpcsfixer) table.insert(opts.sources, nls.builtins.diagnostics.phpcs) end, }, { "mfussenegger/nvim-lint", optional = true, opts = { linters_by_ft = { php = { "phpcs" }, }, }, { "stevearc/conform.nvim", optional = true, opts = { formatters_by_ft = { php = { "php-cs-fixer" }, }, }, }, }, }