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> |