Bruce Weirdan
79acbadfad
Added InvalidParent issue ( #2320 )
...
Refs vimeo/psalm#2304
2019-11-11 00:21:43 -05:00
ADmad
065653c58f
Fix param name in example ( #2317 )
2019-11-09 16:26:06 -05:00
Jáchym Toušek
f2c82fa212
Add support for Iterator<X> type ( #2285 )
...
* Add support for Iterator<X> type
* Fix tests
2019-10-30 18:00:27 +00:00
Matthew Brown
4ee037923a
add link to lists
2019-10-11 09:58:34 -04:00
Matthew Brown
f25fe29c73
Add documentation for lists
2019-10-11 09:56:46 -04:00
Matthew Brown
79f2f4197a
Fix typo
2019-09-26 16:20:42 -04:00
Brown
cf799d0926
Fix #2173 - remove @var annotations automatically
2019-09-26 15:08:05 -04:00
Matthew Brown
9c629414a7
Fix #2138 - complain when inheriting from immutable interfaces without annotation
2019-09-21 22:52:30 -04:00
Brown
c5ef2516b5
Fix #2150 - add detection for unnecessary @var annotations
...
And also remove them from codebase
2019-09-19 11:59:43 -04:00
Matthew Brown
9ad6c36d9b
Conditionally verify that array offsets exist ( #2147 )
...
* Check array offsets idea
* Clean up some issues
* Add a few light fixes
* Add docs
2019-09-18 14:21:06 -04:00
SignpostMarv
943705ce0e
load an xdebug stub when required, re: vimeo/psalm#2118 ( #2133 )
...
* load an xdebug stub when required, re: vimeo/psalm#2118
* correcting case sensitivity of XDebug to Xdebug
* only load the Xdebug stub when needed
2019-09-14 10:13:39 -04:00
Jacob Dreesen
34d98f9f42
Fix description of @psalm-external-mutation-free ( #2110 )
2019-09-09 14:52:30 -04:00
Brown
56c884845f
Static methods inside @psalm-immutable class should be permitted
...
Fixes #2109
2019-09-09 10:38:55 -04:00
Matthew Brown
f8b8f35c03
Add docs for @psalm-pure
2019-09-08 15:25:12 -04:00
Matthew Brown
5d08c47e4b
Add docs for immutable ideas
2019-09-08 15:21:30 -04:00
Matthew Brown
51e552665e
Fix #2061 - add config to allow suppression of string increment issues
2019-09-01 17:49:37 -04:00
Matthew Brown
dee2cf3281
Detect use of static inside pure function
2019-08-31 21:31:53 -04:00
Matthew Brown
6d07663d70
Annotate method getters more accurately
2019-08-30 16:40:32 -04:00
lhchavez
3e5f6b16b7
Add documentation for the <globals> project setting ( #2068 )
...
This change exposes the documentation for the <globals> project setting.
2019-08-25 23:47:39 -04:00
Markus Staab
51bf0b4001
document psalter --allow-backwards-incompatible-changes=false option ( #2056 )
2019-08-25 23:47:06 -04:00
Brown
95c61db513
Add a PossibleRawObjectIteration issue
2019-08-20 12:06:02 -04:00
Matthew Brown
2a5e0d8f39
Fix #1444 - track unused suppressions
2019-08-18 14:27:50 -04:00
lhchavez
c98c160907
Allow explicitly-annotated mixed assignments ( #2030 )
...
This change makes it possible to assign mixed expressions to variables
if an annotation is explicitly added to the variable. This allows the
use of `call_user_func` without needing to suppress issues.
Fixes : #1374
2019-08-17 11:22:43 -04:00
Matthew Brown
5c1b4d5a2a
Fix underscore
2019-08-16 22:28:31 -04:00
Matthew Brown
476f9ae353
Fix type links
2019-08-16 22:27:58 -04:00
Matthew Brown
88e8f105e0
Remove code from links
2019-08-16 22:24:11 -04:00
Matthew Brown
fafb7ee7e1
Remove thing that needn't be code
2019-08-16 22:21:17 -04:00
Matthew Brown
8228a0f9a5
Add more descriptive text for InvalidDocblockParamName
2019-08-15 10:52:24 -04:00
Brown
b5614d03f8
Add detection for unused function calls
2019-08-13 13:15:23 -04:00
Matthew Brown
89416c6f4f
AddWord
2019-08-13 09:24:50 -04:00
Matthew Brown
b53446e11d
Add documentation for findUnusedVariables and findUnusedCode
2019-08-13 09:24:20 -04:00
Matthew Brown
7c6b1581d3
Add warnings about uninitialised properties to mixed as well
2019-08-11 00:22:28 -04:00
Matthew Brown
85c9b6bb44
Add documentation for automatically removing UnusedVariable
2019-08-09 11:40:46 -04:00
Brown
04c12a36fe
Fix docs example for impurity
2019-08-07 15:39:51 -04:00
Matthew Brown
b2c0993cdc
Add framework for taint analysis to Psalm
...
Ref #611
2019-08-04 10:37:36 -04:00
Chad Burrus
7ded79bb27
typo fix : "you" -> "your" ( #1976 )
2019-07-30 13:22:26 -04:00
Matthew Brown
90854c4094
Fix broken behaviour when analysing interface test methods
2019-07-28 19:44:36 -04:00
Mikko Pesari
82e79aae20
Fix ignoreExceptions tags ( #1966 )
2019-07-24 07:50:40 -04:00
Matthew Brown
3df248eea2
Add concept of purity to functions and methods
2019-07-18 01:31:48 -04:00
Roland Franssen
e58660f38b
Add docs for optional ObjectLike ( #1942 )
...
* Add docs for optional ObjectLike
ref #634
* Update plugins_type_system.md
* Use better letters
2019-07-17 22:54:01 -04:00
Barney Laurance
94f934627c
Work in progress - resolve directories from config file location ( #1904 )
...
* Add resolveFromConfigFile config option
Treats all paths as relative to the location of the config file, not
the current working directory of the process.
This commit just changes psalm, further commits will be needed to
apply the change to psalter and the LSP server.
* Copy asset xml files into project root for testing, delete during teardown
Needed since paths are now resolved relative to the position of the
file.
Not sure why I only saw a test failre for 1.xml - would have expected it
for all eight files.
* Fix following rebase
* Move psalm --init handly code above working directory setting code
If there's no psalm.xml yet we can't use the location of psalm.xml to
set our working directory
* Move Psalm version output code above working directory resolution
Working directory doesn't need to be known to output version constant
* Rely on new config file based working directory in end to end test
* Dont use rely on config dir for --alter - not currently working
* Fix code style error
* Add failing test for supporting config without `resolveFromConfigFile="true"`
* Don't treat config directory as a path to check
* Document resolveFromConfigFile setting
2019-07-06 12:21:39 -04:00
Tyson Andre
220513c5f2
Fix typos with codespell ( #1870 )
2019-06-28 13:59:09 -04:00
Brown
6a95aeb7e2
Fix 404
2019-06-27 17:35:24 -04:00
Brown
0d3f5af18c
Break out docblock_type_syntax.md into separate files
2019-06-27 17:00:26 -04:00
Dave Liddament
af1decf30c
Add missing links to documentation ( #1858 )
...
Not sure how index for docs are generated. The hope is this should fix #1857
2019-06-27 14:36:27 -04:00
Ivan
5bb28cc493
fix typo ( #1819 )
2019-06-20 09:05:22 -04:00
Matthew Brown
4823e35f8e
Add rename namespace command
2019-06-19 19:49:42 -04:00
Matthew Brown
f06cd85ad0
Fix link
2019-06-19 14:21:07 -04:00
Matthew Brown
51e31ba9c9
Add separate file for adding_assertions
2019-06-19 14:19:40 -04:00
Matthew Brown
95fc208ce3
Break out assertion syntax into separate file
2019-06-19 14:19:14 -04:00
Matthew Brown
d0e84f1b88
remove slash
2019-06-19 01:39:11 -04:00
Matthew Brown
9ad6e7c024
Remove a word
2019-06-19 01:24:14 -04:00
Matthew Brown
0cd8e71368
Fix formatting
2019-06-19 01:23:49 -04:00
Matthew Brown
a46dddde4b
Add newline
2019-06-19 01:21:29 -04:00
Matthew Brown
74a96a95d0
Add assertion syntax docs ( #1810 )
...
* Create assertion_syntax.md
* Add more
* Add more details
* Add link to assertions
2019-06-19 01:09:46 -04:00
Matthew Brown
5a64e97f0f
Fix #1793 - warn on deprecated function
2019-06-15 12:09:15 -04:00
mattdfloyd
6f6054f36d
Update refactoring.md
2019-06-14 13:07:58 -04:00
Matthew Brown
305c40839a
Remove phpdoc note
2019-06-09 18:05:28 -04:00
Matthew Brown
d4186e4530
Add PHPDoc note
2019-06-09 18:04:00 -04:00
Matthew Brown
7a14e87e78
Add line breaks
2019-06-09 17:45:41 -04:00
Matthew Brown
bbacba4acf
Improve atomic type intro
2019-06-09 17:41:06 -04:00
Matthew Brown
0443bfc41e
Add better preamble about atomic types
2019-06-09 17:37:29 -04:00
Matthew Brown
28b0895ffb
Push union type info to bottom
2019-06-09 17:35:38 -04:00
Matthew Brown
f898bb1f2c
Remove probably-confusing explanation of union types
2019-06-09 17:31:26 -04:00
Matthew Brown
30b1b0a65c
Indent other types
2019-06-09 17:20:13 -04:00
Matthew Brown
71a184312a
Improve punctuation
2019-06-09 15:48:08 -04:00
Matthew Brown
5d47dc5769
Add more obvious examples
2019-06-09 15:43:52 -04:00
Matthew Brown
c3d4acf6fe
Add link
2019-06-09 15:34:19 -04:00
Matthew Brown
61102998d1
Organise atomic type page better
2019-06-09 15:32:26 -04:00
Matthew Brown
bc49787d69
Add more information about class-string
2019-06-09 15:22:26 -04:00
Matthew Brown
9c18dfed43
Fix char
2019-06-09 15:20:15 -04:00
Matthew Brown
2fd24c4765
Fix underscores
2019-06-09 15:18:06 -04:00
Matthew Brown
344164816f
Break apart atomic type docs, adding listing
2019-06-09 15:16:55 -04:00
Matthew Brown
5592335a7c
Remove "
2019-06-09 09:16:43 -04:00
Matthew Brown
017ddd590a
Add better English
2019-06-09 01:41:31 -04:00
Matthew Brown
c6ffa7b55a
Change paths
2019-06-09 01:07:17 -04:00
Matthew Brown
a2f444f1b9
Fix link
2019-06-09 01:05:03 -04:00
Matthew Brown
7a1a728cee
Move docs into subfolders
2019-06-09 00:54:13 -04:00
Matthew Brown
8ff960af9e
Removed newline
2019-06-08 16:35:26 -04:00
Matthew Brown
21431caaca
Add preamble about templated types
2019-06-08 16:34:37 -04:00
Brown
b00d51b7db
Allow misplaced required params so Psalm still inspects the code
2019-06-07 09:25:12 -04:00
Matthew Brown
e486b25173
Fix typo
2019-06-04 08:50:50 -04:00
Matthew Brown
856180ac2a
Add MissingParamType fix documentation
2019-06-04 08:45:01 -04:00
Matthew Brown
8968488fe4
Fix coercion config
2019-05-31 19:59:47 -04:00
Matthew Brown
909f5cee08
Change version constraint
2019-05-29 23:50:24 -04:00
Barney Laurance
04ef20da1f
Add error message when psalter asked to work beyond its abilities; allow fixing all issues and output list of fixable issues ( #1687 )
...
* Oputput error message when asked to fix non-fixable issue
* Document ability to fix function PossiblyUndefinedGlobalVariable
* Add --issues=all option to fix all possible issues
* Add --list-supported-issues option to psalter
* Fix psalm issues
* Add newline to end of psalter help output
* Adjust messages output from psalter
* Use fwrite(STDERR, instead of die( for issue list related errors in psalter
* Restore missing exits in psalter
2019-05-27 10:05:15 -04:00
Matthew Brown
7601921ecf
Add a word
2019-05-21 23:06:50 -04:00
Matthew Brown
ee3dfba8ab
Add documentation for all 19 hooks
...
Fixes #1582
2019-05-16 14:32:44 -04:00
Matthew Brown
e75ee77938
Added default name
2019-05-16 14:17:40 -04:00
Barney Laurance
8f129f828b
Document intersection and no-return types in docblock syntax
...
Also removed spaces from union type example.
2019-05-15 19:16:15 -04:00
Brown
4a434d9a2f
Add separate issue for undefined classes in docblocks
2019-05-15 18:41:26 -04:00
Barney Laurance
7f4173efc5
Fix typo in docs
2019-05-14 19:30:39 -04:00
Barney Laurance
f4c754737f
psalm-internal: Prevent use of @psalm-internal without @internal
2019-05-14 18:54:16 -04:00
Barney Laurance
31ae10fb00
psalm-internal - document usage of @internal and @psalm-internal tags
2019-05-14 18:54:16 -04:00
Brown
30cbcb6c36
Add ImplementedParamTypeMismatch issue
...
Fixes #1633
2019-05-14 15:44:46 -04:00
Jonathan H. Wage
ecb7a6c069
Add support for absolute plugin paths.
2019-05-05 16:44:36 -04:00
Jonathan H. Wage
db227dab06
Fix link to Plugins that currently 404s
2019-05-02 17:49:34 -04:00
Brown
0e4c8ce482
Split apart TypeCoercion issues, allowing more granular issue filtering
2019-04-25 18:02:19 -04:00
Ryan McCue
91be079ca6
Link to human-readable package list
2019-04-21 08:42:35 -04:00
Matthew Brown
29b70442b1
Add documentation for unused method/property removal/
2019-04-20 17:54:17 -04:00
Dave Liddament
53e2a0e671
FIX remove extra space in markdown
2019-04-18 18:18:16 -04:00
bugreportuser
4a931770be
Added doc for onlyGlobalScope
2019-04-16 22:42:45 -04:00
Matthew Brown
b00aa848e4
Split up plugins guide
2019-04-14 15:21:41 -04:00
Matthew Brown
5374211fc1
Add link to how Psalm represents types
2019-04-14 15:13:47 -04:00
Matthew Brown
7eab5cf6df
Few small improvements
2019-04-14 15:12:16 -04:00
Matthew Brown
2a862040c1
Add more documentation
2019-04-14 15:12:16 -04:00
Robert Hickman
7b5e3c88e3
fix markdown error
2019-04-14 15:12:16 -04:00
Robert Hickman
a1cbf41a0e
fix markdown error
2019-04-14 15:12:16 -04:00
Robert Hickman
28ecccb364
added plugins type system documentation
2019-04-14 15:12:16 -04:00
Brown
af4d10cb63
Fix #1499 - use TraitMethodSignatureMismatch when dealing with trait methods
2019-03-29 14:09:06 -04:00
Matthew Brown
dd7596ea64
Update title
2019-03-29 00:06:40 -04:00
bugreportuser
976c2c5ef3
Add an error for throws in global scope
2019-03-24 23:03:37 -04:00
Tyson Andre
2e6a2f14ed
Fix typos in psalm with codespell's dictionary
2019-03-24 23:01:20 -04:00
Matthew Brown
9f7f7074ef
Add index to readme
2019-03-20 11:49:17 -04:00
Matthew Brown
41f0034185
Delete index.md
2019-03-20 11:48:20 -04:00
Matthew Brown
12b5d05a86
Update and rename introduction.md to README.md
2019-03-20 11:35:55 -04:00
Matthew Brown
b6d0f89d52
Fix typo
2019-03-19 22:40:27 -04:00
Matthew Brown
6f9945cc09
Change name
2019-03-19 22:39:42 -04:00
Matthew Brown
a8f9885021
Add introduction
2019-03-19 22:39:14 -04:00
Matthew Brown
60504f6c7b
Separate intro
2019-03-19 22:37:26 -04:00
Matthew Brown
41fe05277a
Add explanation of what Psalter does
2019-03-19 19:47:49 -04:00
Matthew Brown
d1f3a757aa
Put fixing on a new line
2019-03-19 18:38:11 -04:00
Matthew Brown
cf10e5b764
Improve index
2019-03-19 18:37:39 -04:00
Matthew Brown
86fecc3ecf
Add link for docblock type syntax
2019-03-19 17:12:35 -04:00
Matthew Brown
8201a2c65c
Add not to make clear you can use object-like arrays yourself
2019-03-19 15:29:28 -04:00
Matthew Brown
d55bd8ac65
Remove formatting that mkdocs doesn't recognise
2019-03-19 15:18:22 -04:00
Matthew Brown
336a79336f
Made indentation clearer maybe?
2019-03-19 15:12:08 -04:00
Matthew Brown
aaa1f17e52
Remove typing arrays
2019-03-19 14:08:58 -04:00
Matthew Brown
d13560f4ef
Add docblock type syntax reference
2019-03-19 13:55:55 -04:00
Matthew Brown
b8b6bf06d7
Add detailed breakdown of supported types
2019-03-19 13:54:36 -04:00
Matthew Brown
6748e5240c
Add follow on from installation
2019-03-19 12:08:22 -04:00
Matthew Brown
5f517f7055
Remove info
2019-03-19 12:02:49 -04:00
Matthew Brown
5d8e0b5036
Add s
2019-03-19 12:02:24 -04:00
Matthew Brown
5cf2cdbf76
Change version reqs
2019-03-19 12:02:12 -04:00
Matthew Brown
a62287ce61
Remove code
2019-03-19 11:54:08 -04:00
Matthew Brown
94ab35da97
Improve plugins page
2019-03-19 11:21:31 -04:00
Matthew Brown
472ab29d74
Add PossiblyInvalidCast for more refined checks
2019-03-17 17:10:51 -04:00
Brown
b3a59d2638
Fix #1435 - prevent classes extending interfaces
2019-03-07 11:16:40 -05:00
Brown
bd372e93af
Add config flags for findUnusedVariables and findUnusedCode
2019-03-05 15:45:09 -05:00
Matthew Brown
cdae79b9fe
Fix unnecessary params in Psalm codebase
2019-02-23 11:31:33 -05:00
Brown
3deea3980d
Add checks for unitialized properties
...
Fixes #1328
2019-02-13 13:32:19 -05:00
Jacob Dreesen
d4b318faf9
Fix XML node name in the docs
2019-02-12 17:47:02 -05:00
Jacob Dreesen
59ed1c5327
Fix typo
2019-02-12 17:46:26 -05:00
Bruce Weirdan
c310a2dd86
Update docs/templated_annotations.md
...
Co-Authored-By: SignpostMarv <me@signpostmarv.name>
2019-02-11 18:39:19 -05:00
SignpostMarv
c3f8285eed
adjusting header depth to reflect separate document
2019-02-11 18:39:19 -05:00
SignpostMarv
634c480dce
splitting templated docs as per discussion in #1323
2019-02-11 18:39:19 -05:00
SignpostMarv
04815f160e
stripping trailing whitespace
2019-02-11 18:39:19 -05:00
SignpostMarv
e0c610b75a
shifting link to sub-section as per discussion in #1323
2019-02-11 18:39:19 -05:00
SignpostMarv
cfa8844cec
updating link
2019-02-11 18:39:19 -05:00
SignpostMarv
c66802c2fa
creating sub-section for using psalm
...
creating sub-section for using psalm alongside entry for psalter
2019-02-11 12:08:29 -05:00
SignpostMarv
3986e34c3c
linking all docs in index for ease-of-discovery
...
further to my earlier tweet about searching for things in the psalm docs, just linking up a few of the unlinked docs.
2019-02-11 12:08:29 -05:00
Bruce Weirdan
1b20d9ab57
Added example of psalm --init run
...
Refs #1312
2019-02-10 20:40:16 -05:00
Matthew Brown
c58100e3af
Fix #1313 - don’t allow mixed function calls
2019-02-10 16:15:52 -05:00
Matthew Brown
652b6eb8f2
Fix int|string return
2019-02-05 17:08:47 -05:00
Matthew Brown
eb070a0959
Put tag on newline
2019-02-05 14:01:36 -05:00
Matthew Brown
18684bb0d4
Add a couple of small edits
2019-02-05 14:01:36 -05:00
SignpostMarv
6c9076b101
adding doc blurb about template tag re-use, with example employing something other than a key-value pair type, using https://getpsalm.org/r/43d8b85bc4
2019-02-05 14:01:36 -05:00
SignpostMarv
deb85c3cf9
adding doc blurb about template tag order in reference to https://mobile.twitter.com/psalmphp/status/1092573808622485504
2019-02-05 14:01:36 -05:00
Tyson Andre
6ae2ee809c
Fix typos in issues.md
...
Detected by codespell and LanguageTool.
2019-02-04 09:57:02 -05:00
Bruce Weirdan
a8799c5167
Converted list to sections
...
This allows to link to specific settings.
2019-02-03 14:28:47 -05:00
Matthew Brown
836d3d1528
Added more robust templating section
2019-01-29 23:26:37 -05:00
Brown
fcc9d1a979
Fix #1244 and fix #1243 - add template-extends checks
2019-01-25 15:31:17 -05:00
Matthew Brown
262ba9bdec
Added new LSP features.
2019-01-25 11:32:17 -05:00
Brown
cd0a7441d9
Add warnings for extended template param counts off
2019-01-24 17:55:03 -05:00
Matthew Brown
279912cb55
Add documentation for @param-out
2019-01-20 12:50:47 -05:00
Viktor Szépe
f6a00011be
Fix config link in docs
2019-01-19 16:02:08 -05:00
Matthew Brown
bd9f2ec546
Add separate issue type for undefined interface method
2019-01-13 13:07:53 -05:00
Matthew Brown
8ab5fae484
Add function casing example plugin
2019-01-07 09:34:16 -05:00
Matthew Brown
195cb289ed
Add float-checking plugin, and support for custom plugin issues
2019-01-07 08:38:56 -05:00
Matthew Brown
214fd7d461
Add DuplicateFunction issue
...
Fixes #49
2019-01-06 16:40:44 -05:00
Matthew Brown
b081256f39
Add section on using a baseline
2019-01-03 08:58:54 -05:00
Matthew Brown
6480b69db4
Update ALE info
2019-01-03 07:25:14 -05:00
Matthew Brown
6af3345b72
Fixed documentation about loops
2019-01-03 06:47:10 -05:00
Brown
2b4b55fd33
Add support for @return no-return
...
Fixes #1155
2019-01-02 17:05:39 -05:00
Matthew Brown
2304ad23b9
Added more info about class strings
2019-01-02 14:20:04 -05:00
Matthew Brown
a74c0c86ca
Add link to type manual
2019-01-02 13:56:43 -05:00
Brown
1d300ec342
Fix #1150
2019-01-02 11:18:22 -05:00
Andrii Dembitskyi
2162144234
Fix link in docs to example echo plugin
2019-01-01 18:43:15 +01:00
Brown
fb848d62e9
Add checks for if (count($a)) and if (count($a) [operator] [number])
2018-12-19 16:15:19 -05:00
Matthew Brown
ea89a6ba29
Revert "First pass"
...
This reverts commit 9ed047234f
.
2018-12-19 08:45:14 -05:00
Matthew Brown
9ed047234f
First pass
2018-12-19 01:59:14 -05:00
Matthew Brown
b32000fa05
Fix #689 - add checks for @internal annotations
2018-12-01 18:37:49 -05:00
Matthew Brown
23fe4b3591
Add breaks
2018-11-30 19:01:24 -05:00
Matthew Brown
d3826e42c8
Adding a file to document the complicated things in life
2018-11-30 19:00:55 -05:00
Aidan Woods
10931d2d68
Fix config option typo
2018-11-24 11:19:46 -05:00
Tyson Andre
951e28d608
Fix typos noticed in docs
2018-11-15 21:54:25 -05:00
Matthew Brown
695f37e6c8
Add detail to ALE linter
2018-11-13 15:28:39 -05:00
Brown
06974221df
Change DependencyFinderVisitor name to ReflectorVisitor and update docs
2018-11-13 14:09:43 -05:00
Bruce Weirdan
a338e76ef6
Plugin interface segregation ( #1076 )
...
* Split Plugin into PluginApi\Hook\* interfaces
* dropped Psalm\Plugin
* updated docs
* s/PluginApi/Plugin/g
2018-11-12 11:20:59 -05:00
Matthew Brown
8b0f2579a5
Update plugin docs
2018-11-12 11:20:59 -05:00
Bruce Weirdan
052d4f6217
Plugin loading ( #855 )
...
* add ability to load plugins by class names
- Plugins need to implement `__invoke(PluginFacade $psalm):void` method
- Plugins are enabled by adding `<pluginClass
class="Qualified\Class\Name"/>`
- `PluginFacade` provides a single point of contact with Psalm, so that
plugins cannot become coupled to Psalm internals
* added `psalm-plugin` cli tool to manage plugins
Available commands:
`psalm-plugin list` - lists available and enabled plugins
`psalm-plugin enable 'Plugin\Class\Name'` - enables plugin (modifies `psalm.xml`)
`psalm-plugin disable 'Plugin\Class\Name'` - disables plugin (modifies `psalm.xml`)
Plugin installation:
`composer install plugin-vendor/plugin-package-name`
Plugin authoring:
Plugins are identified by package `type` field, which should contain
`psalm-plugin` string.
`extra.pluginClass` should refer to the name of the class implementing
`__invoke(PluginFacade $psalm):void` function
Todo:
- better config file search
- better output for `psalm-plugin`
- better formatting for modified xml file
- composer skeleton project for plugins
- ability to refer to plugins by package name (cli only)
- composer plugin to (optionally) enable plugin upon installation
- documentation on plugin installation and authoring
- interfaces for plugin dependencies
- interface for plugin entry point
- migration path for legacy plugins
* documented previously undocumented plugin methods
* split legacy plugin registration into a wrapper class
also added `PluginApi` namespace and `RegistrationInterface`
* reuse psalm's config search algorithm
* enable/disable plugins by composer package name
* allow specifying alternative config file name
* whitelist PluginApi namespace
three times, but well, it works now
* interface for plugin entry points
* psalm-plugin as a symfony console app
* fixed errors found by psalm
* suppressed false positive UnusedMethods
* cs fix
* better psalm-plugin output
* don't leave empty `plugins` node to avoid old schema violation
* removed junk file that shouldn't be there
* cs fix
* fixed phpunit failure (constant redefinition)
* work around missing docblock in on symfony console
* php 7.0 compatibility
* allow `pluginClass` child elements as plugin configuration
* decouple console commands from undelying implementation
- introduce PluginListFactory
- add `PluginList::enable(string $class)` and `PluginList::disable(string $class)`
* PluginList tests
* ComposerLock test
* droppped debugging statement
* added part of console command tests
* added tests for EnableCommand
* added DisableCommand tests
* ignore unused args
* ConfigFile test
* disable travis cache in attempt to fix builds
* nah, that didn't work
* update for upstream changes
* rebase fixes
* namespaced `extra` entry for entry point
* s/PluginFacade/PluginRegistrationSocket/g
* Added $config parameter to PluginEntryPointInterface::__invoke()
* cs fixes
* entry point interface php7.0 compatibility
* cleaned up old cruft
- dropped todos I'm not going to pursues
- locked entry point to be a class implementing entry point interface
* fixed legacy plugins docs
* Added RegistrationInterface::registerHooksFromClass()
It mimics the way old plugins were registered in Psalm\Config, so
handler classes extending Psalm\Plugin should be fully compatible with
it.
Since Psalm\Plugin-style plugin registration was moved to
RegistrationSocket, LegacyPlugin now only load file-based plugins, so it
was renamed to FileBasedPluginAdapter.
* Converted EchoChecker plugin to composer-based format
- Its subfolder is registered as a local composer package in the root
composer.json, so it's directly installable with
```
composer require psalm/echo-checker-plugin
```
- Migration is trivial: drop the plugin into a separate folder, then add
simple composer.json and the entry point class.
* Updated docs
* Don't reject hook handlers that inherit handling methods
* strip void return type in stub file
2018-11-10 23:23:36 -05:00
Tyson Andre
6ba76e1589
Fix wording nits in documentation
2018-10-27 13:05:49 -04:00
Matthew Brown
f8b213bb48
Add line break
2018-10-25 13:31:04 -04:00
Matthew Brown
4be2e77dfa
Update ALE info
2018-10-25 13:30:37 -04:00
Brown
4ae218fdea
Format list properly
2018-10-23 18:31:49 -04:00
Brown
c6f00c07e1
Improve formatting
2018-10-23 17:46:05 -04:00
Brown
93ce245767
Capitalise editors
2018-10-23 17:37:48 -04:00
Brown
09ebb2857f
Turn urls into links
2018-10-23 17:35:42 -04:00
Brown
68786b1698
Add link to language server doc
2018-10-23 17:30:36 -04:00
Brown
fc72ac05e4
Add VS Code requirement
2018-10-23 17:27:11 -04:00
Brown
eac28d4291
Add note about new PR
2018-10-23 16:55:07 -04:00
Brown
9ee7b9a1a1
Update VS Code support
2018-10-23 16:52:53 -04:00
Brown
3ca53d4435
Improve formatting of PHPStorm settings
2018-10-23 11:21:32 -04:00
Brown
6e529da5c1
Fix link
2018-10-23 11:20:30 -04:00
Brown
0a3f8d152d
Fix PHPStorm instructions
2018-10-23 11:19:27 -04:00
Brown
bb81bbde6d
Improve emacs LSP code
2018-10-23 10:20:31 -04:00
Matthew Brown
a1b277869b
Fix name
2018-10-22 11:58:53 -04:00
Brown
6af3a226c4
Add docs for language server support
2018-10-19 17:51:07 -04:00
Tyson Andre
e0dda676ed
nit: Fix return type in docs/supported_annotations.md
2018-10-18 17:21:32 -04:00
Dave Liddament
af149bd4dc
ADD extra documentation about psalm-assert
...
Maybe this will be obvious to others, but it probably took me about 3 hours to realise this was possible. Hopefully this doc update will save others time too.
2018-10-11 15:54:37 -04:00
Matthew Brown
afebefba19
Switch from --cache-results to --diff-methods flag
2018-10-07 00:42:25 -04:00
Matthew Brown
265157d814
Add a note about using threads
2018-09-30 16:05:42 -04:00
Matthew Brown
04f78771b5
Add section about running faster builds
2018-09-30 11:34:51 -04:00
Matthew Brown
890412b557
Add support back for parser errors
2018-09-30 11:34:51 -04:00
Matt Brown
4d4e84e6e9
Add specific ForbiddenEcho issue if a config flag is set
2018-09-18 17:08:32 -04:00
Matt Brown
cb63f4f70f
Add support for checking DeprecatedTrait and DeprecatedConstant
2018-08-10 13:25:25 -04:00
Tyson Andre
06abf52d94
Fix typos detected by misspell
( #924 )
...
Both of initiali[sz]e were used, z was more common.
2018-08-02 00:40:51 -04:00
Tyson Andre
9b7ca80fa4
nit: fix typo in docs ( #917 )
...
https://www.vocabulary.com/dictionary/parenthesis
2018-07-24 16:56:51 -04:00
Matthew Brown
e3ae1bf26f
Fix #15 - check for uncaught throws if config flag is set
2018-06-22 01:13:49 -04:00
Matthew Brown
896790d30c
Add documentation for recently-added features
2018-06-20 00:33:32 -04:00
Matthew Brown
bec227fbc2
Added description of ignoreFiles
directive
2018-06-07 13:37:54 -04:00
Matthew Brown
c4f3bd1558
Add docs for @psalm-assert annotations
2018-06-03 23:38:06 -04:00
Matthew Brown
b5cb2b34a2
Fix #380 - don’t complain about legitimate (if archaic) self calls
2018-06-03 19:11:07 -04:00
Alexey Kopytko
185877276c
Update dealing_with_code_issues.md ( #780 )
2018-05-30 07:08:15 -04:00
Matt Brown
2d6eab85fa
Fix doc example syntax
2018-05-24 14:33:41 -04:00
Matt Brown
e2153db3dc
Add more info to typing guidelines
2018-05-24 14:31:55 -04:00
Matt Brown
bc17d23788
Fix mixed empty checks
2018-05-08 16:34:08 -04:00
Matt Brown
c0729a02cd
Fix remaining issues with logic checks
2018-05-07 14:52:45 -04:00
Matt Brown
383f706d6b
Add docs for usePhpDocMethodsWithoutMagicCall
2018-04-26 19:19:35 -04:00
rightfold
5c908da55a
Check that __clone, __construct, __destruct signatures omit return types
...
PHP complains when you have a return type declared for these three methods.
2018-04-21 16:04:03 -04:00
Matthew Brown
2b34c1d315
Add extra level 8 containing PHP autoload landmines
2018-04-19 01:03:28 -04:00
Matt Brown
aa3ea9c14c
Add a 7th level with even more permissive checks
2018-04-18 15:31:00 -04:00
Matt Brown
5a2f6ff0e0
Fix #624 - change some innaccurate issue names
2018-04-17 14:07:02 -04:00
Matt Brown
6ac2d22f76
Add TOC back to index
2018-04-17 11:29:26 -04:00
Matthew Brown
a03dd6502c
Specify what config levels do
2018-04-15 12:17:07 -04:00
Matthew Brown
ad051dcf6d
Improve installation instructions
2018-04-15 10:56:43 -04:00
Matthew Brown
3dad2ecb97
Fix formatting for mkdocs
2018-04-15 10:51:21 -04:00
Matthew Brown
d07644191e
Remove artificial table of contents
2018-04-15 10:26:03 -04:00
Matt Brown
21b74ae725
Turn useAssertForType on by default (was off)
2018-04-13 17:35:56 -04:00
Matthew Brown
6519748837
Make class-string annotation more clear
2018-04-11 23:55:39 -04:00
Matthew Brown
8337b37179
Added documentation for callable syntax
2018-04-11 15:06:18 -04:00
Matthew Brown
f15c26d7f4
Change how type impossibilities are treated to improve message types
2018-04-10 01:27:26 -04:00
Matthew Brown
3fe9a0606e
Fix #654 - warn about MixedArgument when inferredType property does not exist
...
And handle str_replace more leniently when args unknown
2018-04-07 15:16:46 -04:00
Matthew Brown
ea6875a556
Add description of referencedClass and referencedMethod
2018-03-21 11:56:43 -04:00
Matthew Brown
b634e1a1b7
Add more refined treatment of InvalidIterator
2018-03-20 22:59:22 -04:00
Matthew Brown
d7a585160f
Add more granular error messages for invalid operands
2018-03-18 16:39:34 -04:00
Malachi Soord
c17c3bd5bf
Update dealing_with_code_issues.md
...
Fix type + formatting
2018-03-17 08:05:08 -04:00
Matt Brown
4784239550
Specify config type
2018-03-08 17:28:47 -05:00
Matt Brown
1f3ed0f7b9
Add config link
2018-03-08 17:28:15 -05:00
Matt Brown
ee6852bc77
Add documentation for class-string
2018-03-08 17:26:22 -05:00
Matt Brown
b664c85642
Add new issue conditional on config flag
2018-03-06 12:19:50 -05:00
Matthew Brown
a0ce8791d3
Detect fatal issues where property access is overridden
...
Fixes #547
2018-03-04 12:24:50 -05:00
Matt Brown
e8b4559a6b
Support level 6 and fix docs
2018-03-02 11:09:55 -05:00
Matt Brown
d416e73e8b
Fix nav
2018-02-27 17:27:02 -05:00
Matt Brown
b5e38acfcc
Add Psalter documentation
2018-02-27 17:25:35 -05:00
Matt Brown
a9852c3bc0
Add plugins docs
2018-02-21 20:11:34 -05:00
Matt Brown
d3c327f4f3
Add description of Psalm‘s features
2018-02-21 20:09:30 -05:00
Matt Brown
09d708981a
Add mixed checks to property __set calls
2018-02-21 19:34:21 -05:00
Matthew Brown
783ba5236f
Add more docs to source control
2018-02-17 19:53:17 -05:00
Matthew Brown
59dc239c89
Fix #522 - prevent interface instantiation
2018-02-17 18:53:02 -05:00
Matthew Brown
09f86ceee7
Introduce MissingDependency issue, separate from UndefinedClass
...
Ref #511
2018-02-17 11:36:20 -05:00
Matt Brown
a8ab972889
Remove unnecessary class declarations in docs
2018-02-08 15:30:24 -05:00
Matt Brown
7f4be858c2
Fix #498 - add better issue type for docblock contradiction
2018-02-07 15:20:47 -05:00
Matt Brown
1df4c3d196
Add DocblockTypeContradiction to find possible issues with docblock types
...
Fixes #491
2018-02-06 18:44:53 -05:00
Matthew Brown
5d05a63583
Provide more information about the scanning step
2018-02-04 12:51:45 -05:00
Matthew Brown
952479fbc0
Add newline
2018-01-30 11:31:46 -05:00
Matthew Brown
10377ca0d3
Add changes from @nickr
2018-01-30 11:31:17 -05:00
Matthew Brown
6b4fb62d0d
Fix links
2018-01-30 00:17:07 -05:00
Matthew Brown
06ce55b338
Add supported annotations docs
2018-01-30 00:14:36 -05:00
Matthew Brown
07788076e7
Require all new issues to be documented
2018-01-29 00:39:21 -05:00
Matthew Brown
c4be89bf37
Validate docs by running code through them
2018-01-28 23:41:11 -05:00
Matthew Brown
2d9cda6edf
Add tick
2018-01-14 15:43:26 -05:00
Matthew Brown
0bed03a178
Remove stray bracket
2018-01-14 15:38:00 -05:00
Matthew Brown
c0b3f7d57f
Add link to Reconciler source
2018-01-14 15:37:23 -05:00
Matthew Brown
92b120560c
Add a how-Psalm-works file
2018-01-14 15:32:10 -05:00
Matthew Brown
fe96868e27
Add documentation
2018-01-07 17:25:23 -05:00
Matthew Brown
7418d6685f
Add PossibyInvalidFunctionCall, emitted when function call may not be valid
2018-01-01 12:00:02 -05:00
Matthew Brown
38e48a8c1c
Fix return type mismatch
2017-12-31 20:42:06 -05:00
Matthew Brown
b46011b3a5
Fix invalid public function in docs
2017-12-31 20:40:27 -05:00
Matthew Brown
14722a2828
Finish documenting all issues
2017-12-31 20:32:47 -05:00
Matthew Brown
cbe76d760b
Add more issue descriptions
2017-12-31 17:32:35 -05:00
Matthew Brown
4a05dfb338
Add documentation for all Possibly* issues
2017-12-31 14:45:23 -05:00
Matthew Brown
690789b829
Add more documentation
2017-12-31 13:13:12 -05:00
Matthew Brown
392faecebc
Finish documenting Mixed* issues
2017-12-24 01:11:08 +01:00
Matthew Brown
50074bfab1
Add more docs
2017-12-22 17:56:21 +01:00
Matthew Brown
885ccb4fae
Add more documentation
2017-12-13 11:57:46 -05:00
Matthew Brown
45cafa74e4
Add more docs
2017-12-12 01:16:51 -05:00
Matthew Brown
9c2489229c
Add issue stubs
2017-12-12 00:49:40 -05:00