GithubHelp home page GithubHelp logo

godfather1103 / p3c Goto Github PK

View Code? Open in Web Editor NEW
61.0 5.0 14.0 35 MB

因为阿里官方长时间不修复相关bug,所以只能自己fork一份,修复使用过程中遇到的问题

Home Page: https://plugins.jetbrains.com/plugin/22381-alibaba-java-coding-guidelines-fix-some-bug-

License: Apache License 2.0

Kotlin 54.35% Java 45.51% FreeMarker 0.04% CSS 0.01% Shell 0.09%
codequality codetools java kotlin jetbrains-plugin

p3c's Introduction

  • 👋 Hi, I’m @godfather1103
  • 👀 I’m interested in ...
  • 🌱 I’m currently learning ...
  • 💞️ I’m looking to collaborate on ...
  • 📫 How to reach me ...

p3c's People

Contributors

annapoulakos avatar anteoy avatar cdgeass avatar chanjetsdp avatar dyrone avatar fulwonder88 avatar fw8899 avatar godfather1103 avatar gujin520 avatar hanyidreamer avatar imu2008 avatar jokermonn avatar justintsui avatar jwenjian avatar kerie avatar livoras avatar lowzj avatar lqzyc avatar luffygao avatar oathsign avatar rainbow702 avatar riccoyu avatar seancai avatar slievrly avatar smiler158 avatar sooxin avatar tibetty avatar wilsonjuxta avatar xuantan avatar yuyang105 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

p3c's Issues

在2024.1 提示 ToggleProjectInspectionAction 使用了废弃方法,抽空更新一下呗

com.intellij.diagnostic.PluginException: `ActionUpdateThread.OLD_EDT` is deprecated and going to be removed soon. 'com.alibaba.p3c.idea.action.ToggleProjectInspectionAction' must override `getActionUpdateThread` and chose EDT or BGT. See ActionUpdateThread javadoc. [Plugin: io.github.godfather1103.alibaba.p3c]
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:90)
	at com.intellij.diagnostic.PluginException.reportDeprecatedUsage(PluginException.java:125)
	at com.intellij.openapi.actionSystem.ActionUpdateThreadAware.getActionUpdateThread(ActionUpdateThreadAware.java:21)
	at com.intellij.openapi.actionSystem.AnAction.getActionUpdateThread(AnAction.java:199)

No Such Function matches

idea.log:

Exception applying rule PackageNamingRule on file

java.lang.RuntimeException: org.jaxen.UnresolvableException: No Such Function matches
at net.sourceforge.pmd.lang.rule.xpath.JaxenXPathRuleQuery.evaluate(JaxenXPathRuleQuery.java:73)
at net.sourceforge.pmd.lang.rule.XPathRule.evaluate(XPathRule.java:114)
at net.sourceforge.pmd.lang.java.rule.JavaRuleChainVisitor.visit(JavaRuleChainVisitor.java:42)
at net.sourceforge.pmd.lang.rule.AbstractRuleChainVisitor.visitAll(AbstractRuleChainVisitor.java:96)
at net.sourceforge.pmd.RuleChain.apply(RuleChain.java:67)
at net.sourceforge.pmd.RuleSets.apply(RuleSets.java:140)
at com.alibaba.p3c.idea.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.kt:216)
at com.alibaba.p3c.idea.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.kt:61)
at com.alibaba.p3c.idea.pmd.AliPmdProcessor.processFile(AliPmdProcessor.kt:67)

version 1.4-2023.2-2.1.1-ext-1 err

更新完打开就报错

