diff --git a/.gitignore b/.gitignore
index 08a3264a6..86c371fbf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -93,3 +93,6 @@ hsf.configuration/
*.instance
out
!/p3c-idea/src/main/kotlin/com/alibaba/smartfox/work/tools/aone/ui/AoneBranchView.kt
+
+#versions-maven-plugin
+*.versionsBackup
\ No newline at end of file
diff --git a/build.cmd b/build.cmd
new file mode 100644
index 000000000..e18f2840d
--- /dev/null
+++ b/build.cmd
@@ -0,0 +1,17 @@
+cd ./p3c-pmd
+call mvn clean install -Dmaven.javadoc.skip=false -e
+cd ../
+cd ./idea-plugin
+
+cd ./p3c-common
+call ../gradlew publishToMavenLocal
+cd ../
+
+cd ./p3c-idea
+call ../gradlew publishToMavenLocal
+cd ../
+
+call ./gradlew buildPlugin
+
+cd ../
+pause
diff --git a/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/pmd/RulePriority.kt b/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/pmd/RulePriority.kt
index 260ffc15c..bafd984cf 100644
--- a/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/pmd/RulePriority.kt
+++ b/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/pmd/RulePriority.kt
@@ -17,7 +17,11 @@ package com.alibaba.smartfox.eclipse.pmd
enum class RulePriority(val priority: Int, val title: String) {
- Blocker(1, "Blocker"), Critical(2, "Critical"), Major(3, "Major");
+ Blocker(1, "Blocker"),
+ Critical(2, "Critical"),
+ Major(3, "Major"),
+ Warning(4, "Warning"),
+ WeakWarning(5, "Weak Warning");
override fun toString(): String {
return title
@@ -28,7 +32,7 @@ enum class RulePriority(val priority: Int, val title: String) {
try {
return RulePriority.values()[priority - 1]
} catch (e: ArrayIndexOutOfBoundsException) {
- return Major
+ return WeakWarning
}
}
}
diff --git a/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/ui/InspectionResults.kt b/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/ui/InspectionResults.kt
index 3e1482081..8df16ebfc 100644
--- a/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/ui/InspectionResults.kt
+++ b/eclipse-plugin/com.alibaba.smartfox.eclipse.plugin/src/main/kotlin/com/alibaba/smartfox/eclipse/ui/InspectionResults.kt
@@ -98,6 +98,8 @@ object InspectionResults {
return "${map[RulePriority.Blocker.title]?.count ?: 0} Blockers," +
"${map[RulePriority.Critical.title]?.count ?: 0} Criticals," +
- "${map[RulePriority.Major.title]?.count ?: 0} Majors"
+ "${map[RulePriority.Major.title]?.count ?: 0} Majors," +
+ "${map[RulePriority.Warning.title]?.count ?: 0} Warnings," +
+ "${map[RulePriority.WeakWarning.title]?.count ?: 0} Weak Warnings"
}
}
diff --git a/eclipse-plugin/pom.xml b/eclipse-plugin/pom.xml
index b93603c17..591fe6eb8 100644
--- a/eclipse-plugin/pom.xml
+++ b/eclipse-plugin/pom.xml
@@ -11,9 +11,9 @@
1.0.0
${tycho.version}
- http://download.eclipse.org/releases/neon
+ https://download.eclipse.org/releases/neon
UTF-8
- http://download.eclipse.org/tools/ajdt/46/dev/update
+ https://download.eclipse.org/tools/ajdt/46/dev/update
1.3.30
juno
@@ -44,7 +44,7 @@
juno
p2
- http://mirrors.ustc.edu.cn/eclipse/releases/juno/
+ https://mirrors.ustc.edu.cn/eclipse/releases/juno/
sonatype-nexus-snapshots
@@ -187,7 +187,7 @@
none
- http://download.eclipse.org/eclipse/updates/4.4
+ https://download.eclipse.org/eclipse/updates/4.4
diff --git a/idea-plugin/README_cn.md b/idea-plugin/README_cn.md
index 90ab1feb9..f9242f7e3 100644
--- a/idea-plugin/README_cn.md
+++ b/idea-plugin/README_cn.md
@@ -93,7 +93,7 @@ Alt+Enter键可呼出Intention菜单,不同的规则会提示不同信息的Qu

