Scanner
Jump to navigation
Jump to search
To enable the scanner, use
./configure --enable-scanner
you might want to add
--enable-unstable-install
to avoid the change of any settings of your stable bluefish install
Here you can find Bluefish langugage specification format.
<bflang name<code>\"Testlang\" description</code>\"Test language file\">
'''''name''''' - ''name of the language''
'''''description''''' - ''language description''
<options> ''global options''
<option name=\"case-sensitive\">false</option>
''is this language case sensitive ?''
<option name=\"scan-markup-tags\">true</option>
''if TRUE markup tags will be scanned and proper signals sent''
<option name=\"scan-blocks\">true</option>
''if TRUE blocks will be scanned and proper signals sent''
<option name=\"auto-scan-triggers\">{}
<></option>
''these are characters which will switch scanning procedure when autoscan is on''
<option name=\"restricted-tags-only\">true</option>
''if TRUE it means that signals should be emitted only for tags and attributes''
''defined in <restricted-tags> section''
</options>
<block-group id=\"grp1\">
''block group definition - block groups does not have any special meaning but they can be used by you''
<block id<code>\"one\" begin</code>\"<====--\" end<code>\"-->\" scanned</code>\"true\" foldable=\"true\"====
case<code>\"false\" markup</code>\"true\" regexp=\"false\" />
'''''id''''' - ''block identifier''
'''''begin''''' - ''string which begins block''
'''''end''''' - ''string which ends the block''
'''''scanned''''' - ''should this block be scanned inside''
'''''foldable''''' - ''can we fold this block''
'''''case''''' - ''should we recognize case sensitive inside block''
'''''markup''''' - ''should we recognize markup inside block''
'''''regexp''''' - ''if TRUE, block begin-end strings are recognized as regular expressions - see token regexp''
<block id<code>\"brackets\" begin</code>\"{\" end<code>\"}\" scanned</code>\"true\" foldable<code>\"true\" case</code>\"true\" markup=\"false\"/>
</block-group>
'''the scanner does not implement the complete regular expression specification==='''===
<token-group id=\"red\">
''token group''
<token>void</token>
''this is simple token definition''
<token-list separator=\",\">gint,gchar,glong</token-list>
''this is list of tokens for faster specification''
</token-group>
<token-group id=\"blue\">
<token context=\"brackets\">~[[Bf Text View]]</token>
''another token specification''
'' '''context''' attribute is block id. This token is recognized ONLY if found inside specified block''
<token name<code>\"number\" regexp</code>\"true\">~[[0-9]]+.?~[[0-9]]*</token>
''yet another, but this time we specify token as regular expression''
'''''name''''' - ''optional name for token''
'''''regexp''''' - ''if TRUE it means token text should be recognized as regular expression''
'''the scanner does not implement the complete regular expression specification==='''===
''You can use:''
''~[[]] - for set of characters f.e. ~[[a-z34$]] means characters from a to z and 3, 4 and $''
''''' - for zero or more times f.e. a''' means character a zero or more times''
''+ - for one or more times''
''? - for zero or one times (optional)''
''~[[^]] - means negation of the set so ~[[^a-z]] is everything but a-z chars''
</token-group>
<restricted-tags>
''This section defines specific tags to be recognized''
<tag name<code>\"html\" attributes</code>\"xml:lang,id\" />
'''''name''''' - ''tag name''
'''''attributes''''' - ''list of allowed attributes separated by comma''
</restricted-tags>
</bflang>