MinecraftForge / Srg2Source

Applies source level refactors to java source code.
GNU Lesser General Public License v2.1
60 stars 32 forks source link

Major Rewrite #37

Closed LexManos closed 4 years ago

LexManos commented 4 years ago

Currently in the process of completely re-writing the bulk of this. Namely to make the reference walker saner now that we actually have access to the JDT source/reference documents. Moved to LGPL just like all the other Forge projects.

I redefined that format for the range map, into something a bit more condense. See RangeMap class for more info. A exterior spec needs to be written. Eventually I would like to make the range map support being written to zip files, as well as exploded directories. Instead of just a single colossal file. It's all text, so it's HIGHLY compressible(100MB -> 8MB for ForgeDev) which is why I want zips . It's also just a list of range maps for files. So having exploded directory support would allow simpler diffing while debugging and possibly less writing IO.

I implemented runtime patching of the JDT if the console handler detects that is is running in a unpatched environment. For the most part I also added support for defining different encoding for source files. This needs test cases.

LexManos commented 4 years ago

Pushing what I have live. A large chunk of Mixin is supported, see all the tests. However the Inject sub annotations are not supported as of yet. As they use a complex selector system that will take some time to work again. But for now, this should be enough for some basic ForgeDev work.