51 lines
1.6 KiB
Lua
51 lines
1.6 KiB
Lua
local util = require 'lspconfig.util'
|
|
|
|
local bin_name = 'intelephense'
|
|
local cmd = { bin_name, '--stdio' }
|
|
|
|
if vim.fn.has 'win32' == 1 then
|
|
cmd = { 'cmd.exe', '/C', bin_name, '--stdio' }
|
|
end
|
|
|
|
return {
|
|
default_config = {
|
|
cmd = cmd,
|
|
filetypes = { 'php' },
|
|
root_dir = function(pattern)
|
|
local cwd = vim.loop.cwd()
|
|
local root = util.root_pattern('composer.json', '.git')(pattern)
|
|
|
|
-- prefer cwd if root is a descendant
|
|
return util.path.is_descendant(cwd, root) and cwd or root
|
|
end,
|
|
},
|
|
docs = {
|
|
description = [[
|
|
https://intelephense.com/
|
|
|
|
`intelephense` can be installed via `npm`:
|
|
```sh
|
|
npm install -g intelephense
|
|
```
|
|
]],
|
|
default_config = {
|
|
package_json = 'https://raw.githubusercontent.com/bmewburn/vscode-intelephense/master/package.json',
|
|
root_dir = [[root_pattern("composer.json", ".git")]],
|
|
init_options = [[{
|
|
storagePath = Optional absolute path to storage dir. Defaults to os.tmpdir().
|
|
globalStoragePath = Optional absolute path to a global storage dir. Defaults to os.homedir().
|
|
licenceKey = Optional licence key or absolute path to a text file containing the licence key.
|
|
clearCache = Optional flag to clear server state. State can also be cleared by deleting {storagePath}/intelephense
|
|
-- See https://github.com/bmewburn/intelephense-docs/blob/master/installation.md#initialisation-options
|
|
}]],
|
|
settings = [[{
|
|
intelephense = {
|
|
files = {
|
|
maxSize = 1000000;
|
|
};
|
|
};
|
|
-- See https://github.com/bmewburn/intelephense-docs
|
|
}]],
|
|
},
|
|
},
|
|
}
|