SpartanRefactoring / Main

Eclipse plugin that performs automatic refactoring of Java source code, making it shorter, more idiomatic and more readable

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Main

edt.cf builder
Плагин EDT для поддержки импорта/экспорта CF/CFE файлов
Stars: ✭ 46 (-52.58%)
Mutual labels:  eclipse-plugin
Subclipse
Subclipse - Eclipse SVN Provider
Stars: ✭ 421 (+334.02%)
Mutual labels:  eclipse-plugin
Neoemf
Multi-backend EMF persistence framework.
Stars: ✭ 38 (-60.82%)
Mutual labels:  eclipse-plugin
VIATRA-Generator
An efficient graph solver for generating well-formed models
Stars: ✭ 21 (-78.35%)
Mutual labels:  eclipse-plugin
Angularjs Eclipse
AngularJS Eclipse Plugin
Stars: ✭ 336 (+246.39%)
Mutual labels:  eclipse-plugin
Multi Os Engine
Multi-OS Engine: Create iOS Apps in Java (or Kotlin ... etc.)
Stars: ✭ 529 (+445.36%)
Mutual labels:  eclipse-plugin
scalor-maven-plugin
Build integrator for Java, Scala, Scala.macro, Scala.js, Scala.native, Eclipse and Maven.
Stars: ✭ 47 (-51.55%)
Mutual labels:  eclipse-plugin
Google Cloud Eclipse
Google Cloud Platform plugin for Eclipse
Stars: ✭ 75 (-22.68%)
Mutual labels:  eclipse-plugin
Openexplorer
Open Explorer plugin for Eclipse
Stars: ✭ 404 (+316.49%)
Mutual labels:  eclipse-plugin
Amateras Html Editor
Eclipse plugin for HTML/JSP/XML/JavaScript Editing
Stars: ✭ 34 (-64.95%)
Mutual labels:  eclipse-plugin
chromium-swt
Create and render web UIs in Java SWT and Eclipse RCP applications.
Stars: ✭ 121 (+24.74%)
Mutual labels:  eclipse-plugin
Pydev
Python IDE for Eclipse
Stars: ✭ 306 (+215.46%)
Mutual labels:  eclipse-plugin
Groovy Eclipse
Eclipse Groovy Development Tools
Stars: ✭ 567 (+484.54%)
Mutual labels:  eclipse-plugin
myTranslate
一款eclipse的插件,用于翻译。
Stars: ✭ 47 (-51.55%)
Mutual labels:  eclipse-plugin
Eclipse Plugin Commander
Eclipse user interface enhancements
Stars: ✭ 54 (-44.33%)
Mutual labels:  eclipse-plugin
SubmiBot
Plugin do Eclipse para automatização do processo de submissão de tarefas na disciplina de LP2 - Computação@UFCG
Stars: ✭ 16 (-83.51%)
Mutual labels:  eclipse-plugin
Bnd
Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.
Stars: ✭ 446 (+359.79%)
Mutual labels:  eclipse-plugin
So Eclipse Plugin
Eclipse plugin that enables you to get answers from Stack Overflow directly to your IDE 🔥
Stars: ✭ 84 (-13.4%)
Mutual labels:  eclipse-plugin
Ansi Econsole
Eclipse plugin that understands ANSI escape sequences to color the Eclipse console output.
Stars: ✭ 72 (-25.77%)
Mutual labels:  eclipse-plugin
Orcc
Open RVC-CAL Compiler
Stars: ✭ 26 (-73.2%)
Mutual labels:  eclipse-plugin

Installation Instructions | Video Demo | Background | User Manual | Theoretical Background | Developer Guide | Tippers' List

Development Status

Build Status codecov

Articles

  • Y. Gil and M. Orrú, “Code spartanization: One Rational Approach for Resolving Religious Style Wars” in Proc. of SAC’17, the 32nd ACM Symposium on Applied Computing, Marrakesh, Morocco, April 3–7 2017.

  • Y. Gil and M. Orrù, "The Spartanizer: Massive automatic refactoring," 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), Klagenfurt, 2017, pp. 477-481. doi: 10.1109/SANER.2017.7884657 IEEExplore

  • The Spartanizer on IEEE Software Blog

The Spartanizer is:

  • An Eclipse plugin
  • Offers in the problems view tips for simplifying your code
  • Make your code laconic: say much in few words.
  • Platform for other research: nano-patterns, source to source transformation, and The Athenizer

The Spartanizer applies the principles of Spartan Programming to your Java code. It applies many different tippers, which are little rules that provide suggestions on how to shorten and simplify your code, e.g, by using fewer variables, factoring out common structures, more efficient use of control flow, etc.

The Spartanizer help you make a sequence small, nano-refactorings of your code, to make it shorter, and more conforming to a language of nano-patterns. The resulting code is not just shorter, it is more regular. The spartanization process tries to remove as many distracting details and variations from the code, stripping it to its bare bone.

This includes removal of piles of syntactic baggage, which is code that does nothing, except for being there: curly brackets around one statement, initializations which reiterate the default, modifiers which do not change the semantics, implicit call to super() which every constructor has, fancy, but uselessly long variable names, variables which never vary and contain temporaries and many more. Overall, the Spartanizer has over 100 tippers.

This project was conceived as an academic project in the Technion - Israel Institute of Technology, and was later developed for several years by different students and members of the Computer Science faculty.

The refactorings made by this plug-in are based on the concept of Spartan Programming, which suggests guidelines for writing short, clean code. There's a lot of reading material on the subject in the project wiki.

License

The project is available under the MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].