Corrected compiler error
[rofl0r-motor.git] / README
blobec9f804f3c68bf39310f4f5a7b83751861f36433
1 Motor documentation
2     by konst, 2002-2003
4 Contents
5 --------
7 1. Introduction
8     1.1. Creation history
9     1.2. Features overview
10     1.3. Requirements
11     1.4. First time start
12 2. User interface
13     2.1. The ESC key
14     2.2. The main screen
15     2.3. Menus
16     2.4. Dialogs
17     2.5. Hotkeys in dialogs
18     2.6. Some UI tips
19 3. Configuration
20     3.1. The "Motor settings" dialog
21     3.2. External keys
22     3.3. Color schemes
23 4. Projects
24     4.1. Project creation
25     4.2. Project files and directories
26     4.3. The "Project settings" dialog
27     4.4. Building programs
28     4.5. Distribution package generation
29     4.6. External output view, error messages
30     4.7. Templates
31         4.7.1. Standard templates overview
32         4.7.2. Custom templates
33 5. Internal editor
34     5.1. Block operations
35         5.1.1. Cut and paste
36         5.1.2. Indentation
37     5.2. Switching between editor windows
38     5.3. Undo/redo
39 6. Debugger front-end
40     6.1. Using debugger, requirements
41     6.2. Step-by-step execution
42     6.3. Breakpoints
43     6.4. Watches
44     6.5. Call stack
45     6.6. Core dumps exploration
46     6.7. Custom debuggers
47 7. Version control systems integration
48     7.1. Creation from CVS
49     7.2. Importing an existing project
50     7.3. The "Check/in out" dialog
51     7.4. Release tags
52     7.5. Version control systems customization
53 8. Useful features
54     8.1. Grepper
55     8.2. Regexper
56     8.3. Tag browser
57 9. Advanced features
58     9.5. Latest CVS snapshots
59 10. Lynx
60     10.1. The program homepage
61         10.1.1. Motor mailing list
62     10.2. thekonst.net
63     10.3. Other programs I write
66 1. Introduction
67 ---------------
69   Motor is a text mode based programming environment for Linux. It
70 consists of a powerful editor with syntax highlight feature, project
71 manager, makefile generator, gcc and gdb front-end, etc. Deep CVS
72 integration is also provided. A symbol browser is provided to make it
73 easier to move between various definitions in the source, and the
74 regexper tool helps you to create and debug regular expressions.
77 1.1. Creation history
78 ---------------------
80   I think that every program must comply with an ideology of the
81 operating system it's written for and it's a very important part of
82 success of a software product, so when I started writing motor I'd
83 deceided to create a useful tool for open source programmers that would
84 comply with an ideology of Linux as much as possible. When I use an
85 "igeology" term, first of all I mean the way the program works in
86 general, the OS facilities usage and an interface concept (for this kind
87 of programs).
89   There was a limited set of programs used almost by all of Linux
90 programmers in developing their open source programs. Usually they were
91 a text editor (I prefered mcedit), gcc/g++ compiler, make, gdb, cvs,
92 autoconf and some other tools. Programming IDE should integrate all of
93 them in an entrie user interface to help a programmer to organize his
94 projects the way he likes, to debug programs seeing the source and
95 modify it in the same time, etc.. I know, most of those tools comply
96 with Linux ideology quite well, but they relate to the command-line
97 interface concept. Some people find it useful, but as for me, I prefer a
98 bit higher level of visuality. It should be something like Midnight
99 Commander, that is de-facto a standard for text user interface for
100 Linux. That's what I tried to make.
103 1.2. Features overview
104 ----------------------
106   Every part of the IDE is configurable. You can define any kind of
107 debugger and version control system, syntax highlight, compiler messages
108 to parse, add additional actions, etc. Though in some parts it's not
109 that trivial, but who says it's gotta be so? :)
111   Internal editor has the following highlights. Of course, it can open
112 multiple files at once, has a standard set of block operations with some
113 nice additions like shifting whole blocks to make it easier to add
114 indents to your source. The find tool allows you to use regular
115 expressions, search in the whole project or its particular folders, you
116 can even perform searches in several projects. And sure there is a
117 possibility to use an external editor in cause if you don't like such a
118 cute thingie :)
120   Actually there are many features already implemented, which I will
121 tell you about in this documentation. And there is more to follow, of
122 course.
125 1.3. Requirements
126 -----------------
128   It's not difficult to build the motor executable, for there is a very
129 small set of tools it will need. Apart from the C++ compiler you should
130 only install ncurses, which is a CRT screen handling and optimization
131 package, at least of 4.2 version. You can find it by the following URL.
132   http://dickey.his.com/ncurses/ncurses.html
134   Well, with such a trivial build there must be a trick. Right, in order
135 to use it you'll need much more software installed. It would be rather
136 stupid to expect a small IDE to do all the job, like build processing,
137 version control, code debugging and tags extracting. Motor is just a
138 front-end for the standard tools, designed especially for these aims.
139 So, here is the list.
141   GNU Make
142   GNU Debugger (gdb)
143   autoconf and automake
144   CVS (Concurrent Version System)
145   RedHat Package Manager (if you want to generate such packages)
147   Also, the template scripts will use such standard command line tools,
148 like sed, grep, egrep, etc.. But usually they're included into any
149 modern UNIX distribution, so there is nothing to worry about.
152 1.4. First time start
153 ---------------------
156 2. User interface
157 -----------------
159   The text UI motor has, as well as UI of other programs for console I
160 have written, is very simple. There are menus, windows, menus and input
161 lines. In the bottom line of the screen there is a status bar. It
162 usually contains hints about what to press to invoke various menus,
163 dialogs, and perform various actions.
166 2.1. The ESC key
167 ----------------
169   This key is used for termination of input, if you wanna cancel the
170 operation you wanted to perform. Let's say, the "Motor settings" dialog
171 is invoked. As button bar says, you can use the item "Change" to change
172 values. There is also the "Done" button, which will save changes.
173 Obviously if you don't want to do the latter, there is ESC. The only
174 hint here is that you have to press the ESC key twice. It's a common
175 practice for console based UNIX programs (Midnight commander is a good
176 example), because checking for only one ESC would spoil arrow key
177 processing. The point is that they have correspond sequences that start
178 with an ASCII#27 character which is actually ESC.
180   If you still want to press a simple key combination to close a dialog
181 or cancel something, try Alt-ESC. Though it's not guaranteed to work on
182 all terminals.
184   The ESC key can also help you to issue shortcuts and key combinations
185 such as Alt-? or F<x>. The former, if Alt-Shift-/ doesn't work can be
186 produced by first pressing ESC and then Shift-/ (i.e. "?"). And instead
187 of any F-key the ESC and then a number can be used.
190 2.2. The main screen
191 --------------------
193 2.3. Menus
194 ----------
196 2.4. Dialogs
197 ------------
199 2.5. Hotkeys in dialogs
200 -----------------------
202   Dialogs in motor usually have a bar with buttons. To access a button
203 without moving the highlighted bar over it with the arrow keys you can
204 use shortcuts. It's enough to press the first capital letter of a button
205 name to access the function behind it.
208 2.6. Some UI tips
209 -----------------
211   There at some quite standard key combinations supported by motor. Here
212 they go.
214     Ctrl-L
215       Redraws the screen in any place of program execution. If output of
216     some kind of background programs or system messages spoil your screen
217     just press it to refresh the motor screen.
219     Ctrl-Y
220       In editor removes entire current line.
222     Ctrl-K
223       Single line edit mode.
224       Kills entire content.
226     Ctrl-U
227       Single line edit mode.
228       Kills a part of line to the left from cursor.
230     Alt-H
231       Single line edit mode.
232       Invokes history of recently entered lines.
234 3. Configuration
235 ----------------
237 3.1. The "Motor settings" dialog
238 --------------------------------
240 3.2. External keys
241 ------------------
243 3.3. Color schemes
244 ------------------
246   It's possible to customise colors in motor user interface. It's done
247 with the help of the ~/.motor/themes configuration file. The default one
248 can be found in the /usr/share/motor or /usr/local/share/motor
249 directory. Just copy it to ~/.motor and edit by preference. Its contents
250 are self-descriptive, and parameter names mean exactly that they're
251 named after. Please note, that among the standard color names it's
252 possible to specify "transparent" which is useful when the program is
253 used in terminals with background images set.
256 4. Projects
257 -----------
259 4.1. Project creation
260 ---------------------
262 4.2. Project files and directories
263 ----------------------------------
265 4.3. The "Project settings" dialog
266 ----------------------------------
268 4.4. Building programs
269 ----------------------
271 4.5. Distribution package generation
272 ------------------------------------
274 4.6. External output view, error messages
275 -----------------------------------------
277 4.7. Templates
278 --------------
280 4.7.1. Standard templates overview
281 ----------------------------------
283 4.7.2. Custom templates
284 -----------------------
286 5. Internal editor
287 ------------------
289 5.1. Block operations
290 ---------------------
292 5.1.1. Cut and paste
293 --------------------
295 5.1.2. Indentation
296 ------------------
298 5.2. Switching between editor windows
299 -------------------------------------
301 5.3. Undo/redo
302 --------------
304 6. Debugger front-end
305 ---------------------
307 6.1. Using debugger, requirements
308 ---------------------------------
310 6.2. Step-by-step execution
311 ---------------------------
313 6.3. Breakpoints
314 ----------------
316 6.4. Watches
317 ------------
319 6.5. Call stack
320 ---------------
322 6.6. Core dumps exploration
323 ---------------------------
325 6.7. Custom debuggers
326 ---------------------
328 7. Version control systems integration
329 --------------------------------------
331 7.1. Creation from CVS
332 ----------------------
334 7.2. Importing an existing project
335 ----------------------------------
337 7.3. The "Check/in out" dialog
338 ------------------------------
340 7.4. Release tags
341 -----------------
343 7.5. Version control systems customization
344 ------------------------------------------
346 8. Useful features
347 ------------------
349 8.1. Grepper
350 ------------
352 8.2. Regexper
353 -------------
355 8.3. Tag browser
356 ----------------
358 9. Advanced features
359 --------------------
361 9.5. Latest CVS snapshots
362 -------------------------
364 10. Lynx
365 --------
367   This section contains links and references that may be of interest for
368 you.
371 10.1. The program homepage
372 --------------------------
374 The motor homepage can be found at
375     http://thekonst.net/motor/
377 On the same page there is the latest version for you to download.
380 10.1.1. Motor mailing list
381 --------------------------
383   There is a mailing list for motor which is used by the program users
384 to discuss their ideas, bug reports, fixes, and other stuff. You would
385 rather want to use it instead of direct mailing to me.
387   To subscribe go to the motor home page (URL above) or send a message
388 to motor-request@linuxpl.org with "subscribe" in the subject field. To
389 post a message to the list, send it to motor@linuxpl.org after you
390 subscribe. The archive can be found at http://eloy.linux.net.pl/motor/
393 10.2. thekonst.net
394 ------------------
396   If you want to find out more about my recent activities, news,
397 software developments and other things I'm involved in, visit my web
398 site at http://thekonst.net/
401 10.3. Other programs I write
402 ----------------------------
404 To find out more about my software developments use the following URL:
405     http://thekonst.net/konstware/
407 There is also an "articles" section at
408     http://thekonst.net/writings/
411 11. Help to the project I would appreciate
412 ------------------------------------------
414   What if you think that motor is the best text console based IDE
415 around? What if motor is an IDE you'd been waiting whole of your life,
416 and want to express your appreciation somehow? Helping the author you
417 help the project itself to keep rolling. It's not something vital I
418 require to keep on writing and improving motor, neither you have to do
419 it. I quite enjoy making it in my spare time, and happy of the fact
420 there are no deadlines and obligations from my side. It's just my hobby.
422   So how you can express appreciation to the way I waste my spare time,
423 so that to make me a bit more happy and satisfied by my activities?
426 11.1. Feedback
427 --------------
429   You can write some feedback saying what you liked and what is missing
430 in the program. Also, don't be silent if you notice bugs. Just check
431 everything attentively and send a detailed bug-report to the mailing
432 list.
435 11.2. Patches
436 -------------
438   Don't wait for me to implement a feature you'd like to have in motor.
439 Please have in mind that whole the source code is available and you can
440 modify it yourself, then make a patch and send it to me. I'd like you to
441 follow my style of formatting the code. Please don't make any changes
442 not related to the feature you implement, it makes your patch difficult
443 to commit.
446 11.3. Promoting the little program
447 ----------------------------------
449   I bet you read some computers related magazines and visit various
450 Linux related sites. Please don't keep silence instead of screaming out
451 your adoration for the little nice program. Submit it to a software site
452 or catalogue or/and encourage the authors of your favourite magazine to
453 take a look at it and possibly write about motor. Interviews, speeches,
454 presedential elections ;) and stuff are also possible, just contact me
455 for more details.
458 11.4. Donations
459 ---------------
461   If you're a materialist guy like me, you might want to present me
462 something what I can touch, put on a sandwich or into my pocket. Here it
463 goes.
466 11.4.1. Money
467 -------------
469   The most universal way. Depending on a sum I will be able to drink one
470 more beer or tequila to the health of motor users or buy a piece of
471 hardware, electronic gagdet or the newest model of "Porsche" ;) Contact
472 me and I'll discuss a way I can receive your donation.
475 11.4.2. Hardware
476 ----------------
478   Since usually I write motor at home, it's always nice to upgrade the
479 computer it's being developed with. It can increase the speed and
480 pleasure I get during the process.
483 11.4.3. Other stuff
484 -------------------
486   Other stuff like t-shirts, souvenirs, albums or postcards with nice
487 views of the nature in places where you live, baseball tickets ;) are
488 also welcome.
490 $Id: README,v 1.5 2003/07/22 21:47:51 konst Exp $