Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15414652
D11458.id27543.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
D11458.id27543.diff
View Options
diff --git a/src/lint/linter/ArcanistTextLinter.php b/src/lint/linter/ArcanistTextLinter.php
--- a/src/lint/linter/ArcanistTextLinter.php
+++ b/src/lint/linter/ArcanistTextLinter.php
@@ -15,6 +15,7 @@
const LINT_EOF_WHITESPACE = 9;
private $maxLineLength = 80;
+ private $parser;
public function getInfoName() {
return pht('Basic Text Linter');
@@ -88,6 +89,11 @@
);
}
+ public function willLintPaths(array $paths) {
+ $root = $this->getEngine()->getWorkingCopy()->getProjectRoot();
+ $this->parser = new PhutilEditorConfig($root);
+ }
+
public function lintPath($path) {
if (!strlen($this->getData($path))) {
// If the file is empty, don't bother; particularly, don't require
@@ -117,6 +123,12 @@
}
protected function lintNewlines($path) {
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'end_of_line') == 'lf') {
+ return;
+ }
+
$data = $this->getData($path);
$pos = strpos($this->getData($path), "\r");
@@ -135,6 +147,12 @@
}
protected function lintTabs($path) {
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'indent_style') == 'tabs') {
+ return;
+ }
+
$pos = strpos($this->getData($path), "\t");
if ($pos !== false) {
$this->raiseLintAtOffset(
@@ -166,6 +184,12 @@
}
protected function lintEOFNewline($path) {
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'insert_final_newline')) {
+ return;
+ }
+
$data = $this->getData($path);
if (!strlen($data) || $data[strlen($data) - 1] != "\n") {
$this->raiseLintAtOffset(
@@ -180,6 +204,12 @@
protected function lintCharset($path) {
$data = $this->getData($path);
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'charset') != 'utf-8') {
+ return;
+ }
+
$matches = null;
$bad = '[^\x09\x0A\x20-\x7E]';
$preg = preg_match_all(
@@ -212,6 +242,12 @@
protected function lintTrailingWhitespace($path) {
$data = $this->getData($path);
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'trim_trailing_whitespace')) {
+ return;
+ }
+
$matches = null;
$preg = preg_match_all(
'/ +$/m',
@@ -240,6 +276,12 @@
protected function lintBOFWhitespace($path) {
$data = $this->getData($path);
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'trim_trailing_whitespace')) {
+ return;
+ }
+
$matches = null;
$preg = preg_match(
'/^\s*\n/',
@@ -265,6 +307,12 @@
protected function lintEOFWhitespace($path) {
$data = $this->getData($path);
+ if (!$this->parser->getConfig(
+ $this->getEngine()->getFilePathOnDisk($path),
+ 'trim_trailing_whitespace')) {
+ return;
+ }
+
$matches = null;
$preg = preg_match(
'/(?<=\n)\s+$/',
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 21, 1:49 AM (2 d, 7 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7713579
Default Alt Text
D11458.id27543.diff (2 KB)
Attached To
Mode
D11458: Modify `ArcanistTextLinter` to respect `.editorconfig`
Attached
Detach File
Event Timeline
Log In to Comment