2020-06-10 20:20:05 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';
|
|
|
|
|
|
|
|
$cfg['directory_list'] = array_merge(
|
|
|
|
$cfg['directory_list'],
|
|
|
|
[
|
|
|
|
'../../extensions/VisualEditor',
|
2021-02-09 21:51:09 +00:00
|
|
|
'../../extensions/Echo',
|
2021-10-18 08:32:17 +00:00
|
|
|
'../../extensions/EventLogging',
|
2022-01-19 20:39:54 +00:00
|
|
|
'../../extensions/Gadgets',
|
2023-08-15 14:22:36 +00:00
|
|
|
'../../extensions/BetaFeatures',
|
2020-06-10 20:20:05 +00:00
|
|
|
]
|
|
|
|
);
|
|
|
|
|
|
|
|
$cfg['exclude_analysis_directory_list'] = array_merge(
|
|
|
|
$cfg['exclude_analysis_directory_list'],
|
|
|
|
[
|
|
|
|
'../../extensions/VisualEditor',
|
2021-02-09 21:51:09 +00:00
|
|
|
'../../extensions/Echo',
|
2021-10-18 08:32:17 +00:00
|
|
|
'../../extensions/EventLogging',
|
2022-01-19 20:39:54 +00:00
|
|
|
'../../extensions/Gadgets',
|
2023-08-15 14:22:36 +00:00
|
|
|
'../../extensions/BetaFeatures',
|
2020-06-10 20:20:05 +00:00
|
|
|
]
|
|
|
|
);
|
|
|
|
|
2022-10-28 18:24:02 +00:00
|
|
|
$cfg['warn_about_undocumented_throw_statements'] = true;
|
|
|
|
$cfg['exception_classes_with_optional_throws_phpdoc'] = [
|
|
|
|
'LogicException',
|
|
|
|
'RuntimeException',
|
|
|
|
'DOMException',
|
|
|
|
];
|
|
|
|
$cfg['warn_about_undocumented_exceptions_thrown_by_invoked_functions'] = true;
|
|
|
|
|
2022-01-20 21:17:37 +00:00
|
|
|
/**
|
|
|
|
* Quick implementation of a recursive directory list.
|
|
|
|
* @param string $dir The directory to list
|
|
|
|
* @param ?array &$result Where to put the result
|
|
|
|
*/
|
|
|
|
function wfCollectPhpFiles( string $dir, ?array &$result = [] ) {
|
|
|
|
if ( !is_dir( $dir ) ) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
foreach ( scandir( $dir ) as $f ) {
|
|
|
|
if ( $f === '.' || $f === '..' ) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$fullName = $dir . DIRECTORY_SEPARATOR . $f;
|
|
|
|
wfCollectPhpFiles( $fullName, $result );
|
|
|
|
if ( is_file( $fullName ) && preg_match( '/\.php$/D', $fullName ) ) {
|
|
|
|
$result[] = $fullName;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Exclude Parsoid's src/DOM in favour of .phan/stubs/DomImpl.php
|
2022-11-05 16:45:01 +00:00
|
|
|
wfCollectPhpFiles( "{$VP}/vendor/wikimedia/parsoid/src/DOM", $cfg['exclude_file_list'] );
|
2022-01-20 21:17:37 +00:00
|
|
|
|
2020-06-10 20:20:05 +00:00
|
|
|
return $cfg;
|