📄 checkstyle.jsl
字号:
<?xml version="1.0"?>
<jsl:stylesheet
select="$doc"
xmlns:j="jelly:core"
xmlns:jsl="jelly:jsl"
xmlns:util="jelly:util"
xmlns:x="jelly:xml"
xmlns:doc="doc"
xmlns="dummy" trim="false">
<!-- This needs to be instantiated here to be available in the template matches -->
<j:useBean var="mavenTool" class="org.apache.maven.MavenTool"/>
<j:useBean var="htmlescape" class="org.apache.velocity.anakia.Escape"/>
<j:useBean var="fileutil" class="org.apache.velocity.texen.util.FileUtil"/>
<j:useBean var="pathtool" class="org.apache.maven.DVSLPathTool"/>
<jsl:template match="checkstyle">
<document>
<properties>
<title>Checkstyle Results</title>
</properties>
<body>
<section name="Checkstyle Results">
<p>
The following document contains the results of
<a
href="http://checkstyle.sourceforge.net/">Checkstyle</a>.
</p>
</section>
<section name="Summary">
<j:set var="fileCount"><x:expr select="count(file)"/></j:set>
<j:set var="errorCount"><x:expr select="count(file/error)"/></j:set>
<table>
<tr>
<th>Files</th>
<th>Errors</th>
</tr>
<tr>
<td><doc:formatAsNumber string="${fileCount}" pattern="0"/></td>
<td><doc:formatAsNumber string="${errorCount}" pattern="0"/></td>
</tr>
</table>
</section>
<section name="Files">
<table>
<tr>
<th>Files</th>
<th>Errors</th>
</tr>
<j:set var="fullSrcDir" value="${basedir}/${pom.build.sourceDirectory}"/>
<j:set var="srcDir" value="${fileutil.file(fullSrcDir).getAbsolutePath()}"/>
<j:set var="srcDirLength" value="${srcDir.length() + 1}"/>
<x:set var="files" select="file"/>
<!-- x:forEach is busted -->
<j:forEach var="file" items="${files}">
<!-- Type coercion doesn't work worth a fuck in jexl. -->
<j:set var="name" value="${file.attribute('name').getValue()}"/>
<j:set var="name" value="${name.substring(mavenTool.toInteger(srcDirLength.toString()))}"/>
<util:replace var="name" value="${name}" oldChar="\\" newChar="/"/>
<!--- +1 is for the trailing slash above -->
<j:set var="errorCount"><x:expr select="count($file/error)"/></j:set>
<j:if test="${errorCount != 0}">
<tr>
<td>
<a href="#${name}">${name}</a>
</td>
<td><doc:formatAsNumber string="${errorCount}" pattern="0"/></td>
</tr>
</j:if>
</j:forEach>
</table>
<j:forEach var="file" items="${files}">
<x:set var="errorCount" select="count($file/error)"/>
<j:if test="${errorCount != 0}">
<j:set var="name" value="${file.attribute('name').getValue()}"/>
<j:set var="name" value="${name.substring(mavenTool.toInteger(srcDirLength.toString()))}"/>
<util:replace var="name" value="${name}" oldChar="\\" newChar="/"/>
<subsection name="${name}">
<table>
<tr>
<th>Error</th>
<th>Line</th>
</tr>
<x:set var="errors" select="$file/error"/>
<j:forEach var="error" items="${errors}">
<tr>
<td>
<j:set var="errorMessage" value="${error.attribute('message').getValue()}"/>
${htmlescape.getText(errorMessage)}
</td>
<td>
<j:set var="line" value="${error.attribute('line').getValue()}"/>
<j:set var="lastIndex" value="${name.lastIndexOf('.java')}"/>
<j:choose>
<j:when test="${lastIndex > 0}">
<j:set var="index" value="${mavenTool.toInteger(lastIndex.toString())}"/>
<j:set var="nameWithoutJavaExtension" value="${name.substring(0, index)}"/>
<util:replace var="nameWithoutJavaExtension" value="${nameWithoutJavaExtension}" oldChar="\\" newChar="/"/>
<a href="xref/${nameWithoutJavaExtension}.html#${line}">${line}</a>
</j:when>
<j:otherwise>
${line}
</j:otherwise>
</j:choose>
</td>
</tr>
</j:forEach>
</table>
</subsection>
</j:if>
</j:forEach>
</section>
</body>
</document>
</jsl:template>
</jsl:stylesheet>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -