JnRouvignac / AutoRefactor

Eclipse plugin to automatically refactor Java code bases
Other
174 stars 37 forks source link

Contribute to JDT cleanup actions #386

Open vogella opened 5 years ago

vogella commented 5 years ago

Hello, I just found your plug-in and I'm already in love with it. Thanks for this awesome work.

Would you be interested in moving parts of your plug-in to JDT cleanup actions? I think this would be highly beneficial for all Eclipse users.

P.S. I'm one of the Eclipse developers and project leads. See https://projects.eclipse.org/projects/eclipse.platform/who

PyvesB commented 4 years ago

I've picked up the number suffix patch, hopefully that will help a bit. Though as I'm not a committer either, there's only so far we'll be able to go.

Reviewing and merging patches does seems to be a big problem with the JDT project at the moment. I also submitted one back in July, it's looking increasingly likely that it won't get shipped until at least March next year. 😕

akurtakov commented 4 years ago

We are doing our best to improve the situation with reviews. I have to admit it's still not in acceptable state but at least compared to a year ago the improvements in review time are huge. I know these are empty words if your patch hasn't been looked at. Please add me on CC to the gerrit so I can push JDT committers to do a revew (I'm not JDT committer myself so can't do it myself).

Fabrice-TIERCELIN commented 4 years ago

I'm handling some bugs so that the mergers can even more focus their work on merge. How to self assigning a bug?

And when will be the frozen zone? Where to know it?

PyvesB commented 4 years ago

How to self assigning a bug?

I don't think you can if you're not the one who created the bug/not part of the project. I generally simply put a comment saying I'm working on something.

And when will be the frozen zone? Where to know it?

Next Wednesday apparently. See here.

vogella commented 4 years ago

Pierre-Yves and Fabrice,

I will ask webmaster to give you bug triage rights so that you can assign bugs and set milestones.

JDT is in the same state as platform was 3-5 years ago. With your help I hope that he can soon improve the situation.

Pierre-Yves B. notifications@github.com schrieb am Do., 21. Nov. 2019, 20:15:

How to self assigning a bug?

I don't think you can if you're not the one who created the bug/not part of the project. I generally simply put a comment saying I'm working on something.

And when will be the frozen zone? Where to know it?

Next Wednesday apparently. See here https://www.eclipse.org/eclipse/development/plans/freeze_plan_4_14.php.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JnRouvignac/AutoRefactor/issues/386?email_source=notifications&email_token=AABCFBQTJXB5JGZFIOHLA3DQU3M6BA5CNFSM4HYFPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE3K2GQ#issuecomment-557231386, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCFBSMQ3DPZ3OF2QRQ2KDQU3M6BANCNFSM4HYFPIDQ .

PyvesB commented 4 years ago

Hopefully bug management will become much smoother when Buzilla is replaced. There are discussions about this on Bug 537913.

Gerrit is somewhat a pain-point as well IMO, the old 2017 version the Foundation is running doesn't compete with what GitHub or Gitlab provide nowadays (upgrading is tracked by Bug 541221).

But we're getting slightly off-topic here!

vogella commented 4 years ago

Please comment in the Bug 541221 to remind the foundation that users care.

On Fri, Nov 22, 2019 at 9:10 AM Pierre-Yves B. notifications@github.com wrote:

Hopefully bug management will become much smoother when Buzilla is replaced. There are discussions about this on Bug 537913 https://bugs.eclipse.org/bugs/show_bug.cgi?id=537913.

Gerrit is somewhat a pain-point as well IMO, the old 2017 version the Foundation is running doesn't compete with what GitHub or Gitlab provide nowadays (upgrading is tracked by Bug 541221 https://bugs.eclipse.org/bugs/show_bug.cgi?id=541221).

But we're getting slightly off-topic here!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JnRouvignac/AutoRefactor/issues/386?email_source=notifications&email_token=AABCFBX6VYG245C4XPDQXJ3QU6HYRA5CNFSM4HYFPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE44KZI#issuecomment-557434213, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCFBWZAJI6CYZEE2WHDJTQU6HYRANCNFSM4HYFPIDQ .

-- Eclipse Platform project co-lead CEO vogella GmbH

Haindaalwisch 17a, 22395 Hamburg Amtsgericht Hamburg: HRB 127058 Geschäftsführer: Lars Vogel, Jennifer Nerlich de Vogel USt-IdNr.: DE284122352 Fax (040) 5247 6322, Email: lars.vogel@vogella.com, Web: http://www.vogella.com

PyvesB commented 4 years ago

Please comment in the Bug 541221 to remind the foundation that users care.

Done.

Random thought: wouldn't it be great to have the Source -> Clean Up... command directly accessible through EGit in the Git Staging view? Like that you could only cleanup the files you have modified since since last commit and also have a reminder to do so.

vogella commented 4 years ago

Clean-up of changed files can be done via save actions.

The clean up menu is currently missing for project explorer, would be nice to have it here too in addition to the menu in the package explorer

Pierre-Yves B. notifications@github.com schrieb am Fr., 22. Nov. 2019, 22:47:

Please comment in the Bug 541221 to remind the foundation that users care.

Done.

Random thought: wouldn't it be great to have the Source -> Clean Up... command directly accessible through EGit in the Git Staging view? Like that you could only cleanup the files you have modified since since last commit and also have a reminder to do so.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JnRouvignac/AutoRefactor/issues/386?email_source=notifications&email_token=AABCFBRFVJ3VTQRT3EQPIPLQVBHN7A5CNFSM4HYFPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEE6624Q#issuecomment-557706610, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCFBUTLXTLRF4HNZGW2GDQVBHN7ANCNFSM4HYFPIDQ .

Fabrice-TIERCELIN commented 4 years ago

Random thought: wouldn't it be great to have the Source -> Clean Up... command directly accessible through EGit in the Git Staging view? Like that you could only cleanup the files you have modified since last commit and also have a reminder to do so.

To do this:

  1. Select all in Git Staging view
  2. Right-click on the files
  3. Click on Show in -> Package explorer
  4. Right-click on the selected files
  5. Click on Source -> Cleanup...

It's not obvious so I don't know if it is worth to add a shortcut. It is asked but not highly voted. I think that this way lot's of shortcuts should be added...

Fabrice-TIERCELIN commented 4 years ago

@vogella, if you want to cleanup a huge part of the Eclipse code base, I advise you the following cleanups. They all improve performance and I filtered the ones I consider as dangerous. Improving the performance would be a benefit for the contributors and the users:

vogella commented 4 years ago

Thanks Fabrice, will have a look. 4.14 is already in release mode but I will try them for 4.15.

Some stuff we already did in platform code, e.g. StringBuffer replacement. Only JDT has not been improved as they as not very welcoming yet with regards to cleanup patches.

Fabrice TIERCELIN notifications@github.com schrieb am So., 24. Nov. 2019, 16:57:

@vogella https://github.com/vogella, if you want to cleanup a huge part of the Eclipse code base, I advise you the following cleanups. They all improve performance and I filtered the ones I consider as dangerous. Improving the performance would be a benefit for the contributors and the users:

  • Int primitive rather than wrapper
  • Short primitive rather than wrapper
  • Long primitive rather than wrapper
  • Double primitive rather than wrapper
  • Float primitive rather than wrapper
  • Char primitive rather than wrapper
  • Byte primitive rather than wrapper
  • Primitive wrapper creation
  • Boolean primitive rather than wrapper
  • Lazy logical rather than eager
  • Boolean constant rather than value of
  • String rather than new string
  • String
  • String value of rather than concat
  • Opposite comparison rather than negative expression
  • Remove empty if
  • No loop iteration rather than empty check
  • Do while rather than while
  • Break rather than passive iterations
  • String builder
  • String builder rather than string buffer
  • Hash map rather than hashtable
  • Array list rather than vector
  • Array deque rather than stack
  • Array list rather than linked list
  • Set rather than list
  • Hash map rather than tree map
  • Hash set rather than tree set
  • Static constant rather than instance constant
  • Remove overridden assignment
  • Log parameters rather than log message
  • Remove unnecessary local before return
  • Remove unnecessary cast
  • Local variable rather than field
  • Simplify expression

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JnRouvignac/AutoRefactor/issues/386?email_source=notifications&email_token=AABCFBUFJZQNKOP46GB7MADQVKQABA5CNFSM4HYFPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAOPPI#issuecomment-557901757, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCFBWZU6BND33BKHW7L7TQVKQABANCNFSM4HYFPIDQ .

vogella commented 4 years ago

I tried staring running the suggested improved refactoring but face the issues described in https://github.com/JnRouvignac/AutoRefactor/issues/427

vogella commented 4 years ago

cc @ruspl-afed

ruspl-afed commented 4 years ago

WOW, looks like a secret treasury! I love open source :)

Fabrice-TIERCELIN commented 4 years ago

If you're interested, here is an AutoRefactor mod that lombokifies a Java project:

If I remember well, it lacks a feature (static field handling or boolean getter, I don't remember). Give me feedback and I can improve it.

Beware! Don't execute other rules on lombok code! It would destroy it.

Fabrice-TIERCELIN commented 4 years ago

Hi @vogella,

Here is your feature that removes all the optional final modifiers

To use it:

  1. Remove the .txt extension
  2. Put the files in your eclipse/dropins folder
  3. Launch Eclipse
  4. Click on project -> Source (AutoRefactor) -> Choose... -> Remove optional final

I still think it's foolish to do so... It even changes constants into variables. Do as you want.

vogella commented 4 years ago

Thanks, but please do not invest time in things you find foolish. IMHO open source developer should work on things they find important. Sorry for asking for this feature.

Fabrice TIERCELIN notifications@github.com schrieb am Mi., 26. Feb. 2020, 19:55:

Hi @vogella https://github.com/vogella,

Here is your feature that removes all the optional final modifiers

To use it:

  1. Remove the .txt extension
  2. Put the files in your eclipse/dropins folder
  3. Launch Eclipse
  4. Click on project -> Source (AutoRefactor) -> Choose... -> Remove optional final

I still think it's foolish to do so... It even changes constants into variables. Do as you want.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JnRouvignac/AutoRefactor/issues/386?email_source=notifications&email_token=AABCFBSQO3BFRXV22TUCPPLRE23JJA5CNFSM4HYFPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENBN47I#issuecomment-591584893, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCFBQJQ2TCLD2WGZCQR7TRE23JJANCNFSM4HYFPIDQ .

Fabrice-TIERCELIN commented 4 years ago

I have also used it to clean up AutoRefactor, modifying the rules.

vogella commented 4 years ago

Great to hear, I was a bit concerned that you spend time on something on my request which you think is not worth it.

On Thu, Feb 27, 2020 at 6:18 AM Fabrice TIERCELIN notifications@github.com wrote:

I have also used it to clean up AutoRefactor, modifying the rules.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/JnRouvignac/AutoRefactor/issues/386?email_source=notifications&email_token=AABCFBX5NEDUDDU66IFF6H3RE5EJJA5CNFSM4HYFPID2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENC7ERQ#issuecomment-591786566, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCFBVTTXWDGMCI4W46S6LRE5EJJANCNFSM4HYFPIDQ .

-- Eclipse Platform project co-lead CEO vogella GmbH

Haindaalwisch 17a, 22395 Hamburg Amtsgericht Hamburg: HRB 127058 Geschäftsführer: Lars Vogel, Jennifer Nerlich de Vogel USt-IdNr.: DE284122352 Fax (040) 5247 6322, Email: lars.vogel@vogella.com, Web: http://www.vogella.com