Hi Tim,
Here is an attempt for you special case CLM.
Save it as ~/Library/Application\ Support/BBEdit/Language\
Modules/free42.plist
and restart BBEdit.
You should now have a 'Free42' language module that highlights files with
the .free42 extension.
HTH,
Jean Jourdain
--
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BBEditDocumentType</key>
<string>CodelessLanguageModule</string>
<key>BBLMColorsSyntax</key>
<true/>
<key>BBLMIsCaseSensitive</key>
<true/>
<key>BBLMSupportsTextCompletion</key>
<true/>
<key>BBLMKeywordList</key>
<array>
<string>GTO</string>
<string>RTN</string>
<string>LSTO</string>
<string>RCL</string>
<string>END</string>
<string>SIGN</string>
<string>R</string>
<string>XEQ</string>
</array>
<key>BBLMLanguageCode</key>
<string>FR42</string>
<key>BBLMLanguageDisplayName</key>
<string>Free42</string>
<key>BBLMScansFunctions</key>
<true/>
<key>BBLMFunctionScannerDoesFoldsToo</key>
<true/>
<key>BBLMSuffixMap</key>
<array>
<dict>
<key>BBLMLanguageSuffix</key>
<string>.free42</string>
</dict>
</array>
<key>Language Features</key>
<dict>
<key>Close Block Comments</key>
<false/>
<key>Close Statement Blocks</key>
<false/>
<key>End-of-line Ends Strings 1</key>
<false/>
<key>End-of-line Ends Strings 2</key>
<false/>
<key>Escape Char in Strings 1</key>
<string>\</string>
<key>Escape Char in Strings 2</key>
<string>\</string>
<key>Identifier and Keyword Character Class</key>
<string>\p{Xwd}</string>
<key>Open Block Comments</key>
<false/>
<key>Open Line Comments</key>
<false/>
<key>Open Statement Blocks</key>
<false/>
<key>Close Strings 1</key>
<false/>
<key>Close Strings 2</key>
<false/>
<key>Open Strings 1</key>
<false/>
<key>Open Strings 2</key>
<false/>
<key>String Pattern</key>
<string><![CDATA[(?x)
^\d+
]]></string>
<key>Function Pattern</key>
<string><![CDATA[(?x)(?n)
^\d+▸LBL\h
(?P<function_name>
(
"[^"]+?"
|
\d+
)
)
(?P<function>
\h*\n
(\d+\h.+(\n|\z))*
\d+\h.+
)
]]></string>
</dict>
</dict>
</plist>
--
On Saturday, May 14, 2022 at 10:36:49 PM UTC+2 Tim Gray wrote:
> I'm trying to write a codeless language module for an obscure 'language' -
> keystroke program listings for an HP42S calculator (or the Free42 program
> as the case may be). I think I've got all the keywords and special
> characters figured out but am struggling with two things. First, here's a
> sample program listing:
>
> 00 { 37-Byte Prgm }
> 01▸LBL "FAC"
> 02 X≠0?
> 03 GTO 00
> 04 SIGN
> 05 RTN
> 06▸LBL 00
> 07 R↑
> 08 LSTO "T"
> 09 R↓
> 10 LSTO "N"
> 11 1
> 12 -
> 13 XEQ "FAC"
> 14 RCL "N"
> 15 ×
> 16 RCL "T"
> 17 R↓
> 18 END
>
> I'd like to have the 'LBL' lines show up in the function popup with the
> correct label ("FAC" or "00"). Code folding for each section would be nice,
> but not necessary. I'm not sure the best way to implement this - I tried
> "Prefix for Functions" but I'm assuming I need "Function Pattern" instead.
>
> My second question pertains to the line numbers. The line numbers are
> often part of a listing, but are not actually part of the program. I'd like
> some way to highlight those if possible. Is that doable in a CLM? The regex
> is easy: '^\d+( |▸)' but I don't know if there is anyway to implement it...
>
> Thanks,
> Tim
>
>
--
This is the BBEdit Talk public discussion group. If you have a feature request
or need technical support, please email "[email protected]" rather than
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
---
You received this message because you are subscribed to the Google Groups
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/bbedit/1796707b-1847-485a-93ce-b948255fb795n%40googlegroups.com.