comparison README.md @ 796:0eee433d0084

new readme for a new age, also added a gitignore
author Daniel Blakemore <DanBlakemore@gmail.com>
date Tue, 17 Mar 2015 11:02:47 -0600
parents
children 718e09837d7b
comparison
equal deleted inserted replaced
795:aac7cdbece6d 796:0eee433d0084
1 # UniversalIndentGUI
2
3 Ever concerned about how your code looks like?
4
5 Ever heard of different indenting styles, for example K&amp;R?
6
7 Ever received code from someone else who didn't care about code formatting?
8
9 Ever tried to configure a code indenter to convert such code to your coding style?
10
11 Ever got bored by that tedious "changing a parameter"-"call the indeter"-"try and error" procedure?
12
13 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.
14
15 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.
16
17 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.
18
19 ### Features
20
21 * Live Preview: change an indenter parameter and directly see how your formatted code will look like.
22 * Support for nearly any existing indenter possible. Currently supported are:
23
24 ->![UiGUI Screenshot](doc/images/screenshot8.jpg)<-
25
26 * [Artistic Styler](http://astyle.sourceforge.net/)
27 * [BCPP](http://invisible-island.net/bcpp/)
28 * [Cobol Beautify](http://www.siber.com/sct/tools/cbl-beau.html)
29 * [CSSTidy](http://csstidy.sourceforge.net/)
30 * [Fortran 90 PPR](ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/)
31 * [GNU Indent](http://www.gnu.org/software/indent/)
32 * [GreatCode](http://sourceforge.net/projects/gcgreatcode/)
33 * [hindent](http://packages.debian.org/de/lenny/hindent)
34 * [HTB](http://www.digital-mines.com/htb/)
35 * [Javascript Decoder](http://code.gosu.pl/)
36 * [JSPPP](http://jsppp.sourceforge.net/)
37 * [Perl Tidy](http://perltidy.sourceforge.net/)
38 * [PHP_Beautifier](http://pear.php.net/package/PHP_Beautifier)
39 * [PHP Code Beautifier](http://www.waterproof.fr/products/phpCodeBeautifier/)
40 * [PHP Stylist](http://sourceforge.net/projects/phpstylist/)
41 * [pindent](http://coverage.livinglogic.de/Tools/scripts/pindent.py.html)
42 * [Pl/Sql tidy](http://psti.equinoxbase.com/)
43 * [Ruby Beautify](http://www.arachnoid.com/ruby/rubyBeautifier.html)
44 * [Ruby Formatter](http://raa.ruby-lang.org/project/ruby_formatter/)
45 * [Shell Indent](http://www.bolthole.com/AWK.html)
46 * [(HTML) Tidy](http://tidy.sourceforge.net/)
47 * [Uncrustify](http://uncrustify.sourceforge.net/)
48 * [VBSBeautifier](http://www.daansystems.com/vbsbeaut/)
49 * [XML Indent](http://xmlindent.sourceforge.net/)
50
51
52 Easy adding of new indenters: just create a parameter definition file for the new indenter.
53
54 Load and save different indenter configurations.
55
56 Reset to indenters default parameters.
57
58 By the above named indenters currently supported programming languages:
59
60 ->![UiGUI Screenshot](doc/images/screenshot6.jpg)<-
61
62 * C, C++
63 * C#
64 * Cobol
65 * CSS
66 * D
67 * Fortran
68 * HTML
69 * Java
70 * JavaScript
71 * JSP
72 * Objective-C
73 * Pawn
74 * Perl
75 * PHP
76 * Pl/Sql
77 * Python
78 * Ruby
79 * Shellscript
80 * VALA
81 * Visual Basic
82 * XML
83 * XSL
84
85 Syntax highlighting for all of these languages except for Pawn and VALA
86
87 Really easy to handle user interface.
88
89 Tooltips for each indenter parameter.
90
91 Creation of batch/shell scripts.
92
93 HTML and PDF export of your code.
94
95 PortableMode and MultiUserMode: In portable mode only uses its own subdirectories for temporary writing.
96
97 Multiple languages: English, German, Traditional Chinese, Russian, Ukrainian, partly Japanese.
98 Drag'n Drop of source code files.
99
100 Support for many different file encodings, like Korean KOI8-R or Chinese BIG5.
101
102 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 :-( )
103
104 Code completion.
105
106 Automatic update check. Does check only once a day and can be disabled.
107
108 A nice about dialog. Errrmm, ok beneath all the mean stuff this is somehow the programmers playground ;-)
109
110 Also a [Notepad++](http://notepad-plus.sourceforge.net/) plugin version is available.
111 The programming project for that is currently only available as Visual Studio C++ 2005 project file.
112
113 Also this plugin has some problems with its event handling, because it is running as a DLL inside of Notepad++ event loop.
114
115 This will be replaced with the upcoming UiGUI server functionality. See future plans for more about that.
116
117 ### Supported and tested platforms
118
119 * Windows 32 bit
120 * Linux 32 and 64 bit
121 * Mac OS X >= 10.4 (currently Intel only. PPC produced mysterious linker error)
122
123 ### How to install / build UniversalIndentGUI
124
125 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,
126
127 UiGUI will run in portable mode.
128
129 But if you'd like to build UiGUI from source, follow these steps:
130
131 1. Download, unpack, configure and compile
132 [Qt](http://www.qtsoftware.com/downloads/opensource/appdev)
133 >= 4.4.0. Make your QTDIR and QMAKESPEC settings. Or install Qt via a package manager.
134 2. Download, unpack, compile and install
135 [QScintilla](http://www.riverbankcomputing.com/software/qscintilla/download)
136 >= 2.2.
137 3. Checkout UiGUI: svn co https://universalindent.svn.sourceforge.net/svnroot/universalindent/trunk universalindentgui
138 4. In the checked out directory run "qmake UniversalIndentGUI.pro".
139 5. Run "make release".
140 6. Install it
141 **Indenter binary packages** can be downloaded from the project at SourceForge
142 [here](http://sourceforge.net/project/showfiles.php?group_id=167482&package_id=293094).
143
144 Beneath the possibility to build UiGUI using qmake, also project files for Visual Studio 2005
145 and XCode are included.
146
147 ### Used Qt techniques
148
149 This list shows some selected functionalities that Qt offers and that I use with UiGUI.
150
151 * Translations are done with
152 [QTranslator](http://doc.trolltech.com/4.4/qtranslator.html),
153 [QLocale](http://doc.trolltech.com/4.4/qlocale.html) and Linguist.
154 * File encodings are supported by using
155 [QTextCodec](http://doc.trolltech.com/4.4/qtextcodec.html)
156 and [QTextStream](http://doc.trolltech.com/4.4/qtextstream.html).
157 * [QScriptEngine](http://doc.trolltech.com/4.4/qscriptengine.html)
158 and [QScriptValue](http://doc.trolltech.com/4.4/qscriptvalue.html)
159 is included for executing JavaScript files used as indenters.
160 * [QGraphicsView](http://doc.trolltech.com/4.4/qgraphicsview.html)
161 and [QGraphicsProxyWidget](http://doc.trolltech.com/4.4/qgraphicsproxywidget.html)
162 for creating an animated 3D about dialog, simulating that is done on the whole desktop by using
163 the screenshot capability of Qt.
164 * Stylesheet settings give the about dialog a special look. Also gradients are used.
165 * [QHttp](http://doc.trolltech.com/4.4/qhttp.html)
166 and [QUrl](http://doc.trolltech.com/4.4/qurl.html)
167 are used for the update check.
168 * [QSettings](http://doc.trolltech.com/4.4/qsettings.html)
169 is responsible for storing the application and syntax highlighter settings.
170 * [QTcpServer](http://doc.trolltech.com/4.4/qtcpserver.html)
171 and [QTcpSocket](http://doc.trolltech.com/4.4/qtcpsocket.html)
172 build the base for the UiGUI Server.
173 * Of course I use the Qt tools qmake, lupdate, lrelease, Designer, Linguist and my very best friend the Assistant.
174
175 ### Future plans
176
177 * Exchangeable source code view. Mainly adding a "Live Diff View" where you can see the unformatted
178 code and the formatted one side by side with changes highlighted.
179 * Bring functionality to the UiGUI server so that he can be run anywhere and a client plugin in any editor
180 like Eclipse or Notepad++ can communicate with it. Thus the client plugin can be written in any language
181 supporting TCP/IP connections and send to be formatted code to the server. Also some settings might be
182 made via that conncection. Plans are going on, so stay tuned.
183 * Batch/Multiple file and directory indenting, so that the user can throw a bunch of files or directories
184 into a list and click on "Do it", so they all will get formatted.
185
186 ### Thanks
187
188 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:
189
190 ->**Thank you all out there!!**<-
191
192 ### Disclaimer
193
194 You may use this software on your own risk. I am not responsible for any system damage or loss of data.
195
196 Respect the GPL! UiGUI is being released under [GPL 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). You will also find the license in the included file "LICENSE.GPL".