From 23afdb99f0cf3852ddd5fdbffea2cfec64c8b355 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 6 May 2011 08:34:18 -0700 Subject: [PATCH] Allow ArcanistLinter to load files not directly affected by lint Summary: This is necessary for the Javelin linters. The libphutil and flib linters do it implicitly, so there's no real tradeoff here. Test Plan: Ran javelin linters. Reviewed By: tuomaspelkonen Reviewers: tomo, aran, jungejason, tuomaspelkonen CC: aran, tuomaspelkonen, epriestley Differential Revision: 238 --- src/lint/linter/base/ArcanistLinter.php | 9 +++++++-- src/lint/linter/base/__init__.php | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lint/linter/base/ArcanistLinter.php b/src/lint/linter/base/ArcanistLinter.php index b704c41d..4b3bbe23 100644 --- a/src/lint/linter/base/ArcanistLinter.php +++ b/src/lint/linter/base/ArcanistLinter.php @@ -67,12 +67,17 @@ abstract class ArcanistLinter { protected function getData($path) { if (!array_key_exists($path, $this->data)) { - throw new Exception("Data is not provided for path '{$path}'!"); + $disk_path = $this->getEngine()->getFilePathOnDisk($path); + if ($disk_path) { + $this->data[$path] = Filesystem::readFile($disk_path); + } else { + throw new Exception("Data is not provided for path '{$path}'!"); + } } return $this->data[$path]; } - public function setEngine($engine) { + public function setEngine(ArcanistLintEngine $engine) { $this->engine = $engine; return $this; } diff --git a/src/lint/linter/base/__init__.php b/src/lint/linter/base/__init__.php index 4e79e23c..1b364bf5 100644 --- a/src/lint/linter/base/__init__.php +++ b/src/lint/linter/base/__init__.php @@ -5,8 +5,11 @@ */ + phutil_require_module('arcanist', 'lint/message'); phutil_require_module('arcanist', 'lint/severity'); +phutil_require_module('phutil', 'filesystem'); + phutil_require_source('ArcanistLinter.php');