Skip to content

Commit

Permalink
Add Vaimo Parser (#301)
Browse files Browse the repository at this point in the history
  • Loading branch information
heliocodacy authored Nov 11, 2024
1 parent cf98a30 commit 91192f9
Showing 10 changed files with 95 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@ class Generator() {
new PHPCSSecurityAuditDocsParser(),
new SlevomatCSDocsParser(),
new SymfonyDocsParser(),
new VaimoUKParser(),
new VipWordPressDocsParser(),
new WordPressCSDocsParser()
)
Original file line number Diff line number Diff line change
@@ -22,4 +22,5 @@ object VersionsHelper {
lazy val slevomatCS = properties("slevomat/coding-standard").str.replace("^","")
lazy val codesniffer = properties("squizlabs/php_codesniffer").str.replace("^","")
lazy val wordpress = properties("wp-coding-standards/wpcs").str.replace("^","")
lazy val vaimoUK = properties("vaimo/uk-phpcs-standards").str.replace("^","")
}
Original file line number Diff line number Diff line change
@@ -87,6 +87,7 @@ trait DocsParser {

private[this] def withRepo[A](repositoryURL: String, checkoutCommit: String)(f: File => A): Either[Throwable, A] = {
val dir = Files.createTempDirectory("")
println(s"Cloning $repositoryURL into $dir")
for {
_ <- Right(
CommandRunner
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package codacy.codesniffer.docsgen.parsers

import codacy.codesniffer.docsgen.VersionsHelper
import scala.util.matching.Regex

import better.files.File
import com.codacy.plugins.api.results.Pattern

import scala.annotation.nowarn

class VaimoUKParser extends DocsParser {

override val repositoryURL = "https://bitbucket.org/vaimo/uk-phpcs-standards.git"

override val checkoutCommit: String = VersionsHelper.vaimoUK


override val sniffRegex: Regex = """.*(Vaimo)\/Sniffs\/(.*?)\/(.*?)Sniff.php""".r

@nowarn("msg=match may not be exhaustive")
override def patternIdPartsFor(relativizedFilePath: String): PatternIdParts = {
val sniffRegex(vaimoVersion, sniffType, patternName) = relativizedFilePath
PatternIdParts(vaimoVersion, sniffType, patternName)
}

override def descriptionWithDocs(rootDir: File,
patternIdParts: PatternIdParts,
patternFile: File
): (Pattern.Description, Option[String]) = {
(description(patternIdParts, rootDir),
this.parseExtendedDescription("Vaimo\\Sniffs\\Custom", "Vaimo", patternIdParts, rootDir)
)
}

private[this] def description(patternIdParts: PatternIdParts, rootDir: File): Pattern.Description = {
val caseRegexPattern = """((?<=\p{Ll})\p{Lu}|\p{Lu}(?=\p{Ll}))""".r
val patternName = caseRegexPattern.replaceAllIn(patternIdParts.patternName, " $1").trim
val sniffName = caseRegexPattern.replaceAllIn(patternIdParts.sniffType, " $1").trim
val title = Pattern.Title(s"$sniffName: $patternName")
val extended = this.parseDescription("Vaimo\\Sniffs\\Custom", "Vaimo", patternIdParts, rootDir)
Pattern.Description(patternIdParts.patternId, title, extended, None, Set.empty)
}
}

1 change: 1 addition & 0 deletions docs/description/Vaimo_Custom_ArrayAccess.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Custom: Array Access
1 change: 1 addition & 0 deletions docs/description/Vaimo_Custom_FixMultilineIf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Custom: Fix Multiline If
1 change: 1 addition & 0 deletions docs/description/Vaimo_Custom_LegacyDocblockTags.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Custom: Legacy Docblock Tags
1 change: 1 addition & 0 deletions docs/description/Vaimo_Custom_NoPhpCsDisable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Custom: No Php Cs Disable
16 changes: 16 additions & 0 deletions docs/description/description.json
Original file line number Diff line number Diff line change
@@ -4103,6 +4103,22 @@
"patternId" : "Symfony_Whitespace_DiscourageFitzinator",
"title" : "Whitespace: Discourage Fitzinator",
"parameters" : [ ]
}, {
"patternId" : "Vaimo_Custom_ArrayAccess",
"title" : "Custom: Array Access",
"parameters" : [ ]
}, {
"patternId" : "Vaimo_Custom_FixMultilineIf",
"title" : "Custom: Fix Multiline If",
"parameters" : [ ]
}, {
"patternId" : "Vaimo_Custom_LegacyDocblockTags",
"title" : "Custom: Legacy Docblock Tags",
"parameters" : [ ]
}, {
"patternId" : "Vaimo_Custom_NoPhpCsDisable",
"title" : "Custom: No Php Cs Disable",
"parameters" : [ ]
}, {
"patternId" : "WordPressVIPMinimum_Classes_DeclarationCompatibility",
"title" : "Classes: Declaration Compatibility",
28 changes: 28 additions & 0 deletions docs/patterns.json
Original file line number Diff line number Diff line change
@@ -6374,6 +6374,34 @@
"parameters" : [ ],
"languages" : [ ],
"enabled" : false
}, {
"patternId" : "Vaimo_Custom_ArrayAccess",
"level" : "Info",
"category" : "CodeStyle",
"parameters" : [ ],
"languages" : [ ],
"enabled" : false
}, {
"patternId" : "Vaimo_Custom_FixMultilineIf",
"level" : "Info",
"category" : "CodeStyle",
"parameters" : [ ],
"languages" : [ ],
"enabled" : false
}, {
"patternId" : "Vaimo_Custom_LegacyDocblockTags",
"level" : "Info",
"category" : "CodeStyle",
"parameters" : [ ],
"languages" : [ ],
"enabled" : false
}, {
"patternId" : "Vaimo_Custom_NoPhpCsDisable",
"level" : "Info",
"category" : "CodeStyle",
"parameters" : [ ],
"languages" : [ ],
"enabled" : false
}, {
"patternId" : "WordPressVIPMinimum_Classes_DeclarationCompatibility",
"level" : "Info",

0 comments on commit 91192f9

Please sign in to comment.