com.intellij.diagnostic.PluginException: Cannot create extension (class=com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider) [Plugin: io.github.godfather1103.alibaba.p3c]
at com.intellij.serviceContainer.ComponentManagerImpl.createError(ComponentManagerImpl.kt:1067)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:69)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.kt:30)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:446)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processWithPluginDescriptor(ExtensionPointImpl.java:298)
at com.intellij.openapi.extensions.ExtensionPointName.processWithPluginDescriptor(ExtensionPointName.kt:139)
at com.intellij.codeInspection.ex.InspectionToolRegistrar.registerToolProviders(InspectionToolRegistrar.kt:85)
at com.intellij.codeInspection.ex.InspectionToolRegistrar.(InspectionToolRegistrar.kt:50)
at com.intellij.serviceContainer.ComponentManagerImpl.doInstantiateClass(ComponentManagerImpl.kt:962)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:954)
at com.intellij.serviceContainer.ComponentManagerImpl.createLightService(ComponentManagerImpl.kt:933)
at com.intellij.serviceContainer.ComponentManagerImpl.getOrCreateLightService(ComponentManagerImpl.kt:736)
at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:688)
at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:630)
at com.intellij.codeInspection.ex.InspectionToolRegistrar$Companion.getInstance(InspectionToolRegistrar.kt:209)
at com.intellij.profile.codeInspection.ProjectInspectionProfileManager.getCurrentProfile(ProjectInspectionProfileManager.kt:245)
at com.intellij.configurationScript.inspection.ExternallyConfigurableProjectInspectionProfileManager.getCurrentProfile(ExternallyConfigurableProjectInspectionProfileManager.kt:69)
at com.intellij.profile.codeInspection.ProjectInspectionProfileManager.initializeComponent(ProjectInspectionProfileManager.kt:98)
at com.intellij.configurationStore.ComponentStoreImpl.initComponent(ComponentStoreImpl.kt:133)
at com.intellij.configurationStore.ComponentStoreWithExtraComponents.initComponent(ComponentStoreWithExtraComponents.kt:48)
at com.intellij.serviceContainer.ComponentManagerImpl.initializeComponent$intellij_platform_serviceContainer(ComponentManagerImpl.kt:577)
at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:51)
at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:43)
at com.intellij.serviceContainer.BaseComponentAdapter.doCreateInstance(BaseComponentAdapter.kt:158)
at com.intellij.serviceContainer.BaseComponentAdapter.createInstance(BaseComponentAdapter.kt:137)
at com.intellij.serviceContainer.BaseComponentAdapter.access$createInstance(BaseComponentAdapter.kt:21)
at com.intellij.serviceContainer.BaseComponentAdapter$getInstanceAsync$2.invokeSuspend(BaseComponentAdapter.kt:185)
at com.intellij.serviceContainer.BaseComponentAdapter$getInstanceAsync$2.invoke(BaseComponentAdapter.kt)
at com.intellij.serviceContainer.BaseComponentAdapter$getInstanceAsync$2.invoke(BaseComponentAdapter.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceAsync(BaseComponentAdapter.kt:180)
at com.intellij.serviceContainer.ComponentManagerImpl.preloadService$suspendImpl(ComponentManagerImpl.kt:1162)
at com.intellij.serviceContainer.ComponentManagerImpl.preloadService(ComponentManagerImpl.kt)
at com.intellij.serviceContainer.ComponentManagerImpl$preloadServices$1.invokeSuspend(ComponentManagerImpl.kt:1146)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Caused by: com.intellij.diagnostic.PluginException: Cannot create class com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider (classloader=PluginClassLoader(plugin=PluginDescriptor(name=Alibaba Java Coding Guidelines(Fix Some Bug), id=io.github.godfather1103.alibaba.p3c, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IntelliJIdea2023.2\plugins\Alibaba Java Coding Guidelines(Fix Some Bug), version=1.4-2023.2-2.1.1-ext-1, package=null, isBundled=false), packagePrefix=null, state=active))
at com.intellij.serviceContainer.ComponentManagerImpl.doInstantiateClass(ComponentManagerImpl.kt:1003)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:954)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.instantiateClass(XmlExtensionAdapter.kt:78)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter$SimpleConstructorInjectionAdapter.instantiateClass(XmlExtensionAdapter.kt:89)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:49)
... 40 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.alibaba.p3c.pmd.lang.java.rule.naming.LowerCamelCaseVariableNamingRule
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
at java.base/java.lang.Class.newInstance(Class.java:645)
at net.sourceforge.pmd.util.ResourceLoader.loadRuleFromClassPath(ResourceLoader.java:139)
at net.sourceforge.pmd.rules.RuleBuilder.build(RuleBuilder.java:196)
at net.sourceforge.pmd.rules.RuleFactory.buildRule(RuleFactory.java:212)
at net.sourceforge.pmd.RuleSetFactory.parseSingleRuleNode(RuleSetFactory.java:632)
at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:510)
at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:409)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:234)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:229)
at net.sourceforge.pmd.RuleSetFactory.parseRuleSetReferenceNode(RuleSetFactory.java:549)
at net.sourceforge.pmd.RuleSetFactory.parseRuleNode(RuleSetFactory.java:503)
at net.sourceforge.pmd.RuleSetFactory.parseRuleSetNode(RuleSetFactory.java:409)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:234)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:229)
at net.sourceforge.pmd.RuleSetFactory.createRuleSet(RuleSetFactory.java:212)
at com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider$Companion.getRuleSet(AliLocalInspectionToolProvider.kt:172)
at com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider$Companion.processForRuleSet(AliLocalInspectionToolProvider.kt:190)
at com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider$Companion.newRuleInfos(AliLocalInspectionToolProvider.kt:159)
at com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider$Companion.initPmdInspection(AliLocalInspectionToolProvider.kt:132)
at com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider$Companion.access$initPmdInspection(AliLocalInspectionToolProvider.kt:61)
at com.alibaba.p3c.idea.inspection.AliLocalInspectionToolProvider.(AliLocalInspectionToolProvider.kt:110)
at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:520)
at com.intellij.serviceContainer.ComponentManagerImpl.doInstantiateClass(ComponentManagerImpl.kt:962)
... 44 more
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NullPointerException [in thread "DefaultDispatcher-worker-3"]
at com.alibaba.p3c.pmd.lang.java.rule.naming.LowerCamelCaseVariableNamingRule.(LowerCamelCaseVariableNamingRule.java:47)
at io.github.godfather1103.rule.impl.LowerCamelCaseVariableNamingRule.modifyValue(LowerCamelCaseVariableNamingRule.kt:28)
at io.github.godfather1103.service.BaseNameListServiceExt.modifyRuleValue(BaseNameListServiceExt.kt:63)
at io.github.godfather1103.service.BaseNameListServiceExt.resetData(BaseNameListServiceExt.kt:49)
at io.github.godfather1103.service.BaseNameListServiceExt.resetData$default(BaseNameListServiceExt.kt:45)
at io.github.godfather1103.service.BaseNameListServiceExt.(BaseNameListServiceExt.kt:39)
at io.github.godfather1103.service.impl.NameListServiceWithStringImpl.(NameListServiceWithStringImpl.kt:16)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403)
at com.alibaba.p3c.pmd.lang.java.util.SpiLoader.getInstance(SpiLoader.java:38)
at com.alibaba.p3c.pmd.lang.java.util.namelist.NameListConfig.getNameListService(NameListConfig.java:28)
at com.alibaba.p3c.pmd.lang.java.util.namelist.NameListConfig.(NameListConfig.java:25)
at com.alibaba.p3c.pmd.lang.java.rule.naming.ClassNamingShouldBeCamelRule.(ClassNamingShouldBeCamelRule.java:40)
... 74 more

