yaegassy/coc-psalm

Strange behaviour with custom `configPaths`

dshoreman opened this issue · 1 comments

Hi!

In my project, psalm.xml is in a subdirectory so I added this to my coc-settings.json:

{
  "psalm.configPaths": [ "build/psalm/psalm.xml", "psalm.xml", "psalm.xml.dist" ],
  "psalm.enableDebugLog": true,
}

I'd expect the Psalm LS to be started with -c /path/to/workspace/build/psalm/psalm.xml, but instead :CocOpenLog shows no reference to the coc-psalm plugin whatsoever.

The strange part is it will load the LS with my custom config... but only if there is a psalm.xml in the root.

As long as the custom path comes first in configPaths, the top-level psalm.xml can even be empty so touch psalm.xml seems to be enough to workaround it for now

Ok, so I tested with "psalm.configPaths": ["build/psalm/psalm.xml"] and it still worked which led me to search the repo for "psalm.xml", figuring there was obviously a check somewhere earlier in the code.

This led me to activationEvents in package.json:

coc-psalm/package.json

Lines 34 to 37 in 420529a

"activationEvents": [
"workspaceContains:psalm.xml",
"workspaceContains:psalm.xml.dist"
],

Everything seems to work perfectly once I glob those paths.