How to configure intelephense
JoyceBabu opened this issue · comments
How can I add an path to the file exclusions list in intelephense?
In COC / VS Code we have to use
"intelephense.files.exclude": [
"**/.js",
"**/.png",
"**/.jpg",
"**/.css",
"**/.pdf",
"**/.txt",
"**/Volume/aaa/**",
"**/Volume/bbb/**"
],
But as per #10, we have to use
"files": {
"exlude": [
"**/branch-*/**",
],
},
I tried excluding all files by setting it to **/**
and neither worked for me.
Ah, I have a typo on that. It should be exclude
.
**
should work because it's used in its default settings
https://github.com/bmewburn/vscode-intelephense/blob/ff4677f07cb47911852fb265fe16742a312bd9b7/package.json#L112-L129
I fixed the typo, but it is still indexing all files.
I believe it is a conflict with the intelephense server installed by Coc. To be sure, I exited all instances of vim and sublime text, and killed all running node processes.
But as soon as I Sublime Text 3, the following two processes are starting
joyce 11409 0.0 0.1 4925944 22732 ?? S 4:45PM 0:00.06 /usr/local/Cellar/node/13.8.0/bin/node /Users/joyce/.config/coc/extensions/node_modules/coc-highlight/lib/server.js --node-ipc --node-ipc --clientProcessId=11406
joyce 11406 0.0 0.2 5440936 60208 ?? Ss 4:45PM 0:00.42 /usr/local/bin/node --no-warnings /Users/joyce/.local/share/nvim/plugged/coc.nvim/build/index.js
When I close Sublime Text, the above processes too disappear.
Update: Sorry, I had ActualVim
plugin installed, which was starting a vim instance on sublime load.
Intelephense server is running, but I cannot find any node processes running in ps aux
output.
btw, now in the latest lsp-intelephense 0.0.11
, you have to use something like
// @see https://github.com/bmewburn/vscode-intelephense/blob/master/package.json
"settings": {
"intelephense": {
"files": {
"exclude": [
"**/.js",
"**/.png",
"**/.jpg",
"**/.css",
"**/.pdf",
"**/.txt",
"**/Volume/aaa/**",
"**/Volume/bbb/**",
],
},
},
},
Hello! I've configured lsp-intelephence like this:
{
"settings":
{
"debug":
{
"enable": false,
},
"intelephense":
{
"environment":
{
"documentRoot": "/var/www/html/myproject/",
"phpVersion": "7.3.0"
},
"diagnostics":
{
"undefinedConstants": false,
"undefinedFunctions": false,
"undefinedSymbols": false
},
"files":
{
"associations": [
"*.php",
"*.phtml",
"*.inc"
],
"exclude": [
"**/.git/**",
"**/.svn/**",
"**/.hg/**",
"**/CVS/**",
"**/.DS_Store/**",
"**/node_modules/**",
"**/bower_components/**",
"**/vendor/**/{Tests,tests}/**",
"/var/**",
"/framework/**",
"**/vendor/**/{Example,example,Examples,examples}/**"
]
},
"trace":
{
"server": "off"
}
}
}
}
and it indexes ony the current file which I work with
there is debug log
:: --> lsp-intelephense initialize(1): {'capabilities': {'workspace': {'applyEdit': True, 'executeCommand': {}, 'configuration': True, 'symbol': {'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}}, 'didChangeConfiguration': {}, 'workspaceFolders': True}, 'textDocument': {'publishDiagnostics': {'relatedInformation': True}, 'hover': {'contentFormat': ['markdown', 'plaintext']}, 'declaration': {'linkSupport': True}, 'documentHighlight': {}, 'codeAction': {'codeActionLiteralSupport': {'codeActionKind': {'valueSet': []}}}, 'rangeFormatting': {}, 'formatting': {}, 'signatureHelp': {'signatureInformation': {'parameterInformation': {'labelOffsetSupport': True}, 'documentationFormat': ['markdown', 'plaintext']}}, 'definition': {'linkSupport': True}, 'colorProvider': {}, 'typeDefinition': {'linkSupport': True}, 'references': {}, 'synchronization': {'willSaveWaitUntil': True, 'didSave': True, 'willSave': True}, 'rename': {}, 'documentSymbol': {'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}}, 'completion': {'completionItem': {'snippetSupport': True}, 'completionItemKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}}, 'implementation': {'linkSupport': True}}}, 'rootUri': 'file:///var/www/html/myproject', 'initializationOptions': {'clearCache': False}, 'processId': 648292, 'rootPath': '/var/www/html/myproject', 'workspaceFolders': [{'uri': 'file:///var/www/html/myproject', 'name': 'myproject'}]}
intelephense-ls: Initialising intelephense 1.3.11
lsp-intelephense: Reading state from /tmp/intelephense/55ada3ba.
:: --> intelephense-ls initialize(1): {'capabilities': {'workspace': {'applyEdit': True, 'executeCommand': {}, 'configuration': True, 'symbol': {'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}}, 'didChangeConfiguration': {}, 'workspaceFolders': True}, 'textDocument': {'publishDiagnostics': {'relatedInformation': True}, 'hover': {'contentFormat': ['markdown', 'plaintext']}, 'declaration': {'linkSupport': True}, 'documentHighlight': {}, 'codeAction': {'codeActionLiteralSupport': {'codeActionKind': {'valueSet': []}}}, 'rangeFormatting': {}, 'formatting': {}, 'signatureHelp': {'signatureInformation': {'parameterInformation': {'labelOffsetSupport': True}, 'documentationFormat': ['markdown', 'plaintext']}}, 'definition': {'linkSupport': True}, 'colorProvider': {}, 'typeDefinition': {'linkSupport': True}, 'references': {}, 'synchronization': {'willSaveWaitUntil': True, 'didSave': True, 'willSave': True}, 'rename': {}, 'documentSymbol': {'symbolKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]}}, 'completion': {'completionItem': {'snippetSupport': True}, 'completionItemKind': {'valueSet': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]}}, 'implementation': {'linkSupport': True}}}, 'rootUri': 'file:///var/www/html/myproject', 'initializationOptions': {'storagePath': None}, 'processId': 648292, 'rootPath': '/var/www/html/myproject', 'workspaceFolders': [{'uri': 'file:///var/www/html/myproject', 'name': 'myproject'}]}
intelephense-ls: Reading state from /tmp/intelephense/28310cab.
lsp-intelephense: Initialised in 170 ms
intelephense-ls: Initialised in 1583 ms
lsp-intelephense: Registering request handler for workspace/didChangeWorkspaceFolders failed.
intelephense-ls: Registering request handler for workspace/didChangeWorkspaceFolders failed.
lsp-intelephense: (node:648302) UnhandledPromiseRejectionWarning: Error: client/registerCapability
intelephense-ls: (node:648311) UnhandledPromiseRejectionWarning: Error: client/registerCapability
lsp-intelephense: at /home/admin/.config/sublime-text-3/Cache/LSP-intelephense/intelephense/node_modules/intelephense/lib/intelephense.js:59:146893
intelephense-ls: at /home/admin/.nvm/versions/node/v12.8.0/lib/node_modules/intelephense/lib/intelephense.js:59:146893
lsp-intelephense: at /home/admin/.config/sublime-text-3/Cache/LSP-intelephense/intelephense/node_modules/intelephense/lib/intelephense.js:59:147187
intelephense-ls: at /home/admin/.nvm/versions/node/v12.8.0/lib/node_modules/intelephense/lib/intelephense.js:59:147187
lsp-intelephense: at Immediate.<anonymous> (/home/admin/.config/sublime-text-3/Cache/LSP-intelephense/intelephense/node_modules/intelephense/lib/intelephense.js:59:147548)
intelephense-ls: at Immediate.<anonymous> (/home/admin/.nvm/versions/node/v12.8.0/lib/node_modules/intelephense/lib/intelephense.js:59:147548)
lsp-intelephense: at processImmediate (internal/timers.js:439:21)
lsp-intelephense: (node:648302) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
intelephense-ls: at processImmediate (internal/timers.js:439:21)
lsp-intelephense: (node:648302) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
intelephense-ls: (node:648311) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
intelephense-ls: (node:648311) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
lsp-intelephense: Indexing started.
intelephense-ls: Indexing started.
intelephense-ls: Indexing ended. 1 files indexed in 0s.
intelephense-ls: Writing state to /tmp/intelephense/28310cab.
lsp-intelephense: Indexing ended. 96 files indexed in 1s.
lsp-intelephense: Writing state to /tmp/intelephense/55ada3ba.
lsp-intelephense: Wrote state in 0.2s.
intelephense-ls: Wrote state in 2.0s.
:: <<< lsp-intelephense 1: {'capabilities': {'textDocumentSync': 2, 'workspace': {'workspaceFolders': {'supported': True, 'changeNotifications': True}}, 'foldingRangeProvider': False, 'renameProvider': False, 'documentRangeFormattingProvider': True, 'referencesProvider': True, 'declarationProvider': False, 'documentHighlightProvider': True, 'definitionProvider': True, 'signatureHelpProvider': {'triggerCharacters': ['(', ',']}, 'documentFormattingProvider': True, 'completionProvider': {'resolveProvider': True, 'triggerCharacters': ['$', '>', ':', '\\', '/', '*', '.', '<']}, 'implementationProvider': False, 'workspaceSymbolProvider': True, 'typeDefinitionProvider': False, 'hoverProvider': True, 'documentSymbolProvider': True}}
:: -> lsp-intelephense workspace/didChangeConfiguration: {'settings': {'debug': {'enable': False}, 'intelephense': {'diagnostics': {'undefinedFunctions': True, 'undefinedConstants': True, 'undefinedSymbols': True}, 'environment': {'documentRoot': '/var/www/html/myproject', 'phpVersion': '7.3.0'}, 'files': {'exclude': ['**/.git/**', '**/.svn/**', '**/.hg/**', '**/CVS/**', '**/.DS_Store/**', '**/node_modules/**', '**/bower_components/**', '**/vendor/**/{Tests,tests}/**', '/var/**', '/framework/**', '**/vendor/**/{Example,example,Examples,examples}/**'], 'associations': ['*.php', '*.phtml', '*.inc']}, 'trace': {'server': 'off'}}}}
:: -> lsp-intelephense initialized: {}
:: <<< intelephense-ls 1: {'capabilities': {'textDocumentSync': 2, 'workspace': {'workspaceFolders': {'supported': True, 'changeNotifications': True}}, 'foldingRangeProvider': False, 'renameProvider': False, 'documentRangeFormattingProvider': True, 'referencesProvider': True, 'declarationProvider': False, 'documentHighlightProvider': True, 'definitionProvider': True, 'signatureHelpProvider': {'triggerCharacters': ['(', ',']}, 'documentFormattingProvider': True, 'completionProvider': {'resolveProvider': True, 'triggerCharacters': ['$', '>', ':', '\\', '/', '*', '.', '<']}, 'implementationProvider': False, 'workspaceSymbolProvider': True, 'typeDefinitionProvider': False, 'hoverProvider': True, 'documentSymbolProvider': True}}
:: -> intelephense-ls initialized: {}
:: -> lsp-intelephense textDocument/didOpen
:: -> lsp-intelephense textDocument/didOpen
:: -> intelephense-ls textDocument/didOpen
:: -> intelephense-ls textDocument/didOpen
:: <-- lsp-intelephense client/registerCapability(0): {'registrations': [{'method': 'workspace/didChangeWorkspaceFolders', 'registerOptions': {}, 'id': '6cf24127-1326-4c9a-8668-22a6606e289e'}]}
:: ~~> lsp-intelephense 0: {'code': -32601, 'message': 'client/registerCapability'}
:: <-- lsp-intelephense workspace/configuration(1): {'items': [{'section': 'intelephense'}, {'section': 'intelephense', 'scopeUri': 'file:///var/www/html/myproject'}]}
:: >>> lsp-intelephense 1: [{'diagnostics': {'undefinedFunctions': True, 'undefinedConstants': True, 'undefinedSymbols': True}, 'environment': {'documentRoot': '/var/www/html/myproject', 'phpVersion': '7.3.0'}, 'files': {'exclude': ['**/.git/**', '**/.svn/**', '**/.hg/**', '**/CVS/**', '**/.DS_Store/**', '**/node_modules/**', '**/bower_components/**', '**/vendor/**/{Tests,tests}/**', '/var/**', '/framework/**', '**/vendor/**/{Example,example,Examples,examples}/**'], 'associations': ['*.php', '*.phtml', '*.inc']}, 'trace': {'server': 'off'}}, {'diagnostics': {'undefinedFunctions': True, 'undefinedConstants': True, 'undefinedSymbols': True}, 'environment': {'documentRoot': '/var/www/html/myproject', 'phpVersion': '7.3.0'}, 'files': {'exclude': ['**/.git/**', '**/.svn/**', '**/.hg/**', '**/CVS/**', '**/.DS_Store/**', '**/node_modules/**', '**/bower_components/**', '**/vendor/**/{Tests,tests}/**', '/var/**', '/framework/**', '**/vendor/**/{Example,example,Examples,examples}/**'], 'associations': ['*.php', '*.phtml', '*.inc']}, 'trace': {'server': 'off'}}]
:: <-- intelephense-ls client/registerCapability(0): {'registrations': [{'method': 'workspace/didChangeWorkspaceFolders', 'registerOptions': {}, 'id': '06029b36-6d63-45e6-bbf4-def8a306bb38'}]}
:: ~~> intelephense-ls 0: {'code': -32601, 'message': 'client/registerCapability'}
:: <-- intelephense-ls workspace/configuration(1): {'items': [{'section': 'intelephense'}, {'section': 'intelephense', 'scopeUri': 'file:///var/www/html/myproject'}]}
:: >>> intelephense-ls 1: [None, None]
:: <- lsp-intelephense textDocument/publishDiagnostics: {'uri': 'file:///var/www/html/myproject/classes/XLite/Module/MyCompany/OPC/Core/Collection/Shipping/ShippingDate.php', 'diagnostics': [{'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 26}, 'end': {'character': 18, 'line': 26}}, 'severity': 4, 'message': "Symbol '$from' is declared but not used."}, {'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 31}, 'end': {'character': 16, 'line': 31}}, 'severity': 4, 'message': "Symbol '$to' is declared but not used."}, {'source': 'intelephense', 'code': 1009, 'range': {'start': {'character': 32, 'line': 46}, 'end': {'character': 42, 'line': 46}}, 'severity': 1, 'message': "Undefined type 'DatePeriod'."}, {'source': 'intelephense', 'code': 1009, 'range': {'start': {'character': 31, 'line': 69}, 'end': {'character': 48, 'line': 69}}, 'severity': 1, 'message': "Undefined type 'DateTimeInterface'."}]}
:: <- intelephense-ls textDocument/publishDiagnostics: {'uri': 'file:///var/www/html/myproject/classes/XLite/Module/MyCompany/OPC/Core/Collection/Shipping/ShippingDate.php', 'diagnostics': [{'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 26}, 'end': {'character': 18, 'line': 26}}, 'severity': 4, 'message': "Symbol '$from' is declared but not used."}, {'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 31}, 'end': {'character': 16, 'line': 31}}, 'severity': 4, 'message': "Symbol '$to' is declared but not used."}]}
:: <? lsp-intelephense indexingStarted: None
:: <? intelephense-ls indexingStarted: None
:: <? intelephense-ls indexingEnded: None
:: <? lsp-intelephense indexingEnded: None
:: <- intelephense-ls textDocument/publishDiagnostics: {'uri': 'file:///var/www/html/myproject/classes/XLite/Module/MyCompany/OPC/Core/Collection/Shipping/ShippingDate.php', 'diagnostics': [{'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 26}, 'end': {'character': 18, 'line': 26}}, 'severity': 4, 'message': "Symbol '$from' is declared but not used."}, {'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 31}, 'end': {'character': 16, 'line': 31}}, 'severity': 4, 'message': "Symbol '$to' is declared but not used."}]}
:: <- lsp-intelephense textDocument/publishDiagnostics: {'uri': 'file:///var/www/html/myproject/classes/XLite/Module/MyCompany/OPC/Core/Collection/Shipping/ShippingDate.php', 'diagnostics': [{'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 26}, 'end': {'character': 18, 'line': 26}}, 'severity': 4, 'message': "Symbol '$from' is declared but not used."}, {'source': 'intelephense', 'code': 1003, 'range': {'start': {'character': 4, 'line': 31}, 'end': {'character': 16, 'line': 31}}, 'severity': 4, 'message': "Symbol '$to' is declared but not used."}]}
In my experiments, I think it only counts newly indexed files. If you clean the cache dir and re-open the project, it should show many files are indexed.
Where can I see the debug log? I am getting the following error when trying @antonpresn's config
Language server lsp-intelephense has crashed, do you want to restart it?
@jfcherng Thank You for fast response :)
What I've done I can't reproduce :) - many restarts, and also
rm -rf /tmp/intelephense
rm -rf ~/.config/sublime-text-3/Cache/LSP*
Also I've noticed two options when disabling lsp
And only lsp-intelephence gives one file indexing
And finally! After disabling some packages (because found some errors in console) and lsp-intelephence (while intelephence-ls is still enabled) I can see my project indexed! And this is way better than before!
@JoyceBabu by the way my global config for LSP
I would suggest remove intelephense-ls
which is an old solution and may cause confusion since you have both intelephense-ls
and lsp-intelephense
enabled (using both at the same time makes no sense imo).
Thank you @antonpresn @jfcherng .
You can find the difference between lsp-intelephense
and intelephense-ls
on the following page
Finally 🍻
lsp-intelephense: Indexing ended. 56953 files indexed in 73s.
@antonpresn If your issue is also solved, shall I close this issue?
Finally beers
lsp-intelephense: Indexing ended. 56953 files indexed in 73s.
@antonpresn If your issue is also solved, shall I close this issue?
@JoyceBabu, Great! I think yes, Issue is solved :)
It worked after I've copied your config from here #26 ;)
Great 😀. I am closing the issue.
LPS. sublime setting
"show_diagnostics_panel_on_save": 0,