Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Big Overhaul #292

Open
wants to merge 56 commits into
base: master
Choose a base branch
from
Open

The Big Overhaul #292

wants to merge 56 commits into from

Conversation

ThexXTURBOXx
Copy link

@ThexXTURBOXx ThexXTURBOXx commented Jan 7, 2022

The Big Overhaul

The old PR was removed since I renamed my branch, Here is the replacement.

Download

Download available here

Changes

Changes can best be seen here: master...ThexXTURBOXx:better-diff

Summary

  • Update Procyon to 0.6.0, now supports Java 9+ stuff!
  • Allow JDKs from PATH and JAVA_HOME environment variables
  • Ignore IntelliJ files
  • Update RSTA to 3.3.3 to allow for better file type detection and support for new languages and Java 9+ keywords
  • Improve regular expressions
  • Use Law of Demeter where applicable
  • Optimize code (Add final keywords, remove unnecessary instructions, improve boolean expressions etc.)
  • Update Java requirement to Java 8 (since Java 7 will be completely discontinued in half a year)
  • Allow multiple files being drag 'n' dropped into Luyten
  • Fix classes on same path being open in different jars (see 5bad6aa and this comment for more details)
  • Support for Java 9+
  • Update links and contributors in About page (you have already spotted that :) )
  • Tried making tabs closeable via the middle mouse button (didn't succeed, but codebase is still there)
  • Fix some resource leaks and crashes
  • Made project structure Maven default (Maven assumes the typical src/main/[java\resources] layout by default; this allows for a cleaner pom.xml)
  • Update copyright years
  • Add basic CLI by utilizing PicoCLI (different from Basic CLI support & pom procyon changes #138, but solves the overall issue)
  • Retrieve Luyten version from META-INF/MANIFEST.MF directly
  • Use launch4j type console to allow CLI on the exe file (and most likely the other ones as well); caveat: When opening via double-click, a console appears
  • Apply Refactored FindAllBox #150, modify the expression for testing the frame be fully maximized #165 (without the CI part), continue search on remaining files after error #200, solve TreeNode to DefaultMutableTreeNode type conversion error for op… #254
  • Improve Maven pom
  • Improve README.md and LICENSE

Issues fixed (probably more, but here are a few selected ones :) )

Fixes #100
Closes #138
Closes #150
Closes #165
Closes #200
Closes #254
Fixes #294
Fixes #296
Fixes #297
Fixes #302
Fixes #304
Fixes #305
Fixes #306
Fixes #307
Fixes #314
Fixes #315
Fixes #316
Fixes #317
Fixes #318

psytester and others added 28 commits June 3, 2019 11:03
In case of IllegalStateException with "Invalid BootstrapMethods attribute entry: 2 additional arguments required for method java/lang/invoke/StringConcatFactory.makeConcatWithConstants, but only 1 specified." this is a known issue of Procyon <= 0.5.35 and the available fix it not yet released, refer to https://bitbucket.org/mstrobel/procyon/issues/336/
The search does not stop anymore, simply a hint is given in found class list for that error.

In case of other IllegalStateException or general Exceptions hold on the search in remaining files, too.
For example, my openJDK 11 based WAR file has other error cases in Procyon too.
java.lang.IllegalArgumentException: Argument 'value' must be in the range [1, 18], but value was: 19.
java.lang.IllegalArgumentException: Argument 'value' must be in the range [1, 18], but value was: 20.

both at com.strobel.core.VerifyArgument.inRange(VerifyArgument.java:347)
Up until now, if you open two jar files that contain the class e.g. `test.package.TestClass` and you open this class of the first jar, the one from the second jar will look exactly like the first one.
This doesn't fix Java 17, though
@ThexXTURBOXx ThexXTURBOXx mentioned this pull request Jan 7, 2022
@ThexXTURBOXx
Copy link
Author

ThexXTURBOXx commented Jan 10, 2022

Soooo, I created a new branch where you can see a "better" comparison of my work and your current master branch: master...ThexXTURBOXx:better-diff
It is, however, non-functional and serves only the purpose of comparison :)

Apart from that, here is the (more or less) complete changelog:

  • Update Procyon to 0.6.0, now supports Java 9+ stuff!
  • Ignore IntelliJ files
  • Update RSTA to 3.2.0 to allow for better file type detection and support for new languages and Java 9+ keywords
  • Improve regular expressions
  • Use Law of Demeter where applicable
  • Optimize code (Add final keywords, remove unnecessary instructions, improve boolean expressions etc.)
  • Update Java requirement to Java 8 (since Java 7 will be completely discontinued in half a year)
  • Allow multiple files being drag 'n' dropped into Luyten
  • Fix classes on same path being open in different jars (see 5bad6aa and this comment for more details)
  • Support for Java 9+
  • Update links and contributors in About page (you have already spotted that :) )
  • Tried making tabs closeable via the middle mouse button (didn't succeed, but codebase is still there)
  • Fix some resource leaks and crashes
  • Made project structure Maven default (Maven assumes the typical src/main/[java\resources] layout by default; this allows for a cleaner pom.xml)
  • Update copyright years
  • Add basic CLI by utilizing PicoCLI (different from Basic CLI support & pom procyon changes #138, but solves the overall issue)
  • Retrieve Luyten version from META-INF/MANIFEST.MF directly
  • Use launch4j type console to allow CLI on the exe file (and most likely the other ones as well); caveat: When opening via double-click, a console appears
  • Apply Refactored FindAllBox #150, modify the expression for testing the frame be fully maximized #165 (without the CI part), continue search on remaining files after error #200, solve TreeNode to DefaultMutableTreeNode type conversion error for op… #254
  • Improve Maven pom
  • Improve README.md and LICENSE

@BobenHome
Copy link

Thanks, it's useful.

@ThexXTURBOXx
Copy link
Author

@deathmarine Procyon 0.6 stable has arrived with huge changes!
I updated my fork and the changelog above accordingly and this PR is ready to get merged again! :)

@ThexXTURBOXx
Copy link
Author

@deathmarine Any updates on this? :)

@nbauma109
Copy link

the hyperlinks (i.e, CTRL+click on classes, methods, fields,...) have stopped working, can you check that ?

@ThexXTURBOXx
Copy link
Author

@nbauma109 You are right, I debugged the problem and it is an issue with RSTA >=3.1.0. See this issue for followups: bobbylight/RSyntaxTextArea#443

@ThexXTURBOXx
Copy link
Author

@nbauma109 Applied a workaround for the time being. See new release 0.8.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment