Repository navigation
Expand file tree
/
Copy pathpsalm.xml
More file actions
76 lines (75 loc) · 3.13 KB
/
Copy pathpsalm.xml
File metadata and controls
76 lines (75 loc) · 3.13 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?xml version="1.0"?>
<psalm
errorLevel="4"
resolveFromConfigFile="true"
phpVersion="8.2"
findUnusedBaselineEntry="false"
findUnusedCode="false"
errorBaseline="tests/psalm-baseline.xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
<projectFiles>
<directory name="lib" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>
</projectFiles>
<extraFiles>
<directory name="vendor" />
</extraFiles>
<stubs>
<!-- Internal OC\ symbol that OCP\Files\IRootFolder extends but ocp
does not ship (mirrors nextcloud/forms). -->
<file name="tests/stubs/psalm/oc_hooks_emitter.php" />
</stubs>
<issueHandlers>
<!--
These classes come from OTHER apps or third-party libs that are present
at runtime on a real Nextcloud but are not in this app's vendor/, so
Psalm can't see them. Suppress the "does not exist" family for them —
the same approach nextcloud/forms takes for Circles/Analytics.
-->
<UndefinedClass>
<errorLevel type="suppress">
<referencedClass name="OC" />
<referencedClass name="OC\Image" />
<referencedClass name="OCA\Circles\CirclesManager" />
<referencedClass name="OCA\Circles\Model\Circle" />
<referencedClass name="OCA\Circles\Model\Member" />
<referencedClass name="OCA\Files_Versions\Versions\IVersionManager" />
<referencedClass name="OCA\Files\Event\LoadAdditionalScriptsEvent" />
<referencedClass name="OCA\DAV\Events\SabrePluginAuthInitEvent" />
<referencedClass name="Sabre\DAV\ServerPlugin" />
<referencedClass name="Sabre\DAV\Server" />
<referencedClass name="Smalot\PdfParser\Config" />
<referencedClass name="Smalot\PdfParser\Parser" />
<referencedClass name="PhpOffice\PhpWord\IOFactory" />
</errorLevel>
</UndefinedClass>
<!-- MissingDependency (OCP\Files\IRootFolder -> OC\Hooks\Emitter, OCP\Image
-> OC\Image) is resolved by the stubs above / the UndefinedClass
suppressions, so no separate handler is needed; Psalm 5's schema also
rejects a per-class filter on MissingDependency. -->
<!-- Listeners for other apps' events legitimately widen the handle()
signature (the event class isn't in our vendor/), so the generated
type mismatch is a stub artefact, not a real error. -->
<InvalidArgument>
<errorLevel type="suppress">
<referencedFunction name="OCP\AppFramework\Bootstrap\IRegistrationContext::registerEventListener" />
</errorLevel>
</InvalidArgument>
<InvalidTemplateParam errorLevel="suppress" />
<ImplementedParamTypeMismatch errorLevel="suppress" />
<UndefinedDocblockClass errorLevel="suppress" />
</issueHandlers>
<!--
Remaining lower-severity findings (OCP-stub type quirks like
createNamedParameter's param type or Node::getContent, plus pre-existing
smells in untouched files such as redundant casts) are captured in the
baseline so CI gates NEW issues without forcing edits to unrelated code.
The baseline is generated on first CI run (Psalm can't run on the PHP 8.5
dev host) and committed thereafter.
-->
</psalm>