65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
# Example
|
||
|
||
This is an example as given in the CLM doc of a "My Language" file, a severe subset of the Ruby scripting language.
|
||
|
||
```
|
||
<?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">
|
||
|
||
<!-- The smallest CLM that will color keywords.
|
||
Copyright (c) 2012 Bare Bones Software, Inc. -->
|
||
|
||
<dict>
|
||
<!-- You must identify the plist as a CLM: -->
|
||
<key>BBEditDocumentType</key>
|
||
<string>CodelessLanguageModule</string>
|
||
|
||
<!-- You must identify your language: -->
|
||
<key>BBLMLanguageDisplayName</key> <string>My Language</string>
|
||
<key>BBLMLanguageCode</key> <string>MyL!</string>
|
||
|
||
<!-- Not required, but there’s not much point to
|
||
a language module if it doesn’t color syntax: -->
|
||
<key>BBLMColorsSyntax</key> <true/>
|
||
|
||
<!-- Specify some keywords. This isn’t required, either,
|
||
but it provides something to color: -->
|
||
<key>BBLMKeywordList</key>
|
||
<array>
|
||
<string>class</string>
|
||
<string>def</string>
|
||
<string>if</string>
|
||
<string>elsif</string>
|
||
<string>else</string>
|
||
<string>end</string>
|
||
<string>do</string>
|
||
<string>for</string>
|
||
<string>return</string>
|
||
</array>
|
||
|
||
<!-- Specify a comment-out string: -->
|
||
<key>BBLMCommentLineDefault</key> <string>#</string>
|
||
|
||
<!-- You must specify the character set for
|
||
keywords and identifiers. Substitute your own: -->
|
||
<key>Language Features</key>
|
||
<dict>
|
||
<key>Identifier and Keyword Character Class</key>
|
||
<string>A-Za-z0-9_\?!</string>
|
||
</dict>
|
||
</dict>
|
||
</plist>
|
||
```
|
||
|
||
**Things to notice here:**
|
||
|
||
- If you don’t want the module to do anything other than take up space in the language pop-up, just specify `BBEditDocumentType`, `BBLMLanguageDisplayName`, and `BBLMLanguageCode`. But this is the minimal _useful_ language module.
|
||
- For syntax coloring, you must turn on `BBLMColorsSyntax`.
|
||
- For something to color, you must provide a list of keywords in `BBLMKeywordList`.
|
||
- BBEdit requires that you provide a method — line or block — for commenting-out lines with the Un/Comment Selection command. In this case, `BBLMCommentLineDefault` specifies the # line-comment token.
|
||
- You must also specify how to identify keywords, in the `Language Features `dictionary, using either `Identifier` and `Keyword Characters `or `Identifier` and `Keyword Character` `Class`.
|
||
- You _don’t_ have to provide a `BBLMSuffixMap` or `BBLMFileNamesToMatch` list. Without them, your user will have to pick the language out of the pop-up.
|
||
|
||
For more info, go [here](http://www.barebones.com/support/develop/clm.html#Examples). |