1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-23 13:15:46 +01:00

Documentation.

This commit is contained in:
Kris Maglione
2011-06-23 16:21:01 -04:00
parent 9344d0a16c
commit 4a44bf9664
6 changed files with 500 additions and 215 deletions

View File

@@ -73,6 +73,10 @@ var ProcessorStack = Class("ProcessorStack", {
statusline.inputBuffer = this.processors.length ? this.buffer : ""; statusline.inputBuffer = this.processors.length ? this.buffer : "";
if (!processors.some(function (p) !p.extended) && this.actions.length) { if (!processors.some(function (p) !p.extended) && this.actions.length) {
// We have matching actions and no processors other than
// those waiting on further arguments. Execute actions as
// long as they continue to return PASS.
for (var action in values(this.actions)) { for (var action in values(this.actions)) {
while (callable(action)) { while (callable(action)) {
length = action.eventLength; length = action.eventLength;
@@ -83,11 +87,16 @@ var ProcessorStack = Class("ProcessorStack", {
break; break;
} }
// Result is the result of the last action. Unless it's
// PASS, kill any remaining argument processors.
result = action !== undefined ? action : Events.KILL; result = action !== undefined ? action : Events.KILL;
if (action !== Events.PASS) if (action !== Events.PASS)
this.processors.length = 0; this.processors.length = 0;
} }
else if (this.processors.length) { else if (this.processors.length) {
// We're still waiting on the longest matching processor.
// Kill the event, set a timeout to give up waiting if applicable.
result = Events.KILL; result = Events.KILL;
if (options["timeout"]) if (options["timeout"])
this.timer = services.Timer(this, options["timeoutlen"], services.Timer.TYPE_ONE_SHOT); this.timer = services.Timer(this, options["timeoutlen"], services.Timer.TYPE_ONE_SHOT);
@@ -95,12 +104,19 @@ var ProcessorStack = Class("ProcessorStack", {
else if (result !== Events.KILL && !this.actions.length && else if (result !== Events.KILL && !this.actions.length &&
!(this.events[0].isReplay || this.passUnknown !(this.events[0].isReplay || this.passUnknown
|| this.modes.some(function (m) m.passEvent(this), this.events[0]))) { || this.modes.some(function (m) m.passEvent(this), this.events[0]))) {
// No patching processors, this isn't a fake, pass-through
// event, we're not in pass-through mode, and we're not
// choosing to pass unknown keys. Kill the event and beep.
result = Events.ABORT; result = Events.ABORT;
if (!Events.isEscape(this.events.slice(-1)[0])) if (!Events.isEscape(this.events.slice(-1)[0]))
dactyl.beep(); dactyl.beep();
events.feedingKeys = false; events.feedingKeys = false;
} }
else if (result === undefined) else if (result === undefined)
// No matching processors, we're willing to pass this event,
// and we don't have a default action from a processor. Just
// pass the event.
result = Events.PASS; result = Events.PASS;
events.dbg("RESULT: " + length + " " + this._result(result)); events.dbg("RESULT: " + length + " " + this._result(result));
@@ -155,8 +171,6 @@ var ProcessorStack = Class("ProcessorStack", {
if (res === Events.KILL) if (res === Events.KILL)
break; break;
buffer = buffer || input.inputBuffer;
if (callable(res)) if (callable(res))
actions.push(res); actions.push(res);

View File

@@ -27,12 +27,14 @@ var StatusLine = Module("statusline", {
highlight.loadCSS(util.compileMacro(<![CDATA[ highlight.loadCSS(util.compileMacro(<![CDATA[
!AddonBar;#addon-bar { !AddonBar;#addon-bar {
/* The Add-on Bar */
padding-left: 0 !important; padding-left: 0 !important;
min-height: 18px !important; min-height: 18px !important;
-moz-appearance: none !important; -moz-appearance: none !important;
<padding> <padding>
} }
!AddonButton;#addon-bar xul|toolbarbutton { !AddonButton;#addon-bar xul|toolbarbutton {
/* An Add-on Bar button */
-moz-appearance: none !important; -moz-appearance: none !important;
padding: 0 !important; padding: 0 !important;
border-width: 0px !important; border-width: 0px !important;
@@ -44,7 +46,8 @@ var StatusLine = Module("statusline", {
if (document.getElementById("appmenu-button")) if (document.getElementById("appmenu-button"))
highlight.loadCSS(<![CDATA[ highlight.loadCSS(<![CDATA[
AppmenuButton min-width: 0 !important; padding: 0 .5em !important; AppmenuButton /* The app-menu button */ \
min-width: 0 !important; padding: 0 .5em !important;
]]>); ]]>);
} }

View File

@@ -57,65 +57,200 @@
<p>Valid groups include:</p> <p>Valid groups include:</p>
<dl> <dl dt="width: 12em;">
<dt>Bell</dt> <dd>&dactyl.appName;'s visual bell</dd> <dt>Addon</dt> <dd>An add-on in the <ex>:addons</ex> manager</dd>
<dt>Boolean</dt> <dd>A JavaScript Boolean object</dd> <dt>AddonBar</dt> <dd></dd>
<dt>CmdLine</dt> <dd>The command line</dd> <dt>AddonButton</dt> <dd></dd>
<dt>CmdOutput</dt> <dd>The output of commands executed by <ex>:run</ex></dd> <dt>AddonButtons</dt> <dd></dd>
<dt>CompDesc</dt> <dd>The description column of the completion list</dd> <dt>AddonCell</dt> <dd>A cell in tell <ex>:addons</ex> manager</dd>
<dt>CompGroup</dt> <dd>The top-level container for a group of completion results</dd> <dt>AddonDescription</dt> <dd></dd>
<dt>CompIcon</dt> <dd>The favicon of a completion row</dd> <dt>AddonHead</dt> <dd>A heading in the <ex>:addons</ex> manager</dd>
<dt>CompItem</dt> <dd>A row of completion list</dd> <dt>AddonName</dt> <dd></dd>
<dt>CompItem[selected]</dt><dd>A selected row of completion list</dd> <dt>AddonStatus</dt> <dd></dd>
<dt>CompLess::after</dt> <dd>The character of indicator shown when completions may be scrolled up</dd> <dt>AddonVersion</dt> <dd></dd>
<dt>CompLess</dt> <dd>The indicator shown when completions may be scrolled up</dd> <dt>Addons</dt> <dd>The <ex>:addons</ex> manager</dd>
<dt>CompMore::after</dt> <dd>The character of indicator shown when completions may be scrolled down</dd> <dt>AppmenuButton</dt> <dd>The app-menu button</dd>
<dt>CompMore</dt> <dd>The indicator shown when completions may be scrolled down</dd> <dt>Bell</dt> <dd>&dactyl.appName;'s visual bell</dd>
<dt>CompMsg</dt> <dd>The message which may appear at the top of a group of completion results</dd> <dt>Boolean</dt> <dd>JavaScript booleans</dd>
<dt>CompResult</dt> <dd>The result column of the completion list</dd> <dt>Button</dt> <dd>A button widget</dd>
<dt>CompTitle</dt> <dd>Completion row titles</dd> <dt>Buttons</dt> <dd>A group of buttons</dd>
<dt>CompTitleSep</dt> <dd>The element which separates the completion title from its results</dd> <dt>CmdCmdLine</dt> <dd></dd>
<dt>Disabled</dt> <dd>Text indicating disabled status, such as of an extension or style group</dd> <dt>CmdErrorMsg</dt> <dd></dd>
<dt>Enabled</dt> <dd>Text indicating enabled status, such as of an extension or style group</dd> <dt>CmdInfoMsg</dt> <dd></dd>
<dt>ErrorMsg</dt> <dd>Error messages</dd> <dt>CmdInput</dt> <dd></dd>
<dt>Filter</dt> <dd>The matching text in a completion list</dd> <dt>CmdLine</dt> <dd>The command line</dd>
<dt>Find</dt> <dd>Text find highlighting. Only background and foreground colors apply.</dd> <dt>CmdModeMsg</dt> <dd></dd>
<dt>FrameIndicator</dt> <dd>The indicator shown when a new frame is selected</dd> <dt>CmdMoreMsg</dt> <dd></dd>
<dt>Function</dt> <dd>A JavaScript Function object</dd> <dt>CmdNormal</dt> <dd></dd>
<dt>Hint</dt> <dd>A hint indicator. See <ex>:help hints</ex></dd> <dt>CmdOutput</dt> <dd>The output of commands executed by <ex>:run</ex></dd>
<dt>HintActive</dt> <dd>The hint element of link which will be followed by <k name="CR"/></dd> <dt>CmdPrompt</dt> <dd></dd>
<dt>HintElem</dt> <dd>The hintable element</dd> <dt>CmdQuestion</dt> <dd></dd>
<dt>HintImage</dt> <dd>The indicator which floats above hinted images</dd> <dt>CmdWarningMsg</dt> <dd></dd>
<dt>Indicator</dt> <dd>The <em>#</em> and <em>%</em> in the <ex>:buffers</ex> list</dd> <dt>Comment</dt> <dd>JavaScriptor CSS comments</dd>
<dt>InfoMsg</dt> <dd>Information messages</dd> <dt>CompDesc</dt> <dd>The description column of the completion list</dd>
<dt>Key</dt> <dd>Generally a keyword used in syntax highlighting.</dd> <dt>CompGroup</dt> <dd>Item group in completion output</dd>
<dt>Keyword</dt> <dd>A bookmark keyword for a URL</dd> <dt>CompIcon</dt> <dd>The favicon of a completion row</dd>
<dt>LineNr</dt> <dd>The line number of an error</dd> <dt>CompIcon>img</dt> <dd></dd>
<dt>Message</dt> <dd>A message as displayed in <ex>:messages</ex></dd> <dt>CompItem</dt> <dd>A single row of output in the completion list</dd>
<dt>ModeMsg</dt> <dd>The mode indicator in the command line</dd> <dt>CompItem[selected]</dt> <dd>A selected row of completion list</dd>
<dt>MoreMsg</dt> <dd>The indicator that there is more text to view</dd> <dt>CompLess::after</dt> <dd>The character of indicator shown when completions may be scrolled up</dd>
<dt>NonText</dt> <dd>The <em>~</em> indicators which mark blank lines in the completion list</dd> <dt>CompLess</dt> <dd>The indicator shown when completions may be scrolled up</dd>
<dt>Normal</dt> <dd>Normal text in the command line</dd> <dt>CompMore::after</dt> <dd>The character of indicator shown when completions may be scrolled down</dd>
<dt>Null</dt> <dd>A JavaScript Null object</dd> <dt>CompMore</dt> <dd>The indicator shown when completions may be scrolled down</dd>
<dt>Number</dt> <dd>A JavaScript Number object</dd> <dt>CompMsg</dt> <dd>The message which may appear at the top of a group of completion results</dd>
<dt>Object</dt> <dd>A JavaScript Object</dd> <dt>CompResult</dt> <dd>The result column of the completion list</dd>
<dt>Preview</dt> <dd>The completion preview displayed in the &tag.command-line;</dd> <dt>CompTitle</dt> <dd>Completion row titles</dd>
<dt>Question</dt> <dd>A prompt for a decision</dd> <dt>CompTitleSep</dt> <dd>The element which separates the completion title from its results</dd>
<dt>StatusLine</dt> <dd>The status bar</dd> <dt>Dense</dt> <dd>Arbitrary elements which should be packed densely together</dd>
<dt>StatusLineNormal</dt> <dd>The status bar for an ordinary web page</dd> <dt>Disabled</dt> <dd>Disabled item indicator text</dd>
<dt>StatusLineBroken</dt> <dd>The status bar for a broken web page</dd> <dt>Download[active]</dt> <dd>A currently active download</dd>
<dt>StatusLineExtended</dt><dd>The status bar for a secure web page with an Extended Validation (EV) certificate</dd> <dt>Download</dt> <dd>A download in the <ex>:downloads</ex> manager</dd>
<dt>StatusLineSecure</dt> <dd>The status bar for a secure web page</dd> <dt>DownloadButtons</dt> <dd>A button group in the <ex>:downloads</ex> manager</dd>
<dt>String</dt> <dd>A JavaScript String object</dd> <dt>DownloadCell</dt> <dd>A table cell in the <ex>:downloads</ex> manager</dd>
<dt>TabClose</dt> <dd>The close button of a browser tab</dd> <dt>DownloadHead</dt> <dd>A heading in the <ex>:downloads</ex> manager</dd>
<dt>TabIcon</dt> <dd>The icon of a browser tab</dd> <dt>DownloadPercent</dt> <dd>The percentage column for a download</dd>
<dt>TabIconNumber</dt> <dd>The number of a browser tab, over its icon</dd> <dt>DownloadProgress</dt> <dd>The progress column for a download</dd>
<dt>TabNumber</dt> <dd>The number of a browser tab, next to its icon</dd> <dt>DownloadProgressHave</dt> <dd>The completed portion of the progress column</dd>
<dt>TabText</dt> <dd>The text of a browser tab</dd> <dt>DownloadProgressTotal</dt> <dd>The remaining portion of the progress column</dd>
<dt>Tag</dt> <dd>A bookmark tag for a URL</dd> <dt>DownloadSource</dt> <dd>The download source column for a download</dd>
<dt>Title</dt> <dd>The title of a listing, including <ex>:pageinfo</ex>, <ex>:jumps</ex></dd> <dt>DownloadState</dt> <dd>The download state column for a download</dd>
<dt>URL</dt> <dd>A URL</dd> <dt>DownloadTime</dt> <dd>The time remaining column for a download</dd>
<dt>WarningMsg</dt> <dd>A warning message</dd> <dt>DownloadTitle</dt> <dd>The title column for a download</dd>
<dt>Downloads</dt> <dd>The <ex>:downloads</ex> manager</dd>
<dt>EditorBlink1</dt> <dd>Text fields briefly after successfully running the external editor, alternated with EditorBlink2</dd>
<dt>EditorBlink2</dt> <dd>Text fields briefly after successfully running the external editor, alternated with EditorBlink1</dd>
<dt>EditorEditing</dt> <dd>Text fields for which an external editor is open</dd>
<dt>EditorError</dt> <dd>Text fields briefly after an error has occurred running the external editor</dd>
<dt>Enabled</dt> <dd>Enabled item indicator text</dd>
<dt>ErrorMsg</dt> <dd>Error messages</dd>
<dt>Filter</dt> <dd>The matching text in a completion list</dd>
<dt>FontCode</dt> <dd>The font used for code listings</dd>
<dt>FontFixed</dt> <dd>The font used for fixed-width text</dd>
<dt>FontProportional</dt> <dd>The font used for proportionally spaced text</dd>
<dt>Find</dt> <dd>Text find highlighting. Only background and foreground colors apply.</dd>
<dt>FrameIndicator</dt> <dd>The styling applied to briefly indicate the active frame</dd>
<dt>Function</dt> <dd>JavaScript functions</dd>
<dt>Help</dt> <dd>A help page</dd>
<dt>HelpArg</dt> <dd>A required command argument indicator</dd>
<dt>HelpBody</dt> <dd>The body of a help page</dd>
<dt>HelpBorder</dt> <dd>The styling of bordered elements</dd>
<dt>HelpCode</dt> <dd>Code listings</dd>
<dt>HelpDefault</dt> <dd>The default value of a help item</dd>
<dt>HelpDescription</dt> <dd>The description of a help item</dd>
<dt>HelpDescription[short]</dt> <dd></dd>
<dt>HelpEm</dt> <dd>Emphasized text</dd>
<dt>HelpEx</dt> <dd>An Ex command</dd>
<dt>HelpExample</dt> <dd>An example</dd>
<dt>HelpHead1</dt> <dd>Any help heading</dd>
<dt>HelpHead2</dt> <dd>A first-level help heading</dd>
<dt>HelpHead3</dt> <dd>A second-level help heading</dd>
<dt>HelpHead4</dt> <dd>A third-level help heading</dd>
<dt>HelpHead</dt> <dd>A fourth-level help heading</dd>
<dt>HelpInclude</dt> <dd>A help page included in the consolidated help listing</dd>
<dt>HelpInfo</dt> <dd>Arbitrary information about a help item</dd>
<dt>HelpInfoLabel</dt> <dd>The label for a HelpInfo item</dd>
<dt>HelpInfoValue</dt> <dd>The details for a HelpInfo item</dd>
<dt>HelpItem</dt> <dd>A help item</dd>
<dt>HelpKey</dt> <dd>A keyboard key specification</dd>
<dt>HelpKeyword</dt> <dd>A keyword</dd>
<dt>HelpLink</dt> <dd>A hyperlink</dd>
<dt>HelpLink[rel=external]</dt> <dd>A hyperlink to an external resource</dd>
<dt>HelpList</dt> <dd>An unordered list</dd>
<dt>HelpListItem</dt> <dd>A list item, ordered or unordered</dd>
<dt>HelpNews</dt> <dd>A news item</dd>
<dt>HelpNewsNew</dt> <dd>A new news item</dd>
<dt>HelpNewsOld</dt> <dd>An old news item</dd>
<dt>HelpNewsTag</dt> <dd>The version tag for a news item</dd>
<dt>HelpNote</dt> <dd>The indicator for a note</dd>
<dt>HelpOpt</dt> <dd>An option name</dd>
<dt>HelpOptInfo</dt> <dd>Information about the type and default values for an option entry</dd>
<dt>HelpOptionalArg</dt> <dd>An optional command argument indicator</dd>
<dt>HelpOrderedList1</dt> <dd>A first-level ordered list</dd>
<dt>HelpOrderedList2</dt> <dd>A second-level ordered list</dd>
<dt>HelpOrderedList3</dt> <dd>A third-level ordered list</dd>
<dt>HelpOrderedList4</dt> <dd>A fourth-level ordered list</dd>
<dt>HelpOrderedList</dt> <dd>Any ordered list</dd>
<dt>HelpParagraph</dt> <dd>An ordinary paragraph</dd>
<dt>HelpSpec</dt> <dd>The specification for a help entry</dd>
<dt>HelpString</dt> <dd>A quoted string</dd>
<dt>HelpTOC</dt> <dd>The Table of Contents for a help page</dd>
<dt>HelpTOC>ol</dt> <dd></dd>
<dt>HelpTT</dt> <dd>Teletype text</dd>
<dt>HelpTab</dt> <dd></dd>
<dt>HelpTabColumn</dt> <dd></dd>
<dt>HelpTabDescription</dt> <dd>The description column of description tables</dd>
<dt>HelpTabRow</dt> <dd>Entire rows in description tables</dd>
<dt>HelpTabTitle</dt> <dd>The title column of description tables</dd>
<dt>HelpTag</dt> <dd>A help tag</dd>
<dt>HelpTags</dt> <dd>A group of help tags</dd>
<dt>HelpTopic</dt> <dd>A link to a help topic</dd>
<dt>HelpType</dt> <dd>An option type</dd>
<dt>HelpWarning</dt> <dd>The indicator for a warning</dd>
<dt>HelpXML</dt> <dd>Highlighted XML</dd>
<dt>HelpXMLAttribute</dt> <dd></dd>
<dt>HelpXMLBlock</dt> <dd></dd>
<dt>HelpXMLComment</dt> <dd></dd>
<dt>HelpXMLNamespace</dt> <dd></dd>
<dt>HelpXMLProcessing</dt> <dd></dd>
<dt>HelpXMLString</dt> <dd></dd>
<dt>HelpXMLTagEnd</dt> <dd></dd>
<dt>HelpXMLTagStart</dt> <dd></dd>
<dt>HelpXMLText</dt> <dd></dd>
<dt>Hint</dt> <dd></dd>
<dt>HintActive</dt> <dd>The hint element of link which will be followed by <k name="CR"/></dd>
<dt>HintElem</dt> <dd>The hintable element</dd>
<dt>HintImage</dt> <dd>The indicator which floats above hinted images</dd>
<dt>Hint[active]</dt> <dd></dd>
<dt>Indicator</dt> <dd>The <em>#</em> and <em>%</em> in the <ex>:buffers</ex> list</dd>
<dt>InfoMsg</dt> <dd>Information messages</dd>
<dt>InlineHelpLink</dt> <dd>A help link shown in the command line or multi-line output area</dd>
<dt>Key</dt> <dd>Keywords</dd>
<dt>Keyword</dt> <dd>A bookmark keyword for a URL</dd>
<dt>LineNr</dt> <dd>The line number of an error</dd>
<dt>Link</dt> <dd>A link with additional information shown on hover</dd>
<dt>LinkInfo</dt> <dd>Information shown when hovering over a link</dd>
<dt>Message</dt> <dd></dd>
<dt>Message</dt> <dd>A message as displayed in <ex>:messages</ex></dd>
<dt>ModeMsg</dt> <dd>The mode indicator</dd>
<dt>MoreMsg</dt> <dd>The indicator that there is more text to view</dd>
<dt>NonText</dt> <dd>The <em>~</em> indicators which mark blank lines in the completion list</dd>
<dt>Normal</dt> <dd>Normal text</dd>
<dt>Null</dt> <dd>JavaScript null values</dd>
<dt>Number</dt> <dd>JavaScript numbers</dd>
<dt>Object</dt> <dd>JavaScript objects</dd>
<dt>Preview</dt> <dd>The completion preview displayed in the &tag.command-line;</dd>
<dt>Question</dt> <dd>A prompt for a decision</dd>
<dt>REPL-E</dt> <dd>Evaled input in REPL mode</dd>
<dt>REPL-P</dt> <dd>Evaled output in REPL mode</dd>
<dt>REPL-R</dt> <dd>Prompts in REPL mode</dd>
<dt>REPL</dt> <dd>Read-Eval-Print-Loop output</dd>
<dt>StatusInfoMsg</dt> <dd>Information messages in the status line</dd>
<dt>StatusLine</dt> <dd>The status bar</dd>
<dt>StatusLineBroken</dt> <dd>The status bar for a broken web page</dd>
<dt>StatusLineExtended</dt> <dd>The status bar for a secure web page with an Extended Validation (EV) certificate</dd>
<dt>StatusLineNormal</dt> <dd>The status bar for an ordinary web page</dd>
<dt>StatusLineSecure</dt> <dd>The status bar for a secure web page</dd>
<dt>StatusModeMsg</dt> <dd>The mode indicator in the status line</dd>
<dt>StatusMoreMsg</dt> <dd></dd>
<dt>StatusNormal</dt> <dd>Normal text in the status line</dd>
<dt>StatusQuestion</dt> <dd>A prompt for a decision in the status line</dd>
<dt>StatusWarningMsg</dt> <dd>A warning message in the status line</dd>
<dt>String</dt> <dd>String values</dd>
<dt>TabClose</dt> <dd>The close button of a browser tab</dd>
<dt>TabIcon</dt> <dd>The icon of a browser tab</dd>
<dt>TabIconNumber</dt> <dd>The number of a browser tab, over its icon</dd>
<dt>TabNumber</dt> <dd>The number of a browser tab, next to its icon</dd>
<dt>TabText</dt> <dd>The text of a browser tab</dd>
<dt>Tag</dt> <dd>A bookmark tag for a URL</dd>
<dt>Title</dt> <dd>The title of a listing, including <ex>:pageinfo</ex>, <ex>:jumps</ex></dd>
<dt>URL:hover</dt> <dd></dd>
<dt>URL</dt> <dd>A URL</dd>
<dt>URLExtra</dt> <dd>Extra information about a URL</dd>
<dt>Usage</dt> <dd>Output from the :*usage commands</dd>
<dt>UsageBody</dt> <dd>The body of listings in output from the :*usage commands</dd>
<dt>UsageHead</dt> <dd>Headings in output from the :*usage commands</dd>
<dt>UsageItem</dt> <dd>Individual items in output from the :*usage commands</dd>
<dt>WarningMsg</dt> <dd>A warning message</dd>
</dl> </dl>
<p> <p>

View File

@@ -400,21 +400,25 @@ var ConfigBase = Class("ConfigBase", {
*/ */
CSS: UTF8(String.replace(<><![CDATA[ CSS: UTF8(String.replace(<><![CDATA[
// <css> // <css>
Boolean color: red; Boolean /* JavaScript booleans */ color: red;
Function color: navy; Function /* JavaScript functions */ color: navy;
Null color: blue; Null /* JavaScript null values */ color: blue;
Number color: blue; Number /* JavaScript numbers */ color: blue;
Object color: maroon; Object /* JavaScript objects */ color: maroon;
String color: green; white-space: pre; String /* String values */ color: green; white-space: pre;
Comment /* JavaScriptor CSS comments */ color: gray;
Key font-weight: bold; Key /* Keywords */ font-weight: bold;
Enabled color: blue; Enabled /* Enabled item indicator text */ color: blue;
Disabled color: red; Disabled /* Disabled item indicator text */ color: red;
FontFixed font-family: monospace !important; FontFixed /* The font used for fixed-width text */ \
FontCode font-size: 9pt; font-family: monospace !important; font-family: monospace !important;
FontProportional font-size: 10pt; font-family: "Droid Sans", "Helvetica LT Std", Helvetica, "DejaVu Sans", Verdana, sans-serif !important; FontCode /* The font used for code listings */ \
font-size: 9pt; font-family: monospace !important;
FontProportional /* The font used for proportionally spaced text */ \
font-size: 10pt; font-family: "Droid Sans", "Helvetica LT Std", Helvetica, "DejaVu Sans", Verdana, sans-serif !important;
// Hack to give these groups slightly higher precedence // Hack to give these groups slightly higher precedence
// than their unadorned variants. // than their unadorned variants.
@@ -427,84 +431,129 @@ var ConfigBase = Class("ConfigBase", {
CmdQuestion;[dactyl|highlight] &#x0d; StatusQuestion;[dactyl|highlight] CmdQuestion;[dactyl|highlight] &#x0d; StatusQuestion;[dactyl|highlight]
CmdWarningMsg;[dactyl|highlight] &#x0d; StatusWarningMsg;[dactyl|highlight] CmdWarningMsg;[dactyl|highlight] &#x0d; StatusWarningMsg;[dactyl|highlight]
Normal color: black !important; background: white !important; font-weight: normal !important; Normal /* Normal text */ \
StatusNormal color: inherit !important; background: transparent !important; color: black !important; background: white !important; font-weight: normal !important;
ErrorMsg color: white !important; background: red !important; font-weight: bold !important; StatusNormal /* Normal text in the status line */ \
InfoMsg color: black !important; background: white !important; color: inherit !important; background: transparent !important;
StatusInfoMsg color: inherit !important; background: transparent !important; ErrorMsg /* Error messages */ \
LineNr color: orange !important; background: white !important; color: white !important; background: red !important; font-weight: bold !important;
ModeMsg color: black !important; background: white !important; InfoMsg /* Information messages */ \
StatusModeMsg color: inherit !important; background: transparent !important; padding-right: 1em; color: black !important; background: white !important;
MoreMsg color: green !important; background: white !important; StatusInfoMsg /* Information messages in the status line */ \
color: inherit !important; background: transparent !important;
LineNr /* The line number of an error */ \
color: orange !important; background: white !important;
ModeMsg /* The mode indicator */ \
color: black !important; background: white !important;
StatusModeMsg /* The mode indicator in the status line */ \
color: inherit !important; background: transparent !important; padding-right: 1em;
MoreMsg /* The indicator that there is more text to view */ \
color: green !important; background: white !important;
StatusMoreMsg background: transparent !important; StatusMoreMsg background: transparent !important;
Message white-space: pre-wrap !important; min-width: 100%; width: 100%; padding-left: 4em; text-indent: -4em; display: block; Message /* A message as displayed in <ex>:messages</ex> */ \
Message String white-space: pre-wrap; white-space: pre-wrap !important; min-width: 100%; width: 100%; padding-left: 4em; text-indent: -4em; display: block;
NonText color: blue; background: transparent !important; Message String /* A message as displayed in <ex>:messages</ex> */ \
*Preview color: gray; white-space: pre-wrap;
Question color: green !important; background: white !important; font-weight: bold !important; NonText /* The <em>~</em> indicators which mark blank lines in the completion list */ \
StatusQuestion color: green !important; background: transparent !important; color: blue; background: transparent !important;
WarningMsg color: red !important; background: white !important; *Preview /* The completion preview displayed in the &tag.command-line; */ \
StatusWarningMsg color: red !important; background: transparent !important; color: gray;
Question /* A prompt for a decision */ \
color: green !important; background: white !important; font-weight: bold !important;
StatusQuestion /* A prompt for a decision in the status line */ \
color: green !important; background: transparent !important;
WarningMsg /* A warning message */ \
color: red !important; background: white !important;
StatusWarningMsg /* A warning message in the status line */ \
color: red !important; background: transparent !important;
CmdLine;>*;;FontFixed padding: 1px !important; CmdLine;>*;;FontFixed /* The command line */ \
padding: 1px !important;
CmdPrompt;.dactyl-commandline-prompt CmdPrompt;.dactyl-commandline-prompt
/* The default styling form the command prompt */
CmdInput;.dactyl-commandline-command CmdInput;.dactyl-commandline-command
CmdOutput white-space: pre; CmdOutput /* The output of commands executed by <ex>:run</ex> */ \
white-space: pre;
CompGroup CompGroup /* Item group in completion output */
CompGroup:not(:first-of-type) margin-top: .5em; CompGroup:not(:first-of-type) margin-top: .5em;
CompGroup:last-of-type padding-bottom: 1.5ex; CompGroup:last-of-type padding-bottom: 1.5ex;
CompTitle color: magenta; background: white; font-weight: bold; CompTitle /* Completion row titles */ \
color: magenta; background: white; font-weight: bold;
CompTitle>* padding: 0 .5ex; CompTitle>* padding: 0 .5ex;
CompTitleSep height: 1px; background: magenta; background: -moz-linear-gradient(60deg, magenta, white); CompTitleSep /* The element which separates the completion title from its results */ \
height: 1px; background: magenta; background: -moz-linear-gradient(60deg, magenta, white);
CompMsg font-style: italic; margin-left: 16px; CompMsg /* The message which may appear at the top of a group of completion results */ \
font-style: italic; margin-left: 16px;
CompItem CompItem /* A single row of output in the completion list */
CompItem:nth-child(2n+1) background: rgba(0, 0, 0, .04); CompItem:nth-child(2n+1) background: rgba(0, 0, 0, .04);
CompItem[selected] background: yellow; CompItem[selected] /* A selected row of completion list */ \
background: yellow;
CompItem>* padding: 0 .5ex; CompItem>* padding: 0 .5ex;
CompIcon width: 16px; min-width: 16px; display: inline-block; margin-right: .5ex; CompIcon /* The favicon of a completion row */ \
width: 16px; min-width: 16px; display: inline-block; margin-right: .5ex;
CompIcon>img max-width: 16px; max-height: 16px; vertical-align: middle; CompIcon>img max-width: 16px; max-height: 16px; vertical-align: middle;
CompResult width: 36%; padding-right: 1%; overflow: hidden; CompResult /* The result column of the completion list */ \
CompDesc color: gray; width: 62%; padding-left: 1em; width: 36%; padding-right: 1%; overflow: hidden;
CompDesc /* The description column of the completion list */ \
color: gray; width: 62%; padding-left: 1em;
CompLess text-align: center; height: 0; line-height: .5ex; padding-top: 1ex; CompLess /* The indicator shown when completions may be scrolled up */ \
CompLess::after content: "⌃"; text-align: center; height: 0; line-height: .5ex; padding-top: 1ex;
CompLess::after /* The character of indicator shown when completions may be scrolled up */ \
content: "⌃";
CompMore text-align: center; height: .5ex; line-height: .5ex; margin-bottom: -.5ex; CompMore /* The indicator shown when completions may be scrolled down */ \
CompMore::after content: "⌄"; text-align: center; height: .5ex; line-height: .5ex; margin-bottom: -.5ex;
CompMore::after /* The character of indicator shown when completions may be scrolled down */ \
content: "⌄";
Dense margin-top: 0; margin-bottom: 0; Dense /* Arbitrary elements which should be packed densely together */\
margin-top: 0; margin-bottom: 0;
EditorEditing;;* background-color: #bbb !important; -moz-user-input: none !important; -moz-user-modify: read-only !important; EditorEditing;;* /* Text fields for which an external editor is open */ \
EditorError;;* background: red !important; background-color: #bbb !important; -moz-user-input: none !important; -moz-user-modify: read-only !important;
EditorBlink1;;* background: yellow !important; EditorError;;* /* Text fields briefly after an error has occurred running the external editor */ \
EditorBlink2;;* background: red !important;
EditorBlink1;;* /* Text fields briefly after successfully running the external editor, alternated with EditorBlink2 */ \
background: yellow !important;
EditorBlink2;;* /* Text fields briefly after successfully running the external editor, alternated with EditorBlink1 */
REPL overflow: auto; max-height: 40em; REPL /* Read-Eval-Print-Loop output */ \
REPL-R;;;Question overflow: auto; max-height: 40em;
REPL-E white-space: pre-wrap; REPL-R;;;Question /* Prompts in REPL mode */
REPL-P white-space: pre-wrap; margin-bottom: 1em; REPL-E /* Evaled input in REPL mode */ \
white-space: pre-wrap;
REPL-P /* Evaled output in REPL mode */ \
white-space: pre-wrap; margin-bottom: 1em;
Usage width: 100%; Usage /* Output from the :*usage commands */ \
UsageBody width: 100%;
UsageHead UsageHead /* Headings in output from the :*usage commands */
UsageItem UsageBody /* The body of listings in output from the :*usage commands */
UsageItem /* Individual items in output from the :*usage commands */
UsageItem:nth-of-type(2n) background: rgba(0, 0, 0, .04); UsageItem:nth-of-type(2n) background: rgba(0, 0, 0, .04);
Indicator color: blue; width: 1.5em; text-align: center; Indicator /* The <em>#</em> and <em>%</em> in the <ex>:buffers</ex> list */ \
Filter font-weight: bold; color: blue; width: 1.5em; text-align: center;
Filter /* The matching text in a completion list */ \
font-weight: bold;
Keyword color: red; Keyword /* A bookmark keyword for a URL */ \
Tag color: blue; color: red;
Tag /* A bookmark tag for a URL */ \
color: blue;
Link position: relative; padding-right: 2em; Link /* A link with additional information shown on hover */ \
position: relative; padding-right: 2em;
Link:not(:hover)>LinkInfo opacity: 0; left: 0; width: 1px; height: 1px; overflow: hidden; Link:not(:hover)>LinkInfo opacity: 0; left: 0; width: 1px; height: 1px; overflow: hidden;
LinkInfo { LinkInfo {
/* Information shown when hovering over a link */
color: black; color: black;
position: absolute; position: absolute;
left: 100%; left: 100%;
@@ -515,6 +564,7 @@ var ConfigBase = Class("ConfigBase", {
} }
StatusLine;;;FontFixed { StatusLine;;;FontFixed {
/* The status bar */
-moz-appearance: none !important; -moz-appearance: none !important;
font-weight: bold; font-weight: bold;
background: transparent !important; background: transparent !important;
@@ -523,16 +573,24 @@ var ConfigBase = Class("ConfigBase", {
min-height: 18px !important; min-height: 18px !important;
text-shadow: none !important; text-shadow: none !important;
} }
StatusLineNormal;[dactyl|highlight] color: white !important; background: black !important; StatusLineNormal;[dactyl|highlight] /* The status bar for an ordinary web page */ \
StatusLineBroken;[dactyl|highlight] color: black !important; background: #FFa0a0 !important; /* light-red */ color: white !important; background: black !important;
StatusLineSecure;[dactyl|highlight] color: black !important; background: #a0a0FF !important; /* light-blue */ StatusLineBroken;[dactyl|highlight] /* The status bar for a broken web page */ \
StatusLineExtended;[dactyl|highlight] color: black !important; background: #a0FFa0 !important; /* light-green */ color: black !important; background: #FFa0a0 !important; /* light-red */
StatusLineSecure;[dactyl|highlight] /* The status bar for a secure web page */ \
color: black !important; background: #a0a0FF !important; /* light-blue */
StatusLineExtended;[dactyl|highlight] /* The status bar for a secure web page with an Extended Validation (EV) certificate */ \
color: black !important; background: #a0FFa0 !important; /* light-green */
!TabClose;.tab-close-button !TabClose;.tab-close-button /* The close button of a browser tab */ \
!TabIcon;.tab-icon,.tab-icon-image /* The close button of a browser tab */
!TabText;.tab-text !TabIcon;.tab-icon,.tab-icon-image /* The icon of a browser tab */ \
TabNumber font-weight: bold; margin: 0px; padding-right: .8ex; cursor: default; /* The icon of a browser tab */
TabIconNumber { !TabText;.tab-text /* The text of a browser tab */
TabNumber /* The number of a browser tab, next to its icon */ \
font-weight: bold; margin: 0px; padding-right: .8ex; cursor: default;
TabIconNumber {
/* The number of a browser tab, over its icon */
cursor: default; cursor: default;
width: 16px; width: 16px;
margin: 0 2px 0 -18px !important; margin: 0 2px 0 -18px !important;
@@ -542,12 +600,16 @@ var ConfigBase = Class("ConfigBase", {
text-shadow: black -1px 0 1px, black 0 1px 1px, black 1px 0 1px, black 0 -1px 1px; text-shadow: black -1px 0 1px, black 0 1px 1px, black 1px 0 1px, black 0 -1px 1px;
} }
Title color: magenta; font-weight: bold; Title /* The title of a listing, including <ex>:pageinfo</ex>, <ex>:jumps</ex> */ \
URL text-decoration: none; color: green; background: inherit; color: magenta; font-weight: bold;
URL /* A URL */ \
text-decoration: none; color: green; background: inherit;
URL:hover text-decoration: underline; cursor: pointer; URL:hover text-decoration: underline; cursor: pointer;
URLExtra color: gray; URLExtra /* Extra information about a URL */ \
color: gray;
FrameIndicator;;* { FrameIndicator;;* {
/* The styling applied to briefly indicate the active frame */
background-color: red; background-color: red;
opacity: 0.5; opacity: 0.5;
z-index: 999999; z-index: 999999;
@@ -558,9 +620,11 @@ var ConfigBase = Class("ConfigBase", {
right: 0; right: 0;
} }
Bell background-color: black !important; Bell /* &dactyl.appName;s visual bell */ \
background-color: black !important;
Hint;;* { Hint;;* {
/* A hint indicator. See <ex>:help hints</ex> */
font: bold 10px "Droid Sans Mono", monospace !important; font: bold 10px "Droid Sans Mono", monospace !important;
margin: -.2ex; margin: -.2ex;
padding: 0 0 0 1px; padding: 0 0 0 1px;
@@ -570,48 +634,60 @@ var ConfigBase = Class("ConfigBase", {
} }
Hint[active];;* background: rgba(255, 253, 208, .8); Hint[active];;* background: rgba(255, 253, 208, .8);
Hint::after;;* content: attr(text) !important; Hint::after;;* content: attr(text) !important;
HintElem;;* background-color: yellow !important; color: black !important; HintElem;;* /* The hintable element */ \
HintActive;;* background-color: #88FF00 !important; color: black !important; background-color: yellow !important; color: black !important;
HintImage;;* opacity: .5 !important; HintActive;;* /* The hint element of link which will be followed by <k name="CR"/> */ \
background-color: #88FF00 !important; color: black !important;
HintImage;;* /* The indicator which floats above hinted images */ \
opacity: .5 !important;
Button display: inline-block; font-weight: bold; cursor: pointer; color: black; text-decoration: none; Button /* A button widget */ \
display: inline-block; font-weight: bold; cursor: pointer; color: black; text-decoration: none;
Button:hover text-decoration: underline; Button:hover text-decoration: underline;
Button[collapsed] visibility: collapse; width: 0; Button[collapsed] visibility: collapse; width: 0;
Button::before content: "["; color: gray; text-decoration: none !important; Button::before content: "["; color: gray; text-decoration: none !important;
Button::after content: "]"; color: gray; text-decoration: none !important; Button::after content: "]"; color: gray; text-decoration: none !important;
Button:not([collapsed]) ~ Button:not([collapsed])::before content: "/["; Button:not([collapsed]) ~ Button:not([collapsed])::before content: "/[";
Buttons Buttons /* A group of buttons */
DownloadCell display: table-cell; padding: 0 1ex; DownloadCell /* A table cell in the :downloads manager */ \
display: table-cell; padding: 0 1ex;
Downloads display: table; margin: 0; padding: 0; Downloads /* The :downloads manager */ \
DownloadHead;;;CompTitle display: table-row; display: table; margin: 0; padding: 0;
DownloadHead;;;CompTitle /* A heading in the :downloads manager */ \
display: table-row;
DownloadHead>*;;;DownloadCell DownloadHead>*;;;DownloadCell
Download display: table-row; Download /* A download in the :downloads manager */ \
display: table-row;
Download:not([active]) color: gray; Download:not([active]) color: gray;
Download:nth-child(2n+1) background: rgba(0, 0, 0, .04); Download:nth-child(2n+1) background: rgba(0, 0, 0, .04);
Download>*;;;DownloadCell Download>*;;;DownloadCell
DownloadButtons DownloadButtons /* A button group in the :downloads manager */
DownloadPercent DownloadPercent /* The percentage column for a download */
DownloadProgress DownloadProgress /* The progress column for a download */
DownloadProgressHave DownloadProgressHave /* The completed portion of the progress column */
DownloadProgressTotal DownloadProgressTotal /* The remaining portion of the progress column */
DownloadSource DownloadSource /* The download source column for a download */
DownloadState DownloadState /* The download state column for a download */
DownloadTime DownloadTime /* The time remaining column for a download */
DownloadTitle DownloadTitle /* The title column for a download */
DownloadTitle>Link>a max-width: 48ex; overflow: hidden; display: inline-block; DownloadTitle>Link>a max-width: 48ex; overflow: hidden; display: inline-block;
AddonCell display: table-cell; padding: 0 1ex; AddonCell /* A cell in tell :addons manager */ \
display: table-cell; padding: 0 1ex;
Addons display: table; margin: 0; padding: 0; Addons /* The :addons manager */ \
AddonHead;;;CompTitle display: table-row; display: table; margin: 0; padding: 0;
AddonHead;;;CompTitle /* A heading in the :addons manager */ \
display: table-row;
AddonHead>*;;;AddonCell AddonHead>*;;;AddonCell
Addon display: table-row; Addon /* An add-on in the :addons manager */ \
display: table-row;
Addon:nth-child(2n+1) background: rgba(0, 0, 0, .04); Addon:nth-child(2n+1) background: rgba(0, 0, 0, .04);
Addon>*;;;AddonCell Addon>*;;;AddonCell
@@ -626,44 +702,65 @@ var ConfigBase = Class("ConfigBase", {
helpCSS: UTF8(<><![CDATA[ helpCSS: UTF8(<><![CDATA[
// <css> // <css>
InlineHelpLink font-size: inherit !important; font-family: inherit !important; InlineHelpLink /* A help link shown in the command line or multi-line output area */ \
font-size: inherit !important; font-family: inherit !important;
Help;;;FontProportional line-height: 1.4em; Help;;;FontProportional /* A help page */ \
line-height: 1.4em;
HelpInclude margin: 2em 0; HelpInclude /* A help page included in the consolidated help listing */ \
margin: 2em 0;
HelpArg;;;FontCode color: #6A97D4; HelpArg;;;FontCode /* A required command argument indicator */ \
HelpOptionalArg;;;FontCode color: #6A97D4; color: #6A97D4;
HelpOptionalArg;;;FontCode /* An optional command argument indicator */ \
color: #6A97D4;
HelpBody display: block; margin: 1em auto; max-width: 100ex; padding-bottom: 1em; margin-bottom: 4em; border-bottom-width: 1px; HelpBody /* The body of a help page */ \
HelpBorder;*;dactyl://help/* border-color: silver; border-width: 0px; border-style: solid; display: block; margin: 1em auto; max-width: 100ex; padding-bottom: 1em; margin-bottom: 4em; border-bottom-width: 1px;
HelpCode;;;FontCode display: block; white-space: pre; margin-left: 2em; HelpBorder;*;dactyl://help/* /* The styling of bordered elements */ \
HelpTT;html|tt;dactyl://help/*;FontCode border-color: silver; border-width: 0px; border-style: solid;
HelpCode;;;FontCode /* Code listings */ \
display: block; white-space: pre; margin-left: 2em;
HelpTT;html|tt;dactyl://help/*;FontCode /* Teletype text */
HelpDefault;;;FontCode display: inline-block; margin: -1px 1ex 0 0; white-space: pre; vertical-align: text-top; HelpDefault;;;FontCode /* The default value of a help item */ \
display: inline-block; margin: -1px 1ex 0 0; white-space: pre; vertical-align: text-top;
HelpDescription display: block; clear: right; HelpDescription /* The description of a help item */ \
display: block; clear: right;
HelpDescription[short] clear: none; HelpDescription[short] clear: none;
HelpEm;html|em;dactyl://help/* font-weight: bold; font-style: normal; HelpEm;html|em;dactyl://help/* /* Emphasized text */ \
font-weight: bold; font-style: normal;
HelpEx;;;FontCode display: inline-block; color: #527BBD; HelpEx;;;FontCode /* An Ex command */ \
display: inline-block; color: #527BBD;
HelpExample display: block; margin: 1em 0; HelpExample /* An example */ \
display: block; margin: 1em 0;
HelpExample::before content: "__MSG_help.Example__: "; font-weight: bold; HelpExample::before content: "__MSG_help.Example__: "; font-weight: bold;
HelpInfo display: block; width: 20em; margin-left: auto; HelpInfo /* Arbitrary information about a help item */ \
HelpInfoLabel display: inline-block; width: 6em; color: magenta; font-weight: bold; vertical-align: text-top; display: block; width: 20em; margin-left: auto;
HelpInfoValue display: inline-block; width: 14em; text-decoration: none; vertical-align: text-top; HelpInfoLabel /* The label for a HelpInfo item */ \
display: inline-block; width: 6em; color: magenta; font-weight: bold; vertical-align: text-top;
HelpInfoValue /* The details for a HelpInfo item */ \
display: inline-block; width: 14em; text-decoration: none; vertical-align: text-top;
HelpItem display: block; margin: 1em 1em 1em 10em; clear: both; HelpItem /* A help item */ \
display: block; margin: 1em 1em 1em 10em; clear: both;
HelpKey;;;FontCode color: #102663; HelpKey;;;FontCode /* A keyboard key specification */ \
HelpKeyword font-weight: bold; color: navy; color: #102663;
HelpKeyword /* A keyword */ \
font-weight: bold; color: navy;
HelpLink;html|a;dactyl://help/* text-decoration: none !important; HelpLink;html|a;dactyl://help/* /* A hyperlink */ \
text-decoration: none !important;
HelpLink[href]:hover text-decoration: underline !important; HelpLink[href]:hover text-decoration: underline !important;
HelpLink[href^="mailto:"]::after content: "✉"; padding-left: .2em; HelpLink[href^="mailto:"]::after content: "✉"; padding-left: .2em;
HelpLink[rel=external] { HelpLink[rel=external] {
/* A hyperlink to an external resource */
/* Thanks, Wikipedia */ /* Thanks, Wikipedia */
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC) no-repeat scroll right center; background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC) no-repeat scroll right center;
padding-right: 13px; padding-right: 13px;
@@ -674,65 +771,85 @@ var ConfigBase = Class("ConfigBase", {
ErrorMsg HelpOption color: inherit; background: inherit; text-decoration: underline; ErrorMsg HelpOption color: inherit; background: inherit; text-decoration: underline;
ErrorMsg HelpTopic color: inherit; background: inherit; text-decoration: underline; ErrorMsg HelpTopic color: inherit; background: inherit; text-decoration: underline;
HelpTOC HelpTOC /* The Table of Contents for a help page */
HelpTOC>ol ol margin-left: -1em; HelpTOC>ol ol margin-left: -1em;
HelpOrderedList;ol;dactyl://help/* margin: 1em 0; HelpOrderedList;ol;dactyl://help/* /* Any ordered list */ \
HelpOrderedList1;ol[level="1"],ol;dactyl://help/* list-style: outside decimal; display: block; margin: 1em 0;
HelpOrderedList2;ol[level="2"],ol ol;dactyl://help/* list-style: outside upper-alpha; HelpOrderedList1;ol[level="1"],ol;dactyl://help/* /* A first-level ordered list */ \
HelpOrderedList3;ol[level="3"],ol ol ol;dactyl://help/* list-style: outside lower-roman; list-style: outside decimal; display: block;
HelpOrderedList4;ol[level="4"],ol ol ol ol;dactyl://help/* list-style: outside decimal; HelpOrderedList2;ol[level="2"],ol ol;dactyl://help/* /* A second-level ordered list */ \
list-style: outside upper-alpha;
HelpOrderedList3;ol[level="3"],ol ol ol;dactyl://help/* /* A third-level ordered list */ \
list-style: outside lower-roman;
HelpOrderedList4;ol[level="4"],ol ol ol ol;dactyl://help/* /* A fourth-level ordered list */ \
list-style: outside decimal;
HelpList;html|ul;dactyl://help/* display: block; list-style-position: outside; margin: 1em 0; HelpList;html|ul;dactyl://help/* /* An unordered list */ \
HelpListItem;html|li;dactyl://help/* display: list-item; display: block; list-style-position: outside; margin: 1em 0;
HelpListItem;html|li;dactyl://help/* /* A list item, ordered or unordered */ \
display: list-item;
HelpNote color: red; font-weight: bold; HelpNote /* The indicator for a note */ \
color: red; font-weight: bold;
HelpOpt;;;FontCode color: #106326; HelpOpt;;;FontCode /* An option name */ \
HelpOptInfo;;;FontCode display: block; margin-bottom: 1ex; padding-left: 4em; color: #106326;
HelpOptInfo;;;FontCode /* Information about the type and default values for an option entry */ \
display: block; margin-bottom: 1ex; padding-left: 4em;
HelpParagraph;html|p;dactyl://help/* display: block; margin: 1em 0em; HelpParagraph;html|p;dactyl://help/* /* An ordinary paragraph */ \
display: block; margin: 1em 0em;
HelpParagraph:first-child margin-top: 0; HelpParagraph:first-child margin-top: 0;
HelpParagraph:last-child margin-bottom: 0; HelpParagraph:last-child margin-bottom: 0;
HelpSpec;;;FontCode display: block; margin-left: -10em; float: left; clear: left; color: #527BBD; margin-right: 1em; HelpSpec;;;FontCode /* The specification for a help entry */ \
display: block; margin-left: -10em; float: left; clear: left; color: #527BBD; margin-right: 1em;
HelpString;;;FontCode color: green; font-weight: normal; HelpString;;;FontCode /* A quoted string */ \
color: green; font-weight: normal;
HelpString::before content: '"'; HelpString::before content: '"';
HelpString::after content: '"'; HelpString::after content: '"';
HelpString[delim]::before content: attr(delim); HelpString[delim]::before content: attr(delim);
HelpString[delim]::after content: attr(delim); HelpString[delim]::after content: attr(delim);
HelpNews position: relative; HelpNews /* A news item */ position: relative;
HelpNewsOld opacity: .7; HelpNewsOld /* An old news item */ opacity: .7;
HelpNewsNew font-style: italic; HelpNewsNew /* A new news item */ font-style: italic;
HelpNewsTag font-style: normal; position: absolute; left: 100%; padding-left: 1em; color: #527BBD; opacity: .6; white-space: pre; HelpNewsTag /* The version tag for a news item */ \
font-style: normal; position: absolute; left: 100%; padding-left: 1em; color: #527BBD; opacity: .6; white-space: pre;
HelpHead;html|h1,html|h2,html|h3,html|h4;dactyl://help/* { HelpHead;html|h1,html|h2,html|h3,html|h4;dactyl://help/* {
/* Any help heading */
font-weight: bold; font-weight: bold;
color: #527BBD; color: #527BBD;
clear: both; clear: both;
} }
HelpHead1;html|h1;dactyl://help/* { HelpHead1;html|h1;dactyl://help/* {
/* A first-level help heading */
margin: 2em 0 1em; margin: 2em 0 1em;
padding-bottom: .2ex; padding-bottom: .2ex;
border-bottom-width: 1px; border-bottom-width: 1px;
font-size: 2em; font-size: 2em;
} }
HelpHead2;html|h2;dactyl://help/* { HelpHead2;html|h2;dactyl://help/* {
/* A second-level help heading */
margin: 2em 0 1em; margin: 2em 0 1em;
padding-bottom: .2ex; padding-bottom: .2ex;
border-bottom-width: 1px; border-bottom-width: 1px;
font-size: 1.2em; font-size: 1.2em;
} }
HelpHead3;html|h3;dactyl://help/* { HelpHead3;html|h3;dactyl://help/* {
/* A third-level help heading */
margin: 1em 0; margin: 1em 0;
padding-bottom: .2ex; padding-bottom: .2ex;
font-size: 1.1em; font-size: 1.1em;
} }
HelpHead4;html|h4;dactyl://help/* { HelpHead4;html|h4;dactyl://help/* {
/* A fourth-level help heading */
} }
HelpTab;html|dl;dactyl://help/* { HelpTab;html|dl;dactyl://help/* {
/* A description table */
display: table; display: table;
width: 100%; width: 100%;
margin: 1em 0; margin: 1em 0;
@@ -743,19 +860,28 @@ var ConfigBase = Class("ConfigBase", {
} }
HelpTabColumn;html|column;dactyl://help/* display: table-column; HelpTabColumn;html|column;dactyl://help/* display: table-column;
HelpTabColumn:first-child width: 25%; HelpTabColumn:first-child width: 25%;
HelpTabTitle;html|dt;dactyl://help/*;FontCode display: table-cell; padding: .1ex 1ex; font-weight: bold; HelpTabTitle;html|dt;dactyl://help/*;FontCode /* The title column of description tables */ \
HelpTabDescription;html|dd;dactyl://help/* display: table-cell; padding: .3ex 1em; text-indent: -1em; border-width: 0px; display: table-cell; padding: .1ex 1ex; font-weight: bold;
HelpTabDescription;html|dd;dactyl://help/* /* The description column of description tables */ \
display: table-cell; padding: .3ex 1em; text-indent: -1em; border-width: 0px;
HelpTabDescription>*;;dactyl://help/* text-indent: 0; HelpTabDescription>*;;dactyl://help/* text-indent: 0;
HelpTabRow;html|dl>html|tr;dactyl://help/* display: table-row; HelpTabRow;html|dl>html|tr;dactyl://help/* /* Entire rows in description tables */ \
display: table-row;
HelpTag;;;FontCode display: inline-block; color: #527BBD; margin-left: 1ex; font-weight: normal; HelpTag;;;FontCode /* A help tag */ \
HelpTags display: block; float: right; clear: right; display: inline-block; color: #527BBD; margin-left: 1ex; font-weight: normal;
HelpTopic;;;FontCode color: #102663; HelpTags /* A group of help tags */ \
HelpType;;;FontCode color: #102663 !important; margin-right: 2ex; display: block; float: right; clear: right;
HelpTopic;;;FontCode /* A link to a help topic */ \
color: #102663;
HelpType;;;FontCode /* An option type */ \
color: #102663 !important; margin-right: 2ex;
HelpWarning color: red; font-weight: bold; HelpWarning /* The indicator for a warning */ \
color: red; font-weight: bold;
HelpXML;;;FontCode color: #C5F779; background-color: #444444; font-family: Terminus, Fixed, monospace; HelpXML;;;FontCode /* Highlighted XML */ \
color: #C5F779; background-color: #444444; font-family: Terminus, Fixed, monospace;
HelpXMLBlock { white-space: pre; color: #C5F779; background-color: #444444; HelpXMLBlock { white-space: pre; color: #C5F779; background-color: #444444;
border: 1px dashed #aaaaaa; border: 1px dashed #aaaaaa;
display: block; display: block;

View File

@@ -278,7 +278,8 @@ var Highlights = Module("Highlight", {
* @param {boolean} eager When true, load all provided rules immediately. * @param {boolean} eager When true, load all provided rules immediately.
*/ */
loadCSS: function loadCSS(css, eager) { loadCSS: function loadCSS(css, eager) {
String.replace(css, this.groupRegexp, function (m, m1, m2) m1 + " " + m2.replace(/\n\s*/g, " ")) String.replace(css, /\\\n/g, "")
.replace(this.groupRegexp, function (m, m1, m2) m1 + " " + m2.replace(/\n\s*/g, " "))
.split("\n").filter(function (s) /\S/.test(s) && !/^\s*\/\//.test(s)) .split("\n").filter(function (s) /\S/.test(s) && !/^\s*\/\//.test(s))
.forEach(function (highlight) { .forEach(function (highlight) {
@@ -349,9 +350,11 @@ var Highlights = Module("Highlight", {
([h.class, ([h.class,
<span style={"text-align: center; line-height: 1em;" + h.value + style}>XXX</span>, <span style={"text-align: center; line-height: 1em;" + h.value + style}>XXX</span>,
template.map(h.extends, template.highlight), template.map(h.extends, template.highlight),
template.highlightRegexp(h.value, /\b[-\w]+(?=:)/g)] template.highlightRegexp(h.value, /\b[-\w]+(?=:)|\/\*.*?\*\//g,
for (h in highlight) function (match) <span highlight={match[0] == "/" ? "Comment" : "Key"}>{match}</span>)
if (!key || h.class.indexOf(key) > -1)))); ]
for (h in highlight)
if (!key || h.class.indexOf(key) > -1))));
else if (!key && clear) else if (!key && clear)
highlight.clear(); highlight.clear();
else if (key) else if (key)

View File

@@ -368,9 +368,13 @@ var Styles = Module("Styles", {
for (let prop in Styles.propertyIter(str)) for (let prop in Styles.propertyIter(str))
props[prop.name] = prop.value; props[prop.name] = prop.value;
return Object.keys(props)[sort ? "sort" : "slice"]() let val = Object.keys(props)[sort ? "sort" : "slice"]()
.map(function (prop) prop + ": " + props[prop] + ";") .map(function (prop) prop + ": " + props[prop] + ";")
.join(" "); .join(" ");
if (/^\s*(\/\*.*?\*\/)/.exec(src))
val = RegExp.$1 + " " + val;
return val;
}, },
completeSite: function (context, content, group) { completeSite: function (context, content, group) {