Thomas Schweitzer's powerful code indenter front-end, UniversalIndentGUI.
Clone or download
Latest commit 2712224 Mar 17, 2015
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
UniversalIndentGUI.xcodeproj Updated the Scode project file to the uigui version 1.0.2 Feb 15, 2009
config UiGuiSyntaxHilightConfig: Adapted to new QScintilla configs and fixed… Apr 11, 2011
debian Fixed faulty sentence in changelog. Jan 1, 2012
doc Updated the version and release date. Jan 1, 2012
indenters Added missing quotes and backslash to the VBS Beautifier helper batch… Dec 28, 2011
resources Updated the version and release date. Jan 1, 2012
src Changed the copyright date within the code files to 2012. Jan 1, 2012
tools Updated to uncrustify version 0.56 Sep 19, 2010
translations Renamed the language mnemonic for Japanese from ja_jp to ja only, sin… Apr 12, 2011
.gitignore new readme for a new age, also added a gitignore Mar 17, 2015
CHANGELOG.txt Fixed faulty sentence in changelog. Jan 1, 2012
INSTALL.txt Updated the reference to the readme file. Sep 30, 2008
LICENSE.GPL Restucturing of repository Sep 5, 2006
README.md should probably read the github flavored markdown docs before posting… Mar 17, 2015
README_older_but_worth_reading.txt Renamed the older readme file. Sep 29, 2008
UniversalIndentGUI.pro Cleaned up and corrected the qmake project file a bit. Dec 29, 2011
UniversalIndentGUI.sln - Added a new class, that is responsible for logging of any kind and … May 27, 2009
UniversalIndentGUI_NPP.pro Added a class for retrieving info about the operating system and use … May 29, 2009
VS8QtRules.rules Removed path in front of custom build executable. The path should be … Jan 27, 2007
buildPackage.sh Adapted the release build scripts for the next version number, the ch… Apr 12, 2011
buildRelease.sh buildRelease.sh: Small clean up. Jan 1, 2012
buildWin.bat Added a batch script helping me to keep the deployment process mostly… Dec 29, 2011
buildwin32release_gcc.bat Updated files for the next release 1.0.2. Nov 3, 2008
createXcodeProject.sh createXcodeProject: Added some deploy notes. Dec 27, 2011
readme.html Changelog and readme: Added info about the two newly supported indent… Jan 1, 2012
readme.pdf Better explained the difference on Win and Mac where to copy what from. Sep 29, 2008
todo_new_version.txt "Reseted" the tod_new_version.txt file. Apr 12, 2011
translate.bat Updated translations and the translation generation batch file. Nov 11, 2007

README.md

UniversalIndentGUI

Ever concerned about how your code looks like?

Ever heard of different indenting styles, for example K&R?

Ever received code from someone else who didn't care about code formatting?

Ever tried to configure a code indenter to convert such code to your coding style?

Ever got bored by that tedious "changing a parameter"-"call the indeter"-"try and error" procedure?

Help is close to you. UniversalIndentGUI offers a live preview for setting the parameters of nearly any indenter. You change the value of a parameter and directly see how your reformatted code will look like. Save your beauty looking code or create an anywhere usable batch/shell script to reformat whole directories or just one file even out of the editor of your choice that supports external tool calls.

Many free available code beautifier, formatter and indenter are currently supported, like GNU Indent, Uncrustify, Artistic Styler, PHP Stylist, Ruby Beautify, HTML Tidy and many other (look at features for complete list). Currently not supported indenters can be easyly added by creating a configuration file for them.

Thus UniversalIndentGUI is open for nearly any new indenter and programming languages. Give it a try. Perhaps you'll also find an indenter for your programming language that you even didn't know that it exists.

Features

  • Live Preview: change an indenter parameter and directly see how your formatted code will look like.
  • Support for nearly any existing indenter possible. Currently supported are:

UiGUI Screenshot

Easy adding of new indenters: just create a parameter definition file for the new indenter.

Load and save different indenter configurations.

Reset to indenters default parameters.

By the above named indenters currently supported programming languages:

UiGUI Screenshot

  • C, C++
  • C#
  • Cobol
  • CSS
  • D
  • Fortran
  • HTML
  • Java
  • JavaScript
  • JSP
  • Objective-C
  • Pawn
  • Perl
  • PHP
  • Pl/Sql
  • Python
  • Ruby
  • Shellscript
  • VALA
  • Visual Basic
  • XML
  • XSL

Syntax highlighting for all of these languages except for Pawn and VALA

Really easy to handle user interface.

Tooltips for each indenter parameter.

Creation of batch/shell scripts.

HTML and PDF export of your code.

PortableMode and MultiUserMode: In portable mode only uses its own subdirectories for temporary writing.

Multiple languages: English, German, Traditional Chinese, Russian, Ukrainian, partly Japanese. Drag'n Drop of source code files.

Support for many different file encodings, like Korean KOI8-R or Chinese BIG5.

Possibility to edit your code while live preview is turned on. Yeah, thats really live! (but positions cursor wrong sometimes depending on the used indenter :-( )

Code completion.

Automatic update check. Does check only once a day and can be disabled.

A nice about dialog. Errrmm, ok beneath all the mean stuff this is somehow the programmers playground ;-)

Also a Notepad++ plugin version is available. The programming project for that is currently only available as Visual Studio C++ 2005 project file.

Also this plugin has some problems with its event handling, because it is running as a DLL inside of Notepad++ event loop.

This will be replaced with the upcoming UiGUI server functionality. See future plans for more about that.

Supported and tested platforms

  • Windows 32 bit
  • Linux 32 and 64 bit
  • Mac OS X >= 10.4 (currently Intel only. PPC produced mysterious linker error)

How to install / build UniversalIndentGUI

If you downloaded a complete binary package/archive for your system from SourceForge, you only need to unpack it and can run it out of the box. Also all free available indenters for your platform are included. Doing it that way,

UiGUI will run in portable mode.

But if you'd like to build UiGUI from source, follow these steps:

  1. Download, unpack, configure and compile Qt >= 4.4.0. Make your QTDIR and QMAKESPEC settings. Or install Qt via a package manager.
  2. Download, unpack, compile and install QScintilla >= 2.2.
  3. Checkout UiGUI: git clone git@github.com:danblakemore/universal-indent-gui.git
    svn co https://universalindent.svn.sourceforge.net/svnroot/universalindent/trunk universalindentgui
  4. In the checked out directory run "qmake UniversalIndentGUI.pro".
  5. Run "make release".
  6. Install it Indenter binary packages can be downloaded from the project at SourceForge here.

Beneath the possibility to build UiGUI using qmake, also project files for Visual Studio 2005 and XCode are included.

Used Qt techniques

This list shows some selected functionalities that Qt offers and that I use with UiGUI.

  • Translations are done with QTranslator, QLocale and Linguist.
  • File encodings are supported by using QTextCodec and QTextStream.
  • QScriptEngine and QScriptValue is included for executing JavaScript files used as indenters.
  • QGraphicsView and QGraphicsProxyWidget for creating an animated 3D about dialog, simulating that is done on the whole desktop by using the screenshot capability of Qt.
  • Stylesheet settings give the about dialog a special look. Also gradients are used.
  • QHttp and QUrl are used for the update check.
  • QSettings is responsible for storing the application and syntax highlighter settings.
  • QTcpServer and QTcpSocket build the base for the UiGUI Server.
  • Of course I use the Qt tools qmake, lupdate, lrelease, Designer, Linguist and my very best friend the Assistant.

Future plans

  • Exchangeable source code view. Mainly adding a "Live Diff View" where you can see the unformatted code and the formatted one side by side with changes highlighted.
  • Bring functionality to the UiGUI server so that he can be run anywhere and a client plugin in any editor like Eclipse or Notepad++ can communicate with it. Thus the client plugin can be written in any language supporting TCP/IP connections and send to be formatted code to the server. Also some settings might be made via that conncection. Plans are going on, so stay tuned.
  • Batch/Multiple file and directory indenting, so that the user can throw a bunch of files or directories into a list and click on "Do it", so they all will get formatted.

Thanks

Here I'd like to say "thank you" to all those guys, who helped me improving UiGUI. May it be doing some translations, creating packages for Linux, letting me know about bugs or ways to improve or just saying that they found my application helpful and that they like it. So:

Thank you all out there!!

Disclaimer

You may use this software on your own risk. I am not responsible for any system damage or loss of data.

Respect the GPL! UiGUI is being released under GPL 2. You will also find the license in the included file "LICENSE.GPL".