<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="https://syndication.webwiz.net/rss_namespace/">
 <channel>
  <title>Codejock Developer Community : Syntax Edit Lex Schema Help</title>
  <link>http://forum.codejock.com/</link>
  <description><![CDATA[This is an XML content feed of; Codejock Developer Community : Articles and Tutorials : Syntax Edit Lex Schema Help]]></description>
  <copyright>Copyright (c) 2006-2013 Web Wiz Forums - All Rights Reserved.</copyright>
  <pubDate>Thu, 30 Apr 2026 15:04:02 +0000</pubDate>
  <lastBuildDate>Fri, 10 Jun 2022 17:03:36 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 12.04</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>forum.codejock.com/RSS_post_feed.asp?TID=18102</WebWizForums:feedURL>
  <image>
   <title><![CDATA[Codejock Developer Community]]></title>
   <url>http://forum.codejock.com/forum_images/codejock-logo.gif</url>
   <link>http://forum.codejock.com/</link>
  </image>
  <item>
   <title><![CDATA[Syntax Edit Lex Schema Help : Found the CJ scheme file for CJ...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=18102&amp;PID=78454&amp;title=syntax-edit-lex-schema-help#78454</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=1284">franji1</a><br /><strong>Subject:</strong> 18102<br /><strong>Posted:</strong> 10 June 2022 at 5:03pm<br /><br />Found the CJ scheme file for CJ scheme files.&nbsp; Excellent!]]>
   </description>
   <pubDate>Fri, 10 Jun 2022 17:03:36 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=18102&amp;PID=78454&amp;title=syntax-edit-lex-schema-help#78454</guid>
  </item> 
  <item>
   <title><![CDATA[Syntax Edit Lex Schema Help : Thank you! Thank you! Thank...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=18102&amp;PID=64607&amp;title=syntax-edit-lex-schema-help#64607</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=5575">davbrat</a><br /><strong>Subject:</strong> 18102<br /><strong>Posted:</strong> 26 May 2011 at 3:00pm<br /><br />Thank you!<br>Thank you!<br>Thank you!<br><br>Mario...<br><br>You'd da Man!<br><br>]]>
   </description>
   <pubDate>Thu, 26 May 2011 15:00:48 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=18102&amp;PID=64607&amp;title=syntax-edit-lex-schema-help#64607</guid>
  </item> 
  <item>
   <title><![CDATA[Syntax Edit Lex Schema Help : ***		Lex class description	***...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=18102&amp;PID=63467&amp;title=syntax-edit-lex-schema-help#63467</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=369">SuperMario</a><br /><strong>Subject:</strong> 18102<br /><strong>Posted:</strong> 22 March 2011 at 11:22am<br /><br /><pre>***		Lex class description	***                                      <br><br>lexClass object is a block of text with defined begin and end sequence;<br>for which can be specified some font and colors attributes. <br>One lex class can contain others inside itself;<br>also it can have some relations to other classes.<br><br>lex schema is defined as a set of lexClasses. <br>It contains a root class with parent type 'file' <br>(which defines a files extensions to apply this schema to, <br>and some global schema attributes).<br><br>--- Lex schemes                                        <br>                      <br>Lex schemes are defined in *.schclass files. <br>Lex class properties (attributes) can be compound, like:<br>parent:dyn, previous:tag:separators.<br><br>--- Multiple values<br>                                                                      <br>For multiple value properties the following syntax is allowed:<br><br>	propertyX = value1, value2, value3, ....<br>	propertyX = valueA1, valueA2, ...<br>	propertyX = valueN1<br>	propertyX = valueN2<br>	....<br><br>--- String values<br>                                                     <br>String(character) values are defined in single quotation marks:<br>	'stringValue'<br>There are a few special chars (as in C++):  <br>	'\\', '\'', '\t', '\r', '\n'<br><br>And predefined constants:<br>	@alpha	= a-z, A-Z<br>	@digit	= 0-9<br>	@HexDdigit	= 0-9, a-f, A-F<br>	@specs	= "~`!@#$%^&amp;*()_-+=\\|{}&#091;&#093;;:'\",.&lt;&gt;/?"<br>	@EOL		= End Of Line<br><br>NOT operation supported for constants comparisons, <br>example:   @alpha:not<br><br>	<br>---		Comments  <br>//<br>	Two slashes are used to define a single line comment in Lex schema files.<br>	(same as in C++)<br><br>---		Section                                                          <br>lexClass:<br>	This keyword begins a lex class section.<br>		<br>---	  name     -- Property (required)<br>name		<br>	Define a lexClass name. Must be unique withing same lex schema (*.schclass file).<br><br>EXAMPLE:<br>	name = c_CPPString<br><br>---		parent   -- Property (required)                                             <br>parent<br>	Defines a direct parent of lex class. (parent class name)<br><br>parent:dyn	<br>	Defines a dynamic parent of lex class. (parent class name)<br>	Dynamic means that parent class can be not only direct parent, <br>	but parent of its parent &#091;of parent ...&#093; until the top class/block.<br><br>parent:file<br>	Defines a top schema class. (as file extensions list &lt;*.ext1|*.ext2&gt;)<br><br>Only one of mentioned above 'parent' properties can be used for each class.<br><br>EXAMPLE:<br>	parent:file = &lt;*.c|*.cpp|*.h|*.inl|*.tli|*.tlh|*.rc|*.rc2&gt;	<br>	parent		= c_CPP<br>	parent:dyn	= c_CPP<br><br>---		children -- Property (optional)                                             	<br>children<br>	Defines an allowed direct children for lex class. <br>	(as comma separated class names or zero to restrict any child)<br><br>	Parent-child relation is defined by 'parent' property.  This property helps <br>	to restrict create parent-child relation for classes other than specified <br>	or define that class has no children.<br><br>EXAMPLE:<br>	children = 0 // has no children<br>	children = class1, class2, ...<br><br>---		RecurrenceDepth	-- Property  (optional)                                             	<br>RecurrenceDepth	<br>	Defines maximum depth of nested classes (blocks). <br>	(as a number, default value 1).<br><br>	Class A can be parent for class B. And Class B can be parent for class A. <br>	Possible situation when A=B. (for example '{}' block in C++)<br>	This property defines maximum depth of A-&gt;B-&gt;A-&gt;B-&gt;... nested construction.<br><br>EXAMPLE:<br>	RecurrenceDepth = 32<br><br>---		previous -- Property (optional)                                             	<br>'previous' property used to set condition to start lex class as previous <br>tag or class. The difference from 'start' property that objects specified <br>in this property is not included in class(block).<br>Can be used alone or together with 'start' property.<br><br>previous:class<br>	This class is started only if previous determined class name in collection <br>	specified in this property.<br>	(as one or more class names)<br><br>previous:tag<br>	This class is started only if start condition is true and previous tag is <br>	in collection specified in this property.<br>	(as one or more tags)<br><br>previous:tag:separators<br>	separators set for previous:tag values.<br><br>Previous 'tag' and 'class' conditions can be specified separately or together.<br><br>EXAMPLE:<br>	previous:class	= c_HTMLelement_SCRIPT_lang_VB, c_HTMLelement_SCRIPT_lang_JS				<br>	previous:tag			= '='<br>	previous:tag:separators	= ' ', '\t', @eol<br><br>---		start    -- Property  (optional)                                             	<br>'start' property used to set condition to start lex class as tag or class. <br>The difference from 'previous' property that objects specified in this <br>property is included in class(block).<br>Can be used alone or together with 'previous' property.<br><br>start:class<br>	This class is started only if previous determined class name in collection <br>	specified in this property.<br>	(as one or more class names)<br><br>start:Tag<br>	This class is started if current tag is in collection specified in this property.<br>	(as one or more tags)<br><br>Start 'tag' and 'class' conditions can be specified separately or together.<br><br>---		end      -- Property  (optional)                                             	<br>'end' property used to set end lex class condition as tag or class. <br><br>end:class<br>	This class is ended if previous determined class name in collection <br>	specified in this property.<br>	(as one or more class names)<br><br>end:Tag<br>	This class is ended if current tag is in collection specified in this property.<br>	(as one or more tags)<br><br>end:separators<br>	This class is ended if tag after current position is in collection specified <br>	in this property. Difference from end:Tag is that end:Tag specify tags before  <br>	current position and end:Tag included in this block but end:separators not <br>	included..<br>	(as one or more tags)<br><br>End 'class', 'tag' and 'separators' conditions can be specified separately or together.<br><br>---		skip     -- Property  (optional)                                             	<br>skip:Tag<br>	Used to skip some tags from parsing. Useful to support special tags <br>	part of which can be a begin of end tag.	<br>	(as one or more tags)<br><br>EXAMPLES (for start, end, skip):<br><br>	start:Tag	='/*'<br>	end:Tag		='*/'<br><br>  //-------------------------------------------<br>	start:Tag		= '"'<br>	skip:Tag		= '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r'	<br>	end:Tag			= '"', @eol<br><br>  //-------------------------------------------<br>	start:tag	= @alpha<br>	skip:tag	= @digit<br>	end:separators = @alpha:not<br><br>  //-------------------------------------------<br>	start:CLASS	= c_CPPAfxInsertBlock_Start	<br>	end:CLASS	= c_CPPAfxInsertBlock_End	<br><br>---		token    -- Property  (optional)                                             	<br>'token' property is used to set lex class as some token(s). <br>It could be useful to define keywords.<br>Can be used alone or together with 'previous' property.<br>It must not be used together with 'start'-'end' condition.<br><br>token:tag<br>	This class is a word from this collection.<br>	(as one or more tags)<br><br>Token:start:separators<br>	Start separators set for token:tag values.<br><br>Token:end:separators<br>	End separators set for token:tag values.<br><br>Token 'tag' is main condition. Token 'separators' additional conditions.<br>'separators' without 'tag' have no sense.<br><br>EXAMPLE:<br>	<br>	token:start:separators	= ' ', '\t', '&lt;%=', '&lt;%', @specs, @eol <br>	token:end:separators	= ' ', '\t', '%&gt;', @specs, @eol <br><br>	token:tag = 'if', 'for', 'while', 'do'<br>	token:tag = 'break'<br>    token:tag = 'case'<br>    token:tag = 'catch'<br><br><br>--- TEXT Attributes <br><br>txt:XXX defines a few text properties for lex class (block of text).<br>All of them are optional and if some text attribute is not specified - <br>it is inherited from parent class or set to default value for a top (file) lex class. <br><br>txt:colorFG	<br>	Fore color value in hex format (like 0xffc0c0).<br>	default: black	<br><br>txt:colorBK<br>	Background color value in hex format (like 0xffFFff).<br>	default: white		<br><br>txt:colorSelFG	<br>	Selected text fore color value in hex format (like 0xffFFff).<br>	default: white<br><br>txt:colorSelBK	= 0xffc0c0 // color value in hex format. default: <br>	Selected text background color value in hex format (like 0xab0077).<br>	default: black	<br><br>txt:Bold<br>	Bold font attribute. Values {1, 0} <br>	default: 0<br><br>txt:Italic<br>	Italic font attribute. Values {1, 0} <br>	default: 0<br><br>txt:Underline<br>	Underline font attribute. Values {1, 0} <br>	default: 0<br><br>EXAMPLE:<br>	txt:colorFG	= 0x0fc0c0 <br>	txt:colorBK	= 0xffffff <br><br>	txt:colorSelFG	= 0xffffff <br>	txt:colorSelBK	= 0x0fc0c0 <br><br>	txt:Bold	= 1 <br>	txt:Italic	= 0 <br>	txt:Underline = 1 <br><br>---		caseSensitive -- Property  (optional)                                             <br>caseSensitive<br>	Define compare method for this lex class tags: case sensitive or insensitive.<br>	Inheritable from parent class.<br>	Values {1, 0} <br>	default: 0<br><br>---		Collapsable   -- Property  (optional)                                             <br>Collapsable<br>	Define is this block Collapsable or not. Inheritable from parent class.<br>	Values {1, 0} <br>	default: 0<br><br>---		CollapsedText -- Property  (optional)                                             <br>CollapsedText<br>	Collapsed block string.<br>	(as quoted string value) <br>	default: '&#091;..&#093;'	<br><br>---   ParseOnScreen<br>ParseOnScreen<br>	Values {1, 0} <br>	default: 0<br>	If set to 1 - lex class will be parsed only before drawing on the screen in <br>	the main thread. Useful for keywords and other single line text blocks, which<br>	are parsed very fast.<br>		<br>*** Global attributes ***<br>'global' attributes let to adjust some common parser parameters for each <br>lex schema separately. They can be used only in top layer lex class <br>(parent type file).<br><br>global:FirstParseInSeparateThread<br>		Values {1, 0} <br>		default: 1<br>	Define is first parse (when file opening) will run in the main or <br>	additional thread.<br><br>global:EditReparceInSeparateThread<br>		Values {1, 0} <br>		default: 1<br>	Define is reparse after text edited will run in the main or <br>	additional thread.<br><br>global:ConfigChangedReparceInSeparateThread= 1 // {0,1} default=1<br>		Values {1, 0} <br>		default: 1<br>	Define is reparse text after schema file (*.schclass) will run <br>	in the main or additional thread.<br><br>global:EditReparceTimeout_ms<br>	as time in milliseconds;<br>	default: 500 <br>	Time out to start reparse after last key was pressed.<br><br>global:MaxBackParseOffset<br>		as number (chars);<br>		default: 100<br>	Some times parser look back for the text from current position.<br>	This parameter define maximum back buffer size. <br><br>global:OnScreenSchCacheLifeTime_sec = 180	<br>		as time in seconds; -1 and 0 means infinite; <br>		default= 180<br>	When piece of text is displayed, edit control run parser to parse<br>	lexClasses with 'ParseOnScreen' attribute set and cache this <br>	information to do not run parser every time for this lines. For each<br>	entry in this cache last access time is stored. <br>	This parameter define time period from last access time after which <br>	cached entries will be removed (for memory using optimization).<br><br>global:ParserThreadIdleLifeTime_sec <br>		as time in seconds; -1 and 0 means infinite; <br>		default: 60<br>	Idle time out for parser thread. If no parse requests (no editing operations)<br>	additional parser thread will be exited. It will be recreated again <br>	when necessary (to system resources optimization).<br></pre>]]>
   </description>
   <pubDate>Tue, 22 Mar 2011 11:22:01 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=18102&amp;PID=63467&amp;title=syntax-edit-lex-schema-help#63467</guid>
  </item> 
 </channel>
</rss>