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.

Reply via email to