Editor colors and syntax highlighting

This help page if for users of Quick Clipboard Editor BETA release v2.9.6.n. This page is a work in progress and will be completed beforr the release of QCE v3.

The colors of the Quick Clipboard Editor window can be set in two ways depending on the status of the syntax highlighting (Syntax highlighting can be enabled or disabled in the Options, Editor Window dialog box under the Various section).

  1. Syntax highlighting disabled: colors are set in the Options, Fonts and colors dialog box .
  2. Syntax highlighting enabled: colors are set ny the Scintilla lexer using the themes XML files.

In both ways, the colors can be set for two themes: Light or Dark. You can select the light or dark themes in Options, Editor Window. If you choose the third option Follow Windows, the colors are set accordingly to the Windows Settings applications theme in Personalization, Colors.

Options, Fonts and colors dialog box

When Syntax highlighting is disabled, the colors of the editor and line numbers are set for the Light and Dark themes using various color pickers in the Options, Fonts and colors dialog box.

Themes XML files

When Syntax highlighting is enabled, colors can be controlled in a much higher granularity using XML files:

  • Themes.xml: in the folder Themes\Default\... in QCE settings folder (Options, Open Settings folder).
  • Syntax XML files: in the same folder, XML files are named according to language names, for example Autohotkey.xml, C++.xml, HTML.xml, etc.

Note 1: I am far from being an expert in Scintilla syntax. I’ll try here to introduce the various settings found in these files. But do not hesitate to comment or suggest improvements on the QCE forum or by contacting me at suppport@quickaccesspopup.com.

Note-2: These XML files are based on hard work by Alguimist (Gilberto Barbosa Babiretzki) for the open source project Adventure IDE. Thank you Gilberto! Some values in these files are not yet implemented in QCE but could be in the future.

Customizing the XML files

XML files located in the folder Themes\Default are overwritten when Quick Clipboard Editor is updated. Users can save their own custom copy of the XML files under the Themes\Custom folder; if they exist, XML files located in the Custom folder are read in priority over those in the Default folder.

To preserve your custom syntax highlighting:

  1. Before editing a syntax XML file, copy it from the Quick Clipboard Editor\Themes\Default folder to the Quick Clipboard Editor\Themes\Custom .
  2. Edit your custom syntax XML file and save it in the Custom folder.

CALL FOR CONTRIBUTIONS: Users are invited to share their new or improved custom XML files with other users on the QCE forum or by contacting at suppport@quickaccesspopup.com.

Light and Dark main themes file

The Themes.xml file contains colors used regardless of the language selected in the Syntax highlighting dropdown list in the QCE tool bar ( including the option “No highlighting “). It contains two sections for the Light and Dark themes. In each section, the default attributes fc= and bc= set the default colors of the editor foreground (text) and background. Colors are specified in hexadecimal format (from 0x000000 to 0xFFFFFF) following the RGB (red-green-blue) color model. Other values supported at the time of writing this page are: selection (selected text), numbersmargin, caret (cursor), activeline and indentguide. Other values and attributes could be supported in future versions.

<?xml version="1.0" encoding="UTF-8"?>
<themes>
    <theme name="Light" specifics="Default">
        <default fc="0x000000" bc="0xF8F8F8" />
        <selection fc="0xFFFFFF" bc="0x3399FF" a="256" />
        <numbersmargin fc="0x202020" bc="0xE8E4E0" />
        <symbolmargin bc="0xE8E4E0" />
        <divider bc="0x000000" w="1" />
        <foldmargin dlc="0x008EBC" bbc="0xFAFAFA" mbc="0xFAFAFA" />
        <caret fc="0x000000" />
        <activeline bc="0xFFFFFF" />
        <bracematch fc="0x3399FF" bc="" b="1" i="0" />
        <markers t="7" c="0x3FBBE3" a="80" oa="255" />
        <highlights t="8" c="0x3FBBE3" a="80" oa="80" />
        <calltip fc="" bc="0xFFFFDD" />
        <indentguide fc="0xF8F8F8" bc="0x20D010" />
        <whitespace fc="0x008EBC" bc="0xF8F8F8" />
    </theme>
    <theme name="Dark" specifics="Default">
	<default fc="0xFFFFFF" bc="0x121212" />
        <selection fc="0x000000" bc="0xCC6600" a="256" />
        <numbersmargin fc="0xDFDFDF" bc="0x070707" />
        <symbolmargin bc="0x171B1F" />
        <divider bc="0xFFFFFF" w="1" />
        <foldmargin dlc="0x008EBC" bbc="0x050505" mbc="0x050505" />
        <caret fc="0xFFFFFF" />
        <activeline bc="0x000000" />
        <bracematch fc="0xCC6600" bc="" b="1" i="0" />
        <markers t="7" c="0x3FBBE3" a="80" oa="255" />
        <highlights t="8" c="0x3FBBE3" a="80" oa="80" />
        <calltip fc="" bc="0x000022" />
        <indentguide fc="0x121212" bc="0xDF2FEF" />
        <whitespace fc="0xFF7143" bc="0x070707" />
	</theme>
</themes>

Language syntax

Example of XML file structure (Batch.xml):

(to be completed)

<scheme const="BAT">
    <theme name="Light">
        <style name="Default" v="0" fc="0x000000" bc="" b="0" i="0" />
        <style name="Comment" v="1" fc="0x767676" bc="" b="0" i="1" />
        <style name="Word" v="2" fc="0x183691" bc="" b="0" i="0" />
        <style name="Label" v="3" fc="0x0000DD" bc="" b="0" i="0" u="1" />
        <style name="Hide" v="4" fc="0x4070F0" bc="" b="0" i="0" />
        <style name="Command" v="5" fc="0x1F609F" bc="" b="0" i="0" />
        <style name="Identifier" v="6" fc="0x759C12" bc="" b="0" i="0" />
        <style name="Operator" v="7" fc="0x880088" bc="" b="0" i="0" />
    </theme>
    <theme name="Dark">
        <style name="Default" v="0" fc="0xFFFFFF" bc="" b="0" i="0" />
        <style name="Comment" v="1" fc="0x898989" bc="" b="0" i="1" />
        <style name="Word" v="2" fc="0xE7C96E" bc="" b="0" i="0" />
        <style name="Label" v="3" fc="0xFFFF22" bc="" b="0" i="0" u="1" />
        <style name="Hide" v="4" fc="0xBF8F0F" bc="" b="0" i="0" />
        <style name="Command" v="5" fc="0xE09F60" bc="" b="0" i="0" />
        <style name="Identifier" v="6" fc="0x8A63ED" bc="" b="0" i="0" />
        <style name="Operator" v="7" fc="0x77FF77" bc="" b="0" i="0" />
    </theme>
    <keywords>
        <language id="BAT">
            <group id="0" name="Internal Commands" keywords="assoc aux break call cd chdir cls cmdextversion color com com1 com2 com3 com4 con copy country ctty date defined del dir do dpath echo else endlocal erase errorlevel exist exit for ftype goto if in loadfix loadhigh lpt lpt1 lpt2 lpt3 lpt4 md mkdir mklink move not nul path pause popd prn prompt pushd rd rem ren rename rmdir set setlocal shift start time title type ver verify vol" />
            <group id="1" name="External Commands" keywords="arp at attrib bcdedit cacls certreq chcp chkdsk chkntfs choice cipher clip cmd comp compact convert cscript debug diskcomp diskcopy diskpart doskey driverquery eventcreate expand fc find findstr forfiles format fsutil ftp gpresult graftabl help icacls ipconfig label logman makecab mode mofcomp more mountvol net netsh netstat nslookup openfiles ping powercfg powershell recover reg replace robocopy route runas rundll32 sc schtasks setx sfc shutdown sort subst systeminfo takeown taskkill tasklist timeout tracert tree tzutil wevutil where whoami wmic xcopy" />
        </language>
    </keywords>
</scheme>

Each style can include various attributes:

 <style name="Default" v="0" fc="0x000000" bc="" b="0" i="0" />
  • name=”Default”: colors for main foreground (text) and background
  • v=”0″: value used by the lexer
  • fc=”0x000000″: foreground color
  • bc=””: background color (empty)
  • b=”0″: set to “1” for bold
  • i=”0″: set to “1” for italic

(to be completed)

Keywords

Language XML files can contain up to 9 lists of keywords for use by the current lexer. Groups (keyWordSet) can be 0 to 8. A group is a list of keywords separated by spaces, tabs, “\n” or “\r” or any combination of these. How these keywords are used is entirely up to the lexer.

(to be completed)