适配一下2023.3呗

2023.3 不兼容

如果在 gradle配置文件中删除 untilBuild.set("${yearVersion}${noVersion}.*") 会忽略最大版本号

能否使专有名词在lowerCamel判定中合法

#4 这个commit似乎只能解决suffix为专有词的情况,并不是修改了lowerCamelCase的判定
如图,上面的方法名有修改建议:方法名【detailDTO2VO】不符合lowerCamelCase命名风格,下面则没有
image

能否针对通用的lowerCamel判定规则增加自定义名词呢

POJO类中的任何布尔类型的变量都不要加is 检查失败

规约原文

POJO类中的任何布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误

问题描述

当类中有属性为布尔类型的时候,无法正常检测。使用包装类的规约检查出来了,但是is开头的没有检查出来

修改建议

不知道是为什么
idea的版本为2023.1.3
插件版本为1.4-2023.1-2.1.1-ext
image

Java17使用遇问题的到

规约原文

问题描述

1.record类型无法识别,class类内部record被识别为方法
image

2.新的switch语法不支持
image

修改建议

支持一下Java17O(∩_∩)O

变量名驼峰提示错行

规约原文

变量名【Cell】不符合lowerCamelCase命名风格

问题描述

idea版本:IntelliJ IDEA 2023.3.3 (Ultimate Edition)
插件版本:1.6-2023.3-2.1.1-ext-6

提示变量名驼峰规则错行,如图所示
GIF 2024-3-25 14-12-21

根据提示是说【Cell】不符合命名规则,但是提示阴影却在一个方法名上面,根据提示点击之后,没有任何变量名变化。

尝试过重启idea,重新打开文件,重启电脑,重新安装插件,都无法解决这个问题,怀疑是太多代码中文注释导致的错行?

修改建议

请尝试修复此问题。

无法扫描类

规约原文

idea 2023.2.5

问题描述

image
在类上右键 扫描有问题的代码 什么也没有扫描出来

修改建议

2023年3月版的idea无法使用

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.