- Fix indentation, labels, and mnemonics in highlightData.c
[nedit.git] / README
blobe7796702f31b4ad645e3c6081e23b479cfcc63e8
1                     NEdit Version 5.3,  March 2002
3 $Id: README,v 1.30 2002/09/26 10:22:38 ajhood Exp $
4              
6 NEdit is a multi-purpose text editor for the X Window System, which combines a
7 standard, easy to use, graphical user interface with the thorough functionality
8 and stability required by users who edit text eight hours a day.  It provides
9 intensive support for development in a wide variety of languages, text
10 processors, and other tools, but at the same time can be used productively by
11 just about anyone who needs to edit text.
13 This program is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
15 PARTICULAR PURPOSE.
16 As of version 5.1, NEdit may be freely distributed under the terms of the GNU
17 General Public License (see the file COPYRIGHT which is also part of this
18 distribution).
20 NEdit sources, executables, additional documentation, and contributed software
21 are available from the NEdit web site at http://nedit.org.
24 AUTHORS
26 NEdit was written by Mark Edel, Joy Kyriakopulos, Christopher Conrad,
27 Jim Clark, Arnulfo Zepeda-Navratil, Suresh Ravoor, Tony Balinski, Max
28 Vohlken, Yunliang Yu, Donna Reid, Arne Førlie, Eddy De Greef, Steve
29 LoBasso, Alexander Mai, Scott Tringali, Thorsten Haude, Steve Haehn,
30 and Andrew Hood.
32 The regular expression matching routines used in NEdit are adapted (with
33 permission) from original code written by Henry Spencer at the University of
34 Toronto.
36 Syntax highlighting patterns and smart indent macros were contributed
37 by: Simon T. MacDonald,  Maurice Leysens, Matt Majka, Alfred Smeenk,
38 Alain Fargues, Christopher Conrad, Scott Markinson, Konrad Bernloehr,
39 Ivan Herman, Patrice Venant, Christian Denat, Philippe Couton, Max Vohlken, 
40 Markus Schwarzenberg, Himanshu Gohel, Steven C. Kapp, Michael Turomsha, 
41 John Fieber, Chris Ross, Nathaniel Gray, Joachim Lous, Mike Duigou, 
42 Seak Teng-Fong, Joor Loohuis, Mark Jones, and Niek van den Berg.
45 VERSION 5.3
47 Version 5.3 is mainly a bug fix release but also offers some new features.
49 The most significant enhancements in this release are:
51  - A revamped Help system with hyperlinked cross-references.
52  - Enhanced support for Exuberant ctags.
53  - Goto Line also accepts Column numbers.
54  - Automatic line-feed termination when saving is now optional.
55  - A customizable window title.
56  - Optional syntax based parenthesis matching (iso. purely character based).
58 There are also several smaller improvements and bug fixes, see the
59 ReleaseNotes file for more details.
62 BUILDING NEDIT
64 Pre-built executables will be available for many operating systems, including
65 most major Unix and VMS systems. Check out the NEdit web page at
67   http://nedit.org
70 The requirements to build NEdit from the sources are: 
72  - ANSI C89 system (compiler, headers, libraries)
73  - make utility (eg, GNU make)
74  - X11R5 development stuff (headers, libraries), or newer
75  - Motif 1.2 or above (Motif 1.1 might work, but is no longer supported)
76    This GUI library is a standard part on most systems which have an
77    X11 installation. Most commercial Unix systems feature this, others may
78    require a separate installation. 
79    A "free" (LGPL'ed) alternative to Motif, called LessTif, is available.
80    See the LessTif section under PLATFORM SPECIFIC ISSUES for details.
82 Optionally one may use:
84  - yacc (or GNU bison)
87 The two directories called 'source' and 'util' contain the sources for NEdit.
88 'util' should be built first, followed by 'source'. The makefile in NEdit's
89 root directory can be used to build both in sequence if your system is one of
90 the supported machines and no modifications are necessary to the makefiles. To
91 build NEdit from the root directory, issue the command: 'make <machine-type>';
92 where <machine-type> is one of suffixes of a makefile in the directory
93 'makefiles'. For example, to build the Silicon Graphics version, type:
95         make sgi
97 If everything works properly, this will produce two executables called
98 'nedit' and 'nc' in the directory called 'source'.
101 The Source Directories
103 Since executables are already available for the supported systems, you are
104 probably not just rebuilding an existing configuration, and need to know more
105 about how the directories are organized.
107 The util directory builds a library file called libNUtil.a, which is later
108 linked with the code in the source directory to create the nedit executable.
110 The makefiles in both source directories consist of two parts, a machine
111 dependent part and a machine independent part. The machine dependent makefiles
112 can be found in the directory called 'makefiles', and contain machine specific
113 header information. They invoke a common machine independent part called
114 Makefile.common (which in turn includes also Makefile.dependencies).
115 To compile the files in either of these directories, copy or link one of the
116 system-specific makefiles from the directory 'makefiles' into the directory,
117 and issue the command:
119     make -f Makefile.<machine-type>
120     
121 (where <machine-type> is the makefile suffix).  Alternatively, you can
122 name the file 'Makefile' and simply type "make".
124 If no makefile exists for your system, you should start from Makefile.generic,
125 which is extensively commented. Contact the developer at develop@nedit.org for
126 help.
129 Building NEdit on VMS Systems
131 Command files are provided for compiling and linking files in the source
132 and util directories.  comutil.com compiles the files in the util directory
133 and produces two library files, vmsutils.olb and libutil.olb.  comnedit.com
134 compiles and links the files in the source directory to produce the nedit.exe
135 executable.
138 Additional Settings
140 Some C preprocessor macros may be used to en/disable certain parts
141 of the code. Usually this correponds to some non-important features
142 being selected or certain workarounds for platform-specifc problems.
143 Those which might be useful on more than one platform are documented
144 in makefiles/Makefile.generic.
146 Note that a special compilation flag, namely REPLACE_SCOPE, is currently
147 available. Its purpose is to allow the evaluation of two alternative
148 (but functionally equivalent) Replace/Find dialog box layouts. 
149 By default, NEdit is built with a Replace/Find dialog containing 2 rows
150 of push buttons. Compiling with the REPLACE_SCOPE flag enables an 
151 alternative layout with a row of radio buttons for selecting the scope of 
152 the replace operations. Eventually, one of these alternatives will
153 probably disappear, but up to now, the NEdit developers have not been able
154 to decide which one to drop. Please give them both a try and let us know 
155 which one you prefer (via the discuss mailing list, for instance).
157 Another compilation flag, HAVE__XMVERSIONSTRING, adds additional
158 information about the Motif version in the menu item "Help->Version" or
159 the command line option "-version". Whether this is available on your
160 system depends on the Motif implementation. It is known to work with
161 OpenMotif 2.1.30, and Motif on Solaris 2.6 and AIX 4.3.3.
163 INSTALLATION
165 NEdit consists of a single, stand-alone executable file which does not require
166 any special installation.  To install NEdit on Unix systems, simply put the
167 nedit executable in your path.  
168 On VMS systems, nedit must be defined as a foreign command so that it can
169 process command line arguments. For example, if nedit.exe were in the
170 directory mydir on the disk called mydev, adding the following line to your
171 login.com file would define the nedit command:
173         $ ned*it :== $mydev:[mydir]nedit.exe
175 To use NEdit in client/server mode, you also need the nedit client program, nc,
176 which, again, needs no special installation, except in the VMS case, as above.
177 On some systems, the name nc may conflict with an existing program.  In that
178 case, choose a different name for the executable and simply rename it.  The
179 recommend alternative is 'ncl'.
180 Don't forget to put the man-pages for nedit and nc into a place where your
181 man command is able to find them (e.g. /usr/man/man1/nedit.1)
184 RUNNING NEDIT
186 To run NEdit, simply type 'nedit', optionally followed by the name of a file
187 or files to edit. On-line help is available from the pulldown menu on the far
188 right of the menu bar. For more information on the syntax of the nedit command
189 line, look under the heading of "NEdit Command Line".
191 The recommended way to use NEdit, though, is in client/server mode, invoked by
192 the nc executable. It allows you to edit multiple files within the same
193 instance of NEdit (but still in multiple windows). This saves memory (only one
194 process keeps running), and enables additional functionality (such as find &
195 replace accross multiple windows). See "Server Mode and nc" in the help menu
196 for more information.
198 If you are accessing a host Unix system from a remote workstation or X
199 terminal, you need to set the Unix environment variable for your display:
200 csh:
201         % setenv DISPLAY devicename:0
202 sh, ksh, bash, zsh:
203         % export DISPLAY=devicename:0
205 where devicename is the network node name (hostname) of the workstation or X
206 terminal where you are typing.
207 On VMS systems, the equivalent command is:
209         $ set display/create/node=devicename
213 PLATFORM SPECIFIC ISSUES
215 Systems with LessTif, rather than Motif libraries
217 As of Lesstif 0.93.18, NEdit is very stable with Lesstif. 
218 You can get the latest LessTif version from http://www.lesstif.org.
219 If you are having trouble building or running NEdit with LessTif,
220 remember there are pre-compiled statically linked executables available
221 from our website.
222 Known bugs which might show off in NEdit linked with LessTif include:
224   1) Some dialogs which are intended to be modal (prevent other activity
225      while up) are not, and doing other actions while these dialogs are
226      up can cause trouble (.89.9+)
227      
228   2) Switching to continuous wrap mode, sometimes the horizontal scroll
229      remains partially drawn after the change, rather than disappearing
230      completely as it should. (.89.9+)
231   
232   3) Secondary selection operations are not yet supported in text fields.
234   4) Status bar is blank after usage of Incremental Search field
235      (0.93.18+-)
238 Linux Systems
240 The default key bindings for arrow keys in fvwm interfere with some of the
241 arrow key bindings in NEdit, particularly, Ctrl+Arrow and Alt+Arrow.  You
242 may want to re-bind them either in NEdit (see Customizing -> Key Binding
243 in the Help menu) or in fvwm in your .fvwmrc file.
245 Some older Linux distributions are missing the /usr/X11R6/lib/X11/XKeysymDB
246 file, which is necessary for running Motif programs.  When XKeysymDB is
247 missing, NEdit will spew screenfulls of messages about translation table syntax
248 errors, and many keys won't work.  You can obtain a copy of the XKeysymDB file
249 from the contrib sub-directory of the NEdit distribution directory.  
252 SGI Systems
254 Beginning with IRIX 6.3, SGI is distributing a customized version of NEdit
255 along with their operating system releases.  Their installation uses an
256 app-defaults file (/usr/lib/X11/app-defaults/NEdit) which overrides the
257 default settings in any new nedit version that you install, and may result in
258 missing accelerator keys or cosmetic appearance glitches.  If you are
259 re-installing NEdit for the entire system, just remove the existing app-
260 defaults file.  If you want to run a newer copy individually, get a copy of
261 the app-defaults file for this version the contrib sub-directory of the
262 distribution directory for this version on ftp.nedit.org (/pub/<version>/
263 contrib/nedit.app-defaults), and install it in your home directory or set
264 the environment variables XAPPLRESDIR or XUSERFILESEARCHPATH to point
265 to a directory and install it there.  In all cases, the file should be
266 named simply 'NEdit'.
268 No additional installation or resource settings are necessary on IRIX systems
269 before 6.3
272 HP-UX Systems
274 If you are using HPVUE and have trouble setting colors, for example part
275 of the menu bar stubornly remains at whatever HPVUE's default is, try setting:
277    nedit*useColorObj: False
279    
280 IBM AIX Systems
282 Due to an optimizer bug in IBM's C compiler, the file, textDisp.c, must be
283 compiled without optimization on some AIX systems.
286 Solaris (SunOS 5.3 and beyond) Systems
288 The nedit_solaris executable may require the environment variable OPENWINHOME
289 to be set to the directory where Open Windows is installed.  If this is not set
290 properly, NEdit will spew screenfulls of messages about translation table
291 syntax errors.
293 Solaris 2.4 -- Add -DDONT_HAVE_GLOB to the CFLAGS line in Makefile.solaris.
295 Solaris 2.5 -- Solaris 2.5 systems were shipped with a bad shared Motif
296 library, in which the file selection dialog (Open, Save, Save As, Include,
297 etc.) shows long path names in the file list, but no horizontal scroll bar,
298 and no way to read the actual file names.  Depending on your system, the
299 patch is one of ID# 103461-07, # 102226-19, or # 103186-21.  It affects all
300 Motif based programs which use the library.  If you can't patch your system,
301 you might want to just try the nedit_sunos executable (from ftp.nedit.org
302 /pub/<version>), which is statically linked with a good Motif.  You can also
303 set the X resource: nedit.stdOpenDialog to True, which at least gives you a
304 text field where you can enter file names by hand.
306 Solaris 2.6 -- If you're experiencing performance problems (windows come up
307 slowly), the patch for Sun's shared Motif library is ID# 105284-04.  Installing
308 the patch alone will improve nedit's performance dramatically.  The patch also
309 enables a resource, *XmMenuReduceGrabs. Setting this to True will eliminate the
310 delay completely.
312 SunOS 4.x Systems
314 On some SunOS systems, NEdit will also complain about translation table syntax
315 errors.  This happens when Motif can't access the keysym database, usually
316 located in the file /usr/lib/X11/XKeysymDB.  If this file exists on your
317 system, but NEdit fails to locate it properly, you can set the environment
318 variable XKEYSYMDB to point to the file.  If you can't find the file, or if
319 some of the errors persist despite setting XKEYSYMDB, there is a XKeysymDB
320 which you can use to update or replace your /usr/lib/X11/XKeysymDB file
321 available in the contrib sub-directory of the NEdit distribution directory.
322 If you don't want to change your existing XKeysymDB file, make a local copy
323 and set XKEYSYMDB to point to it.
325 If you find that some of the labeled keys on your keyboard are not properly
326 bound to the corresponding action in NEdit, try the following:
328   1) Get a copy of motifbind.sun (for Sun standard keyboards), or
329      motifbind.sun_at (for Sun PC style keyboards) from the NEdit contrib
330      directory on ftp.nedit.org:/pub/<version>/contrib.
331   2) Copy it to a file called .motifbind in your home directory.
332   3) Shutdown and restart your X server.
335 COMPATIBILITY WITH PREVIOUS VERSIONS
337 Existing .nedit Files
339 As of version 5.1, NEdit employs a built-in upgrade mechanism which will
340 automatically detects .nedit files of older versions. In general, NEdit
341 will try to convert and insert entries to match the latest version.
342 However, in certain cases where the user has customized the default entries,
343 NEdit will leave them untouched (except for possible syntactic conversions).
344 As a result, the latest syntax highlighting patterns for certain languages may
345 not get activated, for instance, if the user has customized the entries. The
346 latest default patterns can always be activated through the
347 Preferences->Syntax Highlighting->Recognition Patterns menu, though.
349 Next, some version specific upgrading issues are listed. Note that 
350 non-incremental upgrading (eg., from 5.0 to 5.2) is supported too.
352 * Upgrading from 5.2 to 5.3
354   There are no major changes in the format of the .nedit file for version
355   5.2. Users that have customized the X Resources syntax highlighting 
356   pattern may consider restoring the default patterns, as they resolve
357   a performance issue when editing the .nedit file itself, for instance.
358   
359 * Upgrading from 5.1 to 5.2
361   There are no major changes in the format of the .nedit file for version
362   5.2. NEdit will try to insert additional entries for the newly supported
363   language modes and syntax highlighting patterns (CSS, Regex, and XML) and
364   highlight styles (Pointer, Regex, Warning).
365   Moreover, the formerly boolean 'showMatching' option will silently be
366   converted to a tri-state value.
367   Users that have customized some of the syntax highlighting patterns may
368   consider restoring the default patterns, as many of them have been improved
369   considerably.
370   
371 * Upgrading from 5.0 to 5.1
372   
373   NEdit 5.1 makes significant changes to the syntax of regular expressions.
374   Mostly, these are upward compatible, but two changes; introducing the brace
375   operator, and changing the meaning of \0; are not. Brace characters must now
376   be escaped with backslash, and & must be used in place of \0 in
377   substitutions.
379   NEdit 5.1 employs a built-in upgrade mechanism which will automatically
380   detect pre-5.1 .nedit files and fix regular expressions which appear in
381   user-defined highlight patterns. The automatic upgrade mechanism, however,
382   can not fix regular expression problems within user-defined macros. If you
383   have a macro which is failing under NEdit 5.1, you will have to fix it by
384   hand.
385   
386 * Upgrading from pre-5.0
388   If you are upgrading from a pre-5.0 version of NEdit, there are significant
389   changes to the macro language, and you are best off simply editing out the
390   nedit.macroCommands section of your .nedit file, generating a new .nedit
391   file, and then re-introducing your user-written commands into the new file.
392   Most macros written for previous versions will function properly under the
393   new macro language. The most common problems with old macros is lack of a
394   terminating newline on the last line of the macro, and the addition of "<",
395   ">", and now "{" to the regular expression syntax. These characters must now
396   be escaped with \ (backslash). Also, if you have been using a font other
397   than the default for the text portion of your NEdit windows, be sure to
398   check the Preferences -> Default Settings -> Text Font dialog, and select
399   highlighting fonts which match your primary font in size. Matching in height
400   is desirable, but not essential, and sometimes impossible to achive on some
401   systems. When fonts don't match in height, turning on syntax highlighting
402   will cause the window size to change slightly. NEdit can handle unmatched
403   font sizes (width), but leaving them unmatched means sometimes columns and
404   indentation don't line up (as with proportional fonts).
406 FURTHER INFORMATION
408 More information is available in the file nedit.doc in this kit, from NEdit's
409 on-line help system, the man-pages and from the enclosed FAQ file. 
410 There is also a web page for NEdit at: http://nedit.org.  For discussion with
411 other NEdit users, or to receive notification of new releases you can
412 subscribe to one or more of the NEdit mailing lists, announce@nedit.org,
413 discuss@nedit.org or develop@nedit.org.  The NEdit on-line help has information
414 on subscribing under Help -> Mailing Lists.
417 REPORTING BUGS
419 The NEdit developers subscribe to both discuss@nedit.org and develop@nedit.org,
420 either of which may be used for reporting bugs.  If you're not sure, or you
421 think the report might be of interest to the general NEdit user community,
422 send the report to discuss@nedit.org.  If it's something obvious and boring,
423 like we misspelled "anemometer" in the on-line help, send it to develop.  If
424 you don't want to subscribe to these lists, please add a note to your mail
425 about cc'ing you on responses.
426 An alternative way to report bugs is to submit an entry on our web-based
427 bug tracker at
428   http://sourceforge.net/projects/nedit/