116 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
 | |
| 
 | |
| <html>
 | |
| <head>
 | |
| <title>PceEmacs SGML mode</title>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| <h1>PceEmacs SGML mode</h1>
 | |
| 
 | |
| <p>
 | |
| This page describes the <em>PceEmacs</em> modes <b>SGML</b>, <b>HTML</b> and
 | |
| <b>XML</b>. These modes are based on the
 | |
| <a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog">SWI-Prolog</a>
 | |
| package sgml2pl, an SGML/XML parser for Prolog. It exploits this parser
 | |
| to achieve both colouring syntax elements and errors as well as to
 | |
| provided menu-driven editing of SGML, HTML and XML documents.
 | |
| 
 | |
| 
 | |
| <h2>Syntax highlighting</h2>
 | |
| 
 | |
| <p>
 | |
| These PceEmacs modes are designed to be simple. Colouring uses the
 | |
| following colours
 | |
| 
 | |
| <p>
 | |
| <table align=center border="2">
 | |
| <tr><td><font color="#0000ff"><tt><b>bold blue</b></tt></font>	
 | |
|     <td>begin tag
 | |
| <tr><td bgcolor="#e7e7e7"><font color="#0000ff">
 | |
| 			    <tt><b>bold blue onlight-grey</b></tt>
 | |
| 			  </font>
 | |
|     <td>SGML SHORTREF expansion
 | |
| <tr><td><font color="#0000ff"><tt>blue</tt></font> 
 | |
|     <td>end tag
 | |
| <tr><td><font color="#288a51">sea-green</font>			
 | |
|     <td>CDATA declared content element
 | |
| <tr><td bgcolor="#ffa600"><tt>orange</tt>
 | |
|     <td>warning
 | |
| <tr><td bgcolor="#ff0000"><tt>red</tt>
 | |
|     <td>error
 | |
| </table>
 | |
| 
 | |
| <p>
 | |
| Colouring the whole buffer is the only really safe colouring method, but
 | |
| unfortunately doesn't scale with large files. Therefore, this mode is
 | |
| only initiated after loading a file in this mode, after typing
 | |
| <b>Control-L</b> (<b>recenter</b>) or after an explicit
 | |
| <b>colourise_buffer</b> command.
 | |
| 
 | |
| <p>
 | |
| The more error-prone <b>colourise_element</b> is activated after many
 | |
| commands as well as after an idle-period of 2 seconds. This command
 | |
| searches backward to the first element that encloses the caret and then
 | |
| colourises this element.  It is errorprone for two reasons.  First of
 | |
| all, it does not validate whether the checked element itself is at a
 | |
| valid location.  Second, it does not see elements allowed throught the
 | |
| DTD's <b>+(<i>Model</i>)</b> construct.
 | |
| 
 | |
| 
 | |
| <h2>Errors and warnings</h2>
 | |
| 
 | |
| <p>
 | |
| Errors and warning encountered during parsing cause the suspect region
 | |
| to be coloured <font color="#ffa600">orange</font> (warning) or <font
 | |
| color="#ff0000">red</font> (error).  Moving the caret in the suspect
 | |
| area causes the error to be printed in the status line at the bottom
 | |
| of the editor.
 | |
| 
 | |
| 
 | |
| <h2>Syntax-guided editing</h2>
 | |
| 
 | |
| <p>
 | |
| Most syntax-guided editing is supported using a context-sensitive
 | |
| popup-menu associated with the right mouse button.  To create an
 | |
| <b>new element</b>, press the right mouse-button at the desired location
 | |
| and select the desired element.  The modifier buttons define how
 | |
| the element is inserted:
 | |
| 
 | |
| <p>
 | |
| <table align="center" border="2">
 | |
| <tr><td>control	<td>Insert adjacent begin- and end-tag.
 | |
| <tr><td>shift	<td>Place begin- and end-tag each on their own line
 | |
| <tr><td>alt	<td>(SGML only) create a <b>SHORTTAG</b> element
 | |
| </table>
 | |
| 
 | |
| <p>
 | |
| To <b>tag the current selection</b> with a tag, first make a selection and
 | |
| then press the right mouse-button inside the selection.  The same
 | |
| modifiers as above apply.  If no modifier is given, the default
 | |
| is to place the tag at their own line of the selection contains
 | |
| complete lines and `in-line' otherwise.
 | |
| 
 | |
| <p>
 | |
| To <b>add attributes</b> to an element, press the right-button inside the
 | |
| elements begin-tag and select the desired elements.
 | |
| 
 | |
| 
 | |
| <h2>Bugs and TODO</h2>
 | |
| 
 | |
| <ul>
 | |
| <li>Cache the parsed DTD
 | |
| <li>Deal with included +(Group) elements properly
 | |
| <li>Display total number of encountered errors and provide navigation
 | |
|     on large files
 | |
| <li>Personalise layout: style to use for certain tags, syntax
 | |
|     highlighting, etc.
 | |
| <li>Take are of already present attributes and elements.
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| </body>
 | |
| </html>
 |