<?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">
<!--
BBEdit / TextWrangler codeless language module for reStructuredText files.
Eric Knibbe
Version 2.1
Released under a Creative Commons Attribution-ShareAlike License:
<http://creativecommons.org/licenses/by-sa/4.0/>
Parses each section title as a function name so they show up in the
function popup. Will also highlight directives, directive options, field
markers, roles, substitutions, references, targets, interpreted text, and
comment blocks, plus URLs in BBEdit 11 / TextWrangler 5 or later.
Requires BBEdit 11.6 / TextWrangler 5.5 or later. To install, copy to either:
~/Library/Application Support/BBEdit/Language Modules/
~/Library/Application Support/TextWrangler/Language Modules/
and relaunch BBEdit or TextWrangler.
Recommended settings for reStructuredText in Preferences > Languages:
- auto-indent: enabled
- auto-expand tabs: enabled
- soft wrap text: disabled
- tab width: 3 spaces
- ensure file ends with line break: enabled
- strip trailing whitespace: enabled
- page guide: 80 characters
Known issues:
- CLMs can't indent function popup entries nor nest sidebar fold markers
- directives aren't highlighted as keywords if a space comes before the ::
- comments starting on the file's 1st or 2nd line often aren't highlighted
- can't highlight comments sharing a line with or directly following
directives due to backtracking limitations in regular expressions
- requires all lines of a comment to use the same padding sequence,
e.g. doesn't highlight a comment whose first line starts with a space and
subsequent lines start with a tab, which is still acceptable indentation
- roles directly following inline markup delimiters for emphasis or literal
text need an escaped space in front to be highlighted
Feedback is welcome. <https://ericfromcanada.bitbucket.io/>
-->
<dict>
<key>BBEditDocumentType</key>
<string>CodelessLanguageModule</string>
<key>BBLMLanguageDisplayName</key>
<string>reStructuredText</string>
<key>BBLMLanguageCode</key>
<string>reST</string>
<key>BBLMSuffixMap</key>
<array>
<dict>
<key>BBLMLanguageSuffix</key>
<string>.rst</string>
</dict>
<dict>
<key>BBLMLanguageSuffix</key>
<string>.txt</string>
</dict>
</array>
<key>BBLMReferenceSearchURLTemplate</key>
<string>http://www.sphinx-doc.org/en/stable/search.html?q=__SYMBOLNAME__</string>
<key>BBLMCommentLineDefault</key>
<string>.. </string>
<key>BBLMColorsSyntax</key>
<true/>
<key>BBLMScansFunctions</key>
<true/>
<key>BBLMCanSpellCheckCodeRuns</key>
<true/>
<key>BBLMIsCaseSensitive</key>
<false/>
<key>Language Features</key>
<dict>
<key>Identifier and Keyword Character Class</key>
<string>-\w.:</string>
<key>String Pattern</key>
<string><![CDATA[(?x:
(?# footnote/citation reference)
(?<=[-([{<:"'/\s])\[
(\#?(?>[a-z0-9]([-._+:](?=[a-z0-9]))?)+|[#*])
\]_(?=(?P<end>[-)\]}>:;.,"'!?/\s\\]))
| (?# substitution)
(?<=[-([{<:"'/\s])\|(?![|\s])
(?>\\\\|[\s\\]\||\|(?!(?P>end)|__?(?P>end))|\r(?![ \t+=-]*$)|[^|\r])+
\|_{0,2}(?=(?P>end))
| (?# field marker/directive option)
(^[ \t]*|(?<=:)[ \t]+):(?!\s)
(?>\\\\|\\:|[^:\r])+
(?<!\s):(?=\s|$)
| (?# role)
(?<=[-([{<:"'/\s]|[^\s]`)(?P<role>:
(?>[a-z0-9]([-._+:](?=[a-z0-9]))?)+
:)(?=`[^`\s])
| (?# inline internal target)
(?<=[-([{<:"'/\s])_`(?!\s)
(?>\\\\|[\s\\]`|`(?!(?P>end))|\r(?![ \t]*$)|[^`\r])+
`(?=(?P>end))
| (?# interpreted text/phrase reference)
(?<=[-([{<:"'/\s])`(?![`\s])
(?>\\\\|\\[ \t]|[ \t\\]`|`(?!(?P>end)|__?(?P>end))|\r(?![ \t]*$)|[^`\r])+
`(?(?=:)((?P>role)(?=(?P>end)))?|_{0,2}(?=(?P>end)))
| (?# hyperlink reference)
(?<=[-([{<:"'/\s])\b
(?>[a-z0-9]([-._+:](?=[a-z0-9]))?)+
__?(?=(?P>end))
| (?# footnote/citation target)
(?<=\.\.)[ \t]+\[
(\#?(?>[a-z0-9]([-._+:](?=[a-z0-9]))?)+|[#*])
\](?=\s)
| (?# hyperlink target)
(^[ \t]*__[ \t]+|
(?<=\.\.)[ \t]+_(?(?=`)
`(?>\\\\|\\`|`(?![ \t]*:\s)|[^`\r])+`
|(_|(?>\\\\|\\:|:(?!:\s)|[^:\r])+))
(?<!\s)\ ?:(?=\s))
)]]></string>
<key>Comment Pattern</key>
<string><![CDATA[(?x:
(\A | ^[ \t]*\r) (
[ \t]*\.\.[ \t]*\r[ \t]*$ | (
(?P<pad>[ \t]*)\.\. (
[ \t]+ (
\b(?>[a-z0-9]([-._+:](?=[a-z0-9]))?)+
(?(?=\ ?:)
\ ?:((:(?!\s) | [^:])[^\r]* | $)
| ([^a-z0-9][^\r]* | $)
) | [^\w[|\s][^\r]*
) | [ \t]*
) (
\r (
[ \t]*
| (?P=pad)[ \t]+[^\s][^\r]*
)
)*(\r(?=(?P=pad)\.\.|[ \t]*$) | \Z)
)+
)
)]]></string>
<key>Number Pattern</key><!-- URLs and domain directives -->
<string><![CDATA[(?x:
\b[a-z][\w.+-]+:(?:/{1,3}|[?+]?[a-z0-9%])[^\s()<>]+[^\s`!()\[\]{};:'".,<>?](::)?
)]]></string>
<key>Keyword Pattern</key><!-- enumerated list markers -->
<string><![CDATA[(?x:
^\s*(([-*+•‣⁃])|(?P<enum>[0-9]+|[ivxlcdm]+|[a-z]|\#)[.)]|\((?P>enum)\))[ \t]
)]]></string>
<key>Function Pattern</key>
<string><![CDATA[(?x:
(?P<function>
^(?!\.\.\s)\ ?(?P<function_name>\S[^\r]+)\r
^(?P<bar>[-=`:.'"~^_*+#!$%&(),/;<>?@[\]\{|}])(?P=bar)+\s*$
(?s).*?(?-s)
)
(?=
(^\s*\r((?P<overline>[-=`:.'"~^_*+#!$%&(),/;<>?@[\]\{|}])(?P=overline)+\s*\r)?
^(?!\.\.\s)\ ?\S[^\r]+\r
^(?P<nextbar>[-=`:.'"~^_*+#!$%&(),/;<>?@[\]\{|}])(?P=nextbar)+\s*$
) | (?-m)$
)
)]]></string>
<key>Skip Pattern</key>
<string><![CDATA[(?x:
(?P>string) |
(?P>comment) |
(?P>number)
)]]></string>
</dict>
<key>BBLMKeywords</key>
<array>
<dict>
<key>RunKind</key>
<string>com.barebones.bblm.preprocessor</string>
<key>Keywords</key>
<array>
<string>..</string>
<string>::</string>
</array>
</dict>
<dict>
<key>RunKind</key>
<string>com.barebones.bblm.keyword</string><!-- reStructuredText directives -->
<key>Keywords</key>
<array>
<string>attention::</string>
<string>caution::</string>
<string>danger::</string>
<string>error::</string>
<string>important::</string>
<string>note::</string>
<string>tip::</string>
<string>hint::</string>
<string>warning::</string>
<string>admonition::</string>
<string>sidebar::</string>
<string>topic::</string>
<string>line-block::</string><!-- deprecated -->
<string>parsed-literal::</string>
<string>code::</string>
<string>math::</string>
<string>rubric::</string>
<string>epigraph::</string>
<string>highlights::</string>
<string>pull-quote::</string>
<string>compound::</string>
<string>container::</string>
<!-- <string>questions::</string> --><!-- future -->
<!-- <string>qa::</string> --><!-- alias -->
<!-- <string>faq::</string> --><!-- alias -->
<string>table::</string>
<string>csv-table::</string>
<string>list-table::</string>
<string>image::</string>
<string>figure::</string>
<string>contents::</string>
<string>sectnum::</string>
<string>section-numbering::</string><!-- alias -->
<string>header::</string>
<string>footer::</string>
<!-- <string>footnotes::</string> --><!-- future -->
<!-- <string>citations::</string> --><!-- future -->
<string>target-notes::</string>
<string>meta::</string>
<!-- <string>imagemap::</string> --><!-- future -->
<string>raw::</string>
<string>include::</string>
<string>replace::</string>
<string>unicode::</string>
<string>class::</string>
<string>role::</string>
<string>default-role::</string>
<string>title::</string>
<string>date::</string>
<string>restructuredtext-test-directive::</string>
</array>
</dict>
<dict>
<key>RunKind</key>
<string>com.barebones.bblm.predefined-symbol</string><!-- Sphinx directives -->
<key>Keywords</key>
<array>
<string>acks::</string><!-- undocumented -->
<string>centered::</string><!-- deprecated -->
<string>code-block::</string>
<string>codeauthor::</string>
<string>cssclass::</string><!-- old -->
<string>default-domain::</string>
<string>deprecated::</string>
<string>describe::</string><!-- old -->
<string>envvar::</string>
<string>glossary::</string>
<string>highlight::</string>
<string>highlightlang::</string><!-- old -->
<string>hlist::</string>
<string>index::</string>
<string>literalinclude::</string>
<string>moduleauthor::</string><!-- undocumented -->
<string>object::</string>
<string>only::</string>
<string>option::</string>
<string>cmdoption::</string><!-- old -->
<string>productionlist::</string>
<string>program::</string>
<string>rst-class::</string>
<string>sectionauthor::</string>
<string>seealso::</string>
<string>sourcecode::</string><!-- old -->
<string>tabularcolumns::</string>
<string>toctree::</string>
<string>versionadded::</string>
<string>versionchanged::</string>
<string>module::</string>
<string>currentmodule::</string>
<string>data::</string>
<string>exception::</string>
<string>function::</string>
<string>attribute::</string>
<string>method::</string>
<string>staticmethod::</string>
<string>classmethod::</string>
<string>decorator::</string>
<string>decoratormethod::</string>
<string>member::</string>
<string>macro::</string>
<string>type::</string>
<string>var::</string>
<string>namespace::</string>
<string>directive::</string>
<string>automodule::</string>
<string>autoclass::</string>
<string>autoexception::</string>
<string>autofunction::</string>
<string>autodata::</string>
<string>automethod::</string>
<string>autoattribute::</string>
<string>autosummary::</string>
<string>testsetup::</string>
<string>testcleanup::</string>
<string>doctest::</string>
<string>testcode::</string>
<string>testoutput::</string>
<string>graphviz::</string>
<string>graph::</string>
<string>digraph::</string>
<string>inheritance-diagram::</string>
<string>ifconfig::</string>
<string>todo::</string>
<string>todolist::</string>
</array>
</dict>
</array>
</dict>
</plist>