Skip to content

Commit

Permalink
Switch to CodeMirror for syntax highlighting in preparation of xPathr…
Browse files Browse the repository at this point in the history
…'s code editor

Closing #10
  • Loading branch information
nilshoerrmann committed Dec 15, 2012
1 parent 78ab680 commit d140eb7
Show file tree
Hide file tree
Showing 8 changed files with 331 additions and 184 deletions.
241 changes: 241 additions & 0 deletions css/codemirror.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
/* Codemirror 3.0, Copyright (C) 2012 by Marijn Haverbeke <marijnh@gmail.com>, MIT license: https://github.com/marijnh/CodeMirror/blob/master/LICENSE */

/* BASICS */

.CodeMirror {
/* Set height, width, borders, and global font properties here */
font-family: monospace;
height: 300px;
}
.CodeMirror-scroll {
/* Set scrolling behaviour here */
overflow: auto;
}

/* PADDING */

.CodeMirror-lines {
padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre {
padding: 0 4px; /* Horizontal padding of content */
}

.CodeMirror-scrollbar-filler {
background-color: white; /* The little square between H and V scrollbars */
}

/* GUTTER */

.CodeMirror-gutters {
border-right: 1px solid #ddd;
background-color: #f7f7f7;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
padding: 0 3px 0 5px;
min-width: 20px;
text-align: right;
color: #999;
}

/* CURSOR */

.CodeMirror pre.CodeMirror-cursor {
border-left: 1px solid black;
}
/* Shown when moving in bi-directional text */
.CodeMirror pre.CodeMirror-secondarycursor {
border-left: 1px solid silver;
}
.cm-keymap-fat-cursor pre.CodeMirror-cursor {
width: auto;
border: 0;
background: transparent;
background: rgba(0, 200, 0, .4);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800);
}
/* Kludge to turn off filter in ie9+, which also accepts rgba */
.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) {
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}

/* DEFAULT THEME */

.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable {color: black;}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3 {color: #085;}
.cm-s-default .cm-property {color: black;}
.cm-s-default .cm-operator {color: black;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-error {color: #f00;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}

.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-emstrong {font-style: italic; font-weight: bold;}
.cm-link {text-decoration: underline;}

.cm-invalidchar {color: #f00;}

div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}

/* STOP */

/* The rest of this file contains styles related to the mechanics of
the editor. You probably shouldn't touch them. */

.CodeMirror {
line-height: 1;
position: relative;
overflow: hidden;
}

.CodeMirror-scroll {
/* 30px is the magic margin used to hide the element's real scrollbars */
/* See overflow: hidden in .CodeMirror, and the paddings in .CodeMirror-sizer */
margin-bottom: -30px; margin-right: -30px;
padding-bottom: 30px; padding-right: 30px;
height: 100%;
outline: none; /* Prevent dragging from highlighting the element */
position: relative;
}
.CodeMirror-sizer {
position: relative;
}

/* The fake, visible scrollbars. Used to force redraw during scrolling
before actuall scrolling happens, thus preventing shaking and
flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler {
position: absolute;
z-index: 6;
display: none;
}
.CodeMirror-vscrollbar {
right: 0; top: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.CodeMirror-hscrollbar {
bottom: 0; left: 0;
overflow-y: hidden;
overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
right: 0; bottom: 0;
z-index: 6;
}

.CodeMirror-gutters {
position: absolute; left: 0; top: 0;
height: 100%;
z-index: 3;
}
.CodeMirror-gutter {
height: 100%;
display: inline-block;
/* Hack to make IE7 behave */
*zoom:1;
*display:inline;
}
.CodeMirror-gutter-elt {
position: absolute;
cursor: default;
z-index: 4;
}

.CodeMirror-lines {
cursor: text;
}
.CodeMirror pre {
/* Reset some styles that the rest of the page might have set */
-moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; border-radius: 0;
border-width: 0;
background: transparent;
font-family: inherit;
font-size: inherit;
margin: 0;
white-space: pre;
word-wrap: normal;
line-height: inherit;
color: inherit;
z-index: 2;
position: relative;
overflow: visible;
}
.CodeMirror-wrap pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal;
}
.CodeMirror-linebackground {
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
z-index: 0;
}

.CodeMirror-linewidget {
position: relative;
z-index: 2;
}

.CodeMirror-wrap .CodeMirror-scroll {
overflow-x: hidden;
}

.CodeMirror-measure {
position: absolute;
width: 100%; height: 0px;
overflow: hidden;
visibility: hidden;
}
.CodeMirror-measure pre { position: static; }

.CodeMirror pre.CodeMirror-cursor {
position: absolute;
visibility: hidden;
border-right: none;
width: 0;
}
.CodeMirror-focused pre.CodeMirror-cursor {
visibility: visible;
}

.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }

.CodeMirror-searching {
background: #ffa;
background: rgba(255, 255, 0, .4);
}

/* IE7 hack to prevent it from returning funny offsetTops on the spans */
.CodeMirror span { *vertical-align: text-bottom; }

@media print {
/* Hide the cursor when printing */
.CodeMirror pre.CodeMirror-cursor {
visibility: hidden;
}
}
79 changes: 66 additions & 13 deletions css/factory.css
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,6 @@ img {
display: block;
}

code,
var {
font: 1.3rem/2.4rem Monaco, Consolas, 'Andale Mono', monospace;
}

table {
border-collapse: collapse;
border-spacing: 0;
Expand Down Expand Up @@ -508,14 +503,72 @@ ul li > ul {
/*-----------------------------------------------------------------------------
Code:
Syntax highlighting class will override the default Prism definitions.
Thus the Prism styles should be included first.
Syntax highlighting class will override the default Codemirror definitions.
Thus the CodeMirror styles have to be included first.
-----------------------------------------------------------------------------*/

pre {
overflow: auto;
background: #F5F5F5;
margin: 1.6rem -10px 1.4rem;
padding: 1.2rem 10px;
font: 1.2rem/2.4rem Monaco, Consolas, 'Andale Mono', monospace;
}

code,
var {
font: 1.2rem/2.4rem Monaco, Consolas, 'Andale Mono', monospace;
padding: 0.2rem 0.4rem;
background: #f5f5f5;
border-radius: 2px;
}

pre code {
padding: 0;
/* font-size: 1.2rem;*/
border-radius: none;
}

/* CodeMirror */

.cm-s-symphony .cm-keyword {color: #708;}
.cm-s-symphony .cm-atom {color: #219;}
.cm-s-symphony .cm-number {color: #164;}
.cm-s-symphony .cm-def {color: #00f;}
.cm-s-symphony .cm-variable {color: black;}
.cm-s-symphony .cm-variable-2 {color: #05a;}
.cm-s-symphony .cm-variable-3 {color: #085;}
.cm-s-symphony .cm-property {color: black;}
.cm-s-symphony .cm-operator {color: black;}
.cm-s-symphony .cm-comment {color: #a6a6a6;}
.cm-s-symphony .cm-string {color: #0080a0;}
.cm-s-symphony .cm-string-2 {color: #f50;}
.cm-s-symphony .cm-meta {color: #555;}
.cm-s-symphony .cm-error {color: #f00;}
.cm-s-symphony .cm-qualifier {color: #555;}
.cm-s-symphony .cm-builtin {color: #30a;}
.cm-s-symphony .cm-bracket {color: #997;}
.cm-s-symphony .cm-tag {color: #A00947;}
.cm-s-symphony .cm-attribute {color: #737373;}
.cm-s-symphony .cm-header {color: blue;}
.cm-s-symphony .cm-quote {color: #090;}
.cm-s-symphony .cm-hr {color: #999;}
.cm-s-symphony .cm-link {color: #00c;}

.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-emstrong {font-style: italic; font-weight: bold;}
.cm-link {text-decoration: underline;}

.cm-invalidchar {color: #f00;}

div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}

/*
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
Expand All @@ -534,11 +587,11 @@ var {
pre[data-line] {
padding: 1em 0 1em 20px;
}
}*/

/* Tokens */

.token.comment,
/*.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
Expand All @@ -562,11 +615,11 @@ pre[data-line] {
.token.attr-value,
.token.keyword {
color: #0080a0;
}
}*/

/* Line highlighting */

.line-highlight {
/*.line-highlight {
background: rgba(0, 0, 0, 0.03);
}
Expand All @@ -582,7 +635,7 @@ pre[data-line] {
border-radius: 0;
text-shadow: none;
box-shadow: none;
}
}*/

/*-----------------------------------------------------------------------------
Media:
Expand All @@ -591,7 +644,7 @@ pre[data-line] {
-----------------------------------------------------------------------------*/

[class^=content-media] {
margin-bottom: 2.4rem;
margin: 0 -10px 2.4rem;
position: relative;
}

Expand Down
Loading

0 comments on commit d140eb7

Please sign in to comment.