#### 扫描结果
-检测结果直接使用IDEA Run Inspection By Name功能的结果界面,插件的检测结果分级为Blocker、Critical、Major。默认按等级分组,方便统计每个级别错误的数量。
+检测结果直接使用IDEA Run Inspection By Name功能的结果界面,插件的检测结果分级为Blocker、Critical、Major、Warning、Weak Warning。默认按等级分组,方便统计每个级别错误的数量。

diff --git a/idea-plugin/gradle.properties b/idea-plugin/gradle.properties
index 3b8d8f0a7..3ac1ae6af 100644
--- a/idea-plugin/gradle.properties
+++ b/idea-plugin/gradle.properties
@@ -11,4 +11,4 @@ idea_version=IU-201.6668.121
plugin_name=Alibaba Java Coding Guidelines
gradle_jetbrains_version=0.4.16
systemProp.file.encoding=UTF-8
-plugin_version=2.0.1.1x
+plugin_version=2.0.1.2x-SNAPSHOT
diff --git a/idea-plugin/p3c-common/build.gradle b/idea-plugin/p3c-common/build.gradle
index 3d457b0a5..eb1c6fe68 100644
--- a/idea-plugin/p3c-common/build.gradle
+++ b/idea-plugin/p3c-common/build.gradle
@@ -50,9 +50,9 @@ version '2.0.1'
ext.isReleaseVersion = !version.endsWith("SNAPSHOT")
dependencies {
- compile group: 'org.freemarker', name: 'freemarker', version: '2.3.25-incubating'
- compile 'com.alibaba.p3c:p3c-pmd:2.0.1.1x'
- compile group: 'org.javassist', name: 'javassist', version: '3.21.0-GA'
+ compile group: 'org.freemarker', name: 'freemarker', version: '2.3.30'
+ compile 'com.alibaba.p3c:p3c-pmd:2.0.1.2x-SNAPSHOT'
+ compile group: 'org.javassist', name: 'javassist', version: '3.27.0-GA'
}
uploadArchives {
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/activity/CommonSettingsApplicationStartupActivity.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/activity/CommonSettingsApplicationStartupActivity.kt
index cc56164a2..8233f2d02 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/activity/CommonSettingsApplicationStartupActivity.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/activity/CommonSettingsApplicationStartupActivity.kt
@@ -31,7 +31,7 @@ import com.intellij.openapi.project.Project
* @author caikang
* @date 2017/06/19
*/
-class CommonSettingsApplicationStartupActivity() : AliBaseApplicationStartupActivity {
+class CommonSettingsApplicationStartupActivity : AliBaseApplicationStartupActivity {
companion object {
val analyticsGroupId = "com.alibaba.p3c.analytics.action_group"
val analyticsGroupText = "$analyticsGroupId.text"
@@ -42,6 +42,8 @@ class CommonSettingsApplicationStartupActivity() : AliBaseApplicationStartupActi
SeverityRegistrar.registerStandard(HighlightInfoTypes.BLOCKER, HighlightSeverities.BLOCKER)
SeverityRegistrar.registerStandard(HighlightInfoTypes.CRITICAL, HighlightSeverities.CRITICAL)
SeverityRegistrar.registerStandard(HighlightInfoTypes.MAJOR, HighlightSeverities.MAJOR)
+ SeverityRegistrar.registerStandard(HighlightInfoTypes.WARNING, HighlightSeverities.WARNING)
+ SeverityRegistrar.registerStandard(HighlightInfoTypes.WEAK_WARNING, HighlightSeverities.WEAK_WARNING)
I18nResources.changeLanguage(p3cConfig.locale)
val analyticsGroup = ActionManager.getInstance().getAction(analyticsGroupId)
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/PmdRuleInspectionIdentify.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/PmdRuleInspectionIdentify.kt
index b84b5bd36..c3043f366 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/PmdRuleInspectionIdentify.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/PmdRuleInspectionIdentify.kt
@@ -22,5 +22,4 @@ package com.alibaba.p3c.idea.inspection
* @date 2017/03/16
6
*/
-interface PmdRuleInspectionIdentify {
-}
\ No newline at end of file
+interface PmdRuleInspectionIdentify
\ No newline at end of file
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/RuleInspectionUtils.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/RuleInspectionUtils.kt
index 3f0693d76..c8d82eb66 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/RuleInspectionUtils.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/inspection/RuleInspectionUtils.kt
@@ -95,7 +95,9 @@ object RuleInspectionUtils {
when (rulePriority) {
RulePriority.HIGH -> return HighlightDisplayLevels.BLOCKER
RulePriority.MEDIUM_HIGH -> return HighlightDisplayLevels.CRITICAL
- else -> return HighlightDisplayLevels.MAJOR
+ RulePriority.MEDIUM -> return HighlightDisplayLevels.MAJOR
+ RulePriority.MEDIUM_LOW -> return HighlightDisplayLevels.WARNING
+ else -> return HighlightDisplayLevels.WEAK_WARNING
}
}
@@ -110,8 +112,7 @@ object RuleInspectionUtils {
map.put("message", StringUtils.trimToEmpty(rule.message))
map.put("description", StringUtils.trimToEmpty(rule.description))
val examples = rule.examples.map {
- it?.trim {
- c ->
+ it?.trim { c ->
c == '\n'
}
}
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightDisplayLevels.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightDisplayLevels.kt
index 4c42da961..87afd7b68 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightDisplayLevels.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightDisplayLevels.kt
@@ -27,4 +27,6 @@ object HighlightDisplayLevels {
val BLOCKER = HighlightDisplayLevel(HighlightSeverities.BLOCKER, HighlightDisplayLevel.ERROR.icon)
val CRITICAL = HighlightDisplayLevel(HighlightSeverities.CRITICAL, HighlightDisplayLevel.WARNING.icon)
val MAJOR = HighlightDisplayLevel(HighlightSeverities.MAJOR, HighlightDisplayLevel.WEAK_WARNING.icon)
+ val WARNING = HighlightDisplayLevel(HighlightSeverities.WARNING, HighlightDisplayLevel.WEAK_WARNING.icon)
+ val WEAK_WARNING = HighlightDisplayLevel(HighlightSeverities.WEAK_WARNING, HighlightDisplayLevel.INFO.icon)
}
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightInfoTypes.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightInfoTypes.kt
index 16504ca8a..d93707878 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightInfoTypes.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightInfoTypes.kt
@@ -31,4 +31,8 @@ object HighlightInfoTypes {
CodeInsightColors.WARNINGS_ATTRIBUTES)
val MAJOR: HighlightInfoType = HighlightInfoType.HighlightInfoTypeImpl(HighlightSeverities.MAJOR,
CodeInsightColors.WEAK_WARNING_ATTRIBUTES)
+ val WARNING: HighlightInfoType = HighlightInfoType.HighlightInfoTypeImpl(HighlightSeverities.WARNING,
+ CodeInsightColors.WEAK_WARNING_ATTRIBUTES)
+ val WEAK_WARNING: HighlightInfoType = HighlightInfoType.HighlightInfoTypeImpl(HighlightSeverities.WEAK_WARNING,
+ CodeInsightColors.INFO_ATTRIBUTES)
}
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightSeverities.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightSeverities.kt
index 5f75753ba..80017e281 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightSeverities.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/p3c/idea/util/HighlightSeverities.kt
@@ -24,16 +24,14 @@ import com.intellij.lang.annotation.HighlightSeverity
* @date 2017/02/04
*/
object HighlightSeverities {
+ val BLOCKER = HighlightSeverity("BLOCKER", 399)
+
+ val CRITICAL = HighlightSeverity("CRITICAL", 398)
+
val MAJOR = HighlightSeverity("MAJOR", 397)
+ val WARNING = HighlightSeverity("WARNING", 396)
- /**
- * The standard severity level for warning annotations.
- */
- val CRITICAL = HighlightSeverity("CRITICAL", 398)
+ val WEAK_WARNING = HighlightSeverity("WEAK_WARNING", 395)
- /**
- * The standard severity level for error annotations.
- */
- val BLOCKER = HighlightSeverity("BLOCKER", 399)
}
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/activity/AliBaseApplicationStartupActivity.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/activity/AliBaseApplicationStartupActivity.kt
index 45de082d4..13825f868 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/activity/AliBaseApplicationStartupActivity.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/activity/AliBaseApplicationStartupActivity.kt
@@ -23,5 +23,4 @@ import com.intellij.openapi.startup.StartupActivity
* @author caikang
* @date 2017/05/11
*/
-interface AliBaseApplicationStartupActivity : StartupActivity {
-}
\ No newline at end of file
+interface AliBaseApplicationStartupActivity : StartupActivity
\ No newline at end of file
diff --git a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/util/BalloonNotifications.kt b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/util/BalloonNotifications.kt
index 813da44d1..8c126cbf5 100644
--- a/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/util/BalloonNotifications.kt
+++ b/idea-plugin/p3c-common/src/main/kotlin/com/alibaba/smartfox/idea/common/util/BalloonNotifications.kt
@@ -102,7 +102,7 @@ object BalloonNotifications {
object LogNotifications {
- val group = buildNotificationGroup(displayId = BalloonNotifications.displayId, displayType = NotificationDisplayType.NONE, isLogByDefault = true);
+ val group = buildNotificationGroup(displayId = BalloonNotifications.displayId, displayType = NotificationDisplayType.NONE, isLogByDefault = true)
fun log(message: String, project: Project? = ProjectManager.getInstance().defaultProject,
title: String = BalloonNotifications.TITLE,
@@ -118,8 +118,8 @@ fun buildNotificationGroup(displayId: String, displayType: NotificationDisplayTy
notificationGroupClass.constructors.forEach {
if (it.parameters.size == 3) {
return it.newInstance(displayId, displayType, isLogByDefault)
- as NotificationGroup;
+ as NotificationGroup
}
}
- throw MethodNotSupportedException("cannot find a suitable constructor for NotificationGroup who accepts [String,NotificationDisplayType,Boolean]");
+ throw MethodNotSupportedException("cannot find a suitable constructor for NotificationGroup who accepts [String,NotificationDisplayType,Boolean]")
}
diff --git a/idea-plugin/p3c-common/src/main/resources/messages/P3cBundle.xml b/idea-plugin/p3c-common/src/main/resources/messages/P3cBundle.xml
index 438ba9469..1792436f3 100644
--- a/idea-plugin/p3c-common/src/main/resources/messages/P3cBundle.xml
+++ b/idea-plugin/p3c-common/src/main/resources/messages/P3cBundle.xml
@@ -4,8 +4,7 @@
阿里编码规约
切换语言至英文(English)
切换语言至中文
-
- 重启后生效]]>
+ 重启后生效]]>
编码规约扫描
关闭实时检测功能
打开实时检测功能
@@ -15,48 +14,28 @@
修改为小写驼峰命名(lowerCamelCase)
为变量添加!
替换为
- 通过类 '%s' 直接访问静态成员
- '%s.%s'
-
+ 通过类 '%s' 直接访问静态成员 '%s.%s'
添加 @Override 注解
为语句加上大括号
翻转 equals 调用
修改为 String[] str 模式
'l' 替换为 'L'
-
- #ref #loc]]>
-
- 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
-
- 不应该通过类实例访问静态成员
- %s #loc
-
+ #ref #loc]]>
+ 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
+ 不应该通过类实例访问静态成员 %s #loc
不能使用过时的类或方法。
-
- 所有的覆写方法,必须加@Override注解。
-
-
- #ref()缺少 '@Override' 注解 #loc]]>
-
- Map/Set的key为自定义对象时,必须重写hashCode和equals。
-
-
- 参数类型 %s 没有重写hashCode和equals #loc
-
-
- #ref 是非线程安全的,请加锁或者使用局部变量 #loc]]>
-
- #ref 没有加大括号 #loc]]>
-
- #ref 应该作为方法 "%s()"的调用方,而不是参数 #loc]]>
-
- #ref 数组定义格式错误 #loc]]>
-
- #ref 应该以大写L结尾 #loc]]>
-
- #ref #loc]]>
+ 所有的覆写方法,必须加@Override注解。
+ #ref()缺少 '@Override' 注解 #loc]]>
+ Map/Set的key为自定义对象时,必须重写hashCode和equals。
+ 参数类型 %s 没有重写hashCode和equals #loc
+ #ref 是非线程安全的,请加锁或者使用局部变量 #loc]]>
+ #ref 没有加大括号 #loc]]>
+ #ref 应该作为方法 "%s()"的调用方,而不是参数 #loc]]>
+ #ref 数组定义格式错误 #loc]]>
+ #ref 应该以大写L结尾 #loc]]>
+ #ref #loc]]>
@@ -81,8 +60,7 @@