Comments (5)
Thanks a lot for you input, i'll take that route then.
Yes, I've seen this plugin but I have something more integrated in mind - I'm planning to implement most of/all feature set of ErrorProne in a way that it can be managed through the plugin, such as:
- Running the checks from the IDE on a file/module/project/package etc.
- On the fly (as you type) checks that show up as errors/warnings in the editor
- Ability to apply the suggested fixes as intelliJ quick-fixes
- Configuring BugPatterns (turn on/off, group, change severity, add new ones etc.)
- As a bonus, some kind of an integration with Refaster in a "before->after" style custom DSL, although I didn't give this one much thought so it's a bit far fetched for now
from error-prone.
Worth to note that I do understand that an AST is still required for bug checkers to work and error-prone can't simply operate on .java
files, but what I'm trying to figure out is whether there's a way of "adapting" between ASTs - say, IntelliJ PSI -> Java AST in my case
from error-prone.
Hello!
Thanks for raising this issue. I agree this would be nice to support, and I also agree it would be a huge change.
We have done some preliminary investigations into creating an API that abstracts over all of the information Error Prone access from the Java compiler, and that could be implemented by different compilers (e.g. one each for Javac, and IntelliJ, and Eclipse). I think it would be possible to do that, but the surface area of the APIs that need to be adapted is very large, so it would be a major API design project.
Which IDE are you working on a plugin for?
from error-prone.
Hi @cushon, thanks for the reply!
I'm working on a plugin for IntelliJ, so the other side of the bridge would be IntelliJ PSI
I agree that it's a very major piece of work. After opening this issue, I gave this more thought and I believe a more feasible approach for me would be implementing this using the "embedded compiler" approach i mentioned in the original post. What do you think?
I still need to profile this to see whether it introduces a major overhead - so just shooting in the dark with this.
from error-prone.
The 'embedded compiler' approach you describe sounds like it could work, and potentially be much simpler, so that sounds worth investigating to me.
Have you seen https://plugins.jetbrains.com/plugin/7349-error-prone-compiler, or do you want something more tightly integrated that can interoperate with PSI for your use-case?
from error-prone.
Related Issues (20)
- class com.sun.tools.javac.code.Type$ClassType cannot be cast to class com.sun.tools.javac.code.Type$ArrayType HOT 6
- `JUnitIncompatibleType` on 2.27.0 throws `ClassCastException` for `com.sun.tools.javac.code.Type$TypeVar` around `assertArrayEquals` HOT 1
- False alarm from ClassInitializationDeadlock for inner enum implementing outer interface with default method HOT 4
- [Feature Request] Add check warning against mocking record types HOT 1
- ObjectEqualsForPrimitives should not suggest to convert boxed equals on double or float values HOT 3
- Suggest to use `Double.compare` or `Float.compare` when ObjectEqualsForPrimitives is triggered on floating point primitives
- Patching no longer works for experimental checks like StatementSwitchToExpressionSwitch HOT 1
- False UnusedVariable warning for method parameters only used in overridden implementations HOT 3
- FormatStringAnnotation checker is annoyingly stricter than FormatString HOT 2
- Jdk 23 now broken with Error prone after github updates to newer cut yesterday HOT 4
- JDK 23 compatibility HOT 1
- [PatternMatchingInstanceof] False-positives
- Refaster includes fully qualified reference to the `@AfterTemplate` to local variable inside the template HOT 4
- Dspace mvn compilation error HOT 6
- BugPattern: ParameterName HOT 3
- SelfAssignment false positive with casting a float variable to int HOT 1
- An unhandled exception was thrown by the Error Prone static analysis plugin: BugPattern: InconsistentCapitalization HOT 1
- UnnecessaryDefaultInEnumSwitch does not work with enhanced switch statement for cases with multiple values
- False positives by UnusedVariable on unnamed variables (Java 22)
- An unhandled exception was thrown by the Error Prone static analysis plugin. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from error-prone.