From 4a44bf96648864d19d736ed470702a25cbfe5b79 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Thu, 23 Jun 2011 16:21:01 -0400 Subject: [PATCH] Documentation. --- common/content/events.js | 18 +- common/content/statusline.js | 5 +- common/locale/en-US/styling.xml | 253 ++++++++++++++----- common/modules/config.jsm | 418 +++++++++++++++++++++----------- common/modules/highlight.jsm | 11 +- common/modules/styles.jsm | 10 +- 6 files changed, 500 insertions(+), 215 deletions(-) diff --git a/common/content/events.js b/common/content/events.js index 820f4063..939515a0 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -73,6 +73,10 @@ var ProcessorStack = Class("ProcessorStack", { statusline.inputBuffer = this.processors.length ? this.buffer : ""; 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)) { while (callable(action)) { length = action.eventLength; @@ -83,11 +87,16 @@ var ProcessorStack = Class("ProcessorStack", { break; } + // Result is the result of the last action. Unless it's + // PASS, kill any remaining argument processors. result = action !== undefined ? action : Events.KILL; if (action !== Events.PASS) this.processors.length = 0; } 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; if (options["timeout"]) 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 && !(this.events[0].isReplay || this.passUnknown || 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; if (!Events.isEscape(this.events.slice(-1)[0])) dactyl.beep(); events.feedingKeys = false; } 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; events.dbg("RESULT: " + length + " " + this._result(result)); @@ -155,8 +171,6 @@ var ProcessorStack = Class("ProcessorStack", { if (res === Events.KILL) break; - buffer = buffer || input.inputBuffer; - if (callable(res)) actions.push(res); diff --git a/common/content/statusline.js b/common/content/statusline.js index 474b4506..6a9137c6 100644 --- a/common/content/statusline.js +++ b/common/content/statusline.js @@ -27,12 +27,14 @@ var StatusLine = Module("statusline", { highlight.loadCSS(util.compileMacro( } !AddonButton;#addon-bar xul|toolbarbutton { + /* An Add-on Bar button */ -moz-appearance: none !important; padding: 0 !important; border-width: 0px !important; @@ -44,7 +46,8 @@ var StatusLine = Module("statusline", { if (document.getElementById("appmenu-button")) highlight.loadCSS(); } diff --git a/common/locale/en-US/styling.xml b/common/locale/en-US/styling.xml index 331d1496..f8ef5b54 100644 --- a/common/locale/en-US/styling.xml +++ b/common/locale/en-US/styling.xml @@ -57,65 +57,200 @@

Valid groups include:

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

diff --git a/common/modules/config.jsm b/common/modules/config.jsm index 42fb4da9..4bcfbf60 100644 --- a/common/modules/config.jsm +++ b/common/modules/config.jsm @@ -400,21 +400,25 @@ var ConfigBase = Class("ConfigBase", { */ CSS: UTF8(String.replace(<> - Boolean color: red; - Function color: navy; - Null color: blue; - Number color: blue; - Object color: maroon; - String color: green; white-space: pre; + Boolean /* JavaScript booleans */ color: red; + Function /* JavaScript functions */ color: navy; + Null /* JavaScript null values */ color: blue; + Number /* JavaScript numbers */ color: blue; + Object /* JavaScript objects */ color: maroon; + 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; - Disabled color: red; + Enabled /* Enabled item indicator text */ color: blue; + Disabled /* Disabled item indicator text */ color: red; - FontFixed font-family: monospace !important; - FontCode font-size: 9pt; font-family: monospace !important; - FontProportional font-size: 10pt; font-family: "Droid Sans", "Helvetica LT Std", Helvetica, "DejaVu Sans", Verdana, sans-serif !important; + FontFixed /* The font used for fixed-width text */ \ + font-family: monospace !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 // than their unadorned variants. @@ -427,84 +431,129 @@ var ConfigBase = Class("ConfigBase", { CmdQuestion;[dactyl|highlight] StatusQuestion;[dactyl|highlight] CmdWarningMsg;[dactyl|highlight] StatusWarningMsg;[dactyl|highlight] - Normal color: black !important; background: white !important; font-weight: normal !important; - StatusNormal color: inherit !important; background: transparent !important; - ErrorMsg color: white !important; background: red !important; font-weight: bold !important; - InfoMsg color: black !important; background: white !important; - StatusInfoMsg color: inherit !important; background: transparent !important; - LineNr color: orange !important; background: white !important; - ModeMsg color: black !important; background: white !important; - StatusModeMsg color: inherit !important; background: transparent !important; padding-right: 1em; - MoreMsg color: green !important; background: white !important; + Normal /* Normal text */ \ + color: black !important; background: white !important; font-weight: normal !important; + StatusNormal /* Normal text in the status line */ \ + color: inherit !important; background: transparent !important; + ErrorMsg /* Error messages */ \ + color: white !important; background: red !important; font-weight: bold !important; + InfoMsg /* Information messages */ \ + color: black !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; - Message white-space: pre-wrap !important; min-width: 100%; width: 100%; padding-left: 4em; text-indent: -4em; display: block; - Message String white-space: pre-wrap; - NonText color: blue; background: transparent !important; - *Preview color: gray; - Question color: green !important; background: white !important; font-weight: bold !important; - StatusQuestion color: green !important; background: transparent !important; - WarningMsg color: red !important; background: white !important; - StatusWarningMsg color: red !important; background: transparent !important; + Message /* A message as displayed in :messages */ \ + white-space: pre-wrap !important; min-width: 100%; width: 100%; padding-left: 4em; text-indent: -4em; display: block; + Message String /* A message as displayed in :messages */ \ + white-space: pre-wrap; + NonText /* The ~ indicators which mark blank lines in the completion list */ \ + color: blue; background: transparent !important; + *Preview /* The completion preview displayed in the &tag.command-line; */ \ + 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 + /* The default styling form the command prompt */ CmdInput;.dactyl-commandline-command - CmdOutput white-space: pre; + CmdOutput /* The output of commands executed by :run */ \ + white-space: pre; - CompGroup + CompGroup /* Item group in completion output */ CompGroup:not(:first-of-type) margin-top: .5em; 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; - 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[selected] background: yellow; + CompItem[selected] /* A selected row of completion list */ \ + background: yellow; 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; - CompResult width: 36%; padding-right: 1%; overflow: hidden; - CompDesc color: gray; width: 62%; padding-left: 1em; + CompResult /* The result column of the completion list */ \ + 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::after content: "⌃"; + CompLess /* The indicator shown when completions may be scrolled up */ \ + 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::after content: "⌄"; + CompMore /* The indicator shown when completions may be scrolled down */ \ + 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; - EditorError;;* background: red !important; - EditorBlink1;;* background: yellow !important; - EditorBlink2;;* + EditorEditing;;* /* Text fields for which an external editor is open */ \ + background-color: #bbb !important; -moz-user-input: none !important; -moz-user-modify: read-only !important; + EditorError;;* /* Text fields briefly after an error has occurred running the external editor */ \ + 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-R;;;Question - REPL-E white-space: pre-wrap; - REPL-P white-space: pre-wrap; margin-bottom: 1em; + REPL /* Read-Eval-Print-Loop output */ \ + overflow: auto; max-height: 40em; + REPL-R;;;Question /* Prompts in REPL mode */ + 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%; - UsageBody - UsageHead - UsageItem + Usage /* Output from the :*usage commands */ \ + width: 100%; + UsageHead /* Headings in output from the :*usage commands */ + 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); - Indicator color: blue; width: 1.5em; text-align: center; - Filter font-weight: bold; + Indicator /* The # and % in the :buffers list */ \ + color: blue; width: 1.5em; text-align: center; + Filter /* The matching text in a completion list */ \ + font-weight: bold; - Keyword color: red; - Tag color: blue; + Keyword /* A bookmark keyword for a URL */ \ + 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; LinkInfo { + /* Information shown when hovering over a link */ color: black; position: absolute; left: 100%; @@ -515,6 +564,7 @@ var ConfigBase = Class("ConfigBase", { } StatusLine;;;FontFixed { + /* The status bar */ -moz-appearance: none !important; font-weight: bold; background: transparent !important; @@ -523,16 +573,24 @@ var ConfigBase = Class("ConfigBase", { min-height: 18px !important; text-shadow: none !important; } - StatusLineNormal;[dactyl|highlight] color: white !important; background: black !important; - StatusLineBroken;[dactyl|highlight] color: black !important; background: #FFa0a0 !important; /* light-red */ - StatusLineSecure;[dactyl|highlight] color: black !important; background: #a0a0FF !important; /* light-blue */ - StatusLineExtended;[dactyl|highlight] color: black !important; background: #a0FFa0 !important; /* light-green */ + StatusLineNormal;[dactyl|highlight] /* The status bar for an ordinary web page */ \ + color: white !important; background: black !important; + StatusLineBroken;[dactyl|highlight] /* The status bar for a broken web page */ \ + 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 - !TabIcon;.tab-icon,.tab-icon-image - !TabText;.tab-text - TabNumber font-weight: bold; margin: 0px; padding-right: .8ex; cursor: default; - TabIconNumber { + !TabClose;.tab-close-button /* The close button of a browser tab */ \ + /* The close button of a browser tab */ + !TabIcon;.tab-icon,.tab-icon-image /* The icon of a browser tab */ \ + /* The icon of a browser tab */ + !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; width: 16px; 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; } - Title color: magenta; font-weight: bold; - URL text-decoration: none; color: green; background: inherit; + Title /* The title of a listing, including :pageinfo, :jumps */ \ + color: magenta; font-weight: bold; + URL /* A URL */ \ + text-decoration: none; color: green; background: inherit; URL:hover text-decoration: underline; cursor: pointer; - URLExtra color: gray; + URLExtra /* Extra information about a URL */ \ + color: gray; FrameIndicator;;* { + /* The styling applied to briefly indicate the active frame */ background-color: red; opacity: 0.5; z-index: 999999; @@ -558,9 +620,11 @@ var ConfigBase = Class("ConfigBase", { right: 0; } - Bell background-color: black !important; + Bell /* &dactyl.appName;’s visual bell */ \ + background-color: black !important; Hint;;* { + /* A hint indicator. See :help hints */ font: bold 10px "Droid Sans Mono", monospace !important; margin: -.2ex; padding: 0 0 0 1px; @@ -570,48 +634,60 @@ var ConfigBase = Class("ConfigBase", { } Hint[active];;* background: rgba(255, 253, 208, .8); Hint::after;;* content: attr(text) !important; - HintElem;;* background-color: yellow !important; color: black !important; - HintActive;;* background-color: #88FF00 !important; color: black !important; - HintImage;;* opacity: .5 !important; + HintElem;;* /* The hintable element */ \ + background-color: yellow !important; color: black !important; + HintActive;;* /* The hint element of link which will be followed by */ \ + 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[collapsed] visibility: collapse; width: 0; Button::before content: "["; color: gray; text-decoration: none !important; Button::after content: "]"; color: gray; text-decoration: none !important; 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; - DownloadHead;;;CompTitle display: table-row; + Downloads /* The :downloads manager */ \ + display: table; margin: 0; padding: 0; + DownloadHead;;;CompTitle /* A heading in the :downloads manager */ \ + display: table-row; DownloadHead>*;;;DownloadCell - Download display: table-row; + Download /* A download in the :downloads manager */ \ + display: table-row; Download:not([active]) color: gray; Download:nth-child(2n+1) background: rgba(0, 0, 0, .04); Download>*;;;DownloadCell - DownloadButtons - DownloadPercent - DownloadProgress - DownloadProgressHave - DownloadProgressTotal - DownloadSource - DownloadState - DownloadTime - DownloadTitle + DownloadButtons /* A button group in the :downloads manager */ + DownloadPercent /* The percentage column for a download */ + DownloadProgress /* The progress column for a download */ + DownloadProgressHave /* The completed portion of the progress column */ + DownloadProgressTotal /* The remaining portion of the progress column */ + DownloadSource /* The download source column for a download */ + DownloadState /* The download state column for a download */ + DownloadTime /* The time remaining column for a download */ + DownloadTitle /* The title column for a download */ 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; - AddonHead;;;CompTitle display: table-row; + Addons /* The :addons manager */ \ + display: table; margin: 0; padding: 0; + AddonHead;;;CompTitle /* A heading in the :addons manager */ \ + display: table-row; 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>*;;;AddonCell @@ -626,44 +702,65 @@ var ConfigBase = Class("ConfigBase", { helpCSS: UTF8(<> - 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; - HelpOptionalArg;;;FontCode color: #6A97D4; + HelpArg;;;FontCode /* A required command argument indicator */ \ + 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; - HelpBorder;*;dactyl://help/* border-color: silver; border-width: 0px; border-style: solid; - HelpCode;;;FontCode display: block; white-space: pre; margin-left: 2em; - HelpTT;html|tt;dactyl://help/*;FontCode + HelpBody /* The body of a help page */ \ + display: block; margin: 1em auto; max-width: 100ex; padding-bottom: 1em; margin-bottom: 4em; border-bottom-width: 1px; + HelpBorder;*;dactyl://help/* /* The styling of bordered elements */ \ + 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; - 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; - HelpInfo display: block; width: 20em; margin-left: auto; - HelpInfoLabel display: inline-block; width: 6em; color: magenta; font-weight: bold; vertical-align: text-top; - HelpInfoValue display: inline-block; width: 14em; text-decoration: none; vertical-align: text-top; + HelpInfo /* Arbitrary information about a help item */ \ + display: block; width: 20em; margin-left: auto; + 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; - HelpKeyword font-weight: bold; color: navy; + HelpKey;;;FontCode /* A keyboard key specification */ \ + 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^="mailto:"]::after content: "✉"; padding-left: .2em; HelpLink[rel=external] { + /* A hyperlink to an external resource */ /* Thanks, Wikipedia */ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC) no-repeat scroll right center; padding-right: 13px; @@ -674,65 +771,85 @@ var ConfigBase = Class("ConfigBase", { ErrorMsg HelpOption color: inherit; background: inherit; text-decoration: underline; ErrorMsg HelpTopic color: inherit; background: inherit; text-decoration: underline; - HelpTOC - HelpTOC>ol ol margin-left: -1em; + HelpTOC /* The Table of Contents for a help page */ + HelpTOC>ol ol margin-left: -1em; - HelpOrderedList;ol;dactyl://help/* margin: 1em 0; - HelpOrderedList1;ol[level="1"],ol;dactyl://help/* list-style: outside decimal; display: block; - HelpOrderedList2;ol[level="2"],ol ol;dactyl://help/* list-style: outside upper-alpha; - HelpOrderedList3;ol[level="3"],ol ol ol;dactyl://help/* list-style: outside lower-roman; - HelpOrderedList4;ol[level="4"],ol ol ol ol;dactyl://help/* list-style: outside decimal; + HelpOrderedList;ol;dactyl://help/* /* Any ordered list */ \ + margin: 1em 0; + HelpOrderedList1;ol[level="1"],ol;dactyl://help/* /* A first-level ordered list */ \ + list-style: outside decimal; display: block; + 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; - HelpListItem;html|li;dactyl://help/* display: list-item; + HelpList;html|ul;dactyl://help/* /* An unordered list */ \ + 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; - HelpOptInfo;;;FontCode display: block; margin-bottom: 1ex; padding-left: 4em; + HelpOpt;;;FontCode /* An option name */ \ + 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: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::after content: '"'; HelpString[delim]::before content: attr(delim); HelpString[delim]::after content: attr(delim); - HelpNews position: relative; - HelpNewsOld opacity: .7; - HelpNewsNew font-style: italic; - HelpNewsTag font-style: normal; position: absolute; left: 100%; padding-left: 1em; color: #527BBD; opacity: .6; white-space: pre; + HelpNews /* A news item */ position: relative; + HelpNewsOld /* An old news item */ opacity: .7; + HelpNewsNew /* A new news item */ font-style: italic; + 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/* { + /* Any help heading */ font-weight: bold; color: #527BBD; clear: both; } HelpHead1;html|h1;dactyl://help/* { + /* A first-level help heading */ margin: 2em 0 1em; padding-bottom: .2ex; border-bottom-width: 1px; font-size: 2em; } HelpHead2;html|h2;dactyl://help/* { + /* A second-level help heading */ margin: 2em 0 1em; padding-bottom: .2ex; border-bottom-width: 1px; font-size: 1.2em; } HelpHead3;html|h3;dactyl://help/* { + /* A third-level help heading */ margin: 1em 0; padding-bottom: .2ex; font-size: 1.1em; } HelpHead4;html|h4;dactyl://help/* { + /* A fourth-level help heading */ } HelpTab;html|dl;dactyl://help/* { + /* A description table */ display: table; width: 100%; margin: 1em 0; @@ -743,19 +860,28 @@ var ConfigBase = Class("ConfigBase", { } HelpTabColumn;html|column;dactyl://help/* display: table-column; HelpTabColumn:first-child width: 25%; - HelpTabTitle;html|dt;dactyl://help/*;FontCode display: table-cell; padding: .1ex 1ex; font-weight: bold; - HelpTabDescription;html|dd;dactyl://help/* display: table-cell; padding: .3ex 1em; text-indent: -1em; border-width: 0px; + HelpTabTitle;html|dt;dactyl://help/*;FontCode /* The title column of description tables */ \ + 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; - 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; - HelpTags display: block; float: right; clear: right; - HelpTopic;;;FontCode color: #102663; - HelpType;;;FontCode color: #102663 !important; margin-right: 2ex; + HelpTag;;;FontCode /* A help tag */ \ + display: inline-block; color: #527BBD; margin-left: 1ex; font-weight: normal; + HelpTags /* A group of help tags */ \ + 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; border: 1px dashed #aaaaaa; display: block; diff --git a/common/modules/highlight.jsm b/common/modules/highlight.jsm index cb772bdb..73b6b06a 100644 --- a/common/modules/highlight.jsm +++ b/common/modules/highlight.jsm @@ -278,7 +278,8 @@ var Highlights = Module("Highlight", { * @param {boolean} eager When true, load all provided rules immediately. */ 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)) .forEach(function (highlight) { @@ -349,9 +350,11 @@ var Highlights = Module("Highlight", { ([h.class, XXX, template.map(h.extends, template.highlight), - template.highlightRegexp(h.value, /\b[-\w]+(?=:)/g)] - for (h in highlight) - if (!key || h.class.indexOf(key) > -1)))); + template.highlightRegexp(h.value, /\b[-\w]+(?=:)|\/\*.*?\*\//g, + function (match) {match}) + ] + for (h in highlight) + if (!key || h.class.indexOf(key) > -1)))); else if (!key && clear) highlight.clear(); else if (key) diff --git a/common/modules/styles.jsm b/common/modules/styles.jsm index 2586ac83..f92c2da3 100644 --- a/common/modules/styles.jsm +++ b/common/modules/styles.jsm @@ -368,9 +368,13 @@ var Styles = Module("Styles", { for (let prop in Styles.propertyIter(str)) props[prop.name] = prop.value; - return Object.keys(props)[sort ? "sort" : "slice"]() - .map(function (prop) prop + ": " + props[prop] + ";") - .join(" "); + let val = Object.keys(props)[sort ? "sort" : "slice"]() + .map(function (prop) prop + ": " + props[prop] + ";") + .join(" "); + + if (/^\s*(\/\*.*?\*\/)/.exec(src)) + val = RegExp.$1 + " " + val; + return val; }, completeSite: function (context, content, group) {