diff --git a/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php b/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php index d0d1766750e..d2531d85af4 100644 --- a/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php +++ b/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php @@ -264,6 +264,8 @@ public function __construct( int $threads = 1, ?Progress $progress = null ) { + self::$instance = $this; + if ($progress === null) { $progress = new VoidProgress(); } @@ -289,6 +291,7 @@ public function __construct( $this->stdout_report_options = $stdout_report_options; $this->generated_report_options = $generated_report_options; + $this->config->initializePlugins($this); $file_extensions = $this->config->getFileExtensions(); foreach ($this->config->getProjectDirectories() as $dir_name) { @@ -314,8 +317,6 @@ public function __construct( foreach ($this->config->getProjectFiles() as $file_path) { $this->addProjectFile($file_path); } - - self::$instance = $this; } private function clearCacheDirectoryIfConfigOrComposerLockfileChanged() : void @@ -435,7 +436,7 @@ public function server(?string $address = '127.0.0.1:12345', bool $socket_server } } - $this->config->initializePlugins($this); + #$this->config->initializePlugins($this); foreach ($this->config->getProjectDirectories() as $dir_name) { $this->checkDirWithConfig($dir_name, $this->config); @@ -589,7 +590,7 @@ public function check(string $base_dir, bool $is_diff = false): void $this->codebase->scanner->addFilesToDeepScan($this->project_files); $this->codebase->analyzer->addFilesToAnalyze($this->project_files); - $this->config->initializePlugins($this); + #$this->config->initializePlugins($this); $this->codebase->scanFiles($this->threads); @@ -612,7 +613,7 @@ public function check(string $base_dir, bool $is_diff = false): void $this->checkDiffFilesWithConfig($this->config, $file_list); - $this->config->initializePlugins($this); + #$this->config->initializePlugins($this); $this->codebase->scanFiles($this->threads); } else { @@ -994,7 +995,7 @@ public function checkDir(string $dir_name): void $this->progress->startScanningFiles(); - $this->config->initializePlugins($this); + #$this->config->initializePlugins($this); $this->codebase->scanFiles($this->threads); @@ -1125,7 +1126,7 @@ public function checkFile(string $file_path): void $this->progress->startScanningFiles(); - $this->config->initializePlugins($this); + #$this->config->initializePlugins($this); $this->codebase->scanFiles($this->threads); @@ -1166,8 +1167,7 @@ public function checkPaths(array $paths_to_check): void $this->progress->startScanningFiles(); - $this->config->initializePlugins($this); - + #$this->config->initializePlugins($this); $this->codebase->scanFiles($this->threads); diff --git a/src/Psalm/PluginRegistrationSocket.php b/src/Psalm/PluginRegistrationSocket.php index ea1576ef4e6..db4e8ac0384 100644 --- a/src/Psalm/PluginRegistrationSocket.php +++ b/src/Psalm/PluginRegistrationSocket.php @@ -204,7 +204,9 @@ public function getAdditionalFileExtensions(): array */ private function addFileExtension(string $fileExtension): void { - if (!in_array($fileExtension, $this->config->getFileExtensions(), true)) { + if (!in_array($fileExtension, $this->additionalFileExtensions, true) + && !in_array($fileExtension, $this->config->getFileExtensions(), true) + ) { $this->additionalFileExtensions[] = $fileExtension; } }