Version Description
- fixed bug: github updater in production issue #52
- updated Codemirror to latest release version
Download this release
Release Info
Developer | arniebradfo |
Plugin | HTML Editor Syntax Highlighter |
Version | 2.2.2 |
Comparing to | |
See all releases |
Code changes from version 2.2.1 to 2.2.2
- dist/hesh.css +25 -29
- dist/hesh.js +1311 -914
- dist/hesh.min.css +1 -1
- dist/hesh.min.js +7 -13
dist/hesh.css
CHANGED
@@ -10,6 +10,7 @@
|
|
10 |
font-family: monospace;
|
11 |
height: 300px;
|
12 |
color: black;
|
|
|
13 |
}/* PADDING */.CodeMirror-lines {
|
14 |
padding: 4px 0;
|
15 |
/* Vertical padding around content */;
|
@@ -137,7 +138,7 @@
|
|
137 |
color: #05a;
|
138 |
}
|
139 |
|
140 |
-
.cm-s-default .cm-variable-3 {
|
141 |
color: #085;
|
142 |
}
|
143 |
|
@@ -408,8 +409,8 @@ background: #d7d4f0;
|
|
408 |
}
|
409 |
|
410 |
.cm-searching {
|
411 |
-
background: #ffa;
|
412 |
-
background: rgba(255, 255, 0, 0.4);
|
413 |
}/* Used to force a border model for a node */.cm-force-border {
|
414 |
padding-right: .1px;
|
415 |
}/* See issue #2901 */.cm-tab-wrap-hack:after {
|
@@ -709,7 +710,7 @@ color: #abcdef;
|
|
709 |
color: #cacbcc;
|
710 |
}
|
711 |
|
712 |
-
.cm-s-abcdef span.cm-variable-3 {
|
713 |
color: #def;
|
714 |
}
|
715 |
|
@@ -805,7 +806,7 @@ color: #ffb795;
|
|
805 |
color: #eed1b3;
|
806 |
}
|
807 |
|
808 |
-
.cm-s-ambiance .cm-variable-3 {
|
809 |
color: #faded3;
|
810 |
}
|
811 |
|
@@ -1243,19 +1244,19 @@ color: white !important;
|
|
1243 |
|
1244 |
.cm-s-bespin .CodeMirror-activeline-background {
|
1245 |
background: #404040;
|
1246 |
-
}/* Port of TextMate's Blackboard theme */.cm-s-blackboard.CodeMirror {background: #0C1021;color: #F8F8F8;}.cm-s-blackboard div.CodeMirror-selected {background: #253B76;}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line > span::selection,.cm-s-blackboard .CodeMirror-line > span > span::selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-gutters {background: #0C1021;border-right: 0;}.cm-s-blackboard .CodeMirror-guttermarker {color: #FBDE2D;}.cm-s-blackboard .CodeMirror-guttermarker-subtle {color: #888;}.cm-s-blackboard .CodeMirror-linenumber {color: #888;}.cm-s-blackboard .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-blackboard .cm-keyword {color: #FBDE2D;}.cm-s-blackboard .cm-atom {color: #D8FA3C;}.cm-s-blackboard .cm-number {color: #D8FA3C;}.cm-s-blackboard .cm-def {color: #8DA6CE;}.cm-s-blackboard .cm-variable {color: #FF6400;}.cm-s-blackboard .cm-operator {color: #FBDE2D;}.cm-s-blackboard .cm-comment {color: #AEAEAE;}.cm-s-blackboard .cm-string {color: #61CE3C;}.cm-s-blackboard .cm-string-2 {color: #61CE3C;}.cm-s-blackboard .cm-meta {color: #D8FA3C;}.cm-s-blackboard .cm-builtin {color: #8DA6CE;}.cm-s-blackboard .cm-tag {color: #8DA6CE;}.cm-s-blackboard .cm-attribute {color: #8DA6CE;}.cm-s-blackboard .cm-header {color: #FF6400;}.cm-s-blackboard .cm-hr {color: #AEAEAE;}.cm-s-blackboard .cm-link {color: #8DA6CE;}.cm-s-blackboard .cm-error {background: #9D1E15;color: #F8F8F8;}.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636;}.cm-s-blackboard .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-cobalt.CodeMirror {background: #002240;color: white;}.cm-s-cobalt div.CodeMirror-selected {background: #b36539;}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line > span::selection,.cm-s-cobalt .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-cobalt .CodeMirror-guttermarker {color: #ffee80;}.cm-s-cobalt .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-cobalt span.cm-comment {color: #08f;}.cm-s-cobalt span.cm-atom {color: #845dc4;}.cm-s-cobalt span.cm-number,.cm-s-cobalt span.cm-attribute {color: #ff80e1;}.cm-s-cobalt span.cm-keyword {color: #ffee80;}.cm-s-cobalt span.cm-string {color: #3ad900;}.cm-s-cobalt span.cm-meta {color: #ff9d00;}.cm-s-cobalt span.cm-variable-2,.cm-s-cobalt span.cm-tag {color: #9effff;}.cm-s-cobalt span.cm-variable-3,.cm-s-cobalt span.cm-def {color: white;}.cm-s-cobalt span.cm-bracket {color: #d8d8d8;}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special {color: #ff9e59;}.cm-s-cobalt span.cm-link {color: #845dc4;}.cm-s-cobalt span.cm-error {color: #9d1e15;}.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57;}.cm-s-cobalt .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-colorforth.CodeMirror {background: #000000;color: #f8f8f8;}.cm-s-colorforth .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-colorforth .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-colorforth .CodeMirror-guttermarker-subtle {color: #78846f;}.cm-s-colorforth .CodeMirror-linenumber {color: #bababa;}.cm-s-colorforth .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-colorforth span.cm-comment {color: #ededed;}.cm-s-colorforth span.cm-def {color: #ff1c1c;font-weight: bold;}.cm-s-colorforth span.cm-keyword {color: #ffd900;}.cm-s-colorforth span.cm-builtin {color: #00d95a;}.cm-s-colorforth span.cm-variable {color: #73ff00;}.cm-s-colorforth span.cm-string {color: #007bff;}.cm-s-colorforth span.cm-number {color: #00c4ff;}.cm-s-colorforth span.cm-atom {color: #606060;}.cm-s-colorforth span.cm-variable-2 {color: #EEE;}.cm-s-colorforth span.cm-variable-3 {color: #DDD;}.cm-s-colorforth span.cm-meta {color: yellow;}.cm-s-colorforth span.cm-qualifier {color: #FFF700;}.cm-s-colorforth span.cm-bracket {color: #cc7;}.cm-s-colorforth span.cm-tag {color: #FFBD40;}.cm-s-colorforth span.cm-attribute {color: #FFF700;}.cm-s-colorforth span.cm-error {color: #f00;}.cm-s-colorforth div.CodeMirror-selected {background: #333d53;}.cm-s-colorforth span.cm-compilation {background: rgba(255, 255, 255, 0.12);}.cm-s-colorforth .CodeMirror-activeline-background {background: #253540;}/*
|
1247 |
|
1248 |
Name: dracula
|
1249 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1250 |
|
1251 |
Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
|
1252 |
|
1253 |
-
*/.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters {background-color: #282a36 !important;color: #f8f8f2 !important;border: none;}.cm-s-dracula .CodeMirror-gutters {color: #282a36;}.cm-s-dracula .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-dracula .CodeMirror-linenumber {color: #6D8A88;}.cm-s-dracula .CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line > span::selection,.cm-s-dracula .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula span.cm-comment {color: #6272a4;}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2 {color: #f1fa8c;}.cm-s-dracula span.cm-number {color: #bd93f9;}.cm-s-dracula span.cm-variable {color: #50fa7b;}.cm-s-dracula span.cm-variable-2 {color: white;}.cm-s-dracula span.cm-def {color: #50fa7b;}.cm-s-dracula span.cm-operator {color: #ff79c6;}.cm-s-dracula span.cm-keyword {color: #ff79c6;}.cm-s-dracula span.cm-atom {color: #bd93f9;}.cm-s-dracula span.cm-meta {color: #f8f8f2;}.cm-s-dracula span.cm-tag {color: #ff79c6;}.cm-s-dracula span.cm-attribute {color: #50fa7b;}.cm-s-dracula span.cm-qualifier {color: #50fa7b;}.cm-s-dracula span.cm-property {color: #66d9ef;}.cm-s-dracula span.cm-builtin {color: #50fa7b;}.cm-s-dracula span.cm-variable-3 {color: #ffb86c;}.cm-s-dracula .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
|
1254 |
Name: DuoTone-Dark
|
1255 |
Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
|
1256 |
|
1257 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
|
1258 |
-
*/.cm-s-duotone-dark.CodeMirror {background: #2a2734;color: #6c6783;}.cm-s-duotone-dark div.CodeMirror-selected {background: #545167!important;}.cm-s-duotone-dark .CodeMirror-gutters {background: #2a2734;border-right: 0px;}.cm-s-duotone-dark .CodeMirror-linenumber {color: #545167;}/* begin cursor */.cm-s-duotone-dark .CodeMirror-cursor {border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: .5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: .5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: .5;}/* end cursor */.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-variable,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-link {color: #ffcc99;}.cm-s-duotone-dark span.cm-property {color: #9a86fd;}.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit,.cm-s-duotone-dark span.cm-negative {color: #e09142;}.cm-s-duotone-dark span.cm-string {color: #ffb870;}.cm-s-duotone-dark span.cm-operator {color: #ffad5c;}.cm-s-duotone-dark span.cm-positive {color: #6a51e6;}.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3,.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url {color: #7a63ee;}.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-tag,.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-em {color: #eeebff;}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment {color: #6c6783;}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar {
|
1259 |
color: #f00;
|
1260 |
}
|
1261 |
|
@@ -1325,7 +1326,7 @@ color: #1659df;
|
|
1325 |
color: #896724;
|
1326 |
}
|
1327 |
|
1328 |
-
.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-url {
|
1329 |
color: #896724;
|
1330 |
}
|
1331 |
|
@@ -1335,7 +1336,7 @@ color: #2d2006;
|
|
1335 |
|
1336 |
.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment {
|
1337 |
color: #b6ad9a;
|
1338 |
-
}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... *//* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar {color: #f00;}.cm-s-duotone-light span.cm-header {font-weight: normal;}.cm-s-duotone-light .CodeMirror-matchingbracket {text-decoration: underline;color: #faf8f5 !important;}.cm-s-eclipse span.cm-meta {color: #FF1717;}.cm-s-eclipse span.cm-keyword {line-height: 1em;font-weight: bold;color: #7F0055;}.cm-s-eclipse span.cm-atom {color: #219;}.cm-s-eclipse span.cm-number {color: #164;}.cm-s-eclipse span.cm-def {color: #00f;}.cm-s-eclipse span.cm-variable {color: black;}.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}.cm-s-eclipse span.cm-property {color: black;}.cm-s-eclipse span.cm-operator {color: black;}.cm-s-eclipse span.cm-comment {color: #3F7F5F;}.cm-s-eclipse span.cm-string {color: #2A00FF;}.cm-s-eclipse span.cm-string-2 {color: #f50;}.cm-s-eclipse span.cm-qualifier {color: #555;}.cm-s-eclipse span.cm-builtin {color: #30a;}.cm-s-eclipse span.cm-bracket {color: #cc7;}.cm-s-eclipse span.cm-tag {color: #170;}.cm-s-eclipse span.cm-attribute {color: #00c;}.cm-s-eclipse span.cm-link {color: #219;}.cm-s-eclipse span.cm-error {color: #f00;}.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-eclipse .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string,.cm-s-elegant span.cm-atom {color: #762;}.cm-s-elegant span.cm-comment {color: #262;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-meta {color: #555;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-variable {color: black;}.cm-s-elegant span.cm-variable-2 {color: #b11;}.cm-s-elegant span.cm-qualifier {color: #555;}.cm-s-elegant span.cm-keyword {color: #730;}.cm-s-elegant span.cm-builtin {color: #30a;}.cm-s-elegant span.cm-link {color: #762;}.cm-s-elegant span.cm-error {background-color: #fdd;}.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-elegant .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-erlang-dark.CodeMirror {background: #002240;color: white;}.cm-s-erlang-dark div.CodeMirror-selected {background: #b36539;}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line > span::selection,.cm-s-erlang-dark .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-erlang-dark .CodeMirror-guttermarker {color: white;}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-erlang-dark span.cm-quote {color: #ccc;}.cm-s-erlang-dark span.cm-atom {color: #f133f1;}.cm-s-erlang-dark span.cm-attribute {color: #ff80e1;}.cm-s-erlang-dark span.cm-bracket {color: #ff9d00;}.cm-s-erlang-dark span.cm-builtin {color: #eaa;}.cm-s-erlang-dark span.cm-comment {color: #77f;}.cm-s-erlang-dark span.cm-def {color: #e7a;}.cm-s-erlang-dark span.cm-keyword {color: #ffee80;}.cm-s-erlang-dark span.cm-meta {color: #50fefe;}.cm-s-erlang-dark span.cm-number {color: #ffd0d0;}.cm-s-erlang-dark span.cm-operator {color: #d55;}.cm-s-erlang-dark span.cm-property {color: #ccc;}.cm-s-erlang-dark span.cm-qualifier {color: #ccc;}.cm-s-erlang-dark span.cm-special {color: #ffbbbb;}.cm-s-erlang-dark span.cm-string {color: #3ad900;}.cm-s-erlang-dark span.cm-string-2 {color: #ccc;}.cm-s-erlang-dark span.cm-tag {color: #9effff;}.cm-s-erlang-dark span.cm-variable {color: #50fe50;}.cm-s-erlang-dark span.cm-variable-2 {color: #e0e;}.cm-s-erlang-dark span.cm-variable-3 {color: #ccc;}.cm-s-erlang-dark span.cm-error {color: #9d1e15;}.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461;}.cm-s-erlang-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1339 |
|
1340 |
Name: Hopscotch
|
1341 |
Author: Jan T. Sott
|
@@ -1345,7 +1346,7 @@ color: #b6ad9a;
|
|
1345 |
|
1346 |
*/.cm-s-hopscotch.CodeMirror {background: #322931;color: #d5d3d5;}.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}.cm-s-hopscotch .CodeMirror-gutters {background: #322931;border-right: 0px;}.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}.cm-s-hopscotch span.cm-comment {color: #b33508;}.cm-s-hopscotch span.cm-atom {color: #c85e7c;}.cm-s-hopscotch span.cm-number {color: #c85e7c;}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute {color: #8fc13e;}.cm-s-hopscotch span.cm-keyword {color: #dd464c;}.cm-s-hopscotch span.cm-string {color: #fdcc59;}.cm-s-hopscotch span.cm-variable {color: #8fc13e;}.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}.cm-s-hopscotch span.cm-def {color: #fd8b19;}.cm-s-hopscotch span.cm-error {background: #dd464c;color: #989498;}.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}.cm-s-hopscotch span.cm-tag {color: #dd464c;}.cm-s-hopscotch span.cm-link {color: #c85e7c;}.cm-s-hopscotch .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-hopscotch .CodeMirror-activeline-background {background: #302020;}/*
|
1347 |
ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
|
1348 |
-
*/.cm-s-icecoder {color: #666;background: #1d1d1b;}.cm-s-icecoder span.cm-keyword {color: #eee;font-weight: bold;}/* off-white 1 */.cm-s-icecoder span.cm-atom {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-number {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-def {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-variable {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-variable-2 {color: #cc1e5c;}/* pink */.cm-s-icecoder span.cm-variable-3 {color: #f9602c;}/* orange */.cm-s-icecoder span.cm-property {color: #eee;}/* off-white 1 */.cm-s-icecoder span.cm-operator {color: #9179bb;}/* purple */.cm-s-icecoder span.cm-comment {color: #97a3aa;}/* grey-blue */.cm-s-icecoder span.cm-string {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-string-2 {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-meta {color: #555;}/* grey */.cm-s-icecoder span.cm-qualifier {color: #555;}/* grey */.cm-s-icecoder span.cm-builtin {color: #214e7b;}/* bright blue */.cm-s-icecoder span.cm-bracket {color: #cc7;}/* grey-yellow */.cm-s-icecoder span.cm-tag {color: #e8e8e8;}/* off-white 2 */.cm-s-icecoder span.cm-attribute {color: #099;}/* teal */.cm-s-icecoder span.cm-header {color: #6a0d6a;}/* purple-pink */.cm-s-icecoder span.cm-quote {color: #186718;}/* dark green */.cm-s-icecoder span.cm-hr {color: #888;}/* mid-grey */.cm-s-icecoder span.cm-link {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-error {color: #d00;}/* red */.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-icecoder div.CodeMirror-selected {color: #fff;background: #037;}.cm-s-icecoder .CodeMirror-gutters {background: #1d1d1b;min-width: 41px;border-right: 0;}.cm-s-icecoder .CodeMirror-linenumber {color: #555;cursor: default;}.cm-s-icecoder .CodeMirror-matchingbracket {color: #fff !important;background: #555 !important;}.cm-s-icecoder .CodeMirror-activeline-background {background: #000;}/*
|
1349 |
|
1350 |
Name: Isotope
|
1351 |
Author: David Desandro / Jan T. Sott
|
@@ -1356,14 +1357,14 @@ ICEcoder default theme by Matt Pass, used in code editor available at https://ic
|
|
1356 |
*/.cm-s-isotope.CodeMirror {background: #000000;color: #e0e0e0;}.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}.cm-s-isotope .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-isotope .CodeMirror-linenumber {color: #808080;}.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}.cm-s-isotope span.cm-comment {color: #3300ff;}.cm-s-isotope span.cm-atom {color: #cc00ff;}.cm-s-isotope span.cm-number {color: #cc00ff;}.cm-s-isotope span.cm-property,.cm-s-isotope span.cm-attribute {color: #33ff00;}.cm-s-isotope span.cm-keyword {color: #ff0000;}.cm-s-isotope span.cm-string {color: #ff0099;}.cm-s-isotope span.cm-variable {color: #33ff00;}.cm-s-isotope span.cm-variable-2 {color: #0066ff;}.cm-s-isotope span.cm-def {color: #ff9900;}.cm-s-isotope span.cm-error {background: #ff0000;color: #c0c0c0;}.cm-s-isotope span.cm-bracket {color: #e0e0e0;}.cm-s-isotope span.cm-tag {color: #ff0000;}.cm-s-isotope span.cm-link {color: #cc00ff;}.cm-s-isotope .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-isotope .CodeMirror-activeline-background {background: #202020;}/*
|
1357 |
http://lesscss.org/ dark theme
|
1358 |
Ported to CodeMirror by Peter Kroon
|
1359 |
-
*/.cm-s-lesser-dark {line-height: 1.3em;}.cm-s-lesser-dark.CodeMirror {background: #262626;color: #EBEFE7;text-shadow: 0 -1px 1px #262626;}.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B;}/* 33322B*/.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line > span::selection,.cm-s-lesser-dark .CodeMirror-line > span > span::selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-lesser-dark pre {padding: 0 8px;}/*editable code holder*/.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket {color: #7EFC7E;}/*65FC65*/.cm-s-lesser-dark .CodeMirror-gutters {background: #262626;border-right: 1px solid #aaa;}.cm-s-lesser-dark .CodeMirror-guttermarker {color: #599eff;}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-lesser-dark .CodeMirror-linenumber {color: #777;}.cm-s-lesser-dark span.cm-header {color: #a0a;}.cm-s-lesser-dark span.cm-quote {color: #090;}.cm-s-lesser-dark span.cm-keyword {color: #599eff;}.cm-s-lesser-dark span.cm-atom {color: #C2B470;}.cm-s-lesser-dark span.cm-number {color: #B35E4D;}.cm-s-lesser-dark span.cm-def {color: white;}.cm-s-lesser-dark span.cm-variable {color: #D9BF8C;}.cm-s-lesser-dark span.cm-variable-2 {color: #669199;}.cm-s-lesser-dark span.cm-variable-3 {color: white;}.cm-s-lesser-dark span.cm-property {color: #92A75C;}.cm-s-lesser-dark span.cm-operator {color: #92A75C;}.cm-s-lesser-dark span.cm-comment {color: #666;}.cm-s-lesser-dark span.cm-string {color: #BCD279;}.cm-s-lesser-dark span.cm-string-2 {color: #f50;}.cm-s-lesser-dark span.cm-meta {color: #738C73;}.cm-s-lesser-dark span.cm-qualifier {color: #555;}.cm-s-lesser-dark span.cm-builtin {color: #ff9e59;}.cm-s-lesser-dark span.cm-bracket {color: #EBEFE7;}.cm-s-lesser-dark span.cm-tag {color: #669199;}.cm-s-lesser-dark span.cm-attribute {color: #00c;}.cm-s-lesser-dark span.cm-hr {color: #999;}.cm-s-lesser-dark span.cm-link {color: #00c;}.cm-s-lesser-dark span.cm-error {color: #9d1e15;}.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A;}.cm-s-lesser-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-liquibyte.CodeMirror {background-color: #000;color: #fff;line-height: 1.2em;font-size: 1em;}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {text-decoration: underline;-webkit-text-decoration-color: #0f0;text-decoration-color: #0f0;-webkit-text-decoration-style: wavy;text-decoration-style: wavy;}.cm-s-liquibyte .cm-trailingspace {text-decoration: line-through;-webkit-text-decoration-color: #f00;text-decoration-color: #f00;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .cm-tab {text-decoration: line-through;-webkit-text-decoration-color: #404040;text-decoration-color: #404040;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .CodeMirror-gutters {background-color: #262626;border-right: 1px solid #505050;padding-right: 0.8em;}.cm-s-liquibyte .CodeMirror-gutter-elt div {font-size: 1.2em;}.cm-s-liquibyte .CodeMirror-linenumber {color: #606060;padding-left: 0;}.cm-s-liquibyte .CodeMirror-cursor {border-left: 1px solid #eee;}.cm-s-liquibyte span.cm-comment {color: #008000;}.cm-s-liquibyte span.cm-def {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-keyword {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-builtin {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-variable {color: #5967ff;font-weight: bold;}.cm-s-liquibyte span.cm-string {color: #ff8000;}.cm-s-liquibyte span.cm-number {color: #0f0;font-weight: bold;}.cm-s-liquibyte span.cm-atom {color: #bf3030;font-weight: bold;}.cm-s-liquibyte span.cm-variable-2 {color: #007f7f;font-weight: bold;}.cm-s-liquibyte span.cm-variable-3 {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-property {color: #999;font-weight: bold;}.cm-s-liquibyte span.cm-operator {color: #fff;}.cm-s-liquibyte span.cm-meta {color: #0f0;}.cm-s-liquibyte span.cm-qualifier {color: #fff700;font-weight: bold;}.cm-s-liquibyte span.cm-bracket {color: #cc7;}.cm-s-liquibyte span.cm-tag {color: #ff0;font-weight: bold;}.cm-s-liquibyte span.cm-attribute {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-error {color: #f00;}.cm-s-liquibyte div.CodeMirror-selected {background-color: rgba(255, 0, 0, 0.25);}.cm-s-liquibyte span.cm-compilation {background-color: rgba(255, 255, 255, 0.12);}.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15);}/* Default styles for common addons */.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket {color: #0f0;font-weight: bold;}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket {color: #f00;font-weight: bold;}.CodeMirror-matchingtag {background-color: rgba(150, 255, 0, 0.3);}/* Scrollbars *//* Simple */.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover
|
1360 |
|
1361 |
Name: material
|
1362 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1363 |
|
1364 |
Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
|
1365 |
|
1366 |
-
*/.cm-s-material.CodeMirror {background-color: #263238;color: #e9eded;}.cm-s-material .CodeMirror-gutters {background: #263238;color: #537f7e;border: none;}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber {color: #537f7e;}.cm-s-material .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-material div.CodeMirror-selected {background: rgba(255, 255, 255, 0.15);}.cm-s-material.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line > span::selection,.cm-s-material .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0);}.cm-s-material .cm-keyword {color: #c792ea;}.cm-s-material .cm-operator {color: #e9eded;}.cm-s-material .cm-variable-2 {color: #80CBC4;}.cm-s-material .cm-variable-3 {color: #82B1FF;}.cm-s-material .cm-builtin {color: #DECB6B;}.cm-s-material .cm-atom {color: #F77669;}.cm-s-material .cm-number {color: #F77669;}.cm-s-material .cm-def {color: #e9eded;}.cm-s-material .cm-string {color: #C3E88D;}.cm-s-material .cm-string-2 {color: #80CBC4;}.cm-s-material .cm-comment {color: #546E7A;}.cm-s-material .cm-variable {color: #82B1FF;}.cm-s-material .cm-tag {color: #80CBC4;}.cm-s-material .cm-meta {color: #80CBC4;}.cm-s-material .cm-attribute {color: #FFCB6B;}.cm-s-material .cm-property {color: #80CBAE;}.cm-s-material .cm-qualifier {color: #DECB6B;}.cm-s-material .cm-variable-3 {color: #DECB6B;}.cm-s-material .cm-tag {color: #ff5370;}.cm-s-material .cm-error {color: #ffffff;background-color: #EC5F67;}.cm-s-material .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/****************************************************************//* Based on mbonaci's Brackets mbo theme *//* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme *//* Create your own: http://tmtheme-editor.herokuapp.com *//****************************************************************/.cm-s-mbo.CodeMirror {
|
1367 |
background: #2c2c2c;
|
1368 |
color: #ffffec;
|
1369 |
}
|
@@ -1541,7 +1542,7 @@ color: #8DA6CE;
|
|
1541 |
color: #690;
|
1542 |
}
|
1543 |
|
1544 |
-
.cm-s-mdn-like span.cm-variable-3,.cm-s-mdn-like span.cm-def {
|
1545 |
color: #07a;
|
1546 |
}
|
1547 |
|
@@ -1627,11 +1628,6 @@ background: #0F192A;
|
|
1627 |
color: #D1EDFF;
|
1628 |
}
|
1629 |
|
1630 |
-
.cm-s-midnight.CodeMirror {
|
1631 |
-
border-top: 1px solid black;
|
1632 |
-
border-bottom: 1px solid black;
|
1633 |
-
}
|
1634 |
-
|
1635 |
.cm-s-midnight div.CodeMirror-selected {
|
1636 |
background: #314D67;
|
1637 |
}
|
@@ -1725,11 +1721,11 @@ color: #F8F8F0;
|
|
1725 |
.cm-s-midnight .CodeMirror-matchingbracket {
|
1726 |
text-decoration: underline;
|
1727 |
color: white !important;
|
1728 |
-
}/* Based on Sublime Text's Monokai theme */.cm-s-monokai.CodeMirror {background: #272822;color: #f8f8f2;}.cm-s-monokai div.CodeMirror-selected {background: #49483E;}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line > span::selection,.cm-s-monokai .CodeMirror-line > span > span::selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-gutters {background: #272822;border-right: 0px;}.cm-s-monokai .CodeMirror-guttermarker {color: white;}.cm-s-monokai .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-monokai span.cm-comment {color: #75715e;}.cm-s-monokai span.cm-atom {color: #ae81ff;}.cm-s-monokai span.cm-number {color: #ae81ff;}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute {color: #a6e22e;}.cm-s-monokai span.cm-keyword {color: #f92672;}.cm-s-monokai span.cm-builtin {color: #66d9ef;}.cm-s-monokai span.cm-string {color: #e6db74;}.cm-s-monokai span.cm-variable {color: #f8f8f2;}.cm-s-monokai span.cm-variable-2 {color: #9effff;}.cm-s-monokai span.cm-variable-3 {color: #66d9ef;}.cm-s-monokai span.cm-def {color: #fd971f;}.cm-s-monokai span.cm-bracket {color: #f8f8f2;}.cm-s-monokai span.cm-tag {color: #f92672;}.cm-s-monokai span.cm-header {color: #ae81ff;}.cm-s-monokai span.cm-link {color: #ae81ff;}.cm-s-monokai span.cm-error {background: #f92672;color: #f8f8f0;}.cm-s-monokai .CodeMirror-activeline-background {background: #373831;}.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-neat span.cm-comment {color: #a86;}.cm-s-neat span.cm-keyword {line-height: 1em;font-weight: bold;color: blue;}.cm-s-neat span.cm-string {color: #a22;}.cm-s-neat span.cm-builtin {line-height: 1em;font-weight: bold;color: #077;}.cm-s-neat span.cm-special {line-height: 1em;font-weight: bold;color: #0aa;}.cm-s-neat span.cm-variable {color: black;}.cm-s-neat span.cm-number,.cm-s-neat span.cm-atom {color: #3a3;}.cm-s-neat span.cm-meta {color: #555;}.cm-s-neat span.cm-link {color: #3a3;}.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-neat .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}/* neo theme for codemirror *//* Color scheme */.cm-s-neo.CodeMirror {background-color: #ffffff;color: #2e383c;line-height: 1.4375;}.cm-s-neo .cm-comment {color: #75787b;}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property {color: #1d75b3;}.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color: #75438a;}.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color: #9c3328;}.cm-s-neo .cm-string {color: #b35e14;}.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color: #047d65;}/* Editor styling */.cm-s-neo pre {padding: 0;}.cm-s-neo .CodeMirror-gutters {border: none;border-right: 10px solid transparent;background-color: transparent;}.cm-s-neo .CodeMirror-linenumber {padding: 0;color: #e0e2e5;}.cm-s-neo .CodeMirror-guttermarker {color: #1d75b3;}.cm-s-neo .CodeMirror-guttermarker-subtle {color: #e0e2e5;}.cm-s-neo .CodeMirror-cursor {width: auto;border: 0;background: rgba(155, 157, 162, 0.37);z-index: 1;}/* Loosely based on the Midnight Textmate theme */.cm-s-night.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-night div.CodeMirror-selected {background: #447;}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line > span::selection,.cm-s-night .CodeMirror-line > span > span::selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-night .CodeMirror-guttermarker {color: white;}.cm-s-night .CodeMirror-guttermarker-subtle {color: #bbb;}.cm-s-night .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-night .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-night span.cm-comment {color: #8900d1;}.cm-s-night span.cm-atom {color: #845dc4;}.cm-s-night span.cm-number,.cm-s-night span.cm-attribute {color: #ffd500;}.cm-s-night span.cm-keyword {color: #599eff;}.cm-s-night span.cm-string {color: #37f14a;}.cm-s-night span.cm-meta {color: #7678e2;}.cm-s-night span.cm-variable-2,.cm-s-night span.cm-tag {color: #99b2ff;}.cm-s-night span.cm-variable-3,.cm-s-night span.cm-def {color: white;}.cm-s-night span.cm-bracket {color: #8da6ce;}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special {color: #ff9e59;}.cm-s-night span.cm-link {color: #845dc4;}.cm-s-night span.cm-error {color: #9d1e15;}.cm-s-night .CodeMirror-activeline-background {background: #1C005A;}.cm-s-night .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1729 |
Name: Panda Syntax
|
1730 |
Author: Siamak Mokhtari (http://github.com/siamak/)
|
1731 |
CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
|
1732 |
-
*/.cm-s-panda-syntax {background: #292A2B;color: #E6E6E6;line-height: 1.5;font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace;}.cm-s-panda-syntax .CodeMirror-cursor {border-color: #ff2c6d;}.cm-s-panda-syntax .CodeMirror-activeline-background {background: rgba(99, 123, 156, 0.1);}.cm-s-panda-syntax .CodeMirror-selected {background: #FFF;}.cm-s-panda-syntax .cm-comment {font-style: italic;color: #676B79;}.cm-s-panda-syntax .cm-operator {color: #f3f3f3;}.cm-s-panda-syntax .cm-string {color: #19F9D8;}.cm-s-panda-syntax .cm-string-2 {color: #FFB86C;}.cm-s-panda-syntax .cm-tag {color: #ff2c6d;}.cm-s-panda-syntax .cm-meta {color: #b084eb;}.cm-s-panda-syntax .cm-number {color: #FFB86C;}.cm-s-panda-syntax .cm-atom {color: #ff2c6d;}.cm-s-panda-syntax .cm-keyword {color: #FF75B5;}.cm-s-panda-syntax .cm-variable {color: #ffb86c;}.cm-s-panda-syntax .cm-variable-2 {color: #ff9ac1;}.cm-s-panda-syntax .cm-variable-3 {color: #ff9ac1;}.cm-s-panda-syntax .cm-def {color: #e6e6e6;}.cm-s-panda-syntax .cm-property {color: #f3f3f3;}.cm-s-panda-syntax .cm-unit {color: #ffb86c;}.cm-s-panda-syntax .cm-attribute {color: #ffb86c;}.cm-s-panda-syntax .CodeMirror-matchingbracket {border-bottom: 1px dotted #19F9D8;padding-bottom: 2px;color: #e6e6e6;}.cm-s-panda-syntax .CodeMirror-gutters {background: #292a2b;border-right-color: rgba(255, 255, 255, 0.1);}.cm-s-panda-syntax .CodeMirror-linenumber {color: #e6e6e6;opacity: 0.6;}/*
|
1733 |
|
1734 |
Name: Paraíso (Dark)
|
1735 |
Author: Jan T. Sott
|
@@ -1752,7 +1748,7 @@ color: white !important;
|
|
1752 |
* @author Dennis Thompson, AtomicPages LLC
|
1753 |
* @version 1.1
|
1754 |
* @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
|
1755 |
-
*/.cm-s-pastel-on-dark.CodeMirror {background: #2c2827;color: #8F938F;line-height: 1.5;}.cm-s-pastel-on-dark div.CodeMirror-selected {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line > span::selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-gutters {background: #34302f;border-right: 0px;padding: 0 3px;}.cm-s-pastel-on-dark .CodeMirror-guttermarker {color: white;}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-linenumber {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-pastel-on-dark span.cm-comment {color: #A6C6FF;}.cm-s-pastel-on-dark span.cm-atom {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-number {color: #CCCCCC;}.cm-s-pastel-on-dark span.cm-property {color: #8F938F;}.cm-s-pastel-on-dark span.cm-attribute {color: #a6e22e;}.cm-s-pastel-on-dark span.cm-keyword {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-string {color: #66A968;}.cm-s-pastel-on-dark span.cm-variable {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-variable-2 {color: #BEBF55;}.cm-s-pastel-on-dark span.cm-variable-3 {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-def {color: #757aD8;}.cm-s-pastel-on-dark span.cm-bracket {color: #f8f8f2;}.cm-s-pastel-on-dark span.cm-tag {color: #C1C144;}.cm-s-pastel-on-dark span.cm-link {color: #ae81ff;}.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin {color: #C1C144;}.cm-s-pastel-on-dark span.cm-error {background: #757aD8;color: #f8f8f0;}.cm-s-pastel-on-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.031);}.cm-s-pastel-on-dark .CodeMirror-matchingbracket {border: 1px solid rgba(255, 255, 255, 0.25);color: #8F938F !important;margin: -1px -1px 0 -1px;}/*
|
1756 |
|
1757 |
Name: Railscasts
|
1758 |
Author: Ryan Bates (http://railscasts.com)
|
@@ -1760,20 +1756,20 @@ color: white !important;
|
|
1760 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
1761 |
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
1762 |
|
1763 |
-
*/.cm-s-railscasts.CodeMirror {background: #2b2b2b;color: #f4f1ed;}.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b;border-right: 0px;}.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}.cm-s-railscasts span.cm-comment {color: #bc9458;}.cm-s-railscasts span.cm-atom {color: #b6b3eb;}.cm-s-railscasts span.cm-number {color: #b6b3eb;}.cm-s-railscasts span.cm-property,.cm-s-railscasts span.cm-attribute {color: #a5c261;}.cm-s-railscasts span.cm-keyword {color: #da4939;}.cm-s-railscasts span.cm-string {color: #ffc66d;}.cm-s-railscasts span.cm-variable {color: #a5c261;}.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}.cm-s-railscasts span.cm-def {color: #cc7833;}.cm-s-railscasts span.cm-error {background: #da4939;color: #d4cfc9;}.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}.cm-s-railscasts span.cm-tag {color: #da4939;}.cm-s-railscasts span.cm-link {color: #b6b3eb;}.cm-s-railscasts .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-railscasts .CodeMirror-activeline-background {background: #303040;}.cm-s-rubyblue.CodeMirror {background: #112435;color: white;}.cm-s-rubyblue div.CodeMirror-selected {background: #38566F;}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line > span::selection,.cm-s-rubyblue .CodeMirror-line > span > span::selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-gutters {background: #1F4661;border-right: 7px solid #3E7087;}.cm-s-rubyblue .CodeMirror-guttermarker {color: white;}.cm-s-rubyblue .CodeMirror-guttermarker-subtle {color: #3E7087;}.cm-s-rubyblue .CodeMirror-linenumber {color: white;}.cm-s-rubyblue .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-rubyblue span.cm-comment {color: #999;font-style: italic;line-height: 1em;}.cm-s-rubyblue span.cm-atom {color: #F4C20B;}.cm-s-rubyblue span.cm-number,.cm-s-rubyblue span.cm-attribute {color: #82C6E0;}.cm-s-rubyblue span.cm-keyword {color: #F0F;}.cm-s-rubyblue span.cm-string {color: #F08047;}.cm-s-rubyblue span.cm-meta {color: #F0F;}.cm-s-rubyblue span.cm-variable-2,.cm-s-rubyblue span.cm-tag {color: #7BD827;}.cm-s-rubyblue span.cm-variable-3,.cm-s-rubyblue span.cm-def {color: white;}.cm-s-rubyblue span.cm-bracket {color: #F0F;}.cm-s-rubyblue span.cm-link {color: #F4C20B;}.cm-s-rubyblue span.CodeMirror-matchingbracket {color: #F0F !important;}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special {color: #FF9D00;}.cm-s-rubyblue span.cm-error {color: #AF2018;}.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047;}/*
|
1764 |
|
1765 |
Name: seti
|
1766 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1767 |
|
1768 |
Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
|
1769 |
|
1770 |
-
*/.cm-s-seti.CodeMirror {background-color: #151718 !important;color: #CFD2D1 !important;border: none;}.cm-s-seti .CodeMirror-gutters {color: #404b53;background-color: #0E1112;border: none;}.cm-s-seti .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-seti .CodeMirror-linenumber {color: #6D8A88;}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line > span::selection,.cm-s-seti .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti span.cm-comment {color: #41535b;}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2 {color: #55b5db;}.cm-s-seti span.cm-number {color: #cd3f45;}.cm-s-seti span.cm-variable {color: #55b5db;}.cm-s-seti span.cm-variable-2 {color: #a074c4;}.cm-s-seti span.cm-def {color: #55b5db;}.cm-s-seti span.cm-keyword {color: #ff79c6;}.cm-s-seti span.cm-operator {color: #9fca56;}.cm-s-seti span.cm-keyword {color: #e6cd69;}.cm-s-seti span.cm-atom {color: #cd3f45;}.cm-s-seti span.cm-meta {color: #55b5db;}.cm-s-seti span.cm-tag {color: #55b5db;}.cm-s-seti span.cm-attribute {color: #9fca56;}.cm-s-seti span.cm-qualifier {color: #9fca56;}.cm-s-seti span.cm-property {color: #a074c4;}.cm-s-seti span.cm-variable-3 {color: #9fca56;}.cm-s-seti span.cm-builtin {color: #9fca56;}.cm-s-seti .CodeMirror-activeline-background {background: #101213;}.cm-s-seti .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
|
1771 |
Solarized theme for code-mirror
|
1772 |
http://ethanschoonover.com/solarized
|
1773 |
*//*
|
1774 |
Solarized color palette
|
1775 |
http://ethanschoonover.com/solarized/img/solarized-palette.png
|
1776 |
-
*/.solarized.base03 {color: #002b36;}.solarized.base02 {color: #073642;}.solarized.base01 {color: #586e75;}.solarized.base00 {color: #657b83;}.solarized.base0 {color: #839496;}.solarized.base1 {color: #93a1a1;}.solarized.base2 {color: #eee8d5;}.solarized.base3 {color: #fdf6e3;}.solarized.solar-yellow {color: #b58900;}.solarized.solar-orange {color: #cb4b16;}.solarized.solar-red {color: #dc322f;}.solarized.solar-magenta {color: #d33682;}.solarized.solar-violet {color: #6c71c4;}.solarized.solar-blue {color: #268bd2;}.solarized.solar-cyan {color: #2aa198;}.solarized.solar-green {color: #859900;}/* Color scheme for code-mirror */.cm-s-solarized {line-height: 1.45em;color-profile: sRGB;rendering-intent: auto;}.cm-s-solarized.cm-s-dark {color: #839496;background-color: #002b36;text-shadow: #002b36 0 1px;}.cm-s-solarized.cm-s-light {background-color: #fdf6e3;color: #657b83;text-shadow: #eee8d5 0 1px;}.cm-s-solarized .CodeMirror-widget {text-shadow: none;}.cm-s-solarized .cm-header {color: #586e75;}.cm-s-solarized .cm-quote {color: #93a1a1;}.cm-s-solarized .cm-keyword {color: #cb4b16;}.cm-s-solarized .cm-atom {color: #d33682;}.cm-s-solarized .cm-number {color: #d33682;}.cm-s-solarized .cm-def {color: #2aa198;}.cm-s-solarized .cm-variable {color: #839496;}.cm-s-solarized .cm-variable-2 {color: #b58900;}.cm-s-solarized .cm-variable-3 {color: #6c71c4;}.cm-s-solarized .cm-property {color: #2aa198;}.cm-s-solarized .cm-operator {color: #6c71c4;}.cm-s-solarized .cm-comment {color: #586e75;font-style: italic;}.cm-s-solarized .cm-string {color: #859900;}.cm-s-solarized .cm-string-2 {color: #b58900;}.cm-s-solarized .cm-meta {color: #859900;}.cm-s-solarized .cm-qualifier {color: #b58900;}.cm-s-solarized .cm-builtin {color: #d33682;}.cm-s-solarized .cm-bracket {color: #cb4b16;}.cm-s-solarized .CodeMirror-matchingbracket {color: #859900;}.cm-s-solarized .CodeMirror-nonmatchingbracket {color: #dc322f;}.cm-s-solarized .cm-tag {color: #93a1a1;}.cm-s-solarized .cm-attribute {color: #2aa198;}.cm-s-solarized .cm-hr {color: transparent;border-top: 1px solid #586e75;display: block;}.cm-s-solarized .cm-link {color: #93a1a1;cursor: pointer;}.cm-s-solarized .cm-special {color: #6c71c4;}.cm-s-solarized .cm-em {color: #999;text-decoration: underline;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-solarized .cm-strong {color: #eee;}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar {color: #586e75;border-bottom: 1px dotted #dc322f;}.cm-s-solarized.cm-s-dark div.CodeMirror-selected {background: #073642;}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark.CodeMirror ::selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection,.cm-s-dark .CodeMirror-line > span::-moz-selection,.cm-s-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-light div.CodeMirror-selected {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-light .CodeMirror-line > span::-moz-selection,.cm-s-light .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::selection,.cm-s-light .CodeMirror-line > span::selection,.cm-s-light .CodeMirror-line > span > span::selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-ligh .CodeMirror-line > span::-moz-selection,.cm-s-ligh .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}/* Editor styling *//* Little shadow on the view-port of the buffer view */.cm-s-solarized.CodeMirror {box-shadow: inset 7px 0 12px -6px #000;}/* Remove gutter border */.cm-s-solarized .CodeMirror-gutters {border-right: 0;}/* Gutter colors and line number styling based of color scheme (dark / light) *//* Dark */.cm-s-solarized.cm-s-dark .CodeMirror-gutters {background-color: #073642;}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {color: #586e75;text-shadow: #021014 0 -1px;}/* Light */.cm-s-solarized.cm-s-light .CodeMirror-gutters {background-color: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-linenumber {color: #839496;}/* Common */.cm-s-solarized .CodeMirror-linenumber {padding: 0 5px;}.cm-s-solarized .CodeMirror-guttermarker-subtle {color: #586e75;}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker {color: #ddd;}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker {color: #cb4b16;}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {color: #586e75;}/* Cursor */.cm-s-solarized .CodeMirror-cursor {border-left: 1px solid #819090;}/* Fat cursor */.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor {background: #77ee77;}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor {background-color: #77ee77;}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor {background: #586e75;}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor {background-color: #586e75;}/* Active line */.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.06);}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0.06);}.cm-s-the-matrix.CodeMirror {background: #000000;color: #00FF00;}.cm-s-the-matrix div.CodeMirror-selected {background: #2D2D2D;}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line > span::selection,.cm-s-the-matrix .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-gutters {background: #060;border-right: 2px solid #00FF00;}.cm-s-the-matrix .CodeMirror-guttermarker {color: #0f0;}.cm-s-the-matrix .CodeMirror-guttermarker-subtle {color: white;}.cm-s-the-matrix .CodeMirror-linenumber {color: #FFFFFF;}.cm-s-the-matrix .CodeMirror-cursor {border-left: 1px solid #00FF00;}.cm-s-the-matrix span.cm-keyword {color: #008803;font-weight: bold;}.cm-s-the-matrix span.cm-atom {color: #3FF;}.cm-s-the-matrix span.cm-number {color: #FFB94F;}.cm-s-the-matrix span.cm-def {color: #99C;}.cm-s-the-matrix span.cm-variable {color: #F6C;}.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}.cm-s-the-matrix span.cm-variable-3 {color: #96F;}.cm-s-the-matrix span.cm-property {color: #62FFA0;}.cm-s-the-matrix span.cm-operator {color: #999;}.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}.cm-s-the-matrix span.cm-string {color: #39C;}.cm-s-the-matrix span.cm-meta {color: #C9F;}.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}.cm-s-the-matrix span.cm-builtin {color: #30a;}.cm-s-the-matrix span.cm-bracket {color: #cc7;}.cm-s-the-matrix span.cm-tag {color: #FFBD40;}.cm-s-the-matrix span.cm-attribute {color: #FFF700;}.cm-s-the-matrix span.cm-error {color: #FF0000;}.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}/*
|
1777 |
|
1778 |
Name: Tomorrow Night - Bright
|
1779 |
Author: Chris Kempson
|
@@ -1788,7 +1784,7 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
|
|
1788 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
1789 |
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
1790 |
|
1791 |
-
*/.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000;color: #CCCCCC;}.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D;}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker {color: #f2777a;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A;}.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-property,.cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a;color: #6A6A6A;}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600;}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-ttcn .cm-quote {color: #090;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-header,.cm-strong {font-weight: bold;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-link {text-decoration: underline;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-header {color: #00f;font-weight: bold;}.cm-s-ttcn .cm-atom {color: #219;}.cm-s-ttcn .cm-attribute {color: #00c;}.cm-s-ttcn .cm-bracket {color: #997;}.cm-s-ttcn .cm-comment {color: #333333;}.cm-s-ttcn .cm-def {color: #00f;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-error {color: #f00;}.cm-s-ttcn .cm-hr {color: #999;}.cm-s-ttcn .cm-invalidchar {color: #f00;}.cm-s-ttcn .cm-keyword {font-weight: bold;}.cm-s-ttcn .cm-link {color: #00c;text-decoration: underline;}.cm-s-ttcn .cm-meta {color: #555;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-qualifier {color: #555;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-string {color: #006400;}.cm-s-ttcn .cm-string-2 {color: #f50;}.cm-s-ttcn .cm-strong {font-weight: bold;}.cm-s-ttcn .cm-tag {color: #170;}.cm-s-ttcn .cm-variable {color: #8B2252;}.cm-s-ttcn .cm-variable-2 {color: #05a;}.cm-s-ttcn .cm-variable-3 {color: #085;}.cm-s-ttcn .cm-invalidchar {color: #f00;}/* ASN */.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes {color: #27408B;}.cm-s-ttcn .cm-cmipVerbs {color: #8B2252;}.cm-s-ttcn .cm-modifier {color: #D2691E;}.cm-s-ttcn .cm-status {color: #8B4545;}.cm-s-ttcn .cm-storage {color: #A020F0;}.cm-s-ttcn .cm-tags {color: #006400;}/* CFG */.cm-s-ttcn .cm-externalCommands {color: #8B4545;font-weight: bold;}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle {color: #2E8B57;font-weight: bold;}/* TTCN */.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts {color: #006400;}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps {color: #0000FF;}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros {color: #27408B;}.cm-s-ttcn .cm-types {color: #A52A2A;font-weight: bold;}.cm-s-ttcn .cm-visibilityModifiers {font-weight: bold;}.cm-s-twilight.CodeMirror {background: #141414;color: #f7f7f7;}/**/.cm-s-twilight div.CodeMirror-selected {background: #323232;}/**/.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line > span::selection,.cm-s-twilight .CodeMirror-line > span > span::selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-gutters {background: #222;border-right: 1px solid #aaa;}.cm-s-twilight .CodeMirror-guttermarker {color: white;}.cm-s-twilight .CodeMirror-guttermarker-subtle {color: #aaa;}.cm-s-twilight .CodeMirror-linenumber {color: #aaa;}.cm-s-twilight .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-twilight .cm-keyword {color: #f9ee98;}/**/.cm-s-twilight .cm-atom {color: #FC0;}.cm-s-twilight .cm-number {color: #ca7841;}/**/.cm-s-twilight .cm-def {color: #8DA6CE;}.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-tag {color: #607392;}/**/.cm-s-twilight span.cm-variable-3,.cm-s-twilight span.cm-def {color: #607392;}/**/.cm-s-twilight .cm-operator {color: #cda869;}/**/.cm-s-twilight .cm-comment {color: #777;font-style: italic;font-weight: normal;}/**/.cm-s-twilight .cm-string {color: #8f9d6a;font-style: italic;}/**/.cm-s-twilight .cm-string-2 {color: #bd6b18;}/*?*/.cm-s-twilight .cm-meta {background-color: #141414;color: #f7f7f7;}/*?*/.cm-s-twilight .cm-builtin {color: #cda869;}/*?*/.cm-s-twilight .cm-tag {color: #997643;}/**/.cm-s-twilight .cm-attribute {color: #d6bb6d;}/*?*/.cm-s-twilight .cm-header {color: #FF6400;}.cm-s-twilight .cm-hr {color: #AEAEAE;}.cm-s-twilight .cm-link {color: #ad9361;font-style: italic;text-decoration: none;}/**/.cm-s-twilight .cm-error {border-bottom: 1px solid red;}.cm-s-twilight .CodeMirror-activeline-background {background: #27282E;}.cm-s-twilight .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/* Taken from the popular Visual Studio Vibrant Ink Schema */.cm-s-vibrant-ink.CodeMirror {background: black;color: white;}.cm-s-vibrant-ink div.CodeMirror-selected {background: #35493c;}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line > span::selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-vibrant-ink .CodeMirror-guttermarker {color: white;}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-vibrant-ink .cm-keyword {color: #CC7832;}.cm-s-vibrant-ink .cm-atom {color: #FC0;}.cm-s-vibrant-ink .cm-number {color: #FFEE98;}.cm-s-vibrant-ink .cm-def {color: #8DA6CE;}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant span.cm-tag {color: #FFC66D;}.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def {color: #FFC66D;}.cm-s-vibrant-ink .cm-operator {color: #888;}.cm-s-vibrant-ink .cm-comment {color: gray;font-weight: bold;}.cm-s-vibrant-ink .cm-string {color: #A5C25C;}.cm-s-vibrant-ink .cm-string-2 {color: red;}.cm-s-vibrant-ink .cm-meta {color: #D8FA3C;}.cm-s-vibrant-ink .cm-builtin {color: #8DA6CE;}.cm-s-vibrant-ink .cm-tag {color: #8DA6CE;}.cm-s-vibrant-ink .cm-attribute {color: #8DA6CE;}.cm-s-vibrant-ink .cm-header {color: #FF6400;}.cm-s-vibrant-ink .cm-hr {color: #AEAEAE;}.cm-s-vibrant-ink .cm-link {color: blue;}.cm-s-vibrant-ink .cm-error {border-bottom: 1px solid red;}.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E;}.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1792 |
Copyright (C) 2011 by MarkLogic Corporation
|
1793 |
Author: Mike Brevoort <mike@brevoort.com>
|
1794 |
|
@@ -1809,7 +1805,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1809 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
1810 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
1811 |
THE SOFTWARE.
|
1812 |
-
*/.cm-s-xq-dark.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-xq-dark div.CodeMirror-selected {background: #27007A;}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line > span::selection,.cm-s-xq-dark .CodeMirror-line > span > span::selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-xq-dark .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-xq-dark .CodeMirror-guttermarker-subtle {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}.cm-s-xq-dark span.cm-number {color: #164;}.cm-s-xq-dark span.cm-def {color: #FFF;text-decoration: underline;}.cm-s-xq-dark span.cm-variable {color: #FFF;}.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}.cm-s-xq-dark span.cm-variable-3 {color: #DDD;}.cm-s-xq-dark span.cm-comment {color: gray;}.cm-s-xq-dark span.cm-string {color: #9FEE00;}.cm-s-xq-dark span.cm-meta {color: yellow;}.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}.cm-s-xq-dark span.cm-builtin {color: #30a;}.cm-s-xq-dark span.cm-bracket {color: #cc7;}.cm-s-xq-dark span.cm-tag {color: #FFBD40;}.cm-s-xq-dark span.cm-attribute {color: #FFF700;}.cm-s-xq-dark span.cm-error {color: #f00;}.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E;}.cm-s-xq-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1813 |
Copyright (C) 2011 by MarkLogic Corporation
|
1814 |
Author: Mike Brevoort <mike@brevoort.com>
|
1815 |
|
@@ -1830,14 +1826,14 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1830 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
1831 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
1832 |
THE SOFTWARE.
|
1833 |
-
*/.cm-s-xq-light span.cm-keyword {line-height: 1em;font-weight: bold;color: #5A5CAD;}.cm-s-xq-light span.cm-atom {color: #6C8CD5;}.cm-s-xq-light span.cm-number {color: #164;}.cm-s-xq-light span.cm-def {text-decoration: underline;}.cm-s-xq-light span.cm-variable {color: black;}.cm-s-xq-light span.cm-variable-2 {color: black;}.cm-s-xq-light span.cm-variable-3 {color: black;}.cm-s-xq-light span.cm-comment {color: #0080FF;font-style: italic;}.cm-s-xq-light span.cm-string {color: red;}.cm-s-xq-light span.cm-meta {color: yellow;}.cm-s-xq-light span.cm-qualifier {color: grey;}.cm-s-xq-light span.cm-builtin {color: #7EA656;}.cm-s-xq-light span.cm-bracket {color: #cc7;}.cm-s-xq-light span.cm-tag {color: #3F7F7F;}.cm-s-xq-light span.cm-attribute {color: #7F007F;}.cm-s-xq-light span.cm-error {color: #f00;}.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-xq-light .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;background: yellow;}/*
|
1834 |
|
1835 |
Name: yeti
|
1836 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1837 |
|
1838 |
Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
|
1839 |
|
1840 |
-
*/.cm-s-yeti.CodeMirror {background-color: #ECEAE8 !important;color: #d1c9c0 !important;border: none;}.cm-s-yeti .CodeMirror-gutters {color: #adaba6;background-color: #E5E1DB;border: none;}.cm-s-yeti .CodeMirror-cursor {border-left: solid thin #d1c9c0;}.cm-s-yeti .CodeMirror-linenumber {color: #adaba6;}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line > span::selection,.cm-s-yeti .CodeMirror-line > span > span::selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti span.cm-comment {color: #d4c8be;}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2 {color: #96c0d8;}.cm-s-yeti span.cm-number {color: #a074c4;}.cm-s-yeti span.cm-variable {color: #55b5db;}.cm-s-yeti span.cm-variable-2 {color: #a074c4;}.cm-s-yeti span.cm-def {color: #55b5db;}.cm-s-yeti span.cm-operator {color: #9fb96e;}.cm-s-yeti span.cm-keyword {color: #9fb96e;}.cm-s-yeti span.cm-atom {color: #a074c4;}.cm-s-yeti span.cm-meta {color: #96c0d8;}.cm-s-yeti span.cm-tag {color: #96c0d8;}.cm-s-yeti span.cm-attribute {color: #9fb96e;}.cm-s-yeti span.cm-qualifier {color: #96c0d8;}.cm-s-yeti span.cm-property {color: #a074c4;}.cm-s-yeti span.cm-builtin {color: #a074c4;}.cm-s-yeti span.cm-variable-3 {color: #96c0d8;}.cm-s-yeti .CodeMirror-activeline-background {background: #E7E4E0;}.cm-s-yeti .CodeMirror-matchingbracket {text-decoration: underline;}/**
|
1841 |
* "
|
1842 |
* Using Zenburn color palette from the Emacs Zenburn Theme
|
1843 |
* https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
|
10 |
font-family: monospace;
|
11 |
height: 300px;
|
12 |
color: black;
|
13 |
+
direction: ltr;
|
14 |
}/* PADDING */.CodeMirror-lines {
|
15 |
padding: 4px 0;
|
16 |
/* Vertical padding around content */;
|
138 |
color: #05a;
|
139 |
}
|
140 |
|
141 |
+
.cm-s-default .cm-variable-3,.cm-s-default .cm-type {
|
142 |
color: #085;
|
143 |
}
|
144 |
|
409 |
}
|
410 |
|
411 |
.cm-searching {
|
412 |
+
background-color: #ffa;
|
413 |
+
background-color: rgba(255, 255, 0, 0.4);
|
414 |
}/* Used to force a border model for a node */.cm-force-border {
|
415 |
padding-right: .1px;
|
416 |
}/* See issue #2901 */.cm-tab-wrap-hack:after {
|
710 |
color: #cacbcc;
|
711 |
}
|
712 |
|
713 |
+
.cm-s-abcdef span.cm-variable-3,.cm-s-abcdef span.cm-type {
|
714 |
color: #def;
|
715 |
}
|
716 |
|
806 |
color: #eed1b3;
|
807 |
}
|
808 |
|
809 |
+
.cm-s-ambiance .cm-variable-3,.cm-s-ambiance .cm-type {
|
810 |
color: #faded3;
|
811 |
}
|
812 |
|
1244 |
|
1245 |
.cm-s-bespin .CodeMirror-activeline-background {
|
1246 |
background: #404040;
|
1247 |
+
}/* Port of TextMate's Blackboard theme */.cm-s-blackboard.CodeMirror {background: #0C1021;color: #F8F8F8;}.cm-s-blackboard div.CodeMirror-selected {background: #253B76;}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line > span::selection,.cm-s-blackboard .CodeMirror-line > span > span::selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-gutters {background: #0C1021;border-right: 0;}.cm-s-blackboard .CodeMirror-guttermarker {color: #FBDE2D;}.cm-s-blackboard .CodeMirror-guttermarker-subtle {color: #888;}.cm-s-blackboard .CodeMirror-linenumber {color: #888;}.cm-s-blackboard .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-blackboard .cm-keyword {color: #FBDE2D;}.cm-s-blackboard .cm-atom {color: #D8FA3C;}.cm-s-blackboard .cm-number {color: #D8FA3C;}.cm-s-blackboard .cm-def {color: #8DA6CE;}.cm-s-blackboard .cm-variable {color: #FF6400;}.cm-s-blackboard .cm-operator {color: #FBDE2D;}.cm-s-blackboard .cm-comment {color: #AEAEAE;}.cm-s-blackboard .cm-string {color: #61CE3C;}.cm-s-blackboard .cm-string-2 {color: #61CE3C;}.cm-s-blackboard .cm-meta {color: #D8FA3C;}.cm-s-blackboard .cm-builtin {color: #8DA6CE;}.cm-s-blackboard .cm-tag {color: #8DA6CE;}.cm-s-blackboard .cm-attribute {color: #8DA6CE;}.cm-s-blackboard .cm-header {color: #FF6400;}.cm-s-blackboard .cm-hr {color: #AEAEAE;}.cm-s-blackboard .cm-link {color: #8DA6CE;}.cm-s-blackboard .cm-error {background: #9D1E15;color: #F8F8F8;}.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636;}.cm-s-blackboard .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-cobalt.CodeMirror {background: #002240;color: white;}.cm-s-cobalt div.CodeMirror-selected {background: #b36539;}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line > span::selection,.cm-s-cobalt .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-cobalt .CodeMirror-guttermarker {color: #ffee80;}.cm-s-cobalt .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-cobalt span.cm-comment {color: #08f;}.cm-s-cobalt span.cm-atom {color: #845dc4;}.cm-s-cobalt span.cm-number,.cm-s-cobalt span.cm-attribute {color: #ff80e1;}.cm-s-cobalt span.cm-keyword {color: #ffee80;}.cm-s-cobalt span.cm-string {color: #3ad900;}.cm-s-cobalt span.cm-meta {color: #ff9d00;}.cm-s-cobalt span.cm-variable-2,.cm-s-cobalt span.cm-tag {color: #9effff;}.cm-s-cobalt span.cm-variable-3,.cm-s-cobalt span.cm-def,.cm-s-cobalt .cm-type {color: white;}.cm-s-cobalt span.cm-bracket {color: #d8d8d8;}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special {color: #ff9e59;}.cm-s-cobalt span.cm-link {color: #845dc4;}.cm-s-cobalt span.cm-error {color: #9d1e15;}.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57;}.cm-s-cobalt .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-colorforth.CodeMirror {background: #000000;color: #f8f8f8;}.cm-s-colorforth .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-colorforth .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-colorforth .CodeMirror-guttermarker-subtle {color: #78846f;}.cm-s-colorforth .CodeMirror-linenumber {color: #bababa;}.cm-s-colorforth .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-colorforth span.cm-comment {color: #ededed;}.cm-s-colorforth span.cm-def {color: #ff1c1c;font-weight: bold;}.cm-s-colorforth span.cm-keyword {color: #ffd900;}.cm-s-colorforth span.cm-builtin {color: #00d95a;}.cm-s-colorforth span.cm-variable {color: #73ff00;}.cm-s-colorforth span.cm-string {color: #007bff;}.cm-s-colorforth span.cm-number {color: #00c4ff;}.cm-s-colorforth span.cm-atom {color: #606060;}.cm-s-colorforth span.cm-variable-2 {color: #EEE;}.cm-s-colorforth span.cm-variable-3,.cm-s-colorforth span.cm-type {color: #DDD;}.cm-s-colorforth span.cm-meta {color: yellow;}.cm-s-colorforth span.cm-qualifier {color: #FFF700;}.cm-s-colorforth span.cm-bracket {color: #cc7;}.cm-s-colorforth span.cm-tag {color: #FFBD40;}.cm-s-colorforth span.cm-attribute {color: #FFF700;}.cm-s-colorforth span.cm-error {color: #f00;}.cm-s-colorforth div.CodeMirror-selected {background: #333d53;}.cm-s-colorforth span.cm-compilation {background: rgba(255, 255, 255, 0.12);}.cm-s-colorforth .CodeMirror-activeline-background {background: #253540;}/*
|
1248 |
|
1249 |
Name: dracula
|
1250 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1251 |
|
1252 |
Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
|
1253 |
|
1254 |
+
*/.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters {background-color: #282a36 !important;color: #f8f8f2 !important;border: none;}.cm-s-dracula .CodeMirror-gutters {color: #282a36;}.cm-s-dracula .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-dracula .CodeMirror-linenumber {color: #6D8A88;}.cm-s-dracula .CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line > span::selection,.cm-s-dracula .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line > span::-moz-selection,.cm-s-dracula .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula span.cm-comment {color: #6272a4;}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2 {color: #f1fa8c;}.cm-s-dracula span.cm-number {color: #bd93f9;}.cm-s-dracula span.cm-variable {color: #50fa7b;}.cm-s-dracula span.cm-variable-2 {color: white;}.cm-s-dracula span.cm-def {color: #50fa7b;}.cm-s-dracula span.cm-operator {color: #ff79c6;}.cm-s-dracula span.cm-keyword {color: #ff79c6;}.cm-s-dracula span.cm-atom {color: #bd93f9;}.cm-s-dracula span.cm-meta {color: #f8f8f2;}.cm-s-dracula span.cm-tag {color: #ff79c6;}.cm-s-dracula span.cm-attribute {color: #50fa7b;}.cm-s-dracula span.cm-qualifier {color: #50fa7b;}.cm-s-dracula span.cm-property {color: #66d9ef;}.cm-s-dracula span.cm-builtin {color: #50fa7b;}.cm-s-dracula span.cm-variable-3,.cm-s-dracula span.cm-type {color: #ffb86c;}.cm-s-dracula .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.1);}.cm-s-dracula .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
|
1255 |
Name: DuoTone-Dark
|
1256 |
Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
|
1257 |
|
1258 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
|
1259 |
+
*/.cm-s-duotone-dark.CodeMirror {background: #2a2734;color: #6c6783;}.cm-s-duotone-dark div.CodeMirror-selected {background: #545167!important;}.cm-s-duotone-dark .CodeMirror-gutters {background: #2a2734;border-right: 0px;}.cm-s-duotone-dark .CodeMirror-linenumber {color: #545167;}/* begin cursor */.cm-s-duotone-dark .CodeMirror-cursor {border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: .5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: .5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: .5;}/* end cursor */.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-variable,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-link {color: #ffcc99;}.cm-s-duotone-dark span.cm-property {color: #9a86fd;}.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit,.cm-s-duotone-dark span.cm-negative {color: #e09142;}.cm-s-duotone-dark span.cm-string {color: #ffb870;}.cm-s-duotone-dark span.cm-operator {color: #ffad5c;}.cm-s-duotone-dark span.cm-positive {color: #6a51e6;}.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url {color: #7a63ee;}.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-tag,.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-em {color: #eeebff;}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment {color: #6c6783;}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar {
|
1260 |
color: #f00;
|
1261 |
}
|
1262 |
|
1326 |
color: #896724;
|
1327 |
}
|
1328 |
|
1329 |
+
.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3,.cm-s-duotone-light span.cm-type,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-url {
|
1330 |
color: #896724;
|
1331 |
}
|
1332 |
|
1336 |
|
1337 |
.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment {
|
1338 |
color: #b6ad9a;
|
1339 |
+
}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... *//* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar {color: #f00;}.cm-s-duotone-light span.cm-header {font-weight: normal;}.cm-s-duotone-light .CodeMirror-matchingbracket {text-decoration: underline;color: #faf8f5 !important;}.cm-s-eclipse span.cm-meta {color: #FF1717;}.cm-s-eclipse span.cm-keyword {line-height: 1em;font-weight: bold;color: #7F0055;}.cm-s-eclipse span.cm-atom {color: #219;}.cm-s-eclipse span.cm-number {color: #164;}.cm-s-eclipse span.cm-def {color: #00f;}.cm-s-eclipse span.cm-variable {color: black;}.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}.cm-s-eclipse span.cm-variable-3,.cm-s-eclipse span.cm-type {color: #0000C0;}.cm-s-eclipse span.cm-property {color: black;}.cm-s-eclipse span.cm-operator {color: black;}.cm-s-eclipse span.cm-comment {color: #3F7F5F;}.cm-s-eclipse span.cm-string {color: #2A00FF;}.cm-s-eclipse span.cm-string-2 {color: #f50;}.cm-s-eclipse span.cm-qualifier {color: #555;}.cm-s-eclipse span.cm-builtin {color: #30a;}.cm-s-eclipse span.cm-bracket {color: #cc7;}.cm-s-eclipse span.cm-tag {color: #170;}.cm-s-eclipse span.cm-attribute {color: #00c;}.cm-s-eclipse span.cm-link {color: #219;}.cm-s-eclipse span.cm-error {color: #f00;}.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-eclipse .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string,.cm-s-elegant span.cm-atom {color: #762;}.cm-s-elegant span.cm-comment {color: #262;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-meta {color: #555;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-variable {color: black;}.cm-s-elegant span.cm-variable-2 {color: #b11;}.cm-s-elegant span.cm-qualifier {color: #555;}.cm-s-elegant span.cm-keyword {color: #730;}.cm-s-elegant span.cm-builtin {color: #30a;}.cm-s-elegant span.cm-link {color: #762;}.cm-s-elegant span.cm-error {background-color: #fdd;}.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-elegant .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-erlang-dark.CodeMirror {background: #002240;color: white;}.cm-s-erlang-dark div.CodeMirror-selected {background: #b36539;}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line > span::selection,.cm-s-erlang-dark .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-erlang-dark .CodeMirror-guttermarker {color: white;}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-erlang-dark span.cm-quote {color: #ccc;}.cm-s-erlang-dark span.cm-atom {color: #f133f1;}.cm-s-erlang-dark span.cm-attribute {color: #ff80e1;}.cm-s-erlang-dark span.cm-bracket {color: #ff9d00;}.cm-s-erlang-dark span.cm-builtin {color: #eaa;}.cm-s-erlang-dark span.cm-comment {color: #77f;}.cm-s-erlang-dark span.cm-def {color: #e7a;}.cm-s-erlang-dark span.cm-keyword {color: #ffee80;}.cm-s-erlang-dark span.cm-meta {color: #50fefe;}.cm-s-erlang-dark span.cm-number {color: #ffd0d0;}.cm-s-erlang-dark span.cm-operator {color: #d55;}.cm-s-erlang-dark span.cm-property {color: #ccc;}.cm-s-erlang-dark span.cm-qualifier {color: #ccc;}.cm-s-erlang-dark span.cm-special {color: #ffbbbb;}.cm-s-erlang-dark span.cm-string {color: #3ad900;}.cm-s-erlang-dark span.cm-string-2 {color: #ccc;}.cm-s-erlang-dark span.cm-tag {color: #9effff;}.cm-s-erlang-dark span.cm-variable {color: #50fe50;}.cm-s-erlang-dark span.cm-variable-2 {color: #e0e;}.cm-s-erlang-dark span.cm-variable-3,.cm-s-erlang-dark span.cm-type {color: #ccc;}.cm-s-erlang-dark span.cm-error {color: #9d1e15;}.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461;}.cm-s-erlang-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1340 |
|
1341 |
Name: Hopscotch
|
1342 |
Author: Jan T. Sott
|
1346 |
|
1347 |
*/.cm-s-hopscotch.CodeMirror {background: #322931;color: #d5d3d5;}.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}.cm-s-hopscotch .CodeMirror-gutters {background: #322931;border-right: 0px;}.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}.cm-s-hopscotch span.cm-comment {color: #b33508;}.cm-s-hopscotch span.cm-atom {color: #c85e7c;}.cm-s-hopscotch span.cm-number {color: #c85e7c;}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute {color: #8fc13e;}.cm-s-hopscotch span.cm-keyword {color: #dd464c;}.cm-s-hopscotch span.cm-string {color: #fdcc59;}.cm-s-hopscotch span.cm-variable {color: #8fc13e;}.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}.cm-s-hopscotch span.cm-def {color: #fd8b19;}.cm-s-hopscotch span.cm-error {background: #dd464c;color: #989498;}.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}.cm-s-hopscotch span.cm-tag {color: #dd464c;}.cm-s-hopscotch span.cm-link {color: #c85e7c;}.cm-s-hopscotch .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-hopscotch .CodeMirror-activeline-background {background: #302020;}/*
|
1348 |
ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
|
1349 |
+
*/.cm-s-icecoder {color: #666;background: #1d1d1b;}.cm-s-icecoder span.cm-keyword {color: #eee;font-weight: bold;}/* off-white 1 */.cm-s-icecoder span.cm-atom {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-number {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-def {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-variable {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-variable-2 {color: #cc1e5c;}/* pink */.cm-s-icecoder span.cm-variable-3,.cm-s-icecoder span.cm-type {color: #f9602c;}/* orange */.cm-s-icecoder span.cm-property {color: #eee;}/* off-white 1 */.cm-s-icecoder span.cm-operator {color: #9179bb;}/* purple */.cm-s-icecoder span.cm-comment {color: #97a3aa;}/* grey-blue */.cm-s-icecoder span.cm-string {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-string-2 {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-meta {color: #555;}/* grey */.cm-s-icecoder span.cm-qualifier {color: #555;}/* grey */.cm-s-icecoder span.cm-builtin {color: #214e7b;}/* bright blue */.cm-s-icecoder span.cm-bracket {color: #cc7;}/* grey-yellow */.cm-s-icecoder span.cm-tag {color: #e8e8e8;}/* off-white 2 */.cm-s-icecoder span.cm-attribute {color: #099;}/* teal */.cm-s-icecoder span.cm-header {color: #6a0d6a;}/* purple-pink */.cm-s-icecoder span.cm-quote {color: #186718;}/* dark green */.cm-s-icecoder span.cm-hr {color: #888;}/* mid-grey */.cm-s-icecoder span.cm-link {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-error {color: #d00;}/* red */.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-icecoder div.CodeMirror-selected {color: #fff;background: #037;}.cm-s-icecoder .CodeMirror-gutters {background: #1d1d1b;min-width: 41px;border-right: 0;}.cm-s-icecoder .CodeMirror-linenumber {color: #555;cursor: default;}.cm-s-icecoder .CodeMirror-matchingbracket {color: #fff !important;background: #555 !important;}.cm-s-icecoder .CodeMirror-activeline-background {background: #000;}/*
|
1350 |
|
1351 |
Name: Isotope
|
1352 |
Author: David Desandro / Jan T. Sott
|
1357 |
*/.cm-s-isotope.CodeMirror {background: #000000;color: #e0e0e0;}.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}.cm-s-isotope .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-isotope .CodeMirror-linenumber {color: #808080;}.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}.cm-s-isotope span.cm-comment {color: #3300ff;}.cm-s-isotope span.cm-atom {color: #cc00ff;}.cm-s-isotope span.cm-number {color: #cc00ff;}.cm-s-isotope span.cm-property,.cm-s-isotope span.cm-attribute {color: #33ff00;}.cm-s-isotope span.cm-keyword {color: #ff0000;}.cm-s-isotope span.cm-string {color: #ff0099;}.cm-s-isotope span.cm-variable {color: #33ff00;}.cm-s-isotope span.cm-variable-2 {color: #0066ff;}.cm-s-isotope span.cm-def {color: #ff9900;}.cm-s-isotope span.cm-error {background: #ff0000;color: #c0c0c0;}.cm-s-isotope span.cm-bracket {color: #e0e0e0;}.cm-s-isotope span.cm-tag {color: #ff0000;}.cm-s-isotope span.cm-link {color: #cc00ff;}.cm-s-isotope .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-isotope .CodeMirror-activeline-background {background: #202020;}/*
|
1358 |
http://lesscss.org/ dark theme
|
1359 |
Ported to CodeMirror by Peter Kroon
|
1360 |
+
*/.cm-s-lesser-dark {line-height: 1.3em;}.cm-s-lesser-dark.CodeMirror {background: #262626;color: #EBEFE7;text-shadow: 0 -1px 1px #262626;}.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B;}/* 33322B*/.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line > span::selection,.cm-s-lesser-dark .CodeMirror-line > span > span::selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-lesser-dark pre {padding: 0 8px;}/*editable code holder*/.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket {color: #7EFC7E;}/*65FC65*/.cm-s-lesser-dark .CodeMirror-gutters {background: #262626;border-right: 1px solid #aaa;}.cm-s-lesser-dark .CodeMirror-guttermarker {color: #599eff;}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-lesser-dark .CodeMirror-linenumber {color: #777;}.cm-s-lesser-dark span.cm-header {color: #a0a;}.cm-s-lesser-dark span.cm-quote {color: #090;}.cm-s-lesser-dark span.cm-keyword {color: #599eff;}.cm-s-lesser-dark span.cm-atom {color: #C2B470;}.cm-s-lesser-dark span.cm-number {color: #B35E4D;}.cm-s-lesser-dark span.cm-def {color: white;}.cm-s-lesser-dark span.cm-variable {color: #D9BF8C;}.cm-s-lesser-dark span.cm-variable-2 {color: #669199;}.cm-s-lesser-dark span.cm-variable-3,.cm-s-lesser-dark span.cm-type {color: white;}.cm-s-lesser-dark span.cm-property {color: #92A75C;}.cm-s-lesser-dark span.cm-operator {color: #92A75C;}.cm-s-lesser-dark span.cm-comment {color: #666;}.cm-s-lesser-dark span.cm-string {color: #BCD279;}.cm-s-lesser-dark span.cm-string-2 {color: #f50;}.cm-s-lesser-dark span.cm-meta {color: #738C73;}.cm-s-lesser-dark span.cm-qualifier {color: #555;}.cm-s-lesser-dark span.cm-builtin {color: #ff9e59;}.cm-s-lesser-dark span.cm-bracket {color: #EBEFE7;}.cm-s-lesser-dark span.cm-tag {color: #669199;}.cm-s-lesser-dark span.cm-attribute {color: #00c;}.cm-s-lesser-dark span.cm-hr {color: #999;}.cm-s-lesser-dark span.cm-link {color: #00c;}.cm-s-lesser-dark span.cm-error {color: #9d1e15;}.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A;}.cm-s-lesser-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-liquibyte.CodeMirror {background-color: #000;color: #fff;line-height: 1.2em;font-size: 1em;}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {text-decoration: underline;-webkit-text-decoration-color: #0f0;text-decoration-color: #0f0;-webkit-text-decoration-style: wavy;text-decoration-style: wavy;}.cm-s-liquibyte .cm-trailingspace {text-decoration: line-through;-webkit-text-decoration-color: #f00;text-decoration-color: #f00;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .cm-tab {text-decoration: line-through;-webkit-text-decoration-color: #404040;text-decoration-color: #404040;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .CodeMirror-gutters {background-color: #262626;border-right: 1px solid #505050;padding-right: 0.8em;}.cm-s-liquibyte .CodeMirror-gutter-elt div {font-size: 1.2em;}.cm-s-liquibyte .CodeMirror-linenumber {color: #606060;padding-left: 0;}.cm-s-liquibyte .CodeMirror-cursor {border-left: 1px solid #eee;}.cm-s-liquibyte span.cm-comment {color: #008000;}.cm-s-liquibyte span.cm-def {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-keyword {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-builtin {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-variable {color: #5967ff;font-weight: bold;}.cm-s-liquibyte span.cm-string {color: #ff8000;}.cm-s-liquibyte span.cm-number {color: #0f0;font-weight: bold;}.cm-s-liquibyte span.cm-atom {color: #bf3030;font-weight: bold;}.cm-s-liquibyte span.cm-variable-2 {color: #007f7f;font-weight: bold;}.cm-s-liquibyte span.cm-variable-3,.cm-s-liquibyte span.cm-type {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-property {color: #999;font-weight: bold;}.cm-s-liquibyte span.cm-operator {color: #fff;}.cm-s-liquibyte span.cm-meta {color: #0f0;}.cm-s-liquibyte span.cm-qualifier {color: #fff700;font-weight: bold;}.cm-s-liquibyte span.cm-bracket {color: #cc7;}.cm-s-liquibyte span.cm-tag {color: #ff0;font-weight: bold;}.cm-s-liquibyte span.cm-attribute {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-error {color: #f00;}.cm-s-liquibyte div.CodeMirror-selected {background-color: rgba(255, 0, 0, 0.25);}.cm-s-liquibyte span.cm-compilation {background-color: rgba(255, 255, 255, 0.12);}.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15);}/* Default styles for common addons */.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket {color: #0f0;font-weight: bold;}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket {color: #f00;font-weight: bold;}.CodeMirror-matchingtag {background-color: rgba(150, 255, 0, 0.3);}/* Scrollbars *//* Simple */.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {background-color: rgba(80, 80, 80, 0.7);}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {background-color: rgba(80, 80, 80, 0.3);border: 1px solid #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {border-top: 1px solid #404040;border-bottom: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {border-left: 1px solid #404040;border-right: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {background-color: #262626;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {background-color: #262626;border-top: 1px solid #404040;}/* Overlay */.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div {background-color: #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {border: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {border: 1px solid #404040;}/*
|
1361 |
|
1362 |
Name: material
|
1363 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1364 |
|
1365 |
Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
|
1366 |
|
1367 |
+
*/.cm-s-material.CodeMirror {background-color: #263238;color: #e9eded;}.cm-s-material .CodeMirror-gutters {background: #263238;color: #537f7e;border: none;}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber {color: #537f7e;}.cm-s-material .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-material div.CodeMirror-selected {background: rgba(255, 255, 255, 0.15);}.cm-s-material.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line > span::selection,.cm-s-material .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line > span::-moz-selection,.cm-s-material .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-material .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0);}.cm-s-material .cm-keyword {color: #c792ea;}.cm-s-material .cm-operator {color: #e9eded;}.cm-s-material .cm-variable-2 {color: #80CBC4;}.cm-s-material .cm-variable-3,.cm-s-material .cm-type {color: #82B1FF;}.cm-s-material .cm-builtin {color: #DECB6B;}.cm-s-material .cm-atom {color: #F77669;}.cm-s-material .cm-number {color: #F77669;}.cm-s-material .cm-def {color: #e9eded;}.cm-s-material .cm-string {color: #C3E88D;}.cm-s-material .cm-string-2 {color: #80CBC4;}.cm-s-material .cm-comment {color: #546E7A;}.cm-s-material .cm-variable {color: #82B1FF;}.cm-s-material .cm-tag {color: #80CBC4;}.cm-s-material .cm-meta {color: #80CBC4;}.cm-s-material .cm-attribute {color: #FFCB6B;}.cm-s-material .cm-property {color: #80CBAE;}.cm-s-material .cm-qualifier {color: #DECB6B;}.cm-s-material .cm-variable-3,.cm-s-material .cm-type {color: #DECB6B;}.cm-s-material .cm-tag {color: #ff5370;}.cm-s-material .cm-error {color: #ffffff;background-color: #EC5F67;}.cm-s-material .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/****************************************************************//* Based on mbonaci's Brackets mbo theme *//* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme *//* Create your own: http://tmtheme-editor.herokuapp.com *//****************************************************************/.cm-s-mbo.CodeMirror {
|
1368 |
background: #2c2c2c;
|
1369 |
color: #ffffec;
|
1370 |
}
|
1542 |
color: #690;
|
1543 |
}
|
1544 |
|
1545 |
+
.cm-s-mdn-like span.cm-variable-3,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-type {
|
1546 |
color: #07a;
|
1547 |
}
|
1548 |
|
1628 |
color: #D1EDFF;
|
1629 |
}
|
1630 |
|
|
|
|
|
|
|
|
|
|
|
1631 |
.cm-s-midnight div.CodeMirror-selected {
|
1632 |
background: #314D67;
|
1633 |
}
|
1721 |
.cm-s-midnight .CodeMirror-matchingbracket {
|
1722 |
text-decoration: underline;
|
1723 |
color: white !important;
|
1724 |
+
}/* Based on Sublime Text's Monokai theme */.cm-s-monokai.CodeMirror {background: #272822;color: #f8f8f2;}.cm-s-monokai div.CodeMirror-selected {background: #49483E;}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line > span::selection,.cm-s-monokai .CodeMirror-line > span > span::selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-gutters {background: #272822;border-right: 0px;}.cm-s-monokai .CodeMirror-guttermarker {color: white;}.cm-s-monokai .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-monokai span.cm-comment {color: #75715e;}.cm-s-monokai span.cm-atom {color: #ae81ff;}.cm-s-monokai span.cm-number {color: #ae81ff;}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute {color: #a6e22e;}.cm-s-monokai span.cm-keyword {color: #f92672;}.cm-s-monokai span.cm-builtin {color: #66d9ef;}.cm-s-monokai span.cm-string {color: #e6db74;}.cm-s-monokai span.cm-variable {color: #f8f8f2;}.cm-s-monokai span.cm-variable-2 {color: #9effff;}.cm-s-monokai span.cm-variable-3,.cm-s-monokai span.cm-type {color: #66d9ef;}.cm-s-monokai span.cm-def {color: #fd971f;}.cm-s-monokai span.cm-bracket {color: #f8f8f2;}.cm-s-monokai span.cm-tag {color: #f92672;}.cm-s-monokai span.cm-header {color: #ae81ff;}.cm-s-monokai span.cm-link {color: #ae81ff;}.cm-s-monokai span.cm-error {background: #f92672;color: #f8f8f0;}.cm-s-monokai .CodeMirror-activeline-background {background: #373831;}.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-neat span.cm-comment {color: #a86;}.cm-s-neat span.cm-keyword {line-height: 1em;font-weight: bold;color: blue;}.cm-s-neat span.cm-string {color: #a22;}.cm-s-neat span.cm-builtin {line-height: 1em;font-weight: bold;color: #077;}.cm-s-neat span.cm-special {line-height: 1em;font-weight: bold;color: #0aa;}.cm-s-neat span.cm-variable {color: black;}.cm-s-neat span.cm-number,.cm-s-neat span.cm-atom {color: #3a3;}.cm-s-neat span.cm-meta {color: #555;}.cm-s-neat span.cm-link {color: #3a3;}.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-neat .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}/* neo theme for codemirror *//* Color scheme */.cm-s-neo.CodeMirror {background-color: #ffffff;color: #2e383c;line-height: 1.4375;}.cm-s-neo .cm-comment {color: #75787b;}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property {color: #1d75b3;}.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color: #75438a;}.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color: #9c3328;}.cm-s-neo .cm-string {color: #b35e14;}.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color: #047d65;}/* Editor styling */.cm-s-neo pre {padding: 0;}.cm-s-neo .CodeMirror-gutters {border: none;border-right: 10px solid transparent;background-color: transparent;}.cm-s-neo .CodeMirror-linenumber {padding: 0;color: #e0e2e5;}.cm-s-neo .CodeMirror-guttermarker {color: #1d75b3;}.cm-s-neo .CodeMirror-guttermarker-subtle {color: #e0e2e5;}.cm-s-neo .CodeMirror-cursor {width: auto;border: 0;background: rgba(155, 157, 162, 0.37);z-index: 1;}/* Loosely based on the Midnight Textmate theme */.cm-s-night.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-night div.CodeMirror-selected {background: #447;}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line > span::selection,.cm-s-night .CodeMirror-line > span > span::selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-night .CodeMirror-guttermarker {color: white;}.cm-s-night .CodeMirror-guttermarker-subtle {color: #bbb;}.cm-s-night .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-night .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-night span.cm-comment {color: #8900d1;}.cm-s-night span.cm-atom {color: #845dc4;}.cm-s-night span.cm-number,.cm-s-night span.cm-attribute {color: #ffd500;}.cm-s-night span.cm-keyword {color: #599eff;}.cm-s-night span.cm-string {color: #37f14a;}.cm-s-night span.cm-meta {color: #7678e2;}.cm-s-night span.cm-variable-2,.cm-s-night span.cm-tag {color: #99b2ff;}.cm-s-night span.cm-variable-3,.cm-s-night span.cm-def,.cm-s-night span.cm-type {color: white;}.cm-s-night span.cm-bracket {color: #8da6ce;}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special {color: #ff9e59;}.cm-s-night span.cm-link {color: #845dc4;}.cm-s-night span.cm-error {color: #9d1e15;}.cm-s-night .CodeMirror-activeline-background {background: #1C005A;}.cm-s-night .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1725 |
Name: Panda Syntax
|
1726 |
Author: Siamak Mokhtari (http://github.com/siamak/)
|
1727 |
CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
|
1728 |
+
*/.cm-s-panda-syntax {background: #292A2B;color: #E6E6E6;line-height: 1.5;font-family: 'Operator Mono', 'Source Sans Pro', Menlo, Monaco, Consolas, Courier New, monospace;}.cm-s-panda-syntax .CodeMirror-cursor {border-color: #ff2c6d;}.cm-s-panda-syntax .CodeMirror-activeline-background {background: rgba(99, 123, 156, 0.1);}.cm-s-panda-syntax .CodeMirror-selected {background: #FFF;}.cm-s-panda-syntax .cm-comment {font-style: italic;color: #676B79;}.cm-s-panda-syntax .cm-operator {color: #f3f3f3;}.cm-s-panda-syntax .cm-string {color: #19F9D8;}.cm-s-panda-syntax .cm-string-2 {color: #FFB86C;}.cm-s-panda-syntax .cm-tag {color: #ff2c6d;}.cm-s-panda-syntax .cm-meta {color: #b084eb;}.cm-s-panda-syntax .cm-number {color: #FFB86C;}.cm-s-panda-syntax .cm-atom {color: #ff2c6d;}.cm-s-panda-syntax .cm-keyword {color: #FF75B5;}.cm-s-panda-syntax .cm-variable {color: #ffb86c;}.cm-s-panda-syntax .cm-variable-2 {color: #ff9ac1;}.cm-s-panda-syntax .cm-variable-3,.cm-s-panda-syntax .cm-type {color: #ff9ac1;}.cm-s-panda-syntax .cm-def {color: #e6e6e6;}.cm-s-panda-syntax .cm-property {color: #f3f3f3;}.cm-s-panda-syntax .cm-unit {color: #ffb86c;}.cm-s-panda-syntax .cm-attribute {color: #ffb86c;}.cm-s-panda-syntax .CodeMirror-matchingbracket {border-bottom: 1px dotted #19F9D8;padding-bottom: 2px;color: #e6e6e6;}.cm-s-panda-syntax .CodeMirror-gutters {background: #292a2b;border-right-color: rgba(255, 255, 255, 0.1);}.cm-s-panda-syntax .CodeMirror-linenumber {color: #e6e6e6;opacity: 0.6;}/*
|
1729 |
|
1730 |
Name: Paraíso (Dark)
|
1731 |
Author: Jan T. Sott
|
1748 |
* @author Dennis Thompson, AtomicPages LLC
|
1749 |
* @version 1.1
|
1750 |
* @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
|
1751 |
+
*/.cm-s-pastel-on-dark.CodeMirror {background: #2c2827;color: #8F938F;line-height: 1.5;}.cm-s-pastel-on-dark div.CodeMirror-selected {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line > span::selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(221, 240, 255, 0.2);}.cm-s-pastel-on-dark .CodeMirror-gutters {background: #34302f;border-right: 0px;padding: 0 3px;}.cm-s-pastel-on-dark .CodeMirror-guttermarker {color: white;}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-linenumber {color: #8F938F;}.cm-s-pastel-on-dark .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-pastel-on-dark span.cm-comment {color: #A6C6FF;}.cm-s-pastel-on-dark span.cm-atom {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-number {color: #CCCCCC;}.cm-s-pastel-on-dark span.cm-property {color: #8F938F;}.cm-s-pastel-on-dark span.cm-attribute {color: #a6e22e;}.cm-s-pastel-on-dark span.cm-keyword {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-string {color: #66A968;}.cm-s-pastel-on-dark span.cm-variable {color: #AEB2F8;}.cm-s-pastel-on-dark span.cm-variable-2 {color: #BEBF55;}.cm-s-pastel-on-dark span.cm-variable-3,.cm-s-pastel-on-dark span.cm-type {color: #DE8E30;}.cm-s-pastel-on-dark span.cm-def {color: #757aD8;}.cm-s-pastel-on-dark span.cm-bracket {color: #f8f8f2;}.cm-s-pastel-on-dark span.cm-tag {color: #C1C144;}.cm-s-pastel-on-dark span.cm-link {color: #ae81ff;}.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin {color: #C1C144;}.cm-s-pastel-on-dark span.cm-error {background: #757aD8;color: #f8f8f0;}.cm-s-pastel-on-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.031);}.cm-s-pastel-on-dark .CodeMirror-matchingbracket {border: 1px solid rgba(255, 255, 255, 0.25);color: #8F938F !important;margin: -1px -1px 0 -1px;}/*
|
1752 |
|
1753 |
Name: Railscasts
|
1754 |
Author: Ryan Bates (http://railscasts.com)
|
1756 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
1757 |
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
1758 |
|
1759 |
+
*/.cm-s-railscasts.CodeMirror {background: #2b2b2b;color: #f4f1ed;}.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b;border-right: 0px;}.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}.cm-s-railscasts span.cm-comment {color: #bc9458;}.cm-s-railscasts span.cm-atom {color: #b6b3eb;}.cm-s-railscasts span.cm-number {color: #b6b3eb;}.cm-s-railscasts span.cm-property,.cm-s-railscasts span.cm-attribute {color: #a5c261;}.cm-s-railscasts span.cm-keyword {color: #da4939;}.cm-s-railscasts span.cm-string {color: #ffc66d;}.cm-s-railscasts span.cm-variable {color: #a5c261;}.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}.cm-s-railscasts span.cm-def {color: #cc7833;}.cm-s-railscasts span.cm-error {background: #da4939;color: #d4cfc9;}.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}.cm-s-railscasts span.cm-tag {color: #da4939;}.cm-s-railscasts span.cm-link {color: #b6b3eb;}.cm-s-railscasts .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-railscasts .CodeMirror-activeline-background {background: #303040;}.cm-s-rubyblue.CodeMirror {background: #112435;color: white;}.cm-s-rubyblue div.CodeMirror-selected {background: #38566F;}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line > span::selection,.cm-s-rubyblue .CodeMirror-line > span > span::selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span::-moz-selection,.cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection {background: rgba(56, 86, 111, 0.99);}.cm-s-rubyblue .CodeMirror-gutters {background: #1F4661;border-right: 7px solid #3E7087;}.cm-s-rubyblue .CodeMirror-guttermarker {color: white;}.cm-s-rubyblue .CodeMirror-guttermarker-subtle {color: #3E7087;}.cm-s-rubyblue .CodeMirror-linenumber {color: white;}.cm-s-rubyblue .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-rubyblue span.cm-comment {color: #999;font-style: italic;line-height: 1em;}.cm-s-rubyblue span.cm-atom {color: #F4C20B;}.cm-s-rubyblue span.cm-number,.cm-s-rubyblue span.cm-attribute {color: #82C6E0;}.cm-s-rubyblue span.cm-keyword {color: #F0F;}.cm-s-rubyblue span.cm-string {color: #F08047;}.cm-s-rubyblue span.cm-meta {color: #F0F;}.cm-s-rubyblue span.cm-variable-2,.cm-s-rubyblue span.cm-tag {color: #7BD827;}.cm-s-rubyblue span.cm-variable-3,.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-type {color: white;}.cm-s-rubyblue span.cm-bracket {color: #F0F;}.cm-s-rubyblue span.cm-link {color: #F4C20B;}.cm-s-rubyblue span.CodeMirror-matchingbracket {color: #F0F !important;}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special {color: #FF9D00;}.cm-s-rubyblue span.cm-error {color: #AF2018;}.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047;}/*
|
1760 |
|
1761 |
Name: seti
|
1762 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1763 |
|
1764 |
Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
|
1765 |
|
1766 |
+
*/.cm-s-seti.CodeMirror {background-color: #151718 !important;color: #CFD2D1 !important;border: none;}.cm-s-seti .CodeMirror-gutters {color: #404b53;background-color: #0E1112;border: none;}.cm-s-seti .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-seti .CodeMirror-linenumber {color: #6D8A88;}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line > span::selection,.cm-s-seti .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti span.cm-comment {color: #41535b;}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2 {color: #55b5db;}.cm-s-seti span.cm-number {color: #cd3f45;}.cm-s-seti span.cm-variable {color: #55b5db;}.cm-s-seti span.cm-variable-2 {color: #a074c4;}.cm-s-seti span.cm-def {color: #55b5db;}.cm-s-seti span.cm-keyword {color: #ff79c6;}.cm-s-seti span.cm-operator {color: #9fca56;}.cm-s-seti span.cm-keyword {color: #e6cd69;}.cm-s-seti span.cm-atom {color: #cd3f45;}.cm-s-seti span.cm-meta {color: #55b5db;}.cm-s-seti span.cm-tag {color: #55b5db;}.cm-s-seti span.cm-attribute {color: #9fca56;}.cm-s-seti span.cm-qualifier {color: #9fca56;}.cm-s-seti span.cm-property {color: #a074c4;}.cm-s-seti span.cm-variable-3,.cm-s-seti span.cm-type {color: #9fca56;}.cm-s-seti span.cm-builtin {color: #9fca56;}.cm-s-seti .CodeMirror-activeline-background {background: #101213;}.cm-s-seti .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
|
1767 |
Solarized theme for code-mirror
|
1768 |
http://ethanschoonover.com/solarized
|
1769 |
*//*
|
1770 |
Solarized color palette
|
1771 |
http://ethanschoonover.com/solarized/img/solarized-palette.png
|
1772 |
+
*/.solarized.base03 {color: #002b36;}.solarized.base02 {color: #073642;}.solarized.base01 {color: #586e75;}.solarized.base00 {color: #657b83;}.solarized.base0 {color: #839496;}.solarized.base1 {color: #93a1a1;}.solarized.base2 {color: #eee8d5;}.solarized.base3 {color: #fdf6e3;}.solarized.solar-yellow {color: #b58900;}.solarized.solar-orange {color: #cb4b16;}.solarized.solar-red {color: #dc322f;}.solarized.solar-magenta {color: #d33682;}.solarized.solar-violet {color: #6c71c4;}.solarized.solar-blue {color: #268bd2;}.solarized.solar-cyan {color: #2aa198;}.solarized.solar-green {color: #859900;}/* Color scheme for code-mirror */.cm-s-solarized {line-height: 1.45em;color-profile: sRGB;rendering-intent: auto;}.cm-s-solarized.cm-s-dark {color: #839496;background-color: #002b36;text-shadow: #002b36 0 1px;}.cm-s-solarized.cm-s-light {background-color: #fdf6e3;color: #657b83;text-shadow: #eee8d5 0 1px;}.cm-s-solarized .CodeMirror-widget {text-shadow: none;}.cm-s-solarized .cm-header {color: #586e75;}.cm-s-solarized .cm-quote {color: #93a1a1;}.cm-s-solarized .cm-keyword {color: #cb4b16;}.cm-s-solarized .cm-atom {color: #d33682;}.cm-s-solarized .cm-number {color: #d33682;}.cm-s-solarized .cm-def {color: #2aa198;}.cm-s-solarized .cm-variable {color: #839496;}.cm-s-solarized .cm-variable-2 {color: #b58900;}.cm-s-solarized .cm-variable-3,.cm-s-solarized .cm-type {color: #6c71c4;}.cm-s-solarized .cm-property {color: #2aa198;}.cm-s-solarized .cm-operator {color: #6c71c4;}.cm-s-solarized .cm-comment {color: #586e75;font-style: italic;}.cm-s-solarized .cm-string {color: #859900;}.cm-s-solarized .cm-string-2 {color: #b58900;}.cm-s-solarized .cm-meta {color: #859900;}.cm-s-solarized .cm-qualifier {color: #b58900;}.cm-s-solarized .cm-builtin {color: #d33682;}.cm-s-solarized .cm-bracket {color: #cb4b16;}.cm-s-solarized .CodeMirror-matchingbracket {color: #859900;}.cm-s-solarized .CodeMirror-nonmatchingbracket {color: #dc322f;}.cm-s-solarized .cm-tag {color: #93a1a1;}.cm-s-solarized .cm-attribute {color: #2aa198;}.cm-s-solarized .cm-hr {color: transparent;border-top: 1px solid #586e75;display: block;}.cm-s-solarized .cm-link {color: #93a1a1;cursor: pointer;}.cm-s-solarized .cm-special {color: #6c71c4;}.cm-s-solarized .cm-em {color: #999;text-decoration: underline;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-solarized .cm-strong {color: #eee;}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar {color: #586e75;border-bottom: 1px dotted #dc322f;}.cm-s-solarized.cm-s-dark div.CodeMirror-selected {background: #073642;}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark.CodeMirror ::selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection,.cm-s-dark .CodeMirror-line > span::-moz-selection,.cm-s-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-light div.CodeMirror-selected {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-light .CodeMirror-line > span::-moz-selection,.cm-s-light .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::selection,.cm-s-light .CodeMirror-line > span::selection,.cm-s-light .CodeMirror-line > span > span::selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-ligh .CodeMirror-line > span::-moz-selection,.cm-s-ligh .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}/* Editor styling *//* Little shadow on the view-port of the buffer view */.cm-s-solarized.CodeMirror {box-shadow: inset 7px 0 12px -6px #000;}/* Remove gutter border */.cm-s-solarized .CodeMirror-gutters {border-right: 0;}/* Gutter colors and line number styling based of color scheme (dark / light) *//* Dark */.cm-s-solarized.cm-s-dark .CodeMirror-gutters {background-color: #073642;}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {color: #586e75;text-shadow: #021014 0 -1px;}/* Light */.cm-s-solarized.cm-s-light .CodeMirror-gutters {background-color: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-linenumber {color: #839496;}/* Common */.cm-s-solarized .CodeMirror-linenumber {padding: 0 5px;}.cm-s-solarized .CodeMirror-guttermarker-subtle {color: #586e75;}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker {color: #ddd;}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker {color: #cb4b16;}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {color: #586e75;}/* Cursor */.cm-s-solarized .CodeMirror-cursor {border-left: 1px solid #819090;}/* Fat cursor */.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor {background: #77ee77;}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor {background-color: #77ee77;}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor {background: #586e75;}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor {background-color: #586e75;}/* Active line */.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.06);}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0.06);}.cm-s-the-matrix.CodeMirror {background: #000000;color: #00FF00;}.cm-s-the-matrix div.CodeMirror-selected {background: #2D2D2D;}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line > span::selection,.cm-s-the-matrix .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-gutters {background: #060;border-right: 2px solid #00FF00;}.cm-s-the-matrix .CodeMirror-guttermarker {color: #0f0;}.cm-s-the-matrix .CodeMirror-guttermarker-subtle {color: white;}.cm-s-the-matrix .CodeMirror-linenumber {color: #FFFFFF;}.cm-s-the-matrix .CodeMirror-cursor {border-left: 1px solid #00FF00;}.cm-s-the-matrix span.cm-keyword {color: #008803;font-weight: bold;}.cm-s-the-matrix span.cm-atom {color: #3FF;}.cm-s-the-matrix span.cm-number {color: #FFB94F;}.cm-s-the-matrix span.cm-def {color: #99C;}.cm-s-the-matrix span.cm-variable {color: #F6C;}.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}.cm-s-the-matrix span.cm-variable-3,.cm-s-the-matrix span.cm-type {color: #96F;}.cm-s-the-matrix span.cm-property {color: #62FFA0;}.cm-s-the-matrix span.cm-operator {color: #999;}.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}.cm-s-the-matrix span.cm-string {color: #39C;}.cm-s-the-matrix span.cm-meta {color: #C9F;}.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}.cm-s-the-matrix span.cm-builtin {color: #30a;}.cm-s-the-matrix span.cm-bracket {color: #cc7;}.cm-s-the-matrix span.cm-tag {color: #FFBD40;}.cm-s-the-matrix span.cm-attribute {color: #FFF700;}.cm-s-the-matrix span.cm-error {color: #FF0000;}.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}/*
|
1773 |
|
1774 |
Name: Tomorrow Night - Bright
|
1775 |
Author: Chris Kempson
|
1784 |
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
|
1785 |
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
|
1786 |
|
1787 |
+
*/.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000;color: #CCCCCC;}.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D;}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker {color: #f2777a;}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A;}.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-property,.cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a;color: #6A6A6A;}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600;}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-ttcn .cm-quote {color: #090;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-header,.cm-strong {font-weight: bold;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-link {text-decoration: underline;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-header {color: #00f;font-weight: bold;}.cm-s-ttcn .cm-atom {color: #219;}.cm-s-ttcn .cm-attribute {color: #00c;}.cm-s-ttcn .cm-bracket {color: #997;}.cm-s-ttcn .cm-comment {color: #333333;}.cm-s-ttcn .cm-def {color: #00f;}.cm-s-ttcn .cm-em {font-style: italic;}.cm-s-ttcn .cm-error {color: #f00;}.cm-s-ttcn .cm-hr {color: #999;}.cm-s-ttcn .cm-invalidchar {color: #f00;}.cm-s-ttcn .cm-keyword {font-weight: bold;}.cm-s-ttcn .cm-link {color: #00c;text-decoration: underline;}.cm-s-ttcn .cm-meta {color: #555;}.cm-s-ttcn .cm-negative {color: #d44;}.cm-s-ttcn .cm-positive {color: #292;}.cm-s-ttcn .cm-qualifier {color: #555;}.cm-s-ttcn .cm-strikethrough {text-decoration: line-through;}.cm-s-ttcn .cm-string {color: #006400;}.cm-s-ttcn .cm-string-2 {color: #f50;}.cm-s-ttcn .cm-strong {font-weight: bold;}.cm-s-ttcn .cm-tag {color: #170;}.cm-s-ttcn .cm-variable {color: #8B2252;}.cm-s-ttcn .cm-variable-2 {color: #05a;}.cm-s-ttcn .cm-variable-3,.cm-s-ttcn .cm-type {color: #085;}.cm-s-ttcn .cm-invalidchar {color: #f00;}/* ASN */.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes {color: #27408B;}.cm-s-ttcn .cm-cmipVerbs {color: #8B2252;}.cm-s-ttcn .cm-modifier {color: #D2691E;}.cm-s-ttcn .cm-status {color: #8B4545;}.cm-s-ttcn .cm-storage {color: #A020F0;}.cm-s-ttcn .cm-tags {color: #006400;}/* CFG */.cm-s-ttcn .cm-externalCommands {color: #8B4545;font-weight: bold;}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle {color: #2E8B57;font-weight: bold;}/* TTCN */.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts {color: #006400;}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps {color: #0000FF;}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros {color: #27408B;}.cm-s-ttcn .cm-types {color: #A52A2A;font-weight: bold;}.cm-s-ttcn .cm-visibilityModifiers {font-weight: bold;}.cm-s-twilight.CodeMirror {background: #141414;color: #f7f7f7;}/**/.cm-s-twilight div.CodeMirror-selected {background: #323232;}/**/.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line > span::selection,.cm-s-twilight .CodeMirror-line > span > span::selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line > span::-moz-selection,.cm-s-twilight .CodeMirror-line > span > span::-moz-selection {background: rgba(50, 50, 50, 0.99);}.cm-s-twilight .CodeMirror-gutters {background: #222;border-right: 1px solid #aaa;}.cm-s-twilight .CodeMirror-guttermarker {color: white;}.cm-s-twilight .CodeMirror-guttermarker-subtle {color: #aaa;}.cm-s-twilight .CodeMirror-linenumber {color: #aaa;}.cm-s-twilight .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-twilight .cm-keyword {color: #f9ee98;}/**/.cm-s-twilight .cm-atom {color: #FC0;}.cm-s-twilight .cm-number {color: #ca7841;}/**/.cm-s-twilight .cm-def {color: #8DA6CE;}.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-tag {color: #607392;}/**/.cm-s-twilight span.cm-variable-3,.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-type {color: #607392;}/**/.cm-s-twilight .cm-operator {color: #cda869;}/**/.cm-s-twilight .cm-comment {color: #777;font-style: italic;font-weight: normal;}/**/.cm-s-twilight .cm-string {color: #8f9d6a;font-style: italic;}/**/.cm-s-twilight .cm-string-2 {color: #bd6b18;}/*?*/.cm-s-twilight .cm-meta {background-color: #141414;color: #f7f7f7;}/*?*/.cm-s-twilight .cm-builtin {color: #cda869;}/*?*/.cm-s-twilight .cm-tag {color: #997643;}/**/.cm-s-twilight .cm-attribute {color: #d6bb6d;}/*?*/.cm-s-twilight .cm-header {color: #FF6400;}.cm-s-twilight .cm-hr {color: #AEAEAE;}.cm-s-twilight .cm-link {color: #ad9361;font-style: italic;text-decoration: none;}/**/.cm-s-twilight .cm-error {border-bottom: 1px solid red;}.cm-s-twilight .CodeMirror-activeline-background {background: #27282E;}.cm-s-twilight .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/* Taken from the popular Visual Studio Vibrant Ink Schema */.cm-s-vibrant-ink.CodeMirror {background: black;color: white;}.cm-s-vibrant-ink div.CodeMirror-selected {background: #35493c;}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line > span::selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection {background: rgba(53, 73, 60, 0.99);}.cm-s-vibrant-ink .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-vibrant-ink .CodeMirror-guttermarker {color: white;}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-vibrant-ink .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-vibrant-ink .cm-keyword {color: #CC7832;}.cm-s-vibrant-ink .cm-atom {color: #FC0;}.cm-s-vibrant-ink .cm-number {color: #FFEE98;}.cm-s-vibrant-ink .cm-def {color: #8DA6CE;}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant span.cm-tag {color: #FFC66D;}.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-type {color: #FFC66D;}.cm-s-vibrant-ink .cm-operator {color: #888;}.cm-s-vibrant-ink .cm-comment {color: gray;font-weight: bold;}.cm-s-vibrant-ink .cm-string {color: #A5C25C;}.cm-s-vibrant-ink .cm-string-2 {color: red;}.cm-s-vibrant-ink .cm-meta {color: #D8FA3C;}.cm-s-vibrant-ink .cm-builtin {color: #8DA6CE;}.cm-s-vibrant-ink .cm-tag {color: #8DA6CE;}.cm-s-vibrant-ink .cm-attribute {color: #8DA6CE;}.cm-s-vibrant-ink .cm-header {color: #FF6400;}.cm-s-vibrant-ink .cm-hr {color: #AEAEAE;}.cm-s-vibrant-ink .cm-link {color: blue;}.cm-s-vibrant-ink .cm-error {border-bottom: 1px solid red;}.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E;}.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1788 |
Copyright (C) 2011 by MarkLogic Corporation
|
1789 |
Author: Mike Brevoort <mike@brevoort.com>
|
1790 |
|
1805 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
1806 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
1807 |
THE SOFTWARE.
|
1808 |
+
*/.cm-s-xq-dark.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-xq-dark div.CodeMirror-selected {background: #27007A;}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line > span::selection,.cm-s-xq-dark .CodeMirror-line > span > span::selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span::-moz-selection,.cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(39, 0, 122, 0.99);}.cm-s-xq-dark .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-xq-dark .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-xq-dark .CodeMirror-guttermarker-subtle {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-xq-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}.cm-s-xq-dark span.cm-number {color: #164;}.cm-s-xq-dark span.cm-def {color: #FFF;text-decoration: underline;}.cm-s-xq-dark span.cm-variable {color: #FFF;}.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}.cm-s-xq-dark span.cm-variable-3,.cm-s-xq-dark span.cm-type {color: #DDD;}.cm-s-xq-dark span.cm-comment {color: gray;}.cm-s-xq-dark span.cm-string {color: #9FEE00;}.cm-s-xq-dark span.cm-meta {color: yellow;}.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}.cm-s-xq-dark span.cm-builtin {color: #30a;}.cm-s-xq-dark span.cm-bracket {color: #cc7;}.cm-s-xq-dark span.cm-tag {color: #FFBD40;}.cm-s-xq-dark span.cm-attribute {color: #FFF700;}.cm-s-xq-dark span.cm-error {color: #f00;}.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E;}.cm-s-xq-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
|
1809 |
Copyright (C) 2011 by MarkLogic Corporation
|
1810 |
Author: Mike Brevoort <mike@brevoort.com>
|
1811 |
|
1826 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
1827 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
1828 |
THE SOFTWARE.
|
1829 |
+
*/.cm-s-xq-light span.cm-keyword {line-height: 1em;font-weight: bold;color: #5A5CAD;}.cm-s-xq-light span.cm-atom {color: #6C8CD5;}.cm-s-xq-light span.cm-number {color: #164;}.cm-s-xq-light span.cm-def {text-decoration: underline;}.cm-s-xq-light span.cm-variable {color: black;}.cm-s-xq-light span.cm-variable-2 {color: black;}.cm-s-xq-light span.cm-variable-3,.cm-s-xq-light span.cm-type {color: black;}.cm-s-xq-light span.cm-comment {color: #0080FF;font-style: italic;}.cm-s-xq-light span.cm-string {color: red;}.cm-s-xq-light span.cm-meta {color: yellow;}.cm-s-xq-light span.cm-qualifier {color: grey;}.cm-s-xq-light span.cm-builtin {color: #7EA656;}.cm-s-xq-light span.cm-bracket {color: #cc7;}.cm-s-xq-light span.cm-tag {color: #3F7F7F;}.cm-s-xq-light span.cm-attribute {color: #7F007F;}.cm-s-xq-light span.cm-error {color: #f00;}.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-xq-light .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;background: yellow;}/*
|
1830 |
|
1831 |
Name: yeti
|
1832 |
Author: Michael Kaminsky (http://github.com/mkaminsky11)
|
1833 |
|
1834 |
Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
|
1835 |
|
1836 |
+
*/.cm-s-yeti.CodeMirror {background-color: #ECEAE8 !important;color: #d1c9c0 !important;border: none;}.cm-s-yeti .CodeMirror-gutters {color: #adaba6;background-color: #E5E1DB;border: none;}.cm-s-yeti .CodeMirror-cursor {border-left: solid thin #d1c9c0;}.cm-s-yeti .CodeMirror-linenumber {color: #adaba6;}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line > span::selection,.cm-s-yeti .CodeMirror-line > span > span::selection {background: #DCD8D2;}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line > span::-moz-selection,.cm-s-yeti .CodeMirror-line > span > span::-moz-selection {background: #DCD8D2;}.cm-s-yeti span.cm-comment {color: #d4c8be;}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2 {color: #96c0d8;}.cm-s-yeti span.cm-number {color: #a074c4;}.cm-s-yeti span.cm-variable {color: #55b5db;}.cm-s-yeti span.cm-variable-2 {color: #a074c4;}.cm-s-yeti span.cm-def {color: #55b5db;}.cm-s-yeti span.cm-operator {color: #9fb96e;}.cm-s-yeti span.cm-keyword {color: #9fb96e;}.cm-s-yeti span.cm-atom {color: #a074c4;}.cm-s-yeti span.cm-meta {color: #96c0d8;}.cm-s-yeti span.cm-tag {color: #96c0d8;}.cm-s-yeti span.cm-attribute {color: #9fb96e;}.cm-s-yeti span.cm-qualifier {color: #96c0d8;}.cm-s-yeti span.cm-property {color: #a074c4;}.cm-s-yeti span.cm-builtin {color: #a074c4;}.cm-s-yeti span.cm-variable-3,.cm-s-yeti span.cm-type {color: #96c0d8;}.cm-s-yeti .CodeMirror-activeline-background {background: #E7E4E0;}.cm-s-yeti .CodeMirror-matchingbracket {text-decoration: underline;}/**
|
1837 |
* "
|
1838 |
* Using Zenburn color palette from the Emacs Zenburn Theme
|
1839 |
* https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
|
dist/hesh.js
CHANGED
@@ -1134,7 +1134,7 @@ function endOfLine(visually, cm, lineObj, lineNo, dir) {
|
|
1134 |
ch = dir < 0 ? lineObj.text.length - 1 : 0;
|
1135 |
var targetTop = measureCharPrepared(cm, prep, ch).top;
|
1136 |
ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
|
1137 |
-
if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1
|
1138 |
} else { ch = dir < 0 ? part.to : part.from; }
|
1139 |
return new Pos(lineNo, ch, sticky)
|
1140 |
}
|
@@ -1495,12 +1495,13 @@ function startState(mode, a1, a2) {
|
|
1495 |
// Fed to the mode parsers, provides helper functions to make
|
1496 |
// parsers more succinct.
|
1497 |
|
1498 |
-
var StringStream = function(string, tabSize) {
|
1499 |
this.pos = this.start = 0;
|
1500 |
this.string = string;
|
1501 |
this.tabSize = tabSize || 8;
|
1502 |
this.lastColumnPos = this.lastColumnValue = 0;
|
1503 |
this.lineStart = 0;
|
|
|
1504 |
};
|
1505 |
|
1506 |
StringStream.prototype.eol = function () {return this.pos >= this.string.length};
|
@@ -1567,23 +1568,65 @@ StringStream.prototype.hideFirstChars = function (n, inner) {
|
|
1567 |
try { return inner() }
|
1568 |
finally { this.lineStart -= n; }
|
1569 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1570 |
|
1571 |
// Compute a style array (an array starting with a mode generation
|
1572 |
// -- for invalidation -- followed by pairs of end positions and
|
1573 |
// style strings), which is used to highlight the tokens on the
|
1574 |
// line.
|
1575 |
-
function highlightLine(cm, line,
|
1576 |
// A styles array always starts with a number identifying the
|
1577 |
// mode/overlays that it is based on (for easy invalidation).
|
1578 |
var st = [cm.state.modeGen], lineClasses = {};
|
1579 |
// Compute the base array of styles
|
1580 |
-
runMode(cm, line.text, cm.doc.mode,
|
1581 |
-
|
|
|
1582 |
|
1583 |
// Run overlays, adjust style array.
|
1584 |
var loop = function ( o ) {
|
1585 |
var overlay = cm.state.overlays[o], i = 1, at = 0;
|
1586 |
-
|
|
|
1587 |
var start = i;
|
1588 |
// Ensure there's a token end at the current position, and that i points at it
|
1589 |
while (at < end) {
|
@@ -1607,49 +1650,54 @@ function highlightLine(cm, line, state, forceToEnd) {
|
|
1607 |
};
|
1608 |
|
1609 |
for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
|
|
|
1610 |
|
1611 |
return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
|
1612 |
}
|
1613 |
|
1614 |
function getLineStyles(cm, line, updateFrontier) {
|
1615 |
if (!line.styles || line.styles[0] != cm.state.modeGen) {
|
1616 |
-
var
|
1617 |
-
var
|
1618 |
-
|
|
|
|
|
1619 |
line.styles = result.styles;
|
1620 |
if (result.classes) { line.styleClasses = result.classes; }
|
1621 |
else if (line.styleClasses) { line.styleClasses = null; }
|
1622 |
-
if (updateFrontier === cm.doc.
|
|
|
1623 |
}
|
1624 |
return line.styles
|
1625 |
}
|
1626 |
|
1627 |
-
function
|
1628 |
var doc = cm.doc, display = cm.display;
|
1629 |
-
if (!doc.mode.startState) { return true }
|
1630 |
-
var
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
|
|
1638 |
});
|
1639 |
-
if (precise) { doc.
|
1640 |
-
return
|
1641 |
}
|
1642 |
|
1643 |
// Lightweight form of highlight -- proceed over this line and
|
1644 |
// update state, but don't save a style array. Used for lines that
|
1645 |
// aren't currently visible.
|
1646 |
-
function processLine(cm, text,
|
1647 |
var mode = cm.doc.mode;
|
1648 |
-
var stream = new StringStream(text, cm.options.tabSize);
|
1649 |
stream.start = stream.pos = startAt || 0;
|
1650 |
-
if (text == "") { callBlankLine(mode, state); }
|
1651 |
while (!stream.eol()) {
|
1652 |
-
readToken(mode, stream, state);
|
1653 |
stream.start = stream.pos;
|
1654 |
}
|
1655 |
}
|
@@ -1670,26 +1718,26 @@ function readToken(mode, stream, state, inner) {
|
|
1670 |
throw new Error("Mode " + mode.name + " failed to advance stream.")
|
1671 |
}
|
1672 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1673 |
// Utility for getTokenAt and getLineTokens
|
1674 |
function takeToken(cm, pos, precise, asArray) {
|
1675 |
-
var getObj = function (copy) { return ({
|
1676 |
-
start: stream.start, end: stream.pos,
|
1677 |
-
string: stream.current(),
|
1678 |
-
type: style || null,
|
1679 |
-
state: copy ? copyState(doc.mode, state) : state
|
1680 |
-
}); };
|
1681 |
-
|
1682 |
var doc = cm.doc, mode = doc.mode, style;
|
1683 |
pos = clipPos(doc, pos);
|
1684 |
-
var line = getLine(doc, pos.line),
|
1685 |
-
var stream = new StringStream(line.text, cm.options.tabSize), tokens;
|
1686 |
if (asArray) { tokens = []; }
|
1687 |
while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
|
1688 |
stream.start = stream.pos;
|
1689 |
-
style = readToken(mode, stream, state);
|
1690 |
-
if (asArray) { tokens.push(
|
1691 |
}
|
1692 |
-
return asArray ? tokens :
|
1693 |
}
|
1694 |
|
1695 |
function extractLineClasses(type, output) {
|
@@ -1707,21 +1755,21 @@ function extractLineClasses(type, output) {
|
|
1707 |
}
|
1708 |
|
1709 |
// Run the given mode's parser over a line, calling f for each token.
|
1710 |
-
function runMode(cm, text, mode,
|
1711 |
var flattenSpans = mode.flattenSpans;
|
1712 |
if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }
|
1713 |
var curStart = 0, curStyle = null;
|
1714 |
-
var stream = new StringStream(text, cm.options.tabSize), style;
|
1715 |
var inner = cm.options.addModeClass && [null];
|
1716 |
-
if (text == "") { extractLineClasses(callBlankLine(mode, state), lineClasses); }
|
1717 |
while (!stream.eol()) {
|
1718 |
if (stream.pos > cm.options.maxHighlightLength) {
|
1719 |
flattenSpans = false;
|
1720 |
-
if (forceToEnd) { processLine(cm, text,
|
1721 |
stream.pos = text.length;
|
1722 |
style = null;
|
1723 |
} else {
|
1724 |
-
style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);
|
1725 |
}
|
1726 |
if (inner) {
|
1727 |
var mName = inner[0].name;
|
@@ -1756,8 +1804,9 @@ function findStartLine(cm, n, precise) {
|
|
1756 |
var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
|
1757 |
for (var search = n; search > lim; --search) {
|
1758 |
if (search <= doc.first) { return doc.first }
|
1759 |
-
var line = getLine(doc, search - 1);
|
1760 |
-
if (
|
|
|
1761 |
var indented = countColumn(line.text, null, cm.options.tabSize);
|
1762 |
if (minline == null || minindent > indented) {
|
1763 |
minline = search - 1;
|
@@ -1767,6 +1816,23 @@ function findStartLine(cm, n, precise) {
|
|
1767 |
return minline
|
1768 |
}
|
1769 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1770 |
// LINE DATA STRUCTURE
|
1771 |
|
1772 |
// Line objects. These hold state related to a line, including
|
@@ -2643,8 +2709,17 @@ function clearCaches(cm) {
|
|
2643 |
cm.display.lineNumChars = null;
|
2644 |
}
|
2645 |
|
2646 |
-
function pageScrollX() {
|
2647 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2648 |
|
2649 |
// Converts a {top, bottom, left, right} box from line-local
|
2650 |
// coordinates into another coordinate system. Context may be one of
|
@@ -2810,20 +2885,30 @@ function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
|
|
2810 |
var assign;
|
2811 |
((assign = wrappedLineExtent(cm, lineObj, preparedMeasure, y), begin = assign.begin, end = assign.end, assign));
|
2812 |
}
|
2813 |
-
pos = new Pos(lineNo$$1, begin);
|
2814 |
var beginLeft = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left;
|
2815 |
var dir = beginLeft < x ? 1 : -1;
|
2816 |
var prevDiff, diff = beginLeft - x, prevPos;
|
2817 |
-
|
|
|
2818 |
prevDiff = diff;
|
2819 |
prevPos = pos;
|
2820 |
-
|
2821 |
-
|
2822 |
-
|
2823 |
-
|
|
|
|
|
|
|
|
|
2824 |
}
|
2825 |
diff = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left - x;
|
2826 |
-
|
|
|
|
|
|
|
|
|
|
|
2827 |
if (Math.abs(diff) > Math.abs(prevDiff)) {
|
2828 |
if ((diff < 0) == (prevDiff < 0)) { throw new Error("Broke out of infinite loop in coordsCharInner") }
|
2829 |
pos = prevPos;
|
@@ -3139,49 +3224,6 @@ function onBlur(cm, e) {
|
|
3139 |
setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);
|
3140 |
}
|
3141 |
|
3142 |
-
// Re-align line numbers and gutter marks to compensate for
|
3143 |
-
// horizontal scrolling.
|
3144 |
-
function alignHorizontally(cm) {
|
3145 |
-
var display = cm.display, view = display.view;
|
3146 |
-
if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }
|
3147 |
-
var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
|
3148 |
-
var gutterW = display.gutters.offsetWidth, left = comp + "px";
|
3149 |
-
for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {
|
3150 |
-
if (cm.options.fixedGutter) {
|
3151 |
-
if (view[i].gutter)
|
3152 |
-
{ view[i].gutter.style.left = left; }
|
3153 |
-
if (view[i].gutterBackground)
|
3154 |
-
{ view[i].gutterBackground.style.left = left; }
|
3155 |
-
}
|
3156 |
-
var align = view[i].alignable;
|
3157 |
-
if (align) { for (var j = 0; j < align.length; j++)
|
3158 |
-
{ align[j].style.left = left; } }
|
3159 |
-
} }
|
3160 |
-
if (cm.options.fixedGutter)
|
3161 |
-
{ display.gutters.style.left = (comp + gutterW) + "px"; }
|
3162 |
-
}
|
3163 |
-
|
3164 |
-
// Used to ensure that the line number gutter is still the right
|
3165 |
-
// size for the current document size. Returns true when an update
|
3166 |
-
// is needed.
|
3167 |
-
function maybeUpdateLineNumberWidth(cm) {
|
3168 |
-
if (!cm.options.lineNumbers) { return false }
|
3169 |
-
var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
|
3170 |
-
if (last.length != display.lineNumChars) {
|
3171 |
-
var test = display.measure.appendChild(elt("div", [elt("div", last)],
|
3172 |
-
"CodeMirror-linenumber CodeMirror-gutter-elt"));
|
3173 |
-
var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
|
3174 |
-
display.lineGutter.style.width = "";
|
3175 |
-
display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
|
3176 |
-
display.lineNumWidth = display.lineNumInnerWidth + padding;
|
3177 |
-
display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
|
3178 |
-
display.lineGutter.style.width = display.lineNumWidth + "px";
|
3179 |
-
updateGutterSpace(cm);
|
3180 |
-
return true
|
3181 |
-
}
|
3182 |
-
return false
|
3183 |
-
}
|
3184 |
-
|
3185 |
// Read the actual heights of the rendered lines, and update their
|
3186 |
// stored heights to match.
|
3187 |
function updateHeightsInViewport(cm) {
|
@@ -3200,7 +3242,7 @@ function updateHeightsInViewport(cm) {
|
|
3200 |
}
|
3201 |
var diff = cur.line.height - height;
|
3202 |
if (height < 2) { height = textHeight(display); }
|
3203 |
-
if (diff > .
|
3204 |
updateLineHeight(cur.line, height);
|
3205 |
updateWidgetHeight(cur.line);
|
3206 |
if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
|
@@ -3240,140 +3282,222 @@ function visibleLines(display, doc, viewport) {
|
|
3240 |
return {from: from, to: Math.max(to, from + 1)}
|
3241 |
}
|
3242 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3243 |
// Sync the scrollable area and scrollbars, ensure the viewport
|
3244 |
// covers the visible area.
|
3245 |
-
function
|
3246 |
if (Math.abs(cm.doc.scrollTop - val) < 2) { return }
|
3247 |
-
cm.doc.scrollTop = val;
|
3248 |
if (!gecko) { updateDisplaySimple(cm, {top: val}); }
|
3249 |
-
|
3250 |
-
cm.display.scrollbars.setScrollTop(val);
|
3251 |
if (gecko) { updateDisplaySimple(cm); }
|
3252 |
startWorker(cm, 100);
|
3253 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3254 |
// Sync scroller and scrollbar, ensure the gutter elements are
|
3255 |
// aligned.
|
3256 |
-
function setScrollLeft(cm, val, isScroller) {
|
3257 |
-
if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) { return }
|
3258 |
val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
|
|
|
3259 |
cm.doc.scrollLeft = val;
|
3260 |
alignHorizontally(cm);
|
3261 |
if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }
|
3262 |
cm.display.scrollbars.setScrollLeft(val);
|
3263 |
}
|
3264 |
|
3265 |
-
//
|
3266 |
-
// unstandardized between browsers and even browser versions, and
|
3267 |
-
// generally horribly unpredictable, this code starts by measuring
|
3268 |
-
// the scroll effect that the first few mouse wheel events have,
|
3269 |
-
// and, from that, detects the way it can convert deltas to pixel
|
3270 |
-
// offsets afterwards.
|
3271 |
-
//
|
3272 |
-
// The reason we want to know the amount a wheel event will scroll
|
3273 |
-
// is that it gives us a chance to update the display before the
|
3274 |
-
// actual scrolling happens, reducing flickering.
|
3275 |
-
|
3276 |
-
var wheelSamples = 0;
|
3277 |
-
var wheelPixelsPerUnit = null;
|
3278 |
-
// Fill in a browser-detected starting value on browsers where we
|
3279 |
-
// know one. These don't have to be accurate -- the result of them
|
3280 |
-
// being wrong would just be a slight flicker on the first wheel
|
3281 |
-
// scroll (if it is large enough).
|
3282 |
-
if (ie) { wheelPixelsPerUnit = -.53; }
|
3283 |
-
else if (gecko) { wheelPixelsPerUnit = 15; }
|
3284 |
-
else if (chrome) { wheelPixelsPerUnit = -.7; }
|
3285 |
-
else if (safari) { wheelPixelsPerUnit = -1/3; }
|
3286 |
-
|
3287 |
-
function wheelEventDelta(e) {
|
3288 |
-
var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
|
3289 |
-
if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }
|
3290 |
-
if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }
|
3291 |
-
else if (dy == null) { dy = e.wheelDelta; }
|
3292 |
-
return {x: dx, y: dy}
|
3293 |
-
}
|
3294 |
-
function wheelEventPixels(e) {
|
3295 |
-
var delta = wheelEventDelta(e);
|
3296 |
-
delta.x *= wheelPixelsPerUnit;
|
3297 |
-
delta.y *= wheelPixelsPerUnit;
|
3298 |
-
return delta
|
3299 |
-
}
|
3300 |
-
|
3301 |
-
function onScrollWheel(cm, e) {
|
3302 |
-
var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
|
3303 |
-
|
3304 |
-
var display = cm.display, scroll = display.scroller;
|
3305 |
-
// Quit if there's nothing to scroll here
|
3306 |
-
var canScrollX = scroll.scrollWidth > scroll.clientWidth;
|
3307 |
-
var canScrollY = scroll.scrollHeight > scroll.clientHeight;
|
3308 |
-
if (!(dx && canScrollX || dy && canScrollY)) { return }
|
3309 |
-
|
3310 |
-
// Webkit browsers on OS X abort momentum scrolls when the target
|
3311 |
-
// of the scroll event is removed from the scrollable element.
|
3312 |
-
// This hack (see related code in patchDisplay) makes sure the
|
3313 |
-
// element is kept around.
|
3314 |
-
if (dy && mac && webkit) {
|
3315 |
-
outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
|
3316 |
-
for (var i = 0; i < view.length; i++) {
|
3317 |
-
if (view[i].node == cur) {
|
3318 |
-
cm.display.currentWheelTarget = cur;
|
3319 |
-
break outer
|
3320 |
-
}
|
3321 |
-
}
|
3322 |
-
}
|
3323 |
-
}
|
3324 |
-
|
3325 |
-
// On some browsers, horizontal scrolling will cause redraws to
|
3326 |
-
// happen before the gutter has been realigned, causing it to
|
3327 |
-
// wriggle around in a most unseemly way. When we have an
|
3328 |
-
// estimated pixels/delta value, we just handle horizontal
|
3329 |
-
// scrolling entirely here. It'll be slightly off from native, but
|
3330 |
-
// better than glitching out.
|
3331 |
-
if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
|
3332 |
-
if (dy && canScrollY)
|
3333 |
-
{ setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); }
|
3334 |
-
setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
|
3335 |
-
// Only prevent default scrolling if vertical scrolling is
|
3336 |
-
// actually possible. Otherwise, it causes vertical scroll
|
3337 |
-
// jitter on OSX trackpads when deltaX is small and deltaY
|
3338 |
-
// is large (issue #3579)
|
3339 |
-
if (!dy || (dy && canScrollY))
|
3340 |
-
{ e_preventDefault(e); }
|
3341 |
-
display.wheelStartX = null; // Abort measurement, if in progress
|
3342 |
-
return
|
3343 |
-
}
|
3344 |
-
|
3345 |
-
// 'Project' the visible viewport to cover the area that is being
|
3346 |
-
// scrolled into view (if we know enough to estimate it).
|
3347 |
-
if (dy && wheelPixelsPerUnit != null) {
|
3348 |
-
var pixels = dy * wheelPixelsPerUnit;
|
3349 |
-
var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
|
3350 |
-
if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
|
3351 |
-
else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
|
3352 |
-
updateDisplaySimple(cm, {top: top, bottom: bot});
|
3353 |
-
}
|
3354 |
-
|
3355 |
-
if (wheelSamples < 20) {
|
3356 |
-
if (display.wheelStartX == null) {
|
3357 |
-
display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
|
3358 |
-
display.wheelDX = dx; display.wheelDY = dy;
|
3359 |
-
setTimeout(function () {
|
3360 |
-
if (display.wheelStartX == null) { return }
|
3361 |
-
var movedX = scroll.scrollLeft - display.wheelStartX;
|
3362 |
-
var movedY = scroll.scrollTop - display.wheelStartY;
|
3363 |
-
var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
|
3364 |
-
(movedX && display.wheelDX && movedX / display.wheelDX);
|
3365 |
-
display.wheelStartX = display.wheelStartY = null;
|
3366 |
-
if (!sample) { return }
|
3367 |
-
wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
|
3368 |
-
++wheelSamples;
|
3369 |
-
}, 200);
|
3370 |
-
} else {
|
3371 |
-
display.wheelDX += dx; display.wheelDY += dy;
|
3372 |
-
}
|
3373 |
-
}
|
3374 |
-
}
|
3375 |
-
|
3376 |
-
// SCROLLBARS
|
3377 |
|
3378 |
// Prepare DOM reads needed to update the scrollbars. Done in one
|
3379 |
// shot to minimize update/measure roundtrips.
|
@@ -3450,12 +3574,12 @@ NativeScrollbars.prototype.update = function (measure) {
|
|
3450 |
|
3451 |
NativeScrollbars.prototype.setScrollLeft = function (pos) {
|
3452 |
if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }
|
3453 |
-
if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz); }
|
3454 |
};
|
3455 |
|
3456 |
NativeScrollbars.prototype.setScrollTop = function (pos) {
|
3457 |
if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }
|
3458 |
-
if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert); }
|
3459 |
};
|
3460 |
|
3461 |
NativeScrollbars.prototype.zeroWidthHack = function () {
|
@@ -3466,17 +3590,18 @@ NativeScrollbars.prototype.zeroWidthHack = function () {
|
|
3466 |
this.disableVert = new Delayed;
|
3467 |
};
|
3468 |
|
3469 |
-
NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay) {
|
3470 |
bar.style.pointerEvents = "auto";
|
3471 |
function maybeDisable() {
|
3472 |
// To find out whether the scrollbar is still visible, we
|
3473 |
// check whether the element under the pixel in the bottom
|
3474 |
-
//
|
3475 |
// itself (when the bar is still visible) or its filler child
|
3476 |
// (when the bar is hidden). If it is still visible, we keep
|
3477 |
// it enabled, if it's hidden, we disable pointer events.
|
3478 |
var box = bar.getBoundingClientRect();
|
3479 |
-
var elt$$1 = document.elementFromPoint(box.
|
|
|
3480 |
if (elt$$1 != bar) { bar.style.pointerEvents = "none"; }
|
3481 |
else { delay.set(1000, maybeDisable); }
|
3482 |
}
|
@@ -3548,139 +3673,12 @@ function initScrollbars(cm) {
|
|
3548 |
node.setAttribute("cm-not-content", "true");
|
3549 |
}, function (pos, axis) {
|
3550 |
if (axis == "horizontal") { setScrollLeft(cm, pos); }
|
3551 |
-
else {
|
3552 |
}, cm);
|
3553 |
if (cm.display.scrollbars.addClass)
|
3554 |
{ addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
|
3555 |
}
|
3556 |
|
3557 |
-
// SCROLLING THINGS INTO VIEW
|
3558 |
-
|
3559 |
-
// If an editor sits on the top or bottom of the window, partially
|
3560 |
-
// scrolled out of view, this ensures that the cursor is visible.
|
3561 |
-
function maybeScrollWindow(cm, rect) {
|
3562 |
-
if (signalDOMEvent(cm, "scrollCursorIntoView")) { return }
|
3563 |
-
|
3564 |
-
var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
|
3565 |
-
if (rect.top + box.top < 0) { doScroll = true; }
|
3566 |
-
else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }
|
3567 |
-
if (doScroll != null && !phantom) {
|
3568 |
-
var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;"));
|
3569 |
-
cm.display.lineSpace.appendChild(scrollNode);
|
3570 |
-
scrollNode.scrollIntoView(doScroll);
|
3571 |
-
cm.display.lineSpace.removeChild(scrollNode);
|
3572 |
-
}
|
3573 |
-
}
|
3574 |
-
|
3575 |
-
// Scroll a given position into view (immediately), verifying that
|
3576 |
-
// it actually became visible (as line heights are accurately
|
3577 |
-
// measured, the position of something may 'drift' during drawing).
|
3578 |
-
function scrollPosIntoView(cm, pos, end, margin) {
|
3579 |
-
if (margin == null) { margin = 0; }
|
3580 |
-
var rect;
|
3581 |
-
for (var limit = 0; limit < 5; limit++) {
|
3582 |
-
var changed = false;
|
3583 |
-
var coords = cursorCoords(cm, pos);
|
3584 |
-
var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
|
3585 |
-
rect = {left: Math.min(coords.left, endCoords.left),
|
3586 |
-
top: Math.min(coords.top, endCoords.top) - margin,
|
3587 |
-
right: Math.max(coords.left, endCoords.left),
|
3588 |
-
bottom: Math.max(coords.bottom, endCoords.bottom) + margin};
|
3589 |
-
var scrollPos = calculateScrollPos(cm, rect);
|
3590 |
-
var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
|
3591 |
-
if (scrollPos.scrollTop != null) {
|
3592 |
-
setScrollTop(cm, scrollPos.scrollTop);
|
3593 |
-
if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }
|
3594 |
-
}
|
3595 |
-
if (scrollPos.scrollLeft != null) {
|
3596 |
-
setScrollLeft(cm, scrollPos.scrollLeft);
|
3597 |
-
if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }
|
3598 |
-
}
|
3599 |
-
if (!changed) { break }
|
3600 |
-
}
|
3601 |
-
return rect
|
3602 |
-
}
|
3603 |
-
|
3604 |
-
// Scroll a given set of coordinates into view (immediately).
|
3605 |
-
function scrollIntoView(cm, rect) {
|
3606 |
-
var scrollPos = calculateScrollPos(cm, rect);
|
3607 |
-
if (scrollPos.scrollTop != null) { setScrollTop(cm, scrollPos.scrollTop); }
|
3608 |
-
if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }
|
3609 |
-
}
|
3610 |
-
|
3611 |
-
// Calculate a new scroll position needed to scroll the given
|
3612 |
-
// rectangle into view. Returns an object with scrollTop and
|
3613 |
-
// scrollLeft properties. When these are undefined, the
|
3614 |
-
// vertical/horizontal position does not need to be adjusted.
|
3615 |
-
function calculateScrollPos(cm, rect) {
|
3616 |
-
var display = cm.display, snapMargin = textHeight(cm.display);
|
3617 |
-
if (rect.top < 0) { rect.top = 0; }
|
3618 |
-
var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
|
3619 |
-
var screen = displayHeight(cm), result = {};
|
3620 |
-
if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }
|
3621 |
-
var docBottom = cm.doc.height + paddingVert(display);
|
3622 |
-
var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;
|
3623 |
-
if (rect.top < screentop) {
|
3624 |
-
result.scrollTop = atTop ? 0 : rect.top;
|
3625 |
-
} else if (rect.bottom > screentop + screen) {
|
3626 |
-
var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);
|
3627 |
-
if (newTop != screentop) { result.scrollTop = newTop; }
|
3628 |
-
}
|
3629 |
-
|
3630 |
-
var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
|
3631 |
-
var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
|
3632 |
-
var tooWide = rect.right - rect.left > screenw;
|
3633 |
-
if (tooWide) { rect.right = rect.left + screenw; }
|
3634 |
-
if (rect.left < 10)
|
3635 |
-
{ result.scrollLeft = 0; }
|
3636 |
-
else if (rect.left < screenleft)
|
3637 |
-
{ result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }
|
3638 |
-
else if (rect.right > screenw + screenleft - 3)
|
3639 |
-
{ result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }
|
3640 |
-
return result
|
3641 |
-
}
|
3642 |
-
|
3643 |
-
// Store a relative adjustment to the scroll position in the current
|
3644 |
-
// operation (to be applied when the operation finishes).
|
3645 |
-
function addToScrollPos(cm, left, top) {
|
3646 |
-
if (left != null || top != null) { resolveScrollToPos(cm); }
|
3647 |
-
if (left != null)
|
3648 |
-
{ cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left; }
|
3649 |
-
if (top != null)
|
3650 |
-
{ cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; }
|
3651 |
-
}
|
3652 |
-
|
3653 |
-
// Make sure that at the end of the operation the current cursor is
|
3654 |
-
// shown.
|
3655 |
-
function ensureCursorVisible(cm) {
|
3656 |
-
resolveScrollToPos(cm);
|
3657 |
-
var cur = cm.getCursor(), from = cur, to = cur;
|
3658 |
-
if (!cm.options.lineWrapping) {
|
3659 |
-
from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;
|
3660 |
-
to = Pos(cur.line, cur.ch + 1);
|
3661 |
-
}
|
3662 |
-
cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin};
|
3663 |
-
}
|
3664 |
-
|
3665 |
-
// When an operation has its scrollToPos property set, and another
|
3666 |
-
// scroll action is applied before the end of the operation, this
|
3667 |
-
// 'simulates' scrolling that position into view in a cheap way, so
|
3668 |
-
// that the effect of intermediate scroll commands is not ignored.
|
3669 |
-
function resolveScrollToPos(cm) {
|
3670 |
-
var range$$1 = cm.curOp.scrollToPos;
|
3671 |
-
if (range$$1) {
|
3672 |
-
cm.curOp.scrollToPos = null;
|
3673 |
-
var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);
|
3674 |
-
var sPos = calculateScrollPos(cm, {
|
3675 |
-
left: Math.min(from.left, to.left),
|
3676 |
-
top: Math.min(from.top, to.top) - range$$1.margin,
|
3677 |
-
right: Math.max(from.right, to.right),
|
3678 |
-
bottom: Math.max(from.bottom, to.bottom) + range$$1.margin
|
3679 |
-
});
|
3680 |
-
cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);
|
3681 |
-
}
|
3682 |
-
}
|
3683 |
-
|
3684 |
// Operations are used to wrap a series of changes to the editor
|
3685 |
// state in such a way that each change won't have to update the
|
3686 |
// cursor and display (which would be awkward, slow, and
|
@@ -3809,17 +3807,9 @@ function endOperation_finish(op) {
|
|
3809 |
{ display.wheelStartX = display.wheelStartY = null; }
|
3810 |
|
3811 |
// Propagate the scroll position to the actual DOM scroller
|
3812 |
-
if (op.scrollTop != null
|
3813 |
-
|
3814 |
-
|
3815 |
-
display.scroller.scrollTop = doc.scrollTop;
|
3816 |
-
}
|
3817 |
-
if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {
|
3818 |
-
doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft));
|
3819 |
-
display.scrollbars.setScrollLeft(doc.scrollLeft);
|
3820 |
-
display.scroller.scrollLeft = doc.scrollLeft;
|
3821 |
-
alignHorizontally(cm);
|
3822 |
-
}
|
3823 |
// If we need to scroll a specific position into view, do so.
|
3824 |
if (op.scrollToPos) {
|
3825 |
var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
|
@@ -4032,22 +4022,23 @@ function countDirtyView(cm) {
|
|
4032 |
// HIGHLIGHT WORKER
|
4033 |
|
4034 |
function startWorker(cm, time) {
|
4035 |
-
if (cm.doc.
|
4036 |
{ cm.state.highlight.set(time, bind(highlightWorker, cm)); }
|
4037 |
}
|
4038 |
|
4039 |
function highlightWorker(cm) {
|
4040 |
var doc = cm.doc;
|
4041 |
-
if (doc.
|
4042 |
-
if (doc.frontier >= cm.display.viewTo) { return }
|
4043 |
var end = +new Date + cm.options.workTime;
|
4044 |
-
var
|
4045 |
var changedLines = [];
|
4046 |
|
4047 |
-
doc.iter(
|
4048 |
-
if (
|
4049 |
-
var oldStyles = line.styles
|
4050 |
-
var
|
|
|
|
|
4051 |
line.styles = highlighted.styles;
|
4052 |
var oldCls = line.styleClasses, newCls = highlighted.classes;
|
4053 |
if (newCls) { line.styleClasses = newCls; }
|
@@ -4055,19 +4046,22 @@ function highlightWorker(cm) {
|
|
4055 |
var ischange = !oldStyles || oldStyles.length != line.styles.length ||
|
4056 |
oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
|
4057 |
for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }
|
4058 |
-
if (ischange) { changedLines.push(
|
4059 |
-
line.stateAfter =
|
|
|
4060 |
} else {
|
4061 |
if (line.text.length <= cm.options.maxHighlightLength)
|
4062 |
-
{ processLine(cm, line.text,
|
4063 |
-
line.stateAfter =
|
|
|
4064 |
}
|
4065 |
-
++doc.frontier;
|
4066 |
if (+new Date > end) {
|
4067 |
startWorker(cm, cm.options.workDelay);
|
4068 |
return true
|
4069 |
}
|
4070 |
});
|
|
|
|
|
4071 |
if (changedLines.length) { runInOp(cm, function () {
|
4072 |
for (var i = 0; i < changedLines.length; i++)
|
4073 |
{ regLineChange(cm, changedLines[i], "text"); }
|
@@ -4113,6 +4107,36 @@ function maybeClipScrollbars(cm) {
|
|
4113 |
}
|
4114 |
}
|
4115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4116 |
// Does the actual updating of the line display. Bails out
|
4117 |
// (returning false) when there is nothing to be done and forced is
|
4118 |
// false.
|
@@ -4162,14 +4186,14 @@ function updateDisplayIfNeeded(cm, update) {
|
|
4162 |
|
4163 |
// For big changes, we hide the enclosing element during the
|
4164 |
// update, since that speeds up the operations on most browsers.
|
4165 |
-
var
|
4166 |
if (toUpdate > 4) { display.lineDiv.style.display = "none"; }
|
4167 |
patchDisplay(cm, display.updateLineNumbers, update.dims);
|
4168 |
if (toUpdate > 4) { display.lineDiv.style.display = ""; }
|
4169 |
display.renderedView = display.view;
|
4170 |
// There might have been a widget with a focused element that got
|
4171 |
// hidden or updated, if so re-focus it.
|
4172 |
-
|
4173 |
|
4174 |
// Prevent selection and cursors from interfering with the scroll
|
4175 |
// width and height.
|
@@ -4208,6 +4232,7 @@ function postUpdateDisplay(cm, update) {
|
|
4208 |
updateSelection(cm);
|
4209 |
updateScrollbars(cm, barMeasure);
|
4210 |
setDocumentHeight(cm, barMeasure);
|
|
|
4211 |
}
|
4212 |
|
4213 |
update.signal(cm, "update", cm);
|
@@ -4301,20 +4326,131 @@ function updateGutters(cm) {
|
|
4301 |
gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
|
4302 |
}
|
4303 |
}
|
4304 |
-
gutters.style.display = i ? "" : "none";
|
4305 |
-
updateGutterSpace(cm);
|
4306 |
-
}
|
4307 |
-
|
4308 |
-
// Make sure the gutters options contains the element
|
4309 |
-
// "CodeMirror-linenumbers" when the lineNumbers option is true.
|
4310 |
-
function setGuttersForLineNumbers(options) {
|
4311 |
-
var found = indexOf(options.gutters, "CodeMirror-linenumbers");
|
4312 |
-
if (found == -1 && options.lineNumbers) {
|
4313 |
-
options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
|
4314 |
-
} else if (found > -1 && !options.lineNumbers) {
|
4315 |
-
options.gutters = options.gutters.slice(0);
|
4316 |
-
options.gutters.splice(found, 1);
|
4317 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4318 |
}
|
4319 |
|
4320 |
// Selection objects are immutable. A new one is created every time
|
@@ -4470,7 +4606,7 @@ function resetModeState(cm) {
|
|
4470 |
if (line.stateAfter) { line.stateAfter = null; }
|
4471 |
if (line.styles) { line.styles = null; }
|
4472 |
});
|
4473 |
-
cm.doc.
|
4474 |
startWorker(cm, 100);
|
4475 |
cm.state.modeGen++;
|
4476 |
if (cm.curOp) { regChange(cm); }
|
@@ -4804,8 +4940,8 @@ function copyHistoryArray(events, newGroup, instantiateSel) {
|
|
4804 |
// include a given position (and optionally a second position).
|
4805 |
// Otherwise, simply returns the range between the given positions.
|
4806 |
// Used for cursor motion and such.
|
4807 |
-
function extendRange(
|
4808 |
-
if (
|
4809 |
var anchor = range.anchor;
|
4810 |
if (other) {
|
4811 |
var posBefore = cmp(head, anchor) < 0;
|
@@ -4823,16 +4959,18 @@ function extendRange(doc, range, head, other) {
|
|
4823 |
}
|
4824 |
|
4825 |
// Extend the primary selection range, discard the rest.
|
4826 |
-
function extendSelection(doc, head, other, options) {
|
4827 |
-
|
|
|
4828 |
}
|
4829 |
|
4830 |
// Extend all selections (pos is an array of selections with length
|
4831 |
// equal the number of selections)
|
4832 |
function extendSelections(doc, heads, options) {
|
4833 |
var out = [];
|
|
|
4834 |
for (var i = 0; i < doc.sel.ranges.length; i++)
|
4835 |
-
{ out[i] = extendRange(doc
|
4836 |
var newSel = normalizeSelection(out, doc.sel.primIndex);
|
4837 |
setSelection(doc, newSel, options);
|
4838 |
}
|
@@ -4913,7 +5051,7 @@ function setSelectionInner(doc, sel) {
|
|
4913 |
// Verify that the selection does not partially select any atomic
|
4914 |
// marked ranges.
|
4915 |
function reCheckSelection(doc) {
|
4916 |
-
setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)
|
4917 |
}
|
4918 |
|
4919 |
// Return a selection that does not partially select any atomic
|
@@ -5038,7 +5176,7 @@ function makeChange(doc, change, ignoreReadOnly) {
|
|
5038 |
var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
|
5039 |
if (split) {
|
5040 |
for (var i = split.length - 1; i >= 0; --i)
|
5041 |
-
{ makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text}); }
|
5042 |
} else {
|
5043 |
makeChangeInner(doc, change);
|
5044 |
}
|
@@ -5216,8 +5354,7 @@ function makeChangeSingleDocInEditor(cm, change, spans) {
|
|
5216 |
if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }
|
5217 |
}
|
5218 |
|
5219 |
-
|
5220 |
-
doc.frontier = Math.min(doc.frontier, from.line);
|
5221 |
startWorker(cm, 400);
|
5222 |
|
5223 |
var lendiff = change.text.length - (to.line - from.line) - 1;
|
@@ -5327,7 +5464,7 @@ function changeLine(doc, handle, changeType, op) {
|
|
5327 |
//
|
5328 |
// See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
|
5329 |
|
5330 |
-
|
5331 |
var this$1 = this;
|
5332 |
|
5333 |
this.lines = lines;
|
@@ -5338,47 +5475,49 @@ var LeafChunk = function(lines) {
|
|
5338 |
height += lines[i].height;
|
5339 |
}
|
5340 |
this.height = height;
|
5341 |
-
}
|
5342 |
|
5343 |
-
LeafChunk.prototype
|
|
|
5344 |
|
5345 |
-
// Remove the n lines at offset 'at'.
|
5346 |
-
|
5347 |
var this$1 = this;
|
5348 |
|
5349 |
-
|
5350 |
-
|
5351 |
-
|
5352 |
-
|
5353 |
-
|
5354 |
-
|
5355 |
-
|
5356 |
-
}
|
5357 |
|
5358 |
-
// Helper used to collapse a small branch into a single leaf.
|
5359 |
-
|
5360 |
-
|
5361 |
-
}
|
5362 |
|
5363 |
-
// Insert the given array of lines at offset 'at', count them as
|
5364 |
-
// having the given height.
|
5365 |
-
|
5366 |
var this$1 = this;
|
5367 |
|
5368 |
-
|
5369 |
-
|
5370 |
-
|
5371 |
-
}
|
5372 |
|
5373 |
-
// Used to iterate over a part of the tree.
|
5374 |
-
|
5375 |
var this$1 = this;
|
5376 |
|
5377 |
-
|
5378 |
-
|
|
|
5379 |
};
|
5380 |
|
5381 |
-
|
5382 |
var this$1 = this;
|
5383 |
|
5384 |
this.children = children;
|
@@ -5391,104 +5530,106 @@ var BranchChunk = function(children) {
|
|
5391 |
this.size = size;
|
5392 |
this.height = height;
|
5393 |
this.parent = null;
|
5394 |
-
}
|
5395 |
|
5396 |
-
BranchChunk.prototype
|
|
|
5397 |
|
5398 |
-
|
5399 |
var this$1 = this;
|
5400 |
|
5401 |
-
|
5402 |
-
|
5403 |
-
|
5404 |
-
|
5405 |
-
|
5406 |
-
|
5407 |
-
|
5408 |
-
|
5409 |
-
|
5410 |
-
|
5411 |
-
|
5412 |
-
|
5413 |
-
|
5414 |
-
|
5415 |
-
|
5416 |
-
|
5417 |
-
|
5418 |
-
|
5419 |
-
|
5420 |
-
|
5421 |
-
|
5422 |
-
}
|
5423 |
|
5424 |
-
|
5425 |
var this$1 = this;
|
5426 |
|
5427 |
-
|
5428 |
-
}
|
5429 |
|
5430 |
-
|
5431 |
var this$1 = this;
|
5432 |
|
5433 |
-
|
5434 |
-
|
5435 |
-
|
5436 |
-
|
5437 |
-
|
5438 |
-
|
5439 |
-
|
5440 |
-
|
5441 |
-
|
5442 |
-
|
5443 |
-
|
5444 |
-
|
5445 |
-
|
5446 |
-
|
5447 |
-
|
5448 |
-
|
5449 |
-
|
5450 |
-
|
|
|
|
|
5451 |
}
|
5452 |
-
|
5453 |
}
|
5454 |
-
|
5455 |
-
}
|
5456 |
-
};
|
5457 |
|
5458 |
-
// When a node has grown, check whether it should be split.
|
5459 |
-
|
5460 |
-
|
5461 |
-
|
5462 |
-
|
5463 |
-
|
5464 |
-
|
5465 |
-
|
5466 |
-
|
5467 |
-
|
5468 |
-
|
5469 |
-
|
5470 |
-
|
5471 |
-
|
5472 |
-
|
5473 |
-
|
5474 |
-
|
5475 |
-
|
5476 |
-
|
5477 |
-
|
5478 |
-
|
5479 |
-
}
|
5480 |
|
5481 |
-
|
5482 |
var this$1 = this;
|
5483 |
|
5484 |
-
|
5485 |
-
|
5486 |
-
|
5487 |
-
|
5488 |
-
|
5489 |
-
|
5490 |
-
|
5491 |
-
|
|
|
5492 |
}
|
5493 |
};
|
5494 |
|
@@ -5541,7 +5682,7 @@ eventMixin(LineWidget);
|
|
5541 |
|
5542 |
function adjustScrollWhenAboveVisible(cm, line, diff) {
|
5543 |
if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
|
5544 |
-
{
|
5545 |
}
|
5546 |
|
5547 |
function addLineWidget(doc, handle, node, options) {
|
@@ -5556,7 +5697,7 @@ function addLineWidget(doc, handle, node, options) {
|
|
5556 |
if (cm && !lineIsHidden(doc, line)) {
|
5557 |
var aboveVisible = heightAtLine(line) < doc.scrollTop;
|
5558 |
updateLineHeight(line, line.height + widgetHeight(widget));
|
5559 |
-
if (aboveVisible) {
|
5560 |
cm.curOp.forceUpdate = true;
|
5561 |
}
|
5562 |
return true
|
@@ -5858,7 +5999,7 @@ var Doc = function(text, mode, firstLine, lineSep, direction) {
|
|
5858 |
this.scrollTop = this.scrollLeft = 0;
|
5859 |
this.cantEdit = false;
|
5860 |
this.cleanGeneration = 1;
|
5861 |
-
this.
|
5862 |
var start = Pos(firstLine, 0);
|
5863 |
this.sel = simpleSelection(start);
|
5864 |
this.history = new History(null);
|
@@ -5904,7 +6045,8 @@ Doc.prototype = createObj(BranchChunk.prototype, {
|
|
5904 |
var top = Pos(this.first, 0), last = this.first + this.size - 1;
|
5905 |
makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
|
5906 |
text: this.splitLines(code), origin: "setValue", full: true}, true);
|
5907 |
-
|
|
|
5908 |
}),
|
5909 |
replaceRange: function(code, from, to, origin) {
|
5910 |
from = clipPos(this, from);
|
@@ -6380,8 +6522,8 @@ function clearDragCursor(cm) {
|
|
6380 |
// garbage collected.
|
6381 |
|
6382 |
function forEachCodeMirror(f) {
|
6383 |
-
if (!document.
|
6384 |
-
var byClass = document.
|
6385 |
for (var i = 0; i < byClass.length; i++) {
|
6386 |
var cm = byClass[i].CodeMirror;
|
6387 |
if (cm) { f(cm); }
|
@@ -6555,11 +6697,8 @@ function isModifierKey(value) {
|
|
6555 |
return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"
|
6556 |
}
|
6557 |
|
6558 |
-
|
6559 |
-
|
6560 |
-
if (presto && event.keyCode == 34 && event["char"]) { return false }
|
6561 |
-
var base = keyNames[event.keyCode], name = base;
|
6562 |
-
if (name == null || event.altGraphKey) { return false }
|
6563 |
if (event.altKey && base != "Alt") { name = "Alt-" + name; }
|
6564 |
if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; }
|
6565 |
if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; }
|
@@ -6567,6 +6706,14 @@ function keyName(event, noShift) {
|
|
6567 |
return name
|
6568 |
}
|
6569 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6570 |
function getKeyMap(val) {
|
6571 |
return typeof val == "string" ? keyMap[val] : val
|
6572 |
}
|
@@ -6645,15 +6792,15 @@ var commands = {
|
|
6645 |
{origin: "+move", bias: -1}
|
6646 |
); },
|
6647 |
goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {
|
6648 |
-
var top = cm.
|
6649 |
return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")
|
6650 |
}, sel_move); },
|
6651 |
goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {
|
6652 |
-
var top = cm.
|
6653 |
return cm.coordsChar({left: 0, top: top}, "div")
|
6654 |
}, sel_move); },
|
6655 |
goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {
|
6656 |
-
var top = cm.
|
6657 |
var pos = cm.coordsChar({left: 0, top: top}, "div");
|
6658 |
if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) }
|
6659 |
return pos
|
@@ -6793,6 +6940,9 @@ function lookupKeyForEditor(cm, name, handle) {
|
|
6793 |
|| lookupKey(name, cm.options.keyMap, handle, cm)
|
6794 |
}
|
6795 |
|
|
|
|
|
|
|
6796 |
var stopSeq = new Delayed;
|
6797 |
function dispatchKey(cm, name, e, handle) {
|
6798 |
var seq = cm.state.keySeq;
|
@@ -6904,6 +7054,37 @@ function onKeyPress(e) {
|
|
6904 |
cm.display.input.onKeyPress(e);
|
6905 |
}
|
6906 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6907 |
// A mouse down can be a single click, double click, triple click,
|
6908 |
// start of selection drag, start of text drag, new cursor
|
6909 |
// (ctrl-click), rectangle drag (alt-drag), or xwin
|
@@ -6925,72 +7106,91 @@ function onMouseDown(e) {
|
|
6925 |
return
|
6926 |
}
|
6927 |
if (clickInGutter(cm, e)) { return }
|
6928 |
-
var
|
6929 |
window.focus();
|
6930 |
|
6931 |
-
|
6932 |
-
|
6933 |
-
|
6934 |
-
|
6935 |
-
|
6936 |
-
|
6937 |
-
|
6938 |
-
|
6939 |
-
|
6940 |
-
|
6941 |
-
|
6942 |
-
if (webkit) { cm.state.lastMiddleDown = +new Date; }
|
6943 |
-
if (start) { extendSelection(cm.doc, start); }
|
6944 |
setTimeout(function () { return display.input.focus(); }, 20);
|
6945 |
-
|
6946 |
-
break
|
6947 |
-
case 3:
|
6948 |
if (captureRightClick) { onContextMenu(cm, e); }
|
6949 |
else { delayBlurEvent(cm); }
|
6950 |
-
break
|
6951 |
}
|
6952 |
}
|
6953 |
|
6954 |
-
|
6955 |
-
var
|
6956 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6957 |
if (ie) { setTimeout(bind(ensureFocus, cm), 0); }
|
6958 |
else { cm.curOp.focus = activeElt(); }
|
6959 |
|
6960 |
-
var
|
6961 |
-
if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {
|
6962 |
-
type = "triple";
|
6963 |
-
} else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {
|
6964 |
-
type = "double";
|
6965 |
-
lastDoubleClick = {time: now, pos: start};
|
6966 |
-
} else {
|
6967 |
-
type = "single";
|
6968 |
-
lastClick = {time: now, pos: start};
|
6969 |
-
}
|
6970 |
|
6971 |
-
var sel = cm.doc.sel,
|
6972 |
if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
|
6973 |
-
|
6974 |
-
(cmp((contained = sel.ranges[contained]).from(),
|
6975 |
-
(cmp(contained.to(),
|
6976 |
-
{ leftButtonStartDrag(cm,
|
6977 |
else
|
6978 |
-
{ leftButtonSelect(cm,
|
6979 |
}
|
6980 |
|
6981 |
// Start a text drag. When it ends, see if any dragging actually
|
6982 |
// happen, and treat as a click if it didn't.
|
6983 |
-
function leftButtonStartDrag(cm,
|
6984 |
-
var display = cm.display,
|
6985 |
-
var dragEnd = operation(cm, function (
|
6986 |
if (webkit) { display.scroller.draggable = false; }
|
6987 |
cm.state.draggingText = false;
|
6988 |
off(document, "mouseup", dragEnd);
|
|
|
|
|
6989 |
off(display.scroller, "drop", dragEnd);
|
6990 |
-
if (
|
6991 |
-
e_preventDefault(
|
6992 |
-
if (!
|
6993 |
-
{ extendSelection(cm.doc,
|
6994 |
// Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
|
6995 |
if (webkit || ie && ie_version == 9)
|
6996 |
{ setTimeout(function () {document.body.focus(); display.input.focus();}, 20); }
|
@@ -6998,23 +7198,40 @@ function leftButtonStartDrag(cm, e, start, modifier) {
|
|
6998 |
{ display.input.focus(); }
|
6999 |
}
|
7000 |
});
|
|
|
|
|
|
|
|
|
7001 |
// Let the drag handler handle this.
|
7002 |
if (webkit) { display.scroller.draggable = true; }
|
7003 |
cm.state.draggingText = dragEnd;
|
7004 |
-
dragEnd.copy =
|
7005 |
// IE's approach to draggable
|
7006 |
if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
|
7007 |
on(document, "mouseup", dragEnd);
|
|
|
|
|
7008 |
on(display.scroller, "drop", dragEnd);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7009 |
}
|
7010 |
|
7011 |
// Normal selection, as opposed to text dragging.
|
7012 |
-
function leftButtonSelect(cm,
|
7013 |
var display = cm.display, doc = cm.doc;
|
7014 |
-
e_preventDefault(
|
7015 |
|
7016 |
var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
|
7017 |
-
if (addNew && !
|
7018 |
ourIndex = doc.sel.contains(start);
|
7019 |
if (ourIndex > -1)
|
7020 |
{ ourRange = ranges[ourIndex]; }
|
@@ -7025,28 +7242,19 @@ function leftButtonSelect(cm, e, start, type, addNew) {
|
|
7025 |
ourIndex = doc.sel.primIndex;
|
7026 |
}
|
7027 |
|
7028 |
-
if (
|
7029 |
-
|
7030 |
-
|
7031 |
-
start = posFromMouse(cm, e, true, true);
|
7032 |
ourIndex = -1;
|
7033 |
-
} else if (type == "double") {
|
7034 |
-
var word = cm.findWordAt(start);
|
7035 |
-
if (cm.display.shift || doc.extend)
|
7036 |
-
{ ourRange = extendRange(doc, ourRange, word.anchor, word.head); }
|
7037 |
-
else
|
7038 |
-
{ ourRange = word; }
|
7039 |
-
} else if (type == "triple") {
|
7040 |
-
var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));
|
7041 |
-
if (cm.display.shift || doc.extend)
|
7042 |
-
{ ourRange = extendRange(doc, ourRange, line.anchor, line.head); }
|
7043 |
-
else
|
7044 |
-
{ ourRange = line; }
|
7045 |
} else {
|
7046 |
-
|
|
|
|
|
|
|
|
|
7047 |
}
|
7048 |
|
7049 |
-
if (!addNew) {
|
7050 |
ourIndex = 0;
|
7051 |
setSelection(doc, new Selection([ourRange], 0), sel_mouse);
|
7052 |
startSel = doc.sel;
|
@@ -7054,7 +7262,7 @@ function leftButtonSelect(cm, e, start, type, addNew) {
|
|
7054 |
ourIndex = ranges.length;
|
7055 |
setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
|
7056 |
{scroll: false, origin: "*mouse"});
|
7057 |
-
} else if (ranges.length > 1 && ranges[ourIndex].empty() &&
|
7058 |
setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
|
7059 |
{scroll: false, origin: "*mouse"});
|
7060 |
startSel = doc.sel;
|
@@ -7067,7 +7275,7 @@ function leftButtonSelect(cm, e, start, type, addNew) {
|
|
7067 |
if (cmp(lastPos, pos) == 0) { return }
|
7068 |
lastPos = pos;
|
7069 |
|
7070 |
-
if (
|
7071 |
var ranges = [], tabSize = cm.options.tabSize;
|
7072 |
var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
|
7073 |
var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
|
@@ -7086,20 +7294,14 @@ function leftButtonSelect(cm, e, start, type, addNew) {
|
|
7086 |
cm.scrollIntoView(pos);
|
7087 |
} else {
|
7088 |
var oldRange = ourRange;
|
7089 |
-
var
|
7090 |
-
|
7091 |
-
|
7092 |
-
|
7093 |
-
|
7094 |
-
|
7095 |
-
|
7096 |
-
|
7097 |
-
head = range$$1.head;
|
7098 |
-
anchor = minPos(oldRange.from(), range$$1.anchor);
|
7099 |
-
} else {
|
7100 |
-
head = range$$1.anchor;
|
7101 |
-
anchor = maxPos(oldRange.to(), range$$1.head);
|
7102 |
-
}
|
7103 |
}
|
7104 |
var ranges$1 = startSel.ranges.slice(0);
|
7105 |
ranges$1[ourIndex] = new Range(clipPos(doc, anchor), head);
|
@@ -7116,7 +7318,7 @@ function leftButtonSelect(cm, e, start, type, addNew) {
|
|
7116 |
|
7117 |
function extend(e) {
|
7118 |
var curCount = ++counter;
|
7119 |
-
var cur = posFromMouse(cm, e, true,
|
7120 |
if (!cur) { return }
|
7121 |
if (cmp(cur, lastPos) != 0) {
|
7122 |
cm.curOp.focus = activeElt();
|
@@ -7282,6 +7484,7 @@ function defineOptions(CodeMirror) {
|
|
7282 |
if (next.attach) { next.attach(cm, prev || null); }
|
7283 |
});
|
7284 |
option("extraKeys", null);
|
|
|
7285 |
|
7286 |
option("lineWrapping", false, wrappingChanged, true);
|
7287 |
option("gutters", [], function (cm) {
|
@@ -7309,14 +7512,12 @@ function defineOptions(CodeMirror) {
|
|
7309 |
|
7310 |
option("resetSelectionOnContextMenu", true);
|
7311 |
option("lineWiseCopyCut", true);
|
|
|
7312 |
|
7313 |
option("readOnly", false, function (cm, val) {
|
7314 |
if (val == "nocursor") {
|
7315 |
onBlur(cm);
|
7316 |
cm.display.input.blur();
|
7317 |
-
cm.display.disabled = true;
|
7318 |
-
} else {
|
7319 |
-
cm.display.disabled = false;
|
7320 |
}
|
7321 |
cm.display.input.readOnlyChanged(val);
|
7322 |
});
|
@@ -7537,7 +7738,7 @@ function registerEventHandlers(cm) {
|
|
7537 |
// area, ensure viewport is updated when scrolling.
|
7538 |
on(d.scroller, "scroll", function () {
|
7539 |
if (d.scroller.clientHeight) {
|
7540 |
-
|
7541 |
setScrollLeft(cm, d.scroller.scrollLeft, true);
|
7542 |
signal(cm, "scroll", cm);
|
7543 |
}
|
@@ -7581,7 +7782,7 @@ function indentLine(cm, n, how, aggressive) {
|
|
7581 |
// Fall back to "prev" when the mode doesn't have an indentation
|
7582 |
// method.
|
7583 |
if (!doc.mode.indent) { how = "prev"; }
|
7584 |
-
else { state =
|
7585 |
}
|
7586 |
|
7587 |
var tabSize = cm.options.tabSize;
|
@@ -7657,7 +7858,7 @@ function applyTextInput(cm, inserted, deleted, sel, origin) {
|
|
7657 |
for (var i = 0; i < lastCopied.text.length; i++)
|
7658 |
{ multiPaste.push(doc.splitLines(lastCopied.text[i])); }
|
7659 |
}
|
7660 |
-
} else if (textLines.length == sel.ranges.length) {
|
7661 |
multiPaste = map(textLines, function (l) { return [l]; });
|
7662 |
}
|
7663 |
}
|
@@ -7917,7 +8118,7 @@ var addEditorMethods = function(CodeMirror) {
|
|
7917 |
getStateAfter: function(line, precise) {
|
7918 |
var doc = this.doc;
|
7919 |
line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
|
7920 |
-
return
|
7921 |
},
|
7922 |
|
7923 |
cursorCoords: function(start, mode) {
|
@@ -7998,6 +8199,7 @@ var addEditorMethods = function(CodeMirror) {
|
|
7998 |
triggerOnKeyDown: methodOp(onKeyDown),
|
7999 |
triggerOnKeyPress: methodOp(onKeyPress),
|
8000 |
triggerOnKeyUp: onKeyUp,
|
|
|
8001 |
|
8002 |
execCommand: function(cmd) {
|
8003 |
if (commands.hasOwnProperty(cmd))
|
@@ -8070,7 +8272,7 @@ var addEditorMethods = function(CodeMirror) {
|
|
8070 |
goals.push(headPos.left);
|
8071 |
var pos = findPosV(this$1, headPos, dir, unit);
|
8072 |
if (unit == "page" && range$$1 == doc.sel.primary())
|
8073 |
-
{
|
8074 |
return pos
|
8075 |
}, sel_move);
|
8076 |
if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)
|
@@ -8107,11 +8309,7 @@ var addEditorMethods = function(CodeMirror) {
|
|
8107 |
hasFocus: function() { return this.display.input.getField() == activeElt() },
|
8108 |
isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },
|
8109 |
|
8110 |
-
scrollTo: methodOp(function(x, y) {
|
8111 |
-
if (x != null || y != null) { resolveScrollToPos(this); }
|
8112 |
-
if (x != null) { this.curOp.scrollLeft = x; }
|
8113 |
-
if (y != null) { this.curOp.scrollTop = y; }
|
8114 |
-
}),
|
8115 |
getScrollInfo: function() {
|
8116 |
var scroller = this.display.scroller;
|
8117 |
return {left: scroller.scrollLeft, top: scroller.scrollTop,
|
@@ -8133,16 +8331,9 @@ var addEditorMethods = function(CodeMirror) {
|
|
8133 |
range$$1.margin = margin || 0;
|
8134 |
|
8135 |
if (range$$1.from.line != null) {
|
8136 |
-
|
8137 |
-
this.curOp.scrollToPos = range$$1;
|
8138 |
} else {
|
8139 |
-
|
8140 |
-
left: Math.min(range$$1.from.left, range$$1.to.left),
|
8141 |
-
top: Math.min(range$$1.from.top, range$$1.to.top) - range$$1.margin,
|
8142 |
-
right: Math.max(range$$1.from.right, range$$1.to.right),
|
8143 |
-
bottom: Math.max(range$$1.from.bottom, range$$1.to.bottom) + range$$1.margin
|
8144 |
-
});
|
8145 |
-
this.scrollTo(sPos.scrollLeft, sPos.scrollTop);
|
8146 |
}
|
8147 |
}),
|
8148 |
|
@@ -8164,13 +8355,15 @@ var addEditorMethods = function(CodeMirror) {
|
|
8164 |
}),
|
8165 |
|
8166 |
operation: function(f){return runInOp(this, f)},
|
|
|
|
|
8167 |
|
8168 |
refresh: methodOp(function() {
|
8169 |
var oldHeight = this.display.cachedTextHeight;
|
8170 |
regChange(this);
|
8171 |
this.curOp.forceUpdate = true;
|
8172 |
clearCaches(this);
|
8173 |
-
|
8174 |
updateGutterSpace(this);
|
8175 |
if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
|
8176 |
{ estimateLineHeights(this); }
|
@@ -8183,7 +8376,7 @@ var addEditorMethods = function(CodeMirror) {
|
|
8183 |
attachDoc(this, doc);
|
8184 |
clearCaches(this);
|
8185 |
this.display.input.reset();
|
8186 |
-
this
|
8187 |
this.curOp.forceScroll = true;
|
8188 |
signalLater(this, "swapDoc", this, old);
|
8189 |
return old
|
@@ -8394,36 +8587,41 @@ ContentEditableInput.prototype.showSelection = function (info, takeFocus) {
|
|
8394 |
};
|
8395 |
|
8396 |
ContentEditableInput.prototype.showPrimarySelection = function () {
|
8397 |
-
var sel = window.getSelection(),
|
8398 |
-
var
|
8399 |
-
var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);
|
8400 |
-
if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
|
8401 |
-
cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&
|
8402 |
-
cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)
|
8403 |
-
{ return }
|
8404 |
|
8405 |
-
|
8406 |
-
var end = posToDOM(this.cm, prim.to());
|
8407 |
-
if (!start && !end) {
|
8408 |
sel.removeAllRanges();
|
8409 |
return
|
8410 |
}
|
8411 |
|
8412 |
-
var
|
8413 |
-
var
|
8414 |
-
if (!
|
8415 |
-
|
8416 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8417 |
var measure = view[view.length - 1].measure;
|
8418 |
var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
|
8419 |
end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};
|
8420 |
}
|
8421 |
|
8422 |
-
|
|
|
|
|
|
|
|
|
|
|
8423 |
try { rng = range(start.node, start.offset, end.offset, end.node); }
|
8424 |
catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
|
8425 |
if (rng) {
|
8426 |
-
if (!gecko &&
|
8427 |
sel.collapse(start.node, start.offset);
|
8428 |
if (!rng.collapsed) {
|
8429 |
sel.removeAllRanges();
|
@@ -8702,7 +8900,7 @@ function domTextBetween(cm, from, to, fromLine, toLine) {
|
|
8702 |
var markerID = node.getAttribute("cm-marker"), range$$1;
|
8703 |
if (markerID) {
|
8704 |
var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
|
8705 |
-
if (found.length && (range$$1 = found[0].find()))
|
8706 |
{ addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }
|
8707 |
return
|
8708 |
}
|
@@ -8811,9 +9009,6 @@ var TextareaInput = function(cm) {
|
|
8811 |
this.pollingFast = false;
|
8812 |
// Self-resetting timeout for the poller
|
8813 |
this.polling = new Delayed();
|
8814 |
-
// Tracks when input.reset has punted to just putting a short
|
8815 |
-
// string into the textarea instead of the full selection.
|
8816 |
-
this.inaccurateSelection = false;
|
8817 |
// Used to work around IE issue with selection being forgotten when focus moves away from textarea
|
8818 |
this.hasSelection = false;
|
8819 |
this.composing = null;
|
@@ -8850,12 +9045,6 @@ TextareaInput.prototype.init = function (display) {
|
|
8850 |
if (signalDOMEvent(cm, e)) { return }
|
8851 |
if (cm.somethingSelected()) {
|
8852 |
setLastCopied({lineWise: false, text: cm.getSelections()});
|
8853 |
-
if (input.inaccurateSelection) {
|
8854 |
-
input.prevInput = "";
|
8855 |
-
input.inaccurateSelection = false;
|
8856 |
-
te.value = lastCopied.text.join("\n");
|
8857 |
-
selectInput(te);
|
8858 |
-
}
|
8859 |
} else if (!cm.options.lineWiseCopyCut) {
|
8860 |
return
|
8861 |
} else {
|
@@ -8933,14 +9122,11 @@ TextareaInput.prototype.showSelection = function (drawn) {
|
|
8933 |
// Reset the input to correspond to the selection (or to be empty,
|
8934 |
// when not typing and nothing is selected)
|
8935 |
TextareaInput.prototype.reset = function (typing) {
|
8936 |
-
if (this.contextMenuPending) { return }
|
8937 |
-
var
|
8938 |
if (cm.somethingSelected()) {
|
8939 |
this.prevInput = "";
|
8940 |
-
var
|
8941 |
-
minimal = hasCopyEvent &&
|
8942 |
-
(range$$1.to().line - range$$1.from().line > 100 || (selected = cm.getSelection()).length > 1000);
|
8943 |
-
var content = minimal ? "-" : selected || cm.getSelection();
|
8944 |
this.textarea.value = content;
|
8945 |
if (cm.state.focused) { selectInput(this.textarea); }
|
8946 |
if (ie && ie_version >= 9) { this.hasSelection = content; }
|
@@ -8948,7 +9134,6 @@ TextareaInput.prototype.reset = function (typing) {
|
|
8948 |
this.prevInput = this.textarea.value = "";
|
8949 |
if (ie && ie_version >= 9) { this.hasSelection = null; }
|
8950 |
}
|
8951 |
-
this.inaccurateSelection = minimal;
|
8952 |
};
|
8953 |
|
8954 |
TextareaInput.prototype.getField = function () { return this.textarea };
|
@@ -9143,6 +9328,7 @@ TextareaInput.prototype.onContextMenu = function (e) {
|
|
9143 |
|
9144 |
TextareaInput.prototype.readOnlyChanged = function (val) {
|
9145 |
if (!val) { this.reset(); }
|
|
|
9146 |
};
|
9147 |
|
9148 |
TextareaInput.prototype.setUneditable = function () {};
|
@@ -9298,7 +9484,7 @@ CodeMirror$1.fromTextArea = fromTextArea;
|
|
9298 |
|
9299 |
addLegacyProps(CodeMirror$1);
|
9300 |
|
9301 |
-
CodeMirror$1.version = "5.
|
9302 |
|
9303 |
return CodeMirror$1;
|
9304 |
|
@@ -9712,11 +9898,6 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
|
|
9712 |
})(function(CodeMirror) {
|
9713 |
"use strict";
|
9714 |
|
9715 |
-
function expressionAllowed(stream, state, backUp) {
|
9716 |
-
return /^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
|
9717 |
-
(state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
|
9718 |
-
}
|
9719 |
-
|
9720 |
CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
9721 |
var indentUnit = config.indentUnit;
|
9722 |
var statementIndent = parserConfig.statementIndent;
|
@@ -9742,12 +9923,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
9742 |
"true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
|
9743 |
"this": kw("this"), "class": kw("class"), "super": kw("atom"),
|
9744 |
"yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
|
9745 |
-
"await": C
|
9746 |
};
|
9747 |
|
9748 |
// Extend the 'normal' keywords with the TypeScript language extensions
|
9749 |
if (isTS) {
|
9750 |
-
var type = {type: "variable", style: "
|
9751 |
var tsKeywords = {
|
9752 |
// object-like things
|
9753 |
"interface": kw("class"),
|
@@ -9755,16 +9936,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
9755 |
"namespace": C,
|
9756 |
"module": kw("module"),
|
9757 |
"enum": kw("module"),
|
9758 |
-
"type": kw("type"),
|
9759 |
|
9760 |
// scope modifiers
|
9761 |
"public": kw("modifier"),
|
9762 |
"private": kw("modifier"),
|
9763 |
"protected": kw("modifier"),
|
9764 |
"abstract": kw("modifier"),
|
9765 |
-
|
9766 |
-
// operators
|
9767 |
-
"as": operator,
|
9768 |
|
9769 |
// types
|
9770 |
"string": type, "number": type, "boolean": type, "any": type
|
@@ -9778,7 +9956,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
9778 |
return jsKeywords;
|
9779 |
}();
|
9780 |
|
9781 |
-
var isOperatorChar = /[
|
9782 |
var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
|
9783 |
|
9784 |
function readRegexp(stream) {
|
@@ -9852,9 +10030,16 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
9852 |
return ret("operator", "operator", stream.current());
|
9853 |
} else if (wordRE.test(ch)) {
|
9854 |
stream.eatWhile(wordRE);
|
9855 |
-
var word = stream.current()
|
9856 |
-
|
9857 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9858 |
}
|
9859 |
}
|
9860 |
|
@@ -10062,8 +10247,18 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10062 |
}
|
10063 |
if (type == "function") return cont(functiondef);
|
10064 |
if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
|
10065 |
-
if (type == "variable")
|
10066 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10067 |
block, poplex, poplex);
|
10068 |
if (type == "case") return cont(expression, expect(":"));
|
10069 |
if (type == "default") return cont(expect(":"));
|
@@ -10072,9 +10267,9 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10072 |
if (type == "class") return cont(pushlex("form"), className, poplex);
|
10073 |
if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
|
10074 |
if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
|
10075 |
-
if (type == "module") return cont(pushlex("form"), pattern,
|
10076 |
-
if (type == "type") return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
|
10077 |
if (type == "async") return cont(statement)
|
|
|
10078 |
return pass(pushlex("stat"), expression, expect(";"), poplex);
|
10079 |
}
|
10080 |
function expression(type) {
|
@@ -10125,7 +10320,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10125 |
var expr = noComma == false ? expression : expressionNoComma;
|
10126 |
if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
|
10127 |
if (type == "operator") {
|
10128 |
-
if (/\+\+|--/.test(value)) return cont(me);
|
10129 |
if (value == "?") return cont(expression, expect(":"), expr);
|
10130 |
return cont(expr);
|
10131 |
}
|
@@ -10134,6 +10329,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10134 |
if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
|
10135 |
if (type == ".") return cont(property, me);
|
10136 |
if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
|
|
|
10137 |
}
|
10138 |
function quasi(type, value) {
|
10139 |
if (type != "quasi") return pass();
|
@@ -10158,6 +10354,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10158 |
function maybeTarget(noComma) {
|
10159 |
return function(type) {
|
10160 |
if (type == ".") return cont(noComma ? targetNoComma : target);
|
|
|
10161 |
else return pass(noComma ? expressionNoComma : expression);
|
10162 |
};
|
10163 |
}
|
@@ -10192,7 +10389,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10192 |
} else if (type == "[") {
|
10193 |
return cont(expression, expect("]"), afterprop);
|
10194 |
} else if (type == "spread") {
|
10195 |
-
return cont(expression);
|
10196 |
} else if (type == ":") {
|
10197 |
return pass(afterprop)
|
10198 |
}
|
@@ -10239,10 +10436,19 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10239 |
if (value == "?") return cont(maybetype);
|
10240 |
}
|
10241 |
}
|
10242 |
-
function typeexpr(type) {
|
10243 |
-
if (type == "variable") {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10244 |
if (type == "string" || type == "number" || type == "atom") return cont(afterType);
|
10245 |
-
if (type == "
|
|
|
10246 |
if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
|
10247 |
}
|
10248 |
function maybeReturnType(type) {
|
@@ -10256,6 +10462,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10256 |
return cont(typeprop)
|
10257 |
} else if (type == ":") {
|
10258 |
return cont(typeexpr)
|
|
|
|
|
10259 |
}
|
10260 |
}
|
10261 |
function typearg(type) {
|
@@ -10266,6 +10474,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10266 |
if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
|
10267 |
if (value == "|" || type == ".") return cont(typeexpr)
|
10268 |
if (type == "[") return cont(expect("]"), afterType)
|
|
|
|
|
|
|
|
|
10269 |
}
|
10270 |
function vardef() {
|
10271 |
return pass(pattern, maybetype, maybeAssign, vardefCont);
|
@@ -10321,9 +10533,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10321 |
if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
|
10322 |
if (type == "variable") {register(value); return cont(functiondef);}
|
10323 |
if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
|
|
|
10324 |
}
|
10325 |
function funarg(type) {
|
10326 |
-
if (type == "spread") return cont(funarg);
|
10327 |
return pass(pattern, maybetype, maybeAssign);
|
10328 |
}
|
10329 |
function classExpression(type, value) {
|
@@ -10341,13 +10554,14 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10341 |
if (type == "{") return cont(pushlex("}"), classBody, poplex);
|
10342 |
}
|
10343 |
function classBody(type, value) {
|
10344 |
-
if (type == "
|
10345 |
-
|
10346 |
-
|
10347 |
-
|
10348 |
-
|
10349 |
-
|
10350 |
-
|
|
|
10351 |
cx.marked = "property";
|
10352 |
return cont(isTS ? classfield : functiondef, classBody);
|
10353 |
}
|
@@ -10359,6 +10573,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10359 |
}
|
10360 |
if (type == ";") return cont(classBody);
|
10361 |
if (type == "}") return cont();
|
|
|
10362 |
}
|
10363 |
function classfield(type, value) {
|
10364 |
if (value == "?") return cont(classfield)
|
@@ -10406,6 +10621,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10406 |
/[,.]/.test(textAfter.charAt(0));
|
10407 |
}
|
10408 |
|
|
|
|
|
|
|
|
|
|
|
|
|
10409 |
// Interface
|
10410 |
|
10411 |
return {
|
@@ -10480,6 +10701,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|
10480 |
jsonMode: jsonMode,
|
10481 |
|
10482 |
expressionAllowed: expressionAllowed,
|
|
|
10483 |
skipExpression: function(state) {
|
10484 |
var top = state.cc[state.cc.length - 1]
|
10485 |
if (top == expression || top == expressionNoComma) state.cc.pop()
|
@@ -10887,7 +11109,8 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
10887 |
style = style[0];
|
10888 |
}
|
10889 |
override = style;
|
10890 |
-
|
|
|
10891 |
return override;
|
10892 |
},
|
10893 |
|
@@ -10905,7 +11128,6 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
10905 |
ch == "{" && (cx.type == "at" || cx.type == "atBlock")) {
|
10906 |
// Dedent relative to current context.
|
10907 |
indent = Math.max(0, cx.indent - indentUnit);
|
10908 |
-
cx = cx.prev;
|
10909 |
}
|
10910 |
}
|
10911 |
return indent;
|
@@ -10976,7 +11198,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
10976 |
"border-top-left-radius", "border-top-right-radius", "border-top-style",
|
10977 |
"border-top-width", "border-width", "bottom", "box-decoration-break",
|
10978 |
"box-shadow", "box-sizing", "break-after", "break-before", "break-inside",
|
10979 |
-
"caption-side", "clear", "clip", "color", "color-profile", "column-count",
|
10980 |
"column-fill", "column-gap", "column-rule", "column-rule-color",
|
10981 |
"column-rule-style", "column-rule-width", "column-span", "column-width",
|
10982 |
"columns", "content", "counter-increment", "counter-reset", "crop", "cue",
|
@@ -10997,7 +11219,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
10997 |
"grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns",
|
10998 |
"grid-template-rows", "hanging-punctuation", "height", "hyphens",
|
10999 |
"icon", "image-orientation", "image-rendering", "image-resolution",
|
11000 |
-
"inline-box-align", "justify-content", "left", "letter-spacing",
|
11001 |
"line-break", "line-height", "line-stacking", "line-stacking-ruby",
|
11002 |
"line-stacking-shift", "line-stacking-strategy", "list-style",
|
11003 |
"list-style-image", "list-style-position", "list-style-type", "margin",
|
@@ -11012,7 +11234,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11012 |
"padding", "padding-bottom", "padding-left", "padding-right", "padding-top",
|
11013 |
"page", "page-break-after", "page-break-before", "page-break-inside",
|
11014 |
"page-policy", "pause", "pause-after", "pause-before", "perspective",
|
11015 |
-
"perspective-origin", "pitch", "pitch-range", "play-during", "position",
|
11016 |
"presentation-level", "punctuation-trim", "quotes", "region-break-after",
|
11017 |
"region-break-before", "region-break-inside", "region-fragment",
|
11018 |
"rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness",
|
@@ -11163,13 +11385,13 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11163 |
"s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen",
|
11164 |
"scroll", "scrollbar", "scroll-position", "se-resize", "searchfield",
|
11165 |
"searchfield-cancel-button", "searchfield-decoration",
|
11166 |
-
"searchfield-results-button", "searchfield-results-decoration",
|
11167 |
"semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama",
|
11168 |
"simp-chinese-formal", "simp-chinese-informal", "single",
|
11169 |
"skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal",
|
11170 |
"slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",
|
11171 |
"small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali",
|
11172 |
-
"source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "spell-out", "square",
|
11173 |
"square-button", "start", "static", "status-bar", "stretch", "stroke", "sub",
|
11174 |
"subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "system-ui", "table",
|
11175 |
"table-caption", "table-cell", "table-column", "table-column-group",
|
@@ -11252,8 +11474,8 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11252 |
}
|
11253 |
},
|
11254 |
":": function(stream) {
|
11255 |
-
if (stream.match(/\s*\{
|
11256 |
-
return [null,
|
11257 |
return false;
|
11258 |
},
|
11259 |
"$": function(stream) {
|
@@ -11469,11 +11691,11 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
|
|
11469 |
return state.token(stream, state);
|
11470 |
},
|
11471 |
|
11472 |
-
indent: function (state, textAfter) {
|
11473 |
if (!state.localMode || /^\s*<\//.test(textAfter))
|
11474 |
return htmlMode.indent(state.htmlState, textAfter);
|
11475 |
else if (state.localMode.indent)
|
11476 |
-
return state.localMode.indent(state.localState, textAfter);
|
11477 |
else
|
11478 |
return CodeMirror.Pass;
|
11479 |
},
|
@@ -11522,7 +11744,7 @@ function popContext(state) {
|
|
11522 |
}
|
11523 |
|
11524 |
function typeBefore(stream, state, pos) {
|
11525 |
-
if (state.prevToken == "variable" || state.prevToken == "
|
11526 |
if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, pos))) return true;
|
11527 |
if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;
|
11528 |
}
|
@@ -11553,7 +11775,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11553 |
isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
|
11554 |
numberStart = parserConfig.numberStart || /[\d\.]/,
|
11555 |
number = parserConfig.number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,
|
11556 |
-
isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]
|
|
|
11557 |
|
11558 |
var curPunc, isDefKeyword;
|
11559 |
|
@@ -11590,9 +11813,9 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11590 |
while (!stream.match(/^\/[\/*]/, false) && stream.eat(isOperatorChar)) {}
|
11591 |
return "operator";
|
11592 |
}
|
11593 |
-
stream.eatWhile(
|
11594 |
if (namespaceSeparator) while (stream.match(namespaceSeparator))
|
11595 |
-
stream.eatWhile(
|
11596 |
|
11597 |
var cur = stream.current();
|
11598 |
if (contains(keywords, cur)) {
|
@@ -11600,7 +11823,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11600 |
if (contains(defKeywords, cur)) isDefKeyword = true;
|
11601 |
return "keyword";
|
11602 |
}
|
11603 |
-
if (contains(types, cur)) return "
|
11604 |
if (contains(builtin, cur)) {
|
11605 |
if (contains(blockKeywords, cur)) curPunc = "newstatement";
|
11606 |
return "builtin";
|
@@ -11769,7 +11992,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11769 |
}
|
11770 |
|
11771 |
function pointerHook(_stream, state) {
|
11772 |
-
if (state.prevToken == "
|
11773 |
return false;
|
11774 |
}
|
11775 |
|
@@ -11803,7 +12026,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11803 |
}
|
11804 |
|
11805 |
function cppLooksLikeConstructor(word) {
|
11806 |
-
var lastTwo = /(\w+)
|
11807 |
return lastTwo && lastTwo[1] == lastTwo[2];
|
11808 |
}
|
11809 |
|
@@ -11879,6 +12102,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
11879 |
typeFirstDefinitions: true,
|
11880 |
atoms: words("true false null"),
|
11881 |
dontIndentStatements: /^template$/,
|
|
|
11882 |
hooks: {
|
11883 |
"#": cppHook,
|
11884 |
"*": pointerHook,
|
@@ -12002,8 +12226,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12002 |
"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
|
12003 |
),
|
12004 |
multiLineStrings: true,
|
12005 |
-
blockKeywords: words("catch class do else finally for forSome if match switch try while"),
|
12006 |
-
defKeywords: words("class def object package trait type val var"),
|
12007 |
atoms: words("true false null"),
|
12008 |
indentStatements: false,
|
12009 |
indentSwitch: false,
|
@@ -12261,7 +12485,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
12261 |
return "atom";
|
12262 |
},
|
12263 |
token: function(_stream, state, style) {
|
12264 |
-
if ((style == "variable" || style == "
|
12265 |
state.prevToken == ".") {
|
12266 |
return "variable-2";
|
12267 |
}
|
@@ -13025,189 +13249,289 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13025 |
|
13026 |
(function(mod) {
|
13027 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
13028 |
-
mod(require("../../lib/codemirror"))
|
13029 |
else if (typeof define == "function" && define.amd) // AMD
|
13030 |
-
define(["../../lib/codemirror"], mod)
|
13031 |
else // Plain browser env
|
13032 |
-
mod(CodeMirror)
|
13033 |
})(function(CodeMirror) {
|
13034 |
-
"use strict"
|
13035 |
-
var Pos = CodeMirror.Pos
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13036 |
|
13037 |
-
function
|
13038 |
-
|
13039 |
-
if (caseFold == null && typeof query == "string") caseFold = false;
|
13040 |
|
13041 |
-
|
13042 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13043 |
|
13044 |
-
|
13045 |
-
|
13046 |
-
|
13047 |
-
|
13048 |
-
|
13049 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13050 |
this.matches = function(reverse, pos) {
|
13051 |
-
|
13052 |
-
|
13053 |
-
|
13054 |
-
|
13055 |
-
|
13056 |
-
|
13057 |
-
|
13058 |
-
match = newMatch;
|
13059 |
-
start = match.index;
|
13060 |
-
cutOff = match.index + (match[0].length || 1);
|
13061 |
-
if (cutOff == line.length) break;
|
13062 |
-
}
|
13063 |
-
var matchLen = (match && match[0].length) || 0;
|
13064 |
-
if (!matchLen) {
|
13065 |
-
if (start == 0 && line.length == 0) {match = undefined;}
|
13066 |
-
else if (start != doc.getLine(pos.line).length) {
|
13067 |
-
matchLen++;
|
13068 |
-
}
|
13069 |
-
}
|
13070 |
-
} else {
|
13071 |
-
query.lastIndex = pos.ch;
|
13072 |
-
var line = doc.getLine(pos.line), match = query.exec(line);
|
13073 |
-
var matchLen = (match && match[0].length) || 0;
|
13074 |
-
var start = match && match.index;
|
13075 |
-
if (start + matchLen != line.length && !matchLen) matchLen = 1;
|
13076 |
-
}
|
13077 |
-
if (match && matchLen)
|
13078 |
-
return {from: Pos(pos.line, start),
|
13079 |
-
to: Pos(pos.line, start + matchLen),
|
13080 |
-
match: match};
|
13081 |
-
};
|
13082 |
-
} else { // String query
|
13083 |
-
var origQuery = query;
|
13084 |
-
if (caseFold) query = query.toLowerCase();
|
13085 |
-
var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;};
|
13086 |
-
var target = query.split("\n");
|
13087 |
-
// Different methods for single-line and multi-line queries
|
13088 |
-
if (target.length == 1) {
|
13089 |
-
if (!query.length) {
|
13090 |
-
// Empty string would match anything and never progress, so
|
13091 |
-
// we define it to match nothing instead.
|
13092 |
-
this.matches = function() {};
|
13093 |
-
} else {
|
13094 |
-
this.matches = function(reverse, pos) {
|
13095 |
-
if (reverse) {
|
13096 |
-
var orig = doc.getLine(pos.line).slice(0, pos.ch), line = fold(orig);
|
13097 |
-
var match = line.lastIndexOf(query);
|
13098 |
-
if (match > -1) {
|
13099 |
-
match = adjustPos(orig, line, match);
|
13100 |
-
return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};
|
13101 |
-
}
|
13102 |
-
} else {
|
13103 |
-
var orig = doc.getLine(pos.line).slice(pos.ch), line = fold(orig);
|
13104 |
-
var match = line.indexOf(query);
|
13105 |
-
if (match > -1) {
|
13106 |
-
match = adjustPos(orig, line, match) + pos.ch;
|
13107 |
-
return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};
|
13108 |
-
}
|
13109 |
-
}
|
13110 |
-
};
|
13111 |
}
|
13112 |
-
|
13113 |
-
var origTarget = origQuery.split("\n");
|
13114 |
this.matches = function(reverse, pos) {
|
13115 |
-
|
13116 |
-
|
13117 |
-
if (pos.line - (target.length - 1) < doc.firstLine()) return;
|
13118 |
-
if (fold(doc.getLine(pos.line).slice(0, origTarget[last].length)) != target[target.length - 1]) return;
|
13119 |
-
var to = Pos(pos.line, origTarget[last].length);
|
13120 |
-
for (var ln = pos.line - 1, i = last - 1; i >= 1; --i, --ln)
|
13121 |
-
if (target[i] != fold(doc.getLine(ln))) return;
|
13122 |
-
var line = doc.getLine(ln), cut = line.length - origTarget[0].length;
|
13123 |
-
if (fold(line.slice(cut)) != target[0]) return;
|
13124 |
-
return {from: Pos(ln, cut), to: to};
|
13125 |
-
} else {
|
13126 |
-
if (pos.line + (target.length - 1) > doc.lastLine()) return;
|
13127 |
-
var line = doc.getLine(pos.line), cut = line.length - origTarget[0].length;
|
13128 |
-
if (fold(line.slice(cut)) != target[0]) return;
|
13129 |
-
var from = Pos(pos.line, cut);
|
13130 |
-
for (var ln = pos.line + 1, i = 1; i < last; ++i, ++ln)
|
13131 |
-
if (target[i] != fold(doc.getLine(ln))) return;
|
13132 |
-
if (fold(doc.getLine(ln).slice(0, origTarget[last].length)) != target[last]) return;
|
13133 |
-
return {from: from, to: Pos(ln, origTarget[last].length)};
|
13134 |
-
}
|
13135 |
-
};
|
13136 |
-
}
|
13137 |
}
|
13138 |
}
|
13139 |
|
13140 |
SearchCursor.prototype = {
|
13141 |
-
findNext: function() {return this.find(false)
|
13142 |
-
findPrevious: function() {return this.find(true)
|
13143 |
|
13144 |
find: function(reverse) {
|
13145 |
-
var
|
13146 |
-
function savePosAndFail(line) {
|
13147 |
-
var pos = Pos(line, 0);
|
13148 |
-
self.pos = {from: pos, to: pos};
|
13149 |
-
self.atOccurrence = false;
|
13150 |
-
return false;
|
13151 |
-
}
|
13152 |
|
13153 |
-
|
13154 |
-
|
13155 |
-
|
13156 |
-
return this.pos.match || true;
|
13157 |
-
}
|
13158 |
if (reverse) {
|
13159 |
-
if (
|
13160 |
-
|
13161 |
-
|
13162 |
-
else {
|
13163 |
-
|
13164 |
-
if (
|
13165 |
-
|
13166 |
}
|
13167 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13168 |
},
|
13169 |
|
13170 |
-
from: function() {if (this.atOccurrence) return this.pos.from
|
13171 |
-
to: function() {if (this.atOccurrence) return this.pos.to
|
13172 |
|
13173 |
replace: function(newText, origin) {
|
13174 |
-
if (!this.atOccurrence) return
|
13175 |
-
var lines = CodeMirror.splitLines(newText)
|
13176 |
-
this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)
|
13177 |
this.pos.to = Pos(this.pos.from.line + lines.length - 1,
|
13178 |
-
lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))
|
13179 |
-
}
|
13180 |
-
};
|
13181 |
-
|
13182 |
-
// Maps a position in a case-folded line back to a position in the original line
|
13183 |
-
// (compensating for codepoints increasing in number during folding)
|
13184 |
-
function adjustPos(orig, folded, pos) {
|
13185 |
-
if (orig.length == folded.length) return pos;
|
13186 |
-
for (var pos1 = Math.min(pos, orig.length);;) {
|
13187 |
-
var len1 = orig.slice(0, pos1).toLowerCase().length;
|
13188 |
-
if (len1 < pos) ++pos1;
|
13189 |
-
else if (len1 > pos) --pos1;
|
13190 |
-
else return pos1;
|
13191 |
}
|
13192 |
}
|
13193 |
|
13194 |
CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
|
13195 |
-
return new SearchCursor(this.doc, query, pos, caseFold)
|
13196 |
-
})
|
13197 |
CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
|
13198 |
-
return new SearchCursor(this, query, pos, caseFold)
|
13199 |
-
})
|
13200 |
|
13201 |
CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
|
13202 |
-
var ranges = []
|
13203 |
-
var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold)
|
13204 |
while (cur.findNext()) {
|
13205 |
-
if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break
|
13206 |
-
ranges.push({anchor: cur.from(), head: cur.to()})
|
13207 |
}
|
13208 |
if (ranges.length)
|
13209 |
-
this.setSelections(ranges, 0)
|
13210 |
-
})
|
13211 |
});
|
13212 |
|
13213 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
@@ -13266,7 +13590,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13266 |
|
13267 |
function getSearchCursor(cm, query, pos) {
|
13268 |
// Heuristic: if the query string is all lowercase, do a case insensitive search.
|
13269 |
-
return cm.getSearchCursor(query, pos, queryCaseInsensitive(query));
|
13270 |
}
|
13271 |
|
13272 |
function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {
|
@@ -13311,7 +13635,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13311 |
}
|
13312 |
|
13313 |
var queryDialog =
|
13314 |
-
'Search
|
13315 |
|
13316 |
function startSearch(cm, state, query) {
|
13317 |
state.queryText = query;
|
@@ -13349,8 +13673,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13349 |
};
|
13350 |
persistentDialog(cm, queryDialog, q, searchNext, function(event, query) {
|
13351 |
var keyName = CodeMirror.keyName(event)
|
13352 |
-
var cmd = CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
|
13353 |
-
if (!cmd) cmd = cm.getOption('extraKeys')[keyName]
|
13354 |
if (cmd == "findNext" || cmd == "findPrev" ||
|
13355 |
cmd == "findPersistentNext" || cmd == "findPersistentPrev") {
|
13356 |
CodeMirror.e_stop(event);
|
@@ -13400,8 +13723,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13400 |
|
13401 |
var replaceQueryDialog =
|
13402 |
' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
|
13403 |
-
var replacementQueryDialog = 'With
|
13404 |
-
var doReplaceConfirm = "Replace
|
13405 |
|
13406 |
function replaceAll(cm, query, text) {
|
13407 |
cm.operation(function() {
|
@@ -13417,7 +13740,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
13417 |
function replace(cm, all) {
|
13418 |
if (cm.getOption("readOnly")) return;
|
13419 |
var query = cm.getSelection() || getSearchState(cm).lastQuery;
|
13420 |
-
var dialogText = all ?
|
13421 |
dialog(cm, dialogText + replaceQueryDialog, dialogText, query, function(query) {
|
13422 |
if (!query) return;
|
13423 |
query = parseQuery(query);
|
@@ -14055,6 +14378,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14055 |
widget = document.createElement("span");
|
14056 |
widget.appendChild(text);
|
14057 |
widget.className = "CodeMirror-foldmarker";
|
|
|
|
|
14058 |
}
|
14059 |
return widget;
|
14060 |
}
|
@@ -14451,10 +14776,10 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|
14451 |
}
|
14452 |
};
|
14453 |
|
14454 |
-
CodeMirror.findEnclosingTag = function(cm, pos, range) {
|
14455 |
var iter = new Iter(cm, pos.line, pos.ch, range);
|
14456 |
for (;;) {
|
14457 |
-
var open = findMatchingOpen(iter);
|
14458 |
if (!open) break;
|
14459 |
var forward = new Iter(cm, pos.line, pos.ch, range);
|
14460 |
var close = findMatchingClose(forward, open.tag);
|
@@ -14489,7 +14814,7 @@ function lineIndent(cm, lineNo) {
|
|
14489 |
return -1
|
14490 |
return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
|
14491 |
}
|
14492 |
-
|
14493 |
CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
14494 |
var myIndent = lineIndent(cm, start.line)
|
14495 |
if (myIndent < 0) return
|
@@ -14536,12 +14861,21 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
14536 |
|
14537 |
var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
|
14538 |
|
14539 |
-
function findMatchingBracket(cm, where,
|
14540 |
var line = cm.getLineHandle(where.line), pos = where.ch - 1;
|
14541 |
-
var
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14542 |
if (!match) return null;
|
14543 |
var dir = match.charAt(1) == ">" ? 1 : -1;
|
14544 |
-
if (strict && (dir > 0) != (pos == where.ch)) return null;
|
14545 |
var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
|
14546 |
|
14547 |
var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
|
@@ -14589,7 +14923,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
14589 |
var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
|
14590 |
var marks = [], ranges = cm.listSelections();
|
14591 |
for (var i = 0; i < ranges.length; i++) {
|
14592 |
-
var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head,
|
14593 |
if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
|
14594 |
var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
|
14595 |
marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
|
@@ -14633,8 +14967,17 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
14633 |
});
|
14634 |
|
14635 |
CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
|
14636 |
-
CodeMirror.defineExtension("findMatchingBracket", function(pos,
|
14637 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14638 |
});
|
14639 |
CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
|
14640 |
return scanForBracket(this, pos, dir, style, config);
|
@@ -15414,6 +15757,23 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15414 |
cm.state.sublimeFindFullWord = cm.doc.sel;
|
15415 |
};
|
15416 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15417 |
function isSelectedRange(ranges, from, to) {
|
15418 |
for (var i = 0; i < ranges.length; i++)
|
15419 |
if (ranges[i].from() == from && ranges[i].to() == to) return true
|
@@ -15943,7 +16303,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
15943 |
|
15944 |
function byExpr(cm, pos, dir) {
|
15945 |
var wrap;
|
15946 |
-
if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, true))
|
15947 |
&& wrap.match && (wrap.forward ? 1 : -1) == dir)
|
15948 |
return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;
|
15949 |
|
@@ -16215,7 +16575,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16215 |
"Ctrl-/": repeated("undo"), "Shift-Ctrl--": repeated("undo"),
|
16216 |
"Ctrl-Z": repeated("undo"), "Cmd-Z": repeated("undo"),
|
16217 |
"Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd",
|
16218 |
-
"Ctrl-S": "
|
16219 |
"Alt-/": "autocomplete",
|
16220 |
"Enter": "newlineAndIndent",
|
16221 |
"Ctrl-J": repeated(function(cm) { cm.replaceSelection("\n", "end"); }),
|
@@ -16522,7 +16882,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16522 |
CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
|
16523 |
|
16524 |
if (!next || next.attach != attachVimMap)
|
16525 |
-
leaveVimMode(cm
|
16526 |
}
|
16527 |
function attachVimMap(cm, prev) {
|
16528 |
if (this == CodeMirror.keyMap.vim)
|
@@ -16674,11 +17034,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16674 |
cfg = cfg || {};
|
16675 |
var scope = cfg.scope;
|
16676 |
if (!option) {
|
16677 |
-
|
16678 |
}
|
16679 |
if (option.type == 'boolean') {
|
16680 |
if (value && value !== true) {
|
16681 |
-
|
16682 |
} else if (value !== false) {
|
16683 |
// Boolean options are set to true if value is not defined.
|
16684 |
value = true;
|
@@ -16706,7 +17066,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16706 |
cfg = cfg || {};
|
16707 |
var scope = cfg.scope;
|
16708 |
if (!option) {
|
16709 |
-
|
16710 |
}
|
16711 |
if (option.callback) {
|
16712 |
var local = cm && option.callback(undefined, cm);
|
@@ -16912,9 +17272,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
16912 |
lastCharacterSearch: {increment:0, forward:true, selectedCharacter:''},
|
16913 |
registerController: new RegisterController({}),
|
16914 |
// search history buffer
|
16915 |
-
searchHistoryController: new HistoryController(
|
16916 |
// ex Command history buffer
|
16917 |
-
exCommandHistoryController : new HistoryController(
|
16918 |
};
|
16919 |
for (var optionName in options) {
|
16920 |
var option = options[optionName];
|
@@ -17221,7 +17581,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
17221 |
* for a reference implementation.
|
17222 |
*/
|
17223 |
function defineRegister(name, register) {
|
17224 |
-
var registers = vimGlobalState.registerController.registers
|
17225 |
if (!name || name.length != 1) {
|
17226 |
throw Error('Register name must be 1 character');
|
17227 |
}
|
@@ -17249,9 +17609,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
17249 |
}
|
17250 |
RegisterController.prototype = {
|
17251 |
pushText: function(registerName, operator, text, linewise, blockwise) {
|
17252 |
-
if (linewise && text.charAt(0) == '\n') {
|
17253 |
-
text = text.slice(1) + '\n';
|
17254 |
-
}
|
17255 |
if (linewise && text.charAt(text.length - 1) !== '\n'){
|
17256 |
text += '\n';
|
17257 |
}
|
@@ -17373,7 +17730,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
17373 |
}
|
17374 |
}
|
17375 |
if (bestMatch.keys.slice(-11) == '<character>') {
|
17376 |
-
|
|
|
|
|
17377 |
}
|
17378 |
return {type: 'full', command: bestMatch};
|
17379 |
},
|
@@ -18099,16 +18458,16 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18099 |
var ch = cursor.ch;
|
18100 |
var lineText = cm.getLine(line);
|
18101 |
var symbol;
|
18102 |
-
|
18103 |
-
symbol = lineText.charAt(ch
|
18104 |
if (symbol && isMatchableSymbol(symbol)) {
|
18105 |
-
var style = cm.getTokenTypeAt(Pos(line, ch));
|
18106 |
if (style !== "string" && style !== "comment") {
|
18107 |
break;
|
18108 |
}
|
18109 |
}
|
18110 |
-
}
|
18111 |
-
if (
|
18112 |
var matched = cm.findMatchingBracket(Pos(line, ch));
|
18113 |
return matched.to;
|
18114 |
} else {
|
@@ -18449,7 +18808,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18449 |
enterMacroRecordMode: function(cm, actionArgs) {
|
18450 |
var macroModeState = vimGlobalState.macroModeState;
|
18451 |
var registerName = actionArgs.selectedCharacter;
|
18452 |
-
|
|
|
|
|
18453 |
},
|
18454 |
toggleOverwrite: function(cm) {
|
18455 |
if (!cm.state.overwrite) {
|
@@ -18967,7 +19328,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18967 |
}
|
18968 |
}
|
18969 |
function lastChar(keys) {
|
18970 |
-
var match = /^.*(<[
|
18971 |
var selectedCharacter = match ? match[1] : keys.slice(-1);
|
18972 |
if (selectedCharacter.length > 1){
|
18973 |
switch(selectedCharacter){
|
@@ -18978,6 +19339,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
18978 |
selectedCharacter=' ';
|
18979 |
break;
|
18980 |
default:
|
|
|
18981 |
break;
|
18982 |
}
|
18983 |
}
|
@@ -19078,7 +19440,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
19078 |
var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};
|
19079 |
selections.push(range);
|
19080 |
}
|
19081 |
-
primIndex = head.line == lastLine ? selections.length - 1 : 0;
|
19082 |
cm.setSelections(selections);
|
19083 |
selectionEnd.ch = headCh;
|
19084 |
base.ch = baseCh;
|
@@ -20346,23 +20707,42 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20346 |
parseLineSpec_: function(cm, inputStream) {
|
20347 |
var numberMatch = inputStream.match(/^(\d+)/);
|
20348 |
if (numberMatch) {
|
|
|
|
|
20349 |
return parseInt(numberMatch[1], 10) - 1;
|
20350 |
}
|
20351 |
switch (inputStream.next()) {
|
20352 |
case '.':
|
20353 |
-
return cm.getCursor().line;
|
20354 |
case '$':
|
20355 |
-
return cm.lastLine();
|
20356 |
case '\'':
|
20357 |
var markName = inputStream.next();
|
20358 |
var markPos = getMarkPos(cm, cm.state.vim, markName);
|
20359 |
if (!markPos) throw new Error('Mark not set');
|
20360 |
-
return markPos.line;
|
|
|
|
|
|
|
|
|
|
|
20361 |
default:
|
20362 |
inputStream.backUp(1);
|
20363 |
return undefined;
|
20364 |
}
|
20365 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20366 |
parseCommandArgs_: function(inputStream, params, command) {
|
20367 |
if (inputStream.eol()) {
|
20368 |
return;
|
@@ -20542,13 +20922,18 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20542 |
// If no value is provided, then we assume this is a get.
|
20543 |
if (!optionIsBoolean && value === undefined || forceGet) {
|
20544 |
var oldValue = getOption(optionName, cm, setCfg);
|
20545 |
-
if (oldValue
|
|
|
|
|
20546 |
showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);
|
20547 |
} else {
|
20548 |
showConfirm(cm, ' ' + optionName + '=' + oldValue);
|
20549 |
}
|
20550 |
} else {
|
20551 |
-
setOption(optionName, value, cm, setCfg);
|
|
|
|
|
|
|
20552 |
}
|
20553 |
},
|
20554 |
setlocal: function (cm, params) {
|
@@ -20747,6 +21132,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
20747 |
if (tokens.length) {
|
20748 |
regexPart = tokens[0];
|
20749 |
replacePart = tokens[1];
|
|
|
|
|
|
|
|
|
20750 |
if (replacePart !== undefined) {
|
20751 |
if (getOption('pcre')) {
|
20752 |
replacePart = unescapeRegexReplace(replacePart);
|
@@ -21166,7 +21555,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21166 |
* Listens for changes made in insert mode.
|
21167 |
* Should only be active in insert mode.
|
21168 |
*/
|
21169 |
-
function onChange(
|
21170 |
var macroModeState = vimGlobalState.macroModeState;
|
21171 |
var lastChange = macroModeState.lastInsertModeChanges;
|
21172 |
if (!macroModeState.isPlaying) {
|
@@ -21179,7 +21568,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21179 |
lastChange.changes = [];
|
21180 |
lastChange.maybeReset = false;
|
21181 |
}
|
21182 |
-
|
|
|
|
|
|
|
|
|
21183 |
}
|
21184 |
// Change objects may be chained with next.
|
21185 |
changeObj = changeObj.next;
|
@@ -21361,9 +21754,13 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21361 |
var change = changes[j];
|
21362 |
if (change instanceof InsertModeKey) {
|
21363 |
CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
|
21364 |
-
} else {
|
21365 |
var cur = cm.getCursor();
|
21366 |
cm.replaceRange(change, cur, cur);
|
|
|
|
|
|
|
|
|
21367 |
}
|
21368 |
}
|
21369 |
}
|
@@ -21388,7 +21785,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
|
21388 |
* @since 2.2.1
|
21389 |
*/
|
21390 |
|
21391 |
-
console.log(window.heshOptions); // from wordpress php
|
21392 |
|
21393 |
(function (
|
21394 |
document,
|
1134 |
ch = dir < 0 ? lineObj.text.length - 1 : 0;
|
1135 |
var targetTop = measureCharPrepared(cm, prep, ch).top;
|
1136 |
ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
|
1137 |
+
if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
|
1138 |
} else { ch = dir < 0 ? part.to : part.from; }
|
1139 |
return new Pos(lineNo, ch, sticky)
|
1140 |
}
|
1495 |
// Fed to the mode parsers, provides helper functions to make
|
1496 |
// parsers more succinct.
|
1497 |
|
1498 |
+
var StringStream = function(string, tabSize, lineOracle) {
|
1499 |
this.pos = this.start = 0;
|
1500 |
this.string = string;
|
1501 |
this.tabSize = tabSize || 8;
|
1502 |
this.lastColumnPos = this.lastColumnValue = 0;
|
1503 |
this.lineStart = 0;
|
1504 |
+
this.lineOracle = lineOracle;
|
1505 |
};
|
1506 |
|
1507 |
StringStream.prototype.eol = function () {return this.pos >= this.string.length};
|
1568 |
try { return inner() }
|
1569 |
finally { this.lineStart -= n; }
|
1570 |
};
|
1571 |
+
StringStream.prototype.lookAhead = function (n) {
|
1572 |
+
var oracle = this.lineOracle;
|
1573 |
+
return oracle && oracle.lookAhead(n)
|
1574 |
+
};
|
1575 |
+
|
1576 |
+
var SavedContext = function(state, lookAhead) {
|
1577 |
+
this.state = state;
|
1578 |
+
this.lookAhead = lookAhead;
|
1579 |
+
};
|
1580 |
+
|
1581 |
+
var Context = function(doc, state, line, lookAhead) {
|
1582 |
+
this.state = state;
|
1583 |
+
this.doc = doc;
|
1584 |
+
this.line = line;
|
1585 |
+
this.maxLookAhead = lookAhead || 0;
|
1586 |
+
};
|
1587 |
+
|
1588 |
+
Context.prototype.lookAhead = function (n) {
|
1589 |
+
var line = this.doc.getLine(this.line + n);
|
1590 |
+
if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }
|
1591 |
+
return line
|
1592 |
+
};
|
1593 |
+
|
1594 |
+
Context.prototype.nextLine = function () {
|
1595 |
+
this.line++;
|
1596 |
+
if (this.maxLookAhead > 0) { this.maxLookAhead--; }
|
1597 |
+
};
|
1598 |
+
|
1599 |
+
Context.fromSaved = function (doc, saved, line) {
|
1600 |
+
if (saved instanceof SavedContext)
|
1601 |
+
{ return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }
|
1602 |
+
else
|
1603 |
+
{ return new Context(doc, copyState(doc.mode, saved), line) }
|
1604 |
+
};
|
1605 |
+
|
1606 |
+
Context.prototype.save = function (copy) {
|
1607 |
+
var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;
|
1608 |
+
return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state
|
1609 |
+
};
|
1610 |
+
|
1611 |
|
1612 |
// Compute a style array (an array starting with a mode generation
|
1613 |
// -- for invalidation -- followed by pairs of end positions and
|
1614 |
// style strings), which is used to highlight the tokens on the
|
1615 |
// line.
|
1616 |
+
function highlightLine(cm, line, context, forceToEnd) {
|
1617 |
// A styles array always starts with a number identifying the
|
1618 |
// mode/overlays that it is based on (for easy invalidation).
|
1619 |
var st = [cm.state.modeGen], lineClasses = {};
|
1620 |
// Compute the base array of styles
|
1621 |
+
runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },
|
1622 |
+
lineClasses, forceToEnd);
|
1623 |
+
var state = context.state;
|
1624 |
|
1625 |
// Run overlays, adjust style array.
|
1626 |
var loop = function ( o ) {
|
1627 |
var overlay = cm.state.overlays[o], i = 1, at = 0;
|
1628 |
+
context.state = true;
|
1629 |
+
runMode(cm, line.text, overlay.mode, context, function (end, style) {
|
1630 |
var start = i;
|
1631 |
// Ensure there's a token end at the current position, and that i points at it
|
1632 |
while (at < end) {
|
1650 |
};
|
1651 |
|
1652 |
for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
|
1653 |
+
context.state = state;
|
1654 |
|
1655 |
return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
|
1656 |
}
|
1657 |
|
1658 |
function getLineStyles(cm, line, updateFrontier) {
|
1659 |
if (!line.styles || line.styles[0] != cm.state.modeGen) {
|
1660 |
+
var context = getContextBefore(cm, lineNo(line));
|
1661 |
+
var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);
|
1662 |
+
var result = highlightLine(cm, line, context);
|
1663 |
+
if (resetState) { context.state = resetState; }
|
1664 |
+
line.stateAfter = context.save(!resetState);
|
1665 |
line.styles = result.styles;
|
1666 |
if (result.classes) { line.styleClasses = result.classes; }
|
1667 |
else if (line.styleClasses) { line.styleClasses = null; }
|
1668 |
+
if (updateFrontier === cm.doc.highlightFrontier)
|
1669 |
+
{ cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }
|
1670 |
}
|
1671 |
return line.styles
|
1672 |
}
|
1673 |
|
1674 |
+
function getContextBefore(cm, n, precise) {
|
1675 |
var doc = cm.doc, display = cm.display;
|
1676 |
+
if (!doc.mode.startState) { return new Context(doc, true, n) }
|
1677 |
+
var start = findStartLine(cm, n, precise);
|
1678 |
+
var saved = start > doc.first && getLine(doc, start - 1).stateAfter;
|
1679 |
+
var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);
|
1680 |
+
|
1681 |
+
doc.iter(start, n, function (line) {
|
1682 |
+
processLine(cm, line.text, context);
|
1683 |
+
var pos = context.line;
|
1684 |
+
line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;
|
1685 |
+
context.nextLine();
|
1686 |
});
|
1687 |
+
if (precise) { doc.modeFrontier = context.line; }
|
1688 |
+
return context
|
1689 |
}
|
1690 |
|
1691 |
// Lightweight form of highlight -- proceed over this line and
|
1692 |
// update state, but don't save a style array. Used for lines that
|
1693 |
// aren't currently visible.
|
1694 |
+
function processLine(cm, text, context, startAt) {
|
1695 |
var mode = cm.doc.mode;
|
1696 |
+
var stream = new StringStream(text, cm.options.tabSize, context);
|
1697 |
stream.start = stream.pos = startAt || 0;
|
1698 |
+
if (text == "") { callBlankLine(mode, context.state); }
|
1699 |
while (!stream.eol()) {
|
1700 |
+
readToken(mode, stream, context.state);
|
1701 |
stream.start = stream.pos;
|
1702 |
}
|
1703 |
}
|
1718 |
throw new Error("Mode " + mode.name + " failed to advance stream.")
|
1719 |
}
|
1720 |
|
1721 |
+
var Token = function(stream, type, state) {
|
1722 |
+
this.start = stream.start; this.end = stream.pos;
|
1723 |
+
this.string = stream.current();
|
1724 |
+
this.type = type || null;
|
1725 |
+
this.state = state;
|
1726 |
+
};
|
1727 |
+
|
1728 |
// Utility for getTokenAt and getLineTokens
|
1729 |
function takeToken(cm, pos, precise, asArray) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1730 |
var doc = cm.doc, mode = doc.mode, style;
|
1731 |
pos = clipPos(doc, pos);
|
1732 |
+
var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);
|
1733 |
+
var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;
|
1734 |
if (asArray) { tokens = []; }
|
1735 |
while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
|
1736 |
stream.start = stream.pos;
|
1737 |
+
style = readToken(mode, stream, context.state);
|
1738 |
+
if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }
|
1739 |
}
|
1740 |
+
return asArray ? tokens : new Token(stream, style, context.state)
|
1741 |
}
|
1742 |
|
1743 |
function extractLineClasses(type, output) {
|
1755 |
}
|
1756 |
|
1757 |
// Run the given mode's parser over a line, calling f for each token.
|
1758 |
+
function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {
|
1759 |
var flattenSpans = mode.flattenSpans;
|
1760 |
if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }
|
1761 |
var curStart = 0, curStyle = null;
|
1762 |
+
var stream = new StringStream(text, cm.options.tabSize, context), style;
|
1763 |
var inner = cm.options.addModeClass && [null];
|
1764 |
+
if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }
|
1765 |
while (!stream.eol()) {
|
1766 |
if (stream.pos > cm.options.maxHighlightLength) {
|
1767 |
flattenSpans = false;
|
1768 |
+
if (forceToEnd) { processLine(cm, text, context, stream.pos); }
|
1769 |
stream.pos = text.length;
|
1770 |
style = null;
|
1771 |
} else {
|
1772 |
+
style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);
|
1773 |
}
|
1774 |
if (inner) {
|
1775 |
var mName = inner[0].name;
|
1804 |
var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
|
1805 |
for (var search = n; search > lim; --search) {
|
1806 |
if (search <= doc.first) { return doc.first }
|
1807 |
+
var line = getLine(doc, search - 1), after = line.stateAfter;
|
1808 |
+
if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))
|
1809 |
+
{ return search }
|
1810 |
var indented = countColumn(line.text, null, cm.options.tabSize);
|
1811 |
if (minline == null || minindent > indented) {
|
1812 |
minline = search - 1;
|
1816 |
return minline
|
1817 |
}
|
1818 |
|
1819 |
+
function retreatFrontier(doc, n) {
|
1820 |
+
doc.modeFrontier = Math.min(doc.modeFrontier, n);
|
1821 |
+
if (doc.highlightFrontier < n - 10) { return }
|
1822 |
+
var start = doc.first;
|
1823 |
+
for (var line = n - 1; line > start; line--) {
|
1824 |
+
var saved = getLine(doc, line).stateAfter;
|
1825 |
+
// change is on 3
|
1826 |
+
// state on line 1 looked ahead 2 -- so saw 3
|
1827 |
+
// test 1 + 2 < 3 should cover this
|
1828 |
+
if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {
|
1829 |
+
start = line + 1;
|
1830 |
+
break
|
1831 |
+
}
|
1832 |
+
}
|
1833 |
+
doc.highlightFrontier = Math.min(doc.highlightFrontier, start);
|
1834 |
+
}
|
1835 |
+
|
1836 |
// LINE DATA STRUCTURE
|
1837 |
|
1838 |
// Line objects. These hold state related to a line, including
|
2709 |
cm.display.lineNumChars = null;
|
2710 |
}
|
2711 |
|
2712 |
+
function pageScrollX() {
|
2713 |
+
// Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206
|
2714 |
+
// which causes page_Offset and bounding client rects to use
|
2715 |
+
// different reference viewports and invalidate our calculations.
|
2716 |
+
if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }
|
2717 |
+
return window.pageXOffset || (document.documentElement || document.body).scrollLeft
|
2718 |
+
}
|
2719 |
+
function pageScrollY() {
|
2720 |
+
if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }
|
2721 |
+
return window.pageYOffset || (document.documentElement || document.body).scrollTop
|
2722 |
+
}
|
2723 |
|
2724 |
// Converts a {top, bottom, left, right} box from line-local
|
2725 |
// coordinates into another coordinate system. Context may be one of
|
2885 |
var assign;
|
2886 |
((assign = wrappedLineExtent(cm, lineObj, preparedMeasure, y), begin = assign.begin, end = assign.end, assign));
|
2887 |
}
|
2888 |
+
pos = new Pos(lineNo$$1, Math.floor(begin + (end - begin) / 2));
|
2889 |
var beginLeft = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left;
|
2890 |
var dir = beginLeft < x ? 1 : -1;
|
2891 |
var prevDiff, diff = beginLeft - x, prevPos;
|
2892 |
+
var steps = Math.ceil((end - begin) / 4);
|
2893 |
+
outer: do {
|
2894 |
prevDiff = diff;
|
2895 |
prevPos = pos;
|
2896 |
+
var i = 0;
|
2897 |
+
for (; i < steps; ++i) {
|
2898 |
+
var prevPos$1 = pos;
|
2899 |
+
pos = moveVisually(cm, lineObj, pos, dir);
|
2900 |
+
if (pos == null || pos.ch < begin || end <= (pos.sticky == "before" ? pos.ch - 1 : pos.ch)) {
|
2901 |
+
pos = prevPos$1;
|
2902 |
+
break outer
|
2903 |
+
}
|
2904 |
}
|
2905 |
diff = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left - x;
|
2906 |
+
if (steps > 1) {
|
2907 |
+
var diff_change_per_step = Math.abs(diff - prevDiff) / steps;
|
2908 |
+
steps = Math.min(steps, Math.ceil(Math.abs(diff) / diff_change_per_step));
|
2909 |
+
dir = diff < 0 ? 1 : -1;
|
2910 |
+
}
|
2911 |
+
} while (diff != 0 && (steps > 1 || ((dir < 0) != (diff < 0) && (Math.abs(diff) <= Math.abs(prevDiff)))))
|
2912 |
if (Math.abs(diff) > Math.abs(prevDiff)) {
|
2913 |
if ((diff < 0) == (prevDiff < 0)) { throw new Error("Broke out of infinite loop in coordsCharInner") }
|
2914 |
pos = prevPos;
|
3224 |
setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);
|
3225 |
}
|
3226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3227 |
// Read the actual heights of the rendered lines, and update their
|
3228 |
// stored heights to match.
|
3229 |
function updateHeightsInViewport(cm) {
|
3242 |
}
|
3243 |
var diff = cur.line.height - height;
|
3244 |
if (height < 2) { height = textHeight(display); }
|
3245 |
+
if (diff > .005 || diff < -.005) {
|
3246 |
updateLineHeight(cur.line, height);
|
3247 |
updateWidgetHeight(cur.line);
|
3248 |
if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
|
3282 |
return {from: from, to: Math.max(to, from + 1)}
|
3283 |
}
|
3284 |
|
3285 |
+
// Re-align line numbers and gutter marks to compensate for
|
3286 |
+
// horizontal scrolling.
|
3287 |
+
function alignHorizontally(cm) {
|
3288 |
+
var display = cm.display, view = display.view;
|
3289 |
+
if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }
|
3290 |
+
var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
|
3291 |
+
var gutterW = display.gutters.offsetWidth, left = comp + "px";
|
3292 |
+
for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {
|
3293 |
+
if (cm.options.fixedGutter) {
|
3294 |
+
if (view[i].gutter)
|
3295 |
+
{ view[i].gutter.style.left = left; }
|
3296 |
+
if (view[i].gutterBackground)
|
3297 |
+
{ view[i].gutterBackground.style.left = left; }
|
3298 |
+
}
|
3299 |
+
var align = view[i].alignable;
|
3300 |
+
if (align) { for (var j = 0; j < align.length; j++)
|
3301 |
+
{ align[j].style.left = left; } }
|
3302 |
+
} }
|
3303 |
+
if (cm.options.fixedGutter)
|
3304 |
+
{ display.gutters.style.left = (comp + gutterW) + "px"; }
|
3305 |
+
}
|
3306 |
+
|
3307 |
+
// Used to ensure that the line number gutter is still the right
|
3308 |
+
// size for the current document size. Returns true when an update
|
3309 |
+
// is needed.
|
3310 |
+
function maybeUpdateLineNumberWidth(cm) {
|
3311 |
+
if (!cm.options.lineNumbers) { return false }
|
3312 |
+
var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
|
3313 |
+
if (last.length != display.lineNumChars) {
|
3314 |
+
var test = display.measure.appendChild(elt("div", [elt("div", last)],
|
3315 |
+
"CodeMirror-linenumber CodeMirror-gutter-elt"));
|
3316 |
+
var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
|
3317 |
+
display.lineGutter.style.width = "";
|
3318 |
+
display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
|
3319 |
+
display.lineNumWidth = display.lineNumInnerWidth + padding;
|
3320 |
+
display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
|
3321 |
+
display.lineGutter.style.width = display.lineNumWidth + "px";
|
3322 |
+
updateGutterSpace(cm);
|
3323 |
+
return true
|
3324 |
+
}
|
3325 |
+
return false
|
3326 |
+
}
|
3327 |
+
|
3328 |
+
// SCROLLING THINGS INTO VIEW
|
3329 |
+
|
3330 |
+
// If an editor sits on the top or bottom of the window, partially
|
3331 |
+
// scrolled out of view, this ensures that the cursor is visible.
|
3332 |
+
function maybeScrollWindow(cm, rect) {
|
3333 |
+
if (signalDOMEvent(cm, "scrollCursorIntoView")) { return }
|
3334 |
+
|
3335 |
+
var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
|
3336 |
+
if (rect.top + box.top < 0) { doScroll = true; }
|
3337 |
+
else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }
|
3338 |
+
if (doScroll != null && !phantom) {
|
3339 |
+
var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;"));
|
3340 |
+
cm.display.lineSpace.appendChild(scrollNode);
|
3341 |
+
scrollNode.scrollIntoView(doScroll);
|
3342 |
+
cm.display.lineSpace.removeChild(scrollNode);
|
3343 |
+
}
|
3344 |
+
}
|
3345 |
+
|
3346 |
+
// Scroll a given position into view (immediately), verifying that
|
3347 |
+
// it actually became visible (as line heights are accurately
|
3348 |
+
// measured, the position of something may 'drift' during drawing).
|
3349 |
+
function scrollPosIntoView(cm, pos, end, margin) {
|
3350 |
+
if (margin == null) { margin = 0; }
|
3351 |
+
var rect;
|
3352 |
+
if (!cm.options.lineWrapping && pos == end) {
|
3353 |
+
// Set pos and end to the cursor positions around the character pos sticks to
|
3354 |
+
// If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch
|
3355 |
+
// If pos == Pos(_, 0, "before"), pos and end are unchanged
|
3356 |
+
pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos;
|
3357 |
+
end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos;
|
3358 |
+
}
|
3359 |
+
for (var limit = 0; limit < 5; limit++) {
|
3360 |
+
var changed = false;
|
3361 |
+
var coords = cursorCoords(cm, pos);
|
3362 |
+
var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
|
3363 |
+
rect = {left: Math.min(coords.left, endCoords.left),
|
3364 |
+
top: Math.min(coords.top, endCoords.top) - margin,
|
3365 |
+
right: Math.max(coords.left, endCoords.left),
|
3366 |
+
bottom: Math.max(coords.bottom, endCoords.bottom) + margin};
|
3367 |
+
var scrollPos = calculateScrollPos(cm, rect);
|
3368 |
+
var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
|
3369 |
+
if (scrollPos.scrollTop != null) {
|
3370 |
+
updateScrollTop(cm, scrollPos.scrollTop);
|
3371 |
+
if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }
|
3372 |
+
}
|
3373 |
+
if (scrollPos.scrollLeft != null) {
|
3374 |
+
setScrollLeft(cm, scrollPos.scrollLeft);
|
3375 |
+
if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }
|
3376 |
+
}
|
3377 |
+
if (!changed) { break }
|
3378 |
+
}
|
3379 |
+
return rect
|
3380 |
+
}
|
3381 |
+
|
3382 |
+
// Scroll a given set of coordinates into view (immediately).
|
3383 |
+
function scrollIntoView(cm, rect) {
|
3384 |
+
var scrollPos = calculateScrollPos(cm, rect);
|
3385 |
+
if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }
|
3386 |
+
if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }
|
3387 |
+
}
|
3388 |
+
|
3389 |
+
// Calculate a new scroll position needed to scroll the given
|
3390 |
+
// rectangle into view. Returns an object with scrollTop and
|
3391 |
+
// scrollLeft properties. When these are undefined, the
|
3392 |
+
// vertical/horizontal position does not need to be adjusted.
|
3393 |
+
function calculateScrollPos(cm, rect) {
|
3394 |
+
var display = cm.display, snapMargin = textHeight(cm.display);
|
3395 |
+
if (rect.top < 0) { rect.top = 0; }
|
3396 |
+
var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
|
3397 |
+
var screen = displayHeight(cm), result = {};
|
3398 |
+
if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }
|
3399 |
+
var docBottom = cm.doc.height + paddingVert(display);
|
3400 |
+
var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;
|
3401 |
+
if (rect.top < screentop) {
|
3402 |
+
result.scrollTop = atTop ? 0 : rect.top;
|
3403 |
+
} else if (rect.bottom > screentop + screen) {
|
3404 |
+
var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);
|
3405 |
+
if (newTop != screentop) { result.scrollTop = newTop; }
|
3406 |
+
}
|
3407 |
+
|
3408 |
+
var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
|
3409 |
+
var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
|
3410 |
+
var tooWide = rect.right - rect.left > screenw;
|
3411 |
+
if (tooWide) { rect.right = rect.left + screenw; }
|
3412 |
+
if (rect.left < 10)
|
3413 |
+
{ result.scrollLeft = 0; }
|
3414 |
+
else if (rect.left < screenleft)
|
3415 |
+
{ result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }
|
3416 |
+
else if (rect.right > screenw + screenleft - 3)
|
3417 |
+
{ result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }
|
3418 |
+
return result
|
3419 |
+
}
|
3420 |
+
|
3421 |
+
// Store a relative adjustment to the scroll position in the current
|
3422 |
+
// operation (to be applied when the operation finishes).
|
3423 |
+
function addToScrollTop(cm, top) {
|
3424 |
+
if (top == null) { return }
|
3425 |
+
resolveScrollToPos(cm);
|
3426 |
+
cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
|
3427 |
+
}
|
3428 |
+
|
3429 |
+
// Make sure that at the end of the operation the current cursor is
|
3430 |
+
// shown.
|
3431 |
+
function ensureCursorVisible(cm) {
|
3432 |
+
resolveScrollToPos(cm);
|
3433 |
+
var cur = cm.getCursor();
|
3434 |
+
cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};
|
3435 |
+
}
|
3436 |
+
|
3437 |
+
function scrollToCoords(cm, x, y) {
|
3438 |
+
if (x != null || y != null) { resolveScrollToPos(cm); }
|
3439 |
+
if (x != null) { cm.curOp.scrollLeft = x; }
|
3440 |
+
if (y != null) { cm.curOp.scrollTop = y; }
|
3441 |
+
}
|
3442 |
+
|
3443 |
+
function scrollToRange(cm, range$$1) {
|
3444 |
+
resolveScrollToPos(cm);
|
3445 |
+
cm.curOp.scrollToPos = range$$1;
|
3446 |
+
}
|
3447 |
+
|
3448 |
+
// When an operation has its scrollToPos property set, and another
|
3449 |
+
// scroll action is applied before the end of the operation, this
|
3450 |
+
// 'simulates' scrolling that position into view in a cheap way, so
|
3451 |
+
// that the effect of intermediate scroll commands is not ignored.
|
3452 |
+
function resolveScrollToPos(cm) {
|
3453 |
+
var range$$1 = cm.curOp.scrollToPos;
|
3454 |
+
if (range$$1) {
|
3455 |
+
cm.curOp.scrollToPos = null;
|
3456 |
+
var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);
|
3457 |
+
scrollToCoordsRange(cm, from, to, range$$1.margin);
|
3458 |
+
}
|
3459 |
+
}
|
3460 |
+
|
3461 |
+
function scrollToCoordsRange(cm, from, to, margin) {
|
3462 |
+
var sPos = calculateScrollPos(cm, {
|
3463 |
+
left: Math.min(from.left, to.left),
|
3464 |
+
top: Math.min(from.top, to.top) - margin,
|
3465 |
+
right: Math.max(from.right, to.right),
|
3466 |
+
bottom: Math.max(from.bottom, to.bottom) + margin
|
3467 |
+
});
|
3468 |
+
scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);
|
3469 |
+
}
|
3470 |
+
|
3471 |
// Sync the scrollable area and scrollbars, ensure the viewport
|
3472 |
// covers the visible area.
|
3473 |
+
function updateScrollTop(cm, val) {
|
3474 |
if (Math.abs(cm.doc.scrollTop - val) < 2) { return }
|
|
|
3475 |
if (!gecko) { updateDisplaySimple(cm, {top: val}); }
|
3476 |
+
setScrollTop(cm, val, true);
|
|
|
3477 |
if (gecko) { updateDisplaySimple(cm); }
|
3478 |
startWorker(cm, 100);
|
3479 |
}
|
3480 |
+
|
3481 |
+
function setScrollTop(cm, val, forceScroll) {
|
3482 |
+
val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val);
|
3483 |
+
if (cm.display.scroller.scrollTop == val && !forceScroll) { return }
|
3484 |
+
cm.doc.scrollTop = val;
|
3485 |
+
cm.display.scrollbars.setScrollTop(val);
|
3486 |
+
if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }
|
3487 |
+
}
|
3488 |
+
|
3489 |
// Sync scroller and scrollbar, ensure the gutter elements are
|
3490 |
// aligned.
|
3491 |
+
function setScrollLeft(cm, val, isScroller, forceScroll) {
|
|
|
3492 |
val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
|
3493 |
+
if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }
|
3494 |
cm.doc.scrollLeft = val;
|
3495 |
alignHorizontally(cm);
|
3496 |
if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }
|
3497 |
cm.display.scrollbars.setScrollLeft(val);
|
3498 |
}
|
3499 |
|
3500 |
+
// SCROLLBARS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3501 |
|
3502 |
// Prepare DOM reads needed to update the scrollbars. Done in one
|
3503 |
// shot to minimize update/measure roundtrips.
|
3574 |
|
3575 |
NativeScrollbars.prototype.setScrollLeft = function (pos) {
|
3576 |
if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }
|
3577 |
+
if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); }
|
3578 |
};
|
3579 |
|
3580 |
NativeScrollbars.prototype.setScrollTop = function (pos) {
|
3581 |
if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }
|
3582 |
+
if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); }
|
3583 |
};
|
3584 |
|
3585 |
NativeScrollbars.prototype.zeroWidthHack = function () {
|
3590 |
this.disableVert = new Delayed;
|
3591 |
};
|
3592 |
|
3593 |
+
NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {
|
3594 |
bar.style.pointerEvents = "auto";
|
3595 |
function maybeDisable() {
|
3596 |
// To find out whether the scrollbar is still visible, we
|
3597 |
// check whether the element under the pixel in the bottom
|
3598 |
+
// right corner of the scrollbar box is the scrollbar box
|
3599 |
// itself (when the bar is still visible) or its filler child
|
3600 |
// (when the bar is hidden). If it is still visible, we keep
|
3601 |
// it enabled, if it's hidden, we disable pointer events.
|
3602 |
var box = bar.getBoundingClientRect();
|
3603 |
+
var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)
|
3604 |
+
: document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);
|
3605 |
if (elt$$1 != bar) { bar.style.pointerEvents = "none"; }
|
3606 |
else { delay.set(1000, maybeDisable); }
|
3607 |
}
|
3673 |
node.setAttribute("cm-not-content", "true");
|
3674 |
}, function (pos, axis) {
|
3675 |
if (axis == "horizontal") { setScrollLeft(cm, pos); }
|
3676 |
+
else { updateScrollTop(cm, pos); }
|
3677 |
}, cm);
|
3678 |
if (cm.display.scrollbars.addClass)
|
3679 |
{ addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
|
3680 |
}
|
3681 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3682 |
// Operations are used to wrap a series of changes to the editor
|
3683 |
// state in such a way that each change won't have to update the
|
3684 |
// cursor and display (which would be awkward, slow, and
|
3807 |
{ display.wheelStartX = display.wheelStartY = null; }
|
3808 |
|
3809 |
// Propagate the scroll position to the actual DOM scroller
|
3810 |
+
if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }
|
3811 |
+
|
3812 |
+
if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3813 |
// If we need to scroll a specific position into view, do so.
|
3814 |
if (op.scrollToPos) {
|
3815 |
var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
|
4022 |
// HIGHLIGHT WORKER
|
4023 |
|
4024 |
function startWorker(cm, time) {
|
4025 |
+
if (cm.doc.highlightFrontier < cm.display.viewTo)
|
4026 |
{ cm.state.highlight.set(time, bind(highlightWorker, cm)); }
|
4027 |
}
|
4028 |
|
4029 |
function highlightWorker(cm) {
|
4030 |
var doc = cm.doc;
|
4031 |
+
if (doc.highlightFrontier >= cm.display.viewTo) { return }
|
|
|
4032 |
var end = +new Date + cm.options.workTime;
|
4033 |
+
var context = getContextBefore(cm, doc.highlightFrontier);
|
4034 |
var changedLines = [];
|
4035 |
|
4036 |
+
doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {
|
4037 |
+
if (context.line >= cm.display.viewFrom) { // Visible
|
4038 |
+
var oldStyles = line.styles;
|
4039 |
+
var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;
|
4040 |
+
var highlighted = highlightLine(cm, line, context, true);
|
4041 |
+
if (resetState) { context.state = resetState; }
|
4042 |
line.styles = highlighted.styles;
|
4043 |
var oldCls = line.styleClasses, newCls = highlighted.classes;
|
4044 |
if (newCls) { line.styleClasses = newCls; }
|
4046 |
var ischange = !oldStyles || oldStyles.length != line.styles.length ||
|
4047 |
oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
|
4048 |
for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }
|
4049 |
+
if (ischange) { changedLines.push(context.line); }
|
4050 |
+
line.stateAfter = context.save();
|
4051 |
+
context.nextLine();
|
4052 |
} else {
|
4053 |
if (line.text.length <= cm.options.maxHighlightLength)
|
4054 |
+
{ processLine(cm, line.text, context); }
|
4055 |
+
line.stateAfter = context.line % 5 == 0 ? context.save() : null;
|
4056 |
+
context.nextLine();
|
4057 |
}
|
|
|
4058 |
if (+new Date > end) {
|
4059 |
startWorker(cm, cm.options.workDelay);
|
4060 |
return true
|
4061 |
}
|
4062 |
});
|
4063 |
+
doc.highlightFrontier = context.line;
|
4064 |
+
doc.modeFrontier = Math.max(doc.modeFrontier, context.line);
|
4065 |
if (changedLines.length) { runInOp(cm, function () {
|
4066 |
for (var i = 0; i < changedLines.length; i++)
|
4067 |
{ regLineChange(cm, changedLines[i], "text"); }
|
4107 |
}
|
4108 |
}
|
4109 |
|
4110 |
+
function selectionSnapshot(cm) {
|
4111 |
+
if (cm.hasFocus()) { return null }
|
4112 |
+
var active = activeElt();
|
4113 |
+
if (!active || !contains(cm.display.lineDiv, active)) { return null }
|
4114 |
+
var result = {activeElt: active};
|
4115 |
+
if (window.getSelection) {
|
4116 |
+
var sel = window.getSelection();
|
4117 |
+
if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {
|
4118 |
+
result.anchorNode = sel.anchorNode;
|
4119 |
+
result.anchorOffset = sel.anchorOffset;
|
4120 |
+
result.focusNode = sel.focusNode;
|
4121 |
+
result.focusOffset = sel.focusOffset;
|
4122 |
+
}
|
4123 |
+
}
|
4124 |
+
return result
|
4125 |
+
}
|
4126 |
+
|
4127 |
+
function restoreSelection(snapshot) {
|
4128 |
+
if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }
|
4129 |
+
snapshot.activeElt.focus();
|
4130 |
+
if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {
|
4131 |
+
var sel = window.getSelection(), range$$1 = document.createRange();
|
4132 |
+
range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset);
|
4133 |
+
range$$1.collapse(false);
|
4134 |
+
sel.removeAllRanges();
|
4135 |
+
sel.addRange(range$$1);
|
4136 |
+
sel.extend(snapshot.focusNode, snapshot.focusOffset);
|
4137 |
+
}
|
4138 |
+
}
|
4139 |
+
|
4140 |
// Does the actual updating of the line display. Bails out
|
4141 |
// (returning false) when there is nothing to be done and forced is
|
4142 |
// false.
|
4186 |
|
4187 |
// For big changes, we hide the enclosing element during the
|
4188 |
// update, since that speeds up the operations on most browsers.
|
4189 |
+
var selSnapshot = selectionSnapshot(cm);
|
4190 |
if (toUpdate > 4) { display.lineDiv.style.display = "none"; }
|
4191 |
patchDisplay(cm, display.updateLineNumbers, update.dims);
|
4192 |
if (toUpdate > 4) { display.lineDiv.style.display = ""; }
|
4193 |
display.renderedView = display.view;
|
4194 |
// There might have been a widget with a focused element that got
|
4195 |
// hidden or updated, if so re-focus it.
|
4196 |
+
restoreSelection(selSnapshot);
|
4197 |
|
4198 |
// Prevent selection and cursors from interfering with the scroll
|
4199 |
// width and height.
|
4232 |
updateSelection(cm);
|
4233 |
updateScrollbars(cm, barMeasure);
|
4234 |
setDocumentHeight(cm, barMeasure);
|
4235 |
+
update.force = false;
|
4236 |
}
|
4237 |
|
4238 |
update.signal(cm, "update", cm);
|
4326 |
gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
|
4327 |
}
|
4328 |
}
|
4329 |
+
gutters.style.display = i ? "" : "none";
|
4330 |
+
updateGutterSpace(cm);
|
4331 |
+
}
|
4332 |
+
|
4333 |
+
// Make sure the gutters options contains the element
|
4334 |
+
// "CodeMirror-linenumbers" when the lineNumbers option is true.
|
4335 |
+
function setGuttersForLineNumbers(options) {
|
4336 |
+
var found = indexOf(options.gutters, "CodeMirror-linenumbers");
|
4337 |
+
if (found == -1 && options.lineNumbers) {
|
4338 |
+
options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
|
4339 |
+
} else if (found > -1 && !options.lineNumbers) {
|
4340 |
+
options.gutters = options.gutters.slice(0);
|
4341 |
+
options.gutters.splice(found, 1);
|
4342 |
+
}
|
4343 |
+
}
|
4344 |
+
|
4345 |
+
// Since the delta values reported on mouse wheel events are
|
4346 |
+
// unstandardized between browsers and even browser versions, and
|
4347 |
+
// generally horribly unpredictable, this code starts by measuring
|
4348 |
+
// the scroll effect that the first few mouse wheel events have,
|
4349 |
+
// and, from that, detects the way it can convert deltas to pixel
|
4350 |
+
// offsets afterwards.
|
4351 |
+
//
|
4352 |
+
// The reason we want to know the amount a wheel event will scroll
|
4353 |
+
// is that it gives us a chance to update the display before the
|
4354 |
+
// actual scrolling happens, reducing flickering.
|
4355 |
+
|
4356 |
+
var wheelSamples = 0;
|
4357 |
+
var wheelPixelsPerUnit = null;
|
4358 |
+
// Fill in a browser-detected starting value on browsers where we
|
4359 |
+
// know one. These don't have to be accurate -- the result of them
|
4360 |
+
// being wrong would just be a slight flicker on the first wheel
|
4361 |
+
// scroll (if it is large enough).
|
4362 |
+
if (ie) { wheelPixelsPerUnit = -.53; }
|
4363 |
+
else if (gecko) { wheelPixelsPerUnit = 15; }
|
4364 |
+
else if (chrome) { wheelPixelsPerUnit = -.7; }
|
4365 |
+
else if (safari) { wheelPixelsPerUnit = -1/3; }
|
4366 |
+
|
4367 |
+
function wheelEventDelta(e) {
|
4368 |
+
var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
|
4369 |
+
if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }
|
4370 |
+
if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }
|
4371 |
+
else if (dy == null) { dy = e.wheelDelta; }
|
4372 |
+
return {x: dx, y: dy}
|
4373 |
+
}
|
4374 |
+
function wheelEventPixels(e) {
|
4375 |
+
var delta = wheelEventDelta(e);
|
4376 |
+
delta.x *= wheelPixelsPerUnit;
|
4377 |
+
delta.y *= wheelPixelsPerUnit;
|
4378 |
+
return delta
|
4379 |
+
}
|
4380 |
+
|
4381 |
+
function onScrollWheel(cm, e) {
|
4382 |
+
var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
|
4383 |
+
|
4384 |
+
var display = cm.display, scroll = display.scroller;
|
4385 |
+
// Quit if there's nothing to scroll here
|
4386 |
+
var canScrollX = scroll.scrollWidth > scroll.clientWidth;
|
4387 |
+
var canScrollY = scroll.scrollHeight > scroll.clientHeight;
|
4388 |
+
if (!(dx && canScrollX || dy && canScrollY)) { return }
|
4389 |
+
|
4390 |
+
// Webkit browsers on OS X abort momentum scrolls when the target
|
4391 |
+
// of the scroll event is removed from the scrollable element.
|
4392 |
+
// This hack (see related code in patchDisplay) makes sure the
|
4393 |
+
// element is kept around.
|
4394 |
+
if (dy && mac && webkit) {
|
4395 |
+
outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
|
4396 |
+
for (var i = 0; i < view.length; i++) {
|
4397 |
+
if (view[i].node == cur) {
|
4398 |
+
cm.display.currentWheelTarget = cur;
|
4399 |
+
break outer
|
4400 |
+
}
|
4401 |
+
}
|
4402 |
+
}
|
4403 |
+
}
|
4404 |
+
|
4405 |
+
// On some browsers, horizontal scrolling will cause redraws to
|
4406 |
+
// happen before the gutter has been realigned, causing it to
|
4407 |
+
// wriggle around in a most unseemly way. When we have an
|
4408 |
+
// estimated pixels/delta value, we just handle horizontal
|
4409 |
+
// scrolling entirely here. It'll be slightly off from native, but
|
4410 |
+
// better than glitching out.
|
4411 |
+
if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
|
4412 |
+
if (dy && canScrollY)
|
4413 |
+
{ updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }
|
4414 |
+
setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));
|
4415 |
+
// Only prevent default scrolling if vertical scrolling is
|
4416 |
+
// actually possible. Otherwise, it causes vertical scroll
|
4417 |
+
// jitter on OSX trackpads when deltaX is small and deltaY
|
4418 |
+
// is large (issue #3579)
|
4419 |
+
if (!dy || (dy && canScrollY))
|
4420 |
+
{ e_preventDefault(e); }
|
4421 |
+
display.wheelStartX = null; // Abort measurement, if in progress
|
4422 |
+
return
|
4423 |
+
}
|
4424 |
+
|
4425 |
+
// 'Project' the visible viewport to cover the area that is being
|
4426 |
+
// scrolled into view (if we know enough to estimate it).
|
4427 |
+
if (dy && wheelPixelsPerUnit != null) {
|
4428 |
+
var pixels = dy * wheelPixelsPerUnit;
|
4429 |
+
var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
|
4430 |
+
if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
|
4431 |
+
else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
|
4432 |
+
updateDisplaySimple(cm, {top: top, bottom: bot});
|
4433 |
+
}
|
4434 |
+
|
4435 |
+
if (wheelSamples < 20) {
|
4436 |
+
if (display.wheelStartX == null) {
|
4437 |
+
display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
|
4438 |
+
display.wheelDX = dx; display.wheelDY = dy;
|
4439 |
+
setTimeout(function () {
|
4440 |
+
if (display.wheelStartX == null) { return }
|
4441 |
+
var movedX = scroll.scrollLeft - display.wheelStartX;
|
4442 |
+
var movedY = scroll.scrollTop - display.wheelStartY;
|
4443 |
+
var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
|
4444 |
+
(movedX && display.wheelDX && movedX / display.wheelDX);
|
4445 |
+
display.wheelStartX = display.wheelStartY = null;
|
4446 |
+
if (!sample) { return }
|
4447 |
+
wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
|
4448 |
+
++wheelSamples;
|
4449 |
+
}, 200);
|
4450 |
+
} else {
|
4451 |
+
display.wheelDX += dx; display.wheelDY += dy;
|
4452 |
+
}
|
4453 |
+
}
|
4454 |
}
|
4455 |
|
4456 |
// Selection objects are immutable. A new one is created every time
|
4606 |
if (line.stateAfter) { line.stateAfter = null; }
|
4607 |
if (line.styles) { line.styles = null; }
|
4608 |
});
|
4609 |
+
cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;
|
4610 |
startWorker(cm, 100);
|
4611 |
cm.state.modeGen++;
|
4612 |
if (cm.curOp) { regChange(cm); }
|
4940 |
// include a given position (and optionally a second position).
|
4941 |
// Otherwise, simply returns the range between the given positions.
|
4942 |
// Used for cursor motion and such.
|
4943 |
+
function extendRange(range, head, other, extend) {
|
4944 |
+
if (extend) {
|
4945 |
var anchor = range.anchor;
|
4946 |
if (other) {
|
4947 |
var posBefore = cmp(head, anchor) < 0;
|
4959 |
}
|
4960 |
|
4961 |
// Extend the primary selection range, discard the rest.
|
4962 |
+
function extendSelection(doc, head, other, options, extend) {
|
4963 |
+
if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }
|
4964 |
+
setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);
|
4965 |
}
|
4966 |
|
4967 |
// Extend all selections (pos is an array of selections with length
|
4968 |
// equal the number of selections)
|
4969 |
function extendSelections(doc, heads, options) {
|
4970 |
var out = [];
|
4971 |
+
var extend = doc.cm && (doc.cm.display.shift || doc.extend);
|
4972 |
for (var i = 0; i < doc.sel.ranges.length; i++)
|
4973 |
+
{ out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }
|
4974 |
var newSel = normalizeSelection(out, doc.sel.primIndex);
|
4975 |
setSelection(doc, newSel, options);
|
4976 |
}
|
5051 |
// Verify that the selection does not partially select any atomic
|
5052 |
// marked ranges.
|
5053 |
function reCheckSelection(doc) {
|
5054 |
+
setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));
|
5055 |
}
|
5056 |
|
5057 |
// Return a selection that does not partially select any atomic
|
5176 |
var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
|
5177 |
if (split) {
|
5178 |
for (var i = split.length - 1; i >= 0; --i)
|
5179 |
+
{ makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); }
|
5180 |
} else {
|
5181 |
makeChangeInner(doc, change);
|
5182 |
}
|
5354 |
if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }
|
5355 |
}
|
5356 |
|
5357 |
+
retreatFrontier(doc, from.line);
|
|
|
5358 |
startWorker(cm, 400);
|
5359 |
|
5360 |
var lendiff = change.text.length - (to.line - from.line) - 1;
|
5464 |
//
|
5465 |
// See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
|
5466 |
|
5467 |
+
function LeafChunk(lines) {
|
5468 |
var this$1 = this;
|
5469 |
|
5470 |
this.lines = lines;
|
5475 |
height += lines[i].height;
|
5476 |
}
|
5477 |
this.height = height;
|
5478 |
+
}
|
5479 |
|
5480 |
+
LeafChunk.prototype = {
|
5481 |
+
chunkSize: function chunkSize() { return this.lines.length },
|
5482 |
|
5483 |
+
// Remove the n lines at offset 'at'.
|
5484 |
+
removeInner: function removeInner(at, n) {
|
5485 |
var this$1 = this;
|
5486 |
|
5487 |
+
for (var i = at, e = at + n; i < e; ++i) {
|
5488 |
+
var line = this$1.lines[i];
|
5489 |
+
this$1.height -= line.height;
|
5490 |
+
cleanUpLine(line);
|
5491 |
+
signalLater(line, "delete");
|
5492 |
+
}
|
5493 |
+
this.lines.splice(at, n);
|
5494 |
+
},
|
5495 |
|
5496 |
+
// Helper used to collapse a small branch into a single leaf.
|
5497 |
+
collapse: function collapse(lines) {
|
5498 |
+
lines.push.apply(lines, this.lines);
|
5499 |
+
},
|
5500 |
|
5501 |
+
// Insert the given array of lines at offset 'at', count them as
|
5502 |
+
// having the given height.
|
5503 |
+
insertInner: function insertInner(at, lines, height) {
|
5504 |
var this$1 = this;
|
5505 |
|
5506 |
+
this.height += height;
|
5507 |
+
this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
|
5508 |
+
for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; }
|
5509 |
+
},
|
5510 |
|
5511 |
+
// Used to iterate over a part of the tree.
|
5512 |
+
iterN: function iterN(at, n, op) {
|
5513 |
var this$1 = this;
|
5514 |
|
5515 |
+
for (var e = at + n; at < e; ++at)
|
5516 |
+
{ if (op(this$1.lines[at])) { return true } }
|
5517 |
+
}
|
5518 |
};
|
5519 |
|
5520 |
+
function BranchChunk(children) {
|
5521 |
var this$1 = this;
|
5522 |
|
5523 |
this.children = children;
|
5530 |
this.size = size;
|
5531 |
this.height = height;
|
5532 |
this.parent = null;
|
5533 |
+
}
|
5534 |
|
5535 |
+
BranchChunk.prototype = {
|
5536 |
+
chunkSize: function chunkSize() { return this.size },
|
5537 |
|
5538 |
+
removeInner: function removeInner(at, n) {
|
5539 |
var this$1 = this;
|
5540 |
|
5541 |
+
this.size -= n;
|
5542 |
+
for (var i = 0; i < this.children.length; ++i) {
|
5543 |
+
var child = this$1.children[i], sz = child.chunkSize();
|
5544 |
+
if (at < sz) {
|
5545 |
+
var rm = Math.min(n, sz - at), oldHeight = child.height;
|
5546 |
+
child.removeInner(at, rm);
|
5547 |
+
this$1.height -= oldHeight - child.height;
|
5548 |
+
if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; }
|
5549 |
+
if ((n -= rm) == 0) { break }
|
5550 |
+
at = 0;
|
5551 |
+
} else { at -= sz; }
|
5552 |
+
}
|
5553 |
+
// If the result is smaller than 25 lines, ensure that it is a
|
5554 |
+
// single leaf node.
|
5555 |
+
if (this.size - n < 25 &&
|
5556 |
+
(this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
|
5557 |
+
var lines = [];
|
5558 |
+
this.collapse(lines);
|
5559 |
+
this.children = [new LeafChunk(lines)];
|
5560 |
+
this.children[0].parent = this;
|
5561 |
+
}
|
5562 |
+
},
|
5563 |
|
5564 |
+
collapse: function collapse(lines) {
|
5565 |
var this$1 = this;
|
5566 |
|
5567 |
+
for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
|
5568 |
+
},
|
5569 |
|
5570 |
+
insertInner: function insertInner(at, lines, height) {
|
5571 |
var this$1 = this;
|
5572 |
|
5573 |
+
this.size += lines.length;
|
5574 |
+
this.height += height;
|
5575 |
+
for (var i = 0; i < this.children.length; ++i) {
|
5576 |
+
var child = this$1.children[i], sz = child.chunkSize();
|
5577 |
+
if (at <= sz) {
|
5578 |
+
child.insertInner(at, lines, height);
|
5579 |
+
if (child.lines && child.lines.length > 50) {
|
5580 |
+
// To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
|
5581 |
+
// Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
|
5582 |
+
var remaining = child.lines.length % 25 + 25;
|
5583 |
+
for (var pos = remaining; pos < child.lines.length;) {
|
5584 |
+
var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
|
5585 |
+
child.height -= leaf.height;
|
5586 |
+
this$1.children.splice(++i, 0, leaf);
|
5587 |
+
leaf.parent = this$1;
|
5588 |
+
}
|
5589 |
+
child.lines = child.lines.slice(0, remaining);
|
5590 |
+
this$1.maybeSpill();
|
5591 |
+
}
|
5592 |
+
break
|
5593 |
}
|
5594 |
+
at -= sz;
|
5595 |
}
|
5596 |
+
},
|
|
|
|
|
5597 |
|
5598 |
+
// When a node has grown, check whether it should be split.
|
5599 |
+
maybeSpill: function maybeSpill() {
|
5600 |
+
if (this.children.length <= 10) { return }
|
5601 |
+
var me = this;
|
5602 |
+
do {
|
5603 |
+
var spilled = me.children.splice(me.children.length - 5, 5);
|
5604 |
+
var sibling = new BranchChunk(spilled);
|
5605 |
+
if (!me.parent) { // Become the parent node
|
5606 |
+
var copy = new BranchChunk(me.children);
|
5607 |
+
copy.parent = me;
|
5608 |
+
me.children = [copy, sibling];
|
5609 |
+
me = copy;
|
5610 |
+
} else {
|
5611 |
+
me.size -= sibling.size;
|
5612 |
+
me.height -= sibling.height;
|
5613 |
+
var myIndex = indexOf(me.parent.children, me);
|
5614 |
+
me.parent.children.splice(myIndex + 1, 0, sibling);
|
5615 |
+
}
|
5616 |
+
sibling.parent = me.parent;
|
5617 |
+
} while (me.children.length > 10)
|
5618 |
+
me.parent.maybeSpill();
|
5619 |
+
},
|
5620 |
|
5621 |
+
iterN: function iterN(at, n, op) {
|
5622 |
var this$1 = this;
|
5623 |
|
5624 |
+
for (var i = 0; i < this.children.length; ++i) {
|
5625 |
+
var child = this$1.children[i], sz = child.chunkSize();
|
5626 |
+
if (at < sz) {
|
5627 |
+
var used = Math.min(n, sz - at);
|
5628 |
+
if (child.iterN(at, used, op)) { return true }
|
5629 |
+
if ((n -= used) == 0) { break }
|
5630 |
+
at = 0;
|
5631 |
+
} else { at -= sz; }
|
5632 |
+
}
|
5633 |
}
|
5634 |
};
|
5635 |
|
5682 |
|
5683 |
function adjustScrollWhenAboveVisible(cm, line, diff) {
|
5684 |
if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
|
5685 |
+
{ addToScrollTop(cm, diff); }
|
5686 |
}
|
5687 |
|
5688 |
function addLineWidget(doc, handle, node, options) {
|
5697 |
if (cm && !lineIsHidden(doc, line)) {
|
5698 |
var aboveVisible = heightAtLine(line) < doc.scrollTop;
|
5699 |
updateLineHeight(line, line.height + widgetHeight(widget));
|
5700 |
+
if (aboveVisible) { addToScrollTop(cm, widget.height); }
|
5701 |
cm.curOp.forceUpdate = true;
|
5702 |
}
|
5703 |
return true
|
5999 |
this.scrollTop = this.scrollLeft = 0;
|
6000 |
this.cantEdit = false;
|
6001 |
this.cleanGeneration = 1;
|
6002 |
+
this.modeFrontier = this.highlightFrontier = firstLine;
|
6003 |
var start = Pos(firstLine, 0);
|
6004 |
this.sel = simpleSelection(start);
|
6005 |
this.history = new History(null);
|
6045 |
var top = Pos(this.first, 0), last = this.first + this.size - 1;
|
6046 |
makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
|
6047 |
text: this.splitLines(code), origin: "setValue", full: true}, true);
|
6048 |
+
if (this.cm) { scrollToCoords(this.cm, 0, 0); }
|
6049 |
+
setSelection(this, simpleSelection(top), sel_dontScroll);
|
6050 |
}),
|
6051 |
replaceRange: function(code, from, to, origin) {
|
6052 |
from = clipPos(this, from);
|
6522 |
// garbage collected.
|
6523 |
|
6524 |
function forEachCodeMirror(f) {
|
6525 |
+
if (!document.getElementsByClassName) { return }
|
6526 |
+
var byClass = document.getElementsByClassName("CodeMirror");
|
6527 |
for (var i = 0; i < byClass.length; i++) {
|
6528 |
var cm = byClass[i].CodeMirror;
|
6529 |
if (cm) { f(cm); }
|
6697 |
return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"
|
6698 |
}
|
6699 |
|
6700 |
+
function addModifierNames(name, event, noShift) {
|
6701 |
+
var base = name;
|
|
|
|
|
|
|
6702 |
if (event.altKey && base != "Alt") { name = "Alt-" + name; }
|
6703 |
if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; }
|
6704 |
if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; }
|
6706 |
return name
|
6707 |
}
|
6708 |
|
6709 |
+
// Look up the name of a key as indicated by an event object.
|
6710 |
+
function keyName(event, noShift) {
|
6711 |
+
if (presto && event.keyCode == 34 && event["char"]) { return false }
|
6712 |
+
var name = keyNames[event.keyCode];
|
6713 |
+
if (name == null || event.altGraphKey) { return false }
|
6714 |
+
return addModifierNames(name, event, noShift)
|
6715 |
+
}
|
6716 |
+
|
6717 |
function getKeyMap(val) {
|
6718 |
return typeof val == "string" ? keyMap[val] : val
|
6719 |
}
|
6792 |
{origin: "+move", bias: -1}
|
6793 |
); },
|
6794 |
goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {
|
6795 |
+
var top = cm.cursorCoords(range.head, "div").top + 5;
|
6796 |
return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")
|
6797 |
}, sel_move); },
|
6798 |
goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {
|
6799 |
+
var top = cm.cursorCoords(range.head, "div").top + 5;
|
6800 |
return cm.coordsChar({left: 0, top: top}, "div")
|
6801 |
}, sel_move); },
|
6802 |
goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {
|
6803 |
+
var top = cm.cursorCoords(range.head, "div").top + 5;
|
6804 |
var pos = cm.coordsChar({left: 0, top: top}, "div");
|
6805 |
if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) }
|
6806 |
return pos
|
6940 |
|| lookupKey(name, cm.options.keyMap, handle, cm)
|
6941 |
}
|
6942 |
|
6943 |
+
// Note that, despite the name, this function is also used to check
|
6944 |
+
// for bound mouse clicks.
|
6945 |
+
|
6946 |
var stopSeq = new Delayed;
|
6947 |
function dispatchKey(cm, name, e, handle) {
|
6948 |
var seq = cm.state.keySeq;
|
7054 |
cm.display.input.onKeyPress(e);
|
7055 |
}
|
7056 |
|
7057 |
+
var DOUBLECLICK_DELAY = 400;
|
7058 |
+
|
7059 |
+
var PastClick = function(time, pos, button) {
|
7060 |
+
this.time = time;
|
7061 |
+
this.pos = pos;
|
7062 |
+
this.button = button;
|
7063 |
+
};
|
7064 |
+
|
7065 |
+
PastClick.prototype.compare = function (time, pos, button) {
|
7066 |
+
return this.time + DOUBLECLICK_DELAY > time &&
|
7067 |
+
cmp(pos, this.pos) == 0 && button == this.button
|
7068 |
+
};
|
7069 |
+
|
7070 |
+
var lastClick;
|
7071 |
+
var lastDoubleClick;
|
7072 |
+
function clickRepeat(pos, button) {
|
7073 |
+
var now = +new Date;
|
7074 |
+
if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {
|
7075 |
+
lastClick = lastDoubleClick = null;
|
7076 |
+
return "triple"
|
7077 |
+
} else if (lastClick && lastClick.compare(now, pos, button)) {
|
7078 |
+
lastDoubleClick = new PastClick(now, pos, button);
|
7079 |
+
lastClick = null;
|
7080 |
+
return "double"
|
7081 |
+
} else {
|
7082 |
+
lastClick = new PastClick(now, pos, button);
|
7083 |
+
lastDoubleClick = null;
|
7084 |
+
return "single"
|
7085 |
+
}
|
7086 |
+
}
|
7087 |
+
|
7088 |
// A mouse down can be a single click, double click, triple click,
|
7089 |
// start of selection drag, start of text drag, new cursor
|
7090 |
// (ctrl-click), rectangle drag (alt-drag), or xwin
|
7106 |
return
|
7107 |
}
|
7108 |
if (clickInGutter(cm, e)) { return }
|
7109 |
+
var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single";
|
7110 |
window.focus();
|
7111 |
|
7112 |
+
// #3261: make sure, that we're not starting a second selection
|
7113 |
+
if (button == 1 && cm.state.selectingText)
|
7114 |
+
{ cm.state.selectingText(e); }
|
7115 |
+
|
7116 |
+
if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }
|
7117 |
+
|
7118 |
+
if (button == 1) {
|
7119 |
+
if (pos) { leftButtonDown(cm, pos, repeat, e); }
|
7120 |
+
else if (e_target(e) == display.scroller) { e_preventDefault(e); }
|
7121 |
+
} else if (button == 2) {
|
7122 |
+
if (pos) { extendSelection(cm.doc, pos); }
|
|
|
|
|
7123 |
setTimeout(function () { return display.input.focus(); }, 20);
|
7124 |
+
} else if (button == 3) {
|
|
|
|
|
7125 |
if (captureRightClick) { onContextMenu(cm, e); }
|
7126 |
else { delayBlurEvent(cm); }
|
|
|
7127 |
}
|
7128 |
}
|
7129 |
|
7130 |
+
function handleMappedButton(cm, button, pos, repeat, event) {
|
7131 |
+
var name = "Click";
|
7132 |
+
if (repeat == "double") { name = "Double" + name; }
|
7133 |
+
else if (repeat == "triple") { name = "Triple" + name; }
|
7134 |
+
name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name;
|
7135 |
+
|
7136 |
+
return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {
|
7137 |
+
if (typeof bound == "string") { bound = commands[bound]; }
|
7138 |
+
if (!bound) { return false }
|
7139 |
+
var done = false;
|
7140 |
+
try {
|
7141 |
+
if (cm.isReadOnly()) { cm.state.suppressEdits = true; }
|
7142 |
+
done = bound(cm, pos) != Pass;
|
7143 |
+
} finally {
|
7144 |
+
cm.state.suppressEdits = false;
|
7145 |
+
}
|
7146 |
+
return done
|
7147 |
+
})
|
7148 |
+
}
|
7149 |
+
|
7150 |
+
function configureMouse(cm, repeat, event) {
|
7151 |
+
var option = cm.getOption("configureMouse");
|
7152 |
+
var value = option ? option(cm, repeat, event) : {};
|
7153 |
+
if (value.unit == null) {
|
7154 |
+
var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;
|
7155 |
+
value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line";
|
7156 |
+
}
|
7157 |
+
if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }
|
7158 |
+
if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }
|
7159 |
+
if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }
|
7160 |
+
return value
|
7161 |
+
}
|
7162 |
+
|
7163 |
+
function leftButtonDown(cm, pos, repeat, event) {
|
7164 |
if (ie) { setTimeout(bind(ensureFocus, cm), 0); }
|
7165 |
else { cm.curOp.focus = activeElt(); }
|
7166 |
|
7167 |
+
var behavior = configureMouse(cm, repeat, event);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7168 |
|
7169 |
+
var sel = cm.doc.sel, contained;
|
7170 |
if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
|
7171 |
+
repeat == "single" && (contained = sel.contains(pos)) > -1 &&
|
7172 |
+
(cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&
|
7173 |
+
(cmp(contained.to(), pos) > 0 || pos.xRel < 0))
|
7174 |
+
{ leftButtonStartDrag(cm, event, pos, behavior); }
|
7175 |
else
|
7176 |
+
{ leftButtonSelect(cm, event, pos, behavior); }
|
7177 |
}
|
7178 |
|
7179 |
// Start a text drag. When it ends, see if any dragging actually
|
7180 |
// happen, and treat as a click if it didn't.
|
7181 |
+
function leftButtonStartDrag(cm, event, pos, behavior) {
|
7182 |
+
var display = cm.display, moved = false;
|
7183 |
+
var dragEnd = operation(cm, function (e) {
|
7184 |
if (webkit) { display.scroller.draggable = false; }
|
7185 |
cm.state.draggingText = false;
|
7186 |
off(document, "mouseup", dragEnd);
|
7187 |
+
off(document, "mousemove", mouseMove);
|
7188 |
+
off(display.scroller, "dragstart", dragStart);
|
7189 |
off(display.scroller, "drop", dragEnd);
|
7190 |
+
if (!moved) {
|
7191 |
+
e_preventDefault(e);
|
7192 |
+
if (!behavior.addNew)
|
7193 |
+
{ extendSelection(cm.doc, pos, null, null, behavior.extend); }
|
7194 |
// Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
|
7195 |
if (webkit || ie && ie_version == 9)
|
7196 |
{ setTimeout(function () {document.body.focus(); display.input.focus();}, 20); }
|
7198 |
{ display.input.focus(); }
|
7199 |
}
|
7200 |
});
|
7201 |
+
var mouseMove = function(e2) {
|
7202 |
+
moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;
|
7203 |
+
};
|
7204 |
+
var dragStart = function () { return moved = true; };
|
7205 |
// Let the drag handler handle this.
|
7206 |
if (webkit) { display.scroller.draggable = true; }
|
7207 |
cm.state.draggingText = dragEnd;
|
7208 |
+
dragEnd.copy = !behavior.moveOnDrag;
|
7209 |
// IE's approach to draggable
|
7210 |
if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
|
7211 |
on(document, "mouseup", dragEnd);
|
7212 |
+
on(document, "mousemove", mouseMove);
|
7213 |
+
on(display.scroller, "dragstart", dragStart);
|
7214 |
on(display.scroller, "drop", dragEnd);
|
7215 |
+
|
7216 |
+
delayBlurEvent(cm);
|
7217 |
+
setTimeout(function () { return display.input.focus(); }, 20);
|
7218 |
+
}
|
7219 |
+
|
7220 |
+
function rangeForUnit(cm, pos, unit) {
|
7221 |
+
if (unit == "char") { return new Range(pos, pos) }
|
7222 |
+
if (unit == "word") { return cm.findWordAt(pos) }
|
7223 |
+
if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }
|
7224 |
+
var result = unit(cm, pos);
|
7225 |
+
return new Range(result.from, result.to)
|
7226 |
}
|
7227 |
|
7228 |
// Normal selection, as opposed to text dragging.
|
7229 |
+
function leftButtonSelect(cm, event, start, behavior) {
|
7230 |
var display = cm.display, doc = cm.doc;
|
7231 |
+
e_preventDefault(event);
|
7232 |
|
7233 |
var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
|
7234 |
+
if (behavior.addNew && !behavior.extend) {
|
7235 |
ourIndex = doc.sel.contains(start);
|
7236 |
if (ourIndex > -1)
|
7237 |
{ ourRange = ranges[ourIndex]; }
|
7242 |
ourIndex = doc.sel.primIndex;
|
7243 |
}
|
7244 |
|
7245 |
+
if (behavior.unit == "rectangle") {
|
7246 |
+
if (!behavior.addNew) { ourRange = new Range(start, start); }
|
7247 |
+
start = posFromMouse(cm, event, true, true);
|
|
|
7248 |
ourIndex = -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7249 |
} else {
|
7250 |
+
var range$$1 = rangeForUnit(cm, start, behavior.unit);
|
7251 |
+
if (behavior.extend)
|
7252 |
+
{ ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); }
|
7253 |
+
else
|
7254 |
+
{ ourRange = range$$1; }
|
7255 |
}
|
7256 |
|
7257 |
+
if (!behavior.addNew) {
|
7258 |
ourIndex = 0;
|
7259 |
setSelection(doc, new Selection([ourRange], 0), sel_mouse);
|
7260 |
startSel = doc.sel;
|
7262 |
ourIndex = ranges.length;
|
7263 |
setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
|
7264 |
{scroll: false, origin: "*mouse"});
|
7265 |
+
} else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) {
|
7266 |
setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
|
7267 |
{scroll: false, origin: "*mouse"});
|
7268 |
startSel = doc.sel;
|
7275 |
if (cmp(lastPos, pos) == 0) { return }
|
7276 |
lastPos = pos;
|
7277 |
|
7278 |
+
if (behavior.unit == "rectangle") {
|
7279 |
var ranges = [], tabSize = cm.options.tabSize;
|
7280 |
var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
|
7281 |
var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
|
7294 |
cm.scrollIntoView(pos);
|
7295 |
} else {
|
7296 |
var oldRange = ourRange;
|
7297 |
+
var range$$1 = rangeForUnit(cm, pos, behavior.unit);
|
7298 |
+
var anchor = oldRange.anchor, head;
|
7299 |
+
if (cmp(range$$1.anchor, anchor) > 0) {
|
7300 |
+
head = range$$1.head;
|
7301 |
+
anchor = minPos(oldRange.from(), range$$1.anchor);
|
7302 |
+
} else {
|
7303 |
+
head = range$$1.anchor;
|
7304 |
+
anchor = maxPos(oldRange.to(), range$$1.head);
|
|
|
|
|
|
|
|
|
|
|
|
|
7305 |
}
|
7306 |
var ranges$1 = startSel.ranges.slice(0);
|
7307 |
ranges$1[ourIndex] = new Range(clipPos(doc, anchor), head);
|
7318 |
|
7319 |
function extend(e) {
|
7320 |
var curCount = ++counter;
|
7321 |
+
var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle");
|
7322 |
if (!cur) { return }
|
7323 |
if (cmp(cur, lastPos) != 0) {
|
7324 |
cm.curOp.focus = activeElt();
|
7484 |
if (next.attach) { next.attach(cm, prev || null); }
|
7485 |
});
|
7486 |
option("extraKeys", null);
|
7487 |
+
option("configureMouse", null);
|
7488 |
|
7489 |
option("lineWrapping", false, wrappingChanged, true);
|
7490 |
option("gutters", [], function (cm) {
|
7512 |
|
7513 |
option("resetSelectionOnContextMenu", true);
|
7514 |
option("lineWiseCopyCut", true);
|
7515 |
+
option("pasteLinesPerSelection", true);
|
7516 |
|
7517 |
option("readOnly", false, function (cm, val) {
|
7518 |
if (val == "nocursor") {
|
7519 |
onBlur(cm);
|
7520 |
cm.display.input.blur();
|
|
|
|
|
|
|
7521 |
}
|
7522 |
cm.display.input.readOnlyChanged(val);
|
7523 |
});
|
7738 |
// area, ensure viewport is updated when scrolling.
|
7739 |
on(d.scroller, "scroll", function () {
|
7740 |
if (d.scroller.clientHeight) {
|
7741 |
+
updateScrollTop(cm, d.scroller.scrollTop);
|
7742 |
setScrollLeft(cm, d.scroller.scrollLeft, true);
|
7743 |
signal(cm, "scroll", cm);
|
7744 |
}
|
7782 |
// Fall back to "prev" when the mode doesn't have an indentation
|
7783 |
// method.
|
7784 |
if (!doc.mode.indent) { how = "prev"; }
|
7785 |
+
else { state = getContextBefore(cm, n).state; }
|
7786 |
}
|
7787 |
|
7788 |
var tabSize = cm.options.tabSize;
|
7858 |
for (var i = 0; i < lastCopied.text.length; i++)
|
7859 |
{ multiPaste.push(doc.splitLines(lastCopied.text[i])); }
|
7860 |
}
|
7861 |
+
} else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {
|
7862 |
multiPaste = map(textLines, function (l) { return [l]; });
|
7863 |
}
|
7864 |
}
|
8118 |
getStateAfter: function(line, precise) {
|
8119 |
var doc = this.doc;
|
8120 |
line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
|
8121 |
+
return getContextBefore(this, line + 1, precise).state
|
8122 |
},
|
8123 |
|
8124 |
cursorCoords: function(start, mode) {
|
8199 |
triggerOnKeyDown: methodOp(onKeyDown),
|
8200 |
triggerOnKeyPress: methodOp(onKeyPress),
|
8201 |
triggerOnKeyUp: onKeyUp,
|
8202 |
+
triggerOnMouseDown: methodOp(onMouseDown),
|
8203 |
|
8204 |
execCommand: function(cmd) {
|
8205 |
if (commands.hasOwnProperty(cmd))
|
8272 |
goals.push(headPos.left);
|
8273 |
var pos = findPosV(this$1, headPos, dir, unit);
|
8274 |
if (unit == "page" && range$$1 == doc.sel.primary())
|
8275 |
+
{ addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); }
|
8276 |
return pos
|
8277 |
}, sel_move);
|
8278 |
if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)
|
8309 |
hasFocus: function() { return this.display.input.getField() == activeElt() },
|
8310 |
isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },
|
8311 |
|
8312 |
+
scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),
|
|
|
|
|
|
|
|
|
8313 |
getScrollInfo: function() {
|
8314 |
var scroller = this.display.scroller;
|
8315 |
return {left: scroller.scrollLeft, top: scroller.scrollTop,
|
8331 |
range$$1.margin = margin || 0;
|
8332 |
|
8333 |
if (range$$1.from.line != null) {
|
8334 |
+
scrollToRange(this, range$$1);
|
|
|
8335 |
} else {
|
8336 |
+
scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin);
|
|
|
|
|
|
|
|
|
|
|
|
|
8337 |
}
|
8338 |
}),
|
8339 |
|
8355 |
}),
|
8356 |
|
8357 |
operation: function(f){return runInOp(this, f)},
|
8358 |
+
startOperation: function(){return startOperation(this)},
|
8359 |
+
endOperation: function(){return endOperation(this)},
|
8360 |
|
8361 |
refresh: methodOp(function() {
|
8362 |
var oldHeight = this.display.cachedTextHeight;
|
8363 |
regChange(this);
|
8364 |
this.curOp.forceUpdate = true;
|
8365 |
clearCaches(this);
|
8366 |
+
scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);
|
8367 |
updateGutterSpace(this);
|
8368 |
if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
|
8369 |
{ estimateLineHeights(this); }
|
8376 |
attachDoc(this, doc);
|
8377 |
clearCaches(this);
|
8378 |
this.display.input.reset();
|
8379 |
+
scrollToCoords(this, doc.scrollLeft, doc.scrollTop);
|
8380 |
this.curOp.forceScroll = true;
|
8381 |
signalLater(this, "swapDoc", this, old);
|
8382 |
return old
|
8587 |
};
|
8588 |
|
8589 |
ContentEditableInput.prototype.showPrimarySelection = function () {
|
8590 |
+
var sel = window.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
|
8591 |
+
var from = prim.from(), to = prim.to();
|
|
|
|
|
|
|
|
|
|
|
8592 |
|
8593 |
+
if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
|
|
|
|
|
8594 |
sel.removeAllRanges();
|
8595 |
return
|
8596 |
}
|
8597 |
|
8598 |
+
var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
|
8599 |
+
var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);
|
8600 |
+
if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
|
8601 |
+
cmp(minPos(curAnchor, curFocus), from) == 0 &&
|
8602 |
+
cmp(maxPos(curAnchor, curFocus), to) == 0)
|
8603 |
+
{ return }
|
8604 |
+
|
8605 |
+
var view = cm.display.view;
|
8606 |
+
var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||
|
8607 |
+
{node: view[0].measure.map[2], offset: 0};
|
8608 |
+
var end = to.line < cm.display.viewTo && posToDOM(cm, to);
|
8609 |
+
if (!end) {
|
8610 |
var measure = view[view.length - 1].measure;
|
8611 |
var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
|
8612 |
end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};
|
8613 |
}
|
8614 |
|
8615 |
+
if (!start || !end) {
|
8616 |
+
sel.removeAllRanges();
|
8617 |
+
return
|
8618 |
+
}
|
8619 |
+
|
8620 |
+
var old = sel.rangeCount && sel.getRangeAt(0), rng;
|
8621 |
try { rng = range(start.node, start.offset, end.offset, end.node); }
|
8622 |
catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
|
8623 |
if (rng) {
|
8624 |
+
if (!gecko && cm.state.focused) {
|
8625 |
sel.collapse(start.node, start.offset);
|
8626 |
if (!rng.collapsed) {
|
8627 |
sel.removeAllRanges();
|
8900 |
var markerID = node.getAttribute("cm-marker"), range$$1;
|
8901 |
if (markerID) {
|
8902 |
var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
|
8903 |
+
if (found.length && (range$$1 = found[0].find(0)))
|
8904 |
{ addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }
|
8905 |
return
|
8906 |
}
|
9009 |
this.pollingFast = false;
|
9010 |
// Self-resetting timeout for the poller
|
9011 |
this.polling = new Delayed();
|
|
|
|
|
|
|
9012 |
// Used to work around IE issue with selection being forgotten when focus moves away from textarea
|
9013 |
this.hasSelection = false;
|
9014 |
this.composing = null;
|
9045 |
if (signalDOMEvent(cm, e)) { return }
|
9046 |
if (cm.somethingSelected()) {
|
9047 |
setLastCopied({lineWise: false, text: cm.getSelections()});
|
|
|
|
|
|
|
|
|
|
|
|
|
9048 |
} else if (!cm.options.lineWiseCopyCut) {
|
9049 |
return
|
9050 |
} else {
|
9122 |
// Reset the input to correspond to the selection (or to be empty,
|
9123 |
// when not typing and nothing is selected)
|
9124 |
TextareaInput.prototype.reset = function (typing) {
|
9125 |
+
if (this.contextMenuPending || this.composing) { return }
|
9126 |
+
var cm = this.cm;
|
9127 |
if (cm.somethingSelected()) {
|
9128 |
this.prevInput = "";
|
9129 |
+
var content = cm.getSelection();
|
|
|
|
|
|
|
9130 |
this.textarea.value = content;
|
9131 |
if (cm.state.focused) { selectInput(this.textarea); }
|
9132 |
if (ie && ie_version >= 9) { this.hasSelection = content; }
|
9134 |
this.prevInput = this.textarea.value = "";
|
9135 |
if (ie && ie_version >= 9) { this.hasSelection = null; }
|
9136 |
}
|
|
|
9137 |
};
|
9138 |
|
9139 |
TextareaInput.prototype.getField = function () { return this.textarea };
|
9328 |
|
9329 |
TextareaInput.prototype.readOnlyChanged = function (val) {
|
9330 |
if (!val) { this.reset(); }
|
9331 |
+
this.textarea.disabled = val == "nocursor";
|
9332 |
};
|
9333 |
|
9334 |
TextareaInput.prototype.setUneditable = function () {};
|
9484 |
|
9485 |
addLegacyProps(CodeMirror$1);
|
9486 |
|
9487 |
+
CodeMirror$1.version = "5.29.0";
|
9488 |
|
9489 |
return CodeMirror$1;
|
9490 |
|
9898 |
})(function(CodeMirror) {
|
9899 |
"use strict";
|
9900 |
|
|
|
|
|
|
|
|
|
|
|
9901 |
CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
9902 |
var indentUnit = config.indentUnit;
|
9903 |
var statementIndent = parserConfig.statementIndent;
|
9923 |
"true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
|
9924 |
"this": kw("this"), "class": kw("class"), "super": kw("atom"),
|
9925 |
"yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
|
9926 |
+
"await": C
|
9927 |
};
|
9928 |
|
9929 |
// Extend the 'normal' keywords with the TypeScript language extensions
|
9930 |
if (isTS) {
|
9931 |
+
var type = {type: "variable", style: "type"};
|
9932 |
var tsKeywords = {
|
9933 |
// object-like things
|
9934 |
"interface": kw("class"),
|
9936 |
"namespace": C,
|
9937 |
"module": kw("module"),
|
9938 |
"enum": kw("module"),
|
|
|
9939 |
|
9940 |
// scope modifiers
|
9941 |
"public": kw("modifier"),
|
9942 |
"private": kw("modifier"),
|
9943 |
"protected": kw("modifier"),
|
9944 |
"abstract": kw("modifier"),
|
9945 |
+
"readonly": kw("modifier"),
|
|
|
|
|
9946 |
|
9947 |
// types
|
9948 |
"string": type, "number": type, "boolean": type, "any": type
|
9956 |
return jsKeywords;
|
9957 |
}();
|
9958 |
|
9959 |
+
var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
|
9960 |
var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
|
9961 |
|
9962 |
function readRegexp(stream) {
|
10030 |
return ret("operator", "operator", stream.current());
|
10031 |
} else if (wordRE.test(ch)) {
|
10032 |
stream.eatWhile(wordRE);
|
10033 |
+
var word = stream.current()
|
10034 |
+
if (state.lastType != ".") {
|
10035 |
+
if (keywords.propertyIsEnumerable(word)) {
|
10036 |
+
var kw = keywords[word]
|
10037 |
+
return ret(kw.type, kw.style, word)
|
10038 |
+
}
|
10039 |
+
if (word == "async" && stream.match(/^\s*[\(\w]/, false))
|
10040 |
+
return ret("async", "keyword", word)
|
10041 |
+
}
|
10042 |
+
return ret("variable", "variable", word)
|
10043 |
}
|
10044 |
}
|
10045 |
|
10247 |
}
|
10248 |
if (type == "function") return cont(functiondef);
|
10249 |
if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
|
10250 |
+
if (type == "variable") {
|
10251 |
+
if (isTS && value == "type") {
|
10252 |
+
cx.marked = "keyword"
|
10253 |
+
return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
|
10254 |
+
} if (isTS && value == "declare") {
|
10255 |
+
cx.marked = "keyword"
|
10256 |
+
return cont(statement)
|
10257 |
+
} else {
|
10258 |
+
return cont(pushlex("stat"), maybelabel);
|
10259 |
+
}
|
10260 |
+
}
|
10261 |
+
if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"),
|
10262 |
block, poplex, poplex);
|
10263 |
if (type == "case") return cont(expression, expect(":"));
|
10264 |
if (type == "default") return cont(expect(":"));
|
10267 |
if (type == "class") return cont(pushlex("form"), className, poplex);
|
10268 |
if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
|
10269 |
if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
|
10270 |
+
if (type == "module") return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
|
|
|
10271 |
if (type == "async") return cont(statement)
|
10272 |
+
if (value == "@") return cont(expression, statement)
|
10273 |
return pass(pushlex("stat"), expression, expect(";"), poplex);
|
10274 |
}
|
10275 |
function expression(type) {
|
10320 |
var expr = noComma == false ? expression : expressionNoComma;
|
10321 |
if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
|
10322 |
if (type == "operator") {
|
10323 |
+
if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
|
10324 |
if (value == "?") return cont(expression, expect(":"), expr);
|
10325 |
return cont(expr);
|
10326 |
}
|
10329 |
if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
|
10330 |
if (type == ".") return cont(property, me);
|
10331 |
if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
|
10332 |
+
if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
|
10333 |
}
|
10334 |
function quasi(type, value) {
|
10335 |
if (type != "quasi") return pass();
|
10354 |
function maybeTarget(noComma) {
|
10355 |
return function(type) {
|
10356 |
if (type == ".") return cont(noComma ? targetNoComma : target);
|
10357 |
+
else if (type == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)
|
10358 |
else return pass(noComma ? expressionNoComma : expression);
|
10359 |
};
|
10360 |
}
|
10389 |
} else if (type == "[") {
|
10390 |
return cont(expression, expect("]"), afterprop);
|
10391 |
} else if (type == "spread") {
|
10392 |
+
return cont(expression, afterprop);
|
10393 |
} else if (type == ":") {
|
10394 |
return pass(afterprop)
|
10395 |
}
|
10436 |
if (value == "?") return cont(maybetype);
|
10437 |
}
|
10438 |
}
|
10439 |
+
function typeexpr(type, value) {
|
10440 |
+
if (type == "variable") {
|
10441 |
+
if (value == "keyof") {
|
10442 |
+
cx.marked = "keyword"
|
10443 |
+
return cont(typeexpr)
|
10444 |
+
} else {
|
10445 |
+
cx.marked = "type"
|
10446 |
+
return cont(afterType)
|
10447 |
+
}
|
10448 |
+
}
|
10449 |
if (type == "string" || type == "number" || type == "atom") return cont(afterType);
|
10450 |
+
if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
|
10451 |
+
if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
|
10452 |
if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
|
10453 |
}
|
10454 |
function maybeReturnType(type) {
|
10462 |
return cont(typeprop)
|
10463 |
} else if (type == ":") {
|
10464 |
return cont(typeexpr)
|
10465 |
+
} else if (type == "[") {
|
10466 |
+
return cont(expression, maybetype, expect("]"), typeprop)
|
10467 |
}
|
10468 |
}
|
10469 |
function typearg(type) {
|
10474 |
if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
|
10475 |
if (value == "|" || type == ".") return cont(typeexpr)
|
10476 |
if (type == "[") return cont(expect("]"), afterType)
|
10477 |
+
if (value == "extends") return cont(typeexpr)
|
10478 |
+
}
|
10479 |
+
function maybeTypeArgs(_, value) {
|
10480 |
+
if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
|
10481 |
}
|
10482 |
function vardef() {
|
10483 |
return pass(pattern, maybetype, maybeAssign, vardefCont);
|
10533 |
if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
|
10534 |
if (type == "variable") {register(value); return cont(functiondef);}
|
10535 |
if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
|
10536 |
+
if (isTS && value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, functiondef)
|
10537 |
}
|
10538 |
function funarg(type) {
|
10539 |
+
if (type == "spread" || type == "modifier") return cont(funarg);
|
10540 |
return pass(pattern, maybetype, maybeAssign);
|
10541 |
}
|
10542 |
function classExpression(type, value) {
|
10554 |
if (type == "{") return cont(pushlex("}"), classBody, poplex);
|
10555 |
}
|
10556 |
function classBody(type, value) {
|
10557 |
+
if (type == "modifier" || type == "async" ||
|
10558 |
+
(type == "variable" &&
|
10559 |
+
(value == "static" || value == "get" || value == "set") &&
|
10560 |
+
cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
|
10561 |
+
cx.marked = "keyword";
|
10562 |
+
return cont(classBody);
|
10563 |
+
}
|
10564 |
+
if (type == "variable") {
|
10565 |
cx.marked = "property";
|
10566 |
return cont(isTS ? classfield : functiondef, classBody);
|
10567 |
}
|
10573 |
}
|
10574 |
if (type == ";") return cont(classBody);
|
10575 |
if (type == "}") return cont();
|
10576 |
+
if (value == "@") return cont(expression, classBody)
|
10577 |
}
|
10578 |
function classfield(type, value) {
|
10579 |
if (value == "?") return cont(classfield)
|
10621 |
/[,.]/.test(textAfter.charAt(0));
|
10622 |
}
|
10623 |
|
10624 |
+
function expressionAllowed(stream, state, backUp) {
|
10625 |
+
return state.tokenize == tokenBase &&
|
10626 |
+
/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
|
10627 |
+
(state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
|
10628 |
+
}
|
10629 |
+
|
10630 |
// Interface
|
10631 |
|
10632 |
return {
|
10701 |
jsonMode: jsonMode,
|
10702 |
|
10703 |
expressionAllowed: expressionAllowed,
|
10704 |
+
|
10705 |
skipExpression: function(state) {
|
10706 |
var top = state.cc[state.cc.length - 1]
|
10707 |
if (top == expression || top == expressionNoComma) state.cc.pop()
|
11109 |
style = style[0];
|
11110 |
}
|
11111 |
override = style;
|
11112 |
+
if (type != "comment")
|
11113 |
+
state.state = states[state.state](type, stream, state);
|
11114 |
return override;
|
11115 |
},
|
11116 |
|
11128 |
ch == "{" && (cx.type == "at" || cx.type == "atBlock")) {
|
11129 |
// Dedent relative to current context.
|
11130 |
indent = Math.max(0, cx.indent - indentUnit);
|
|
|
11131 |
}
|
11132 |
}
|
11133 |
return indent;
|
11198 |
"border-top-left-radius", "border-top-right-radius", "border-top-style",
|
11199 |
"border-top-width", "border-width", "bottom", "box-decoration-break",
|
11200 |
"box-shadow", "box-sizing", "break-after", "break-before", "break-inside",
|
11201 |
+
"caption-side", "caret-color", "clear", "clip", "color", "color-profile", "column-count",
|
11202 |
"column-fill", "column-gap", "column-rule", "column-rule-color",
|
11203 |
"column-rule-style", "column-rule-width", "column-span", "column-width",
|
11204 |
"columns", "content", "counter-increment", "counter-reset", "crop", "cue",
|
11219 |
"grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns",
|
11220 |
"grid-template-rows", "hanging-punctuation", "height", "hyphens",
|
11221 |
"icon", "image-orientation", "image-rendering", "image-resolution",
|
11222 |
+
"inline-box-align", "justify-content", "justify-items", "justify-self", "left", "letter-spacing",
|
11223 |
"line-break", "line-height", "line-stacking", "line-stacking-ruby",
|
11224 |
"line-stacking-shift", "line-stacking-strategy", "list-style",
|
11225 |
"list-style-image", "list-style-position", "list-style-type", "margin",
|
11234 |
"padding", "padding-bottom", "padding-left", "padding-right", "padding-top",
|
11235 |
"page", "page-break-after", "page-break-before", "page-break-inside",
|
11236 |
"page-policy", "pause", "pause-after", "pause-before", "perspective",
|
11237 |
+
"perspective-origin", "pitch", "pitch-range", "place-content", "place-items", "place-self", "play-during", "position",
|
11238 |
"presentation-level", "punctuation-trim", "quotes", "region-break-after",
|
11239 |
"region-break-before", "region-break-inside", "region-fragment",
|
11240 |
"rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness",
|
11385 |
"s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen",
|
11386 |
"scroll", "scrollbar", "scroll-position", "se-resize", "searchfield",
|
11387 |
"searchfield-cancel-button", "searchfield-decoration",
|
11388 |
+
"searchfield-results-button", "searchfield-results-decoration", "self-start", "self-end",
|
11389 |
"semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama",
|
11390 |
"simp-chinese-formal", "simp-chinese-informal", "single",
|
11391 |
"skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal",
|
11392 |
"slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",
|
11393 |
"small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali",
|
11394 |
+
"source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "space-evenly", "spell-out", "square",
|
11395 |
"square-button", "start", "static", "status-bar", "stretch", "stroke", "sub",
|
11396 |
"subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "system-ui", "table",
|
11397 |
"table-caption", "table-cell", "table-column", "table-column-group",
|
11474 |
}
|
11475 |
},
|
11476 |
":": function(stream) {
|
11477 |
+
if (stream.match(/\s*\{/, false))
|
11478 |
+
return [null, null]
|
11479 |
return false;
|
11480 |
},
|
11481 |
"$": function(stream) {
|
11691 |
return state.token(stream, state);
|
11692 |
},
|
11693 |
|
11694 |
+
indent: function (state, textAfter, line) {
|
11695 |
if (!state.localMode || /^\s*<\//.test(textAfter))
|
11696 |
return htmlMode.indent(state.htmlState, textAfter);
|
11697 |
else if (state.localMode.indent)
|
11698 |
+
return state.localMode.indent(state.localState, textAfter, line);
|
11699 |
else
|
11700 |
return CodeMirror.Pass;
|
11701 |
},
|
11744 |
}
|
11745 |
|
11746 |
function typeBefore(stream, state, pos) {
|
11747 |
+
if (state.prevToken == "variable" || state.prevToken == "type") return true;
|
11748 |
if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, pos))) return true;
|
11749 |
if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;
|
11750 |
}
|
11775 |
isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
|
11776 |
numberStart = parserConfig.numberStart || /[\d\.]/,
|
11777 |
number = parserConfig.number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,
|
11778 |
+
isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]/,
|
11779 |
+
isIdentifierChar = parserConfig.isIdentifierChar || /[\w\$_\xa1-\uffff]/;
|
11780 |
|
11781 |
var curPunc, isDefKeyword;
|
11782 |
|
11813 |
while (!stream.match(/^\/[\/*]/, false) && stream.eat(isOperatorChar)) {}
|
11814 |
return "operator";
|
11815 |
}
|
11816 |
+
stream.eatWhile(isIdentifierChar);
|
11817 |
if (namespaceSeparator) while (stream.match(namespaceSeparator))
|
11818 |
+
stream.eatWhile(isIdentifierChar);
|
11819 |
|
11820 |
var cur = stream.current();
|
11821 |
if (contains(keywords, cur)) {
|
11823 |
if (contains(defKeywords, cur)) isDefKeyword = true;
|
11824 |
return "keyword";
|
11825 |
}
|
11826 |
+
if (contains(types, cur)) return "type";
|
11827 |
if (contains(builtin, cur)) {
|
11828 |
if (contains(blockKeywords, cur)) curPunc = "newstatement";
|
11829 |
return "builtin";
|
11992 |
}
|
11993 |
|
11994 |
function pointerHook(_stream, state) {
|
11995 |
+
if (state.prevToken == "type") return "type";
|
11996 |
return false;
|
11997 |
}
|
11998 |
|
12026 |
}
|
12027 |
|
12028 |
function cppLooksLikeConstructor(word) {
|
12029 |
+
var lastTwo = /(\w+)::~?(\w+)$/.exec(word);
|
12030 |
return lastTwo && lastTwo[1] == lastTwo[2];
|
12031 |
}
|
12032 |
|
12102 |
typeFirstDefinitions: true,
|
12103 |
atoms: words("true false null"),
|
12104 |
dontIndentStatements: /^template$/,
|
12105 |
+
isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
|
12106 |
hooks: {
|
12107 |
"#": cppHook,
|
12108 |
"*": pointerHook,
|
12226 |
"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
|
12227 |
),
|
12228 |
multiLineStrings: true,
|
12229 |
+
blockKeywords: words("catch class enum do else finally for forSome if match switch try while"),
|
12230 |
+
defKeywords: words("class enum def object package trait type val var"),
|
12231 |
atoms: words("true false null"),
|
12232 |
indentStatements: false,
|
12233 |
indentSwitch: false,
|
12485 |
return "atom";
|
12486 |
},
|
12487 |
token: function(_stream, state, style) {
|
12488 |
+
if ((style == "variable" || style == "type") &&
|
12489 |
state.prevToken == ".") {
|
12490 |
return "variable-2";
|
12491 |
}
|
13249 |
|
13250 |
(function(mod) {
|
13251 |
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
13252 |
+
mod(require("../../lib/codemirror"))
|
13253 |
else if (typeof define == "function" && define.amd) // AMD
|
13254 |
+
define(["../../lib/codemirror"], mod)
|
13255 |
else // Plain browser env
|
13256 |
+
mod(CodeMirror)
|
13257 |
})(function(CodeMirror) {
|
13258 |
+
"use strict"
|
13259 |
+
var Pos = CodeMirror.Pos
|
13260 |
+
|
13261 |
+
function regexpFlags(regexp) {
|
13262 |
+
var flags = regexp.flags
|
13263 |
+
return flags != null ? flags : (regexp.ignoreCase ? "i" : "")
|
13264 |
+
+ (regexp.global ? "g" : "")
|
13265 |
+
+ (regexp.multiline ? "m" : "")
|
13266 |
+
}
|
13267 |
+
|
13268 |
+
function ensureGlobal(regexp) {
|
13269 |
+
return regexp.global ? regexp : new RegExp(regexp.source, regexpFlags(regexp) + "g")
|
13270 |
+
}
|
13271 |
+
|
13272 |
+
function maybeMultiline(regexp) {
|
13273 |
+
return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source)
|
13274 |
+
}
|
13275 |
+
|
13276 |
+
function searchRegexpForward(doc, regexp, start) {
|
13277 |
+
regexp = ensureGlobal(regexp)
|
13278 |
+
for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
|
13279 |
+
regexp.lastIndex = ch
|
13280 |
+
var string = doc.getLine(line), match = regexp.exec(string)
|
13281 |
+
if (match)
|
13282 |
+
return {from: Pos(line, match.index),
|
13283 |
+
to: Pos(line, match.index + match[0].length),
|
13284 |
+
match: match}
|
13285 |
+
}
|
13286 |
+
}
|
13287 |
|
13288 |
+
function searchRegexpForwardMultiline(doc, regexp, start) {
|
13289 |
+
if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)
|
|
|
13290 |
|
13291 |
+
regexp = ensureGlobal(regexp)
|
13292 |
+
var string, chunk = 1
|
13293 |
+
for (var line = start.line, last = doc.lastLine(); line <= last;) {
|
13294 |
+
// This grows the search buffer in exponentially-sized chunks
|
13295 |
+
// between matches, so that nearby matches are fast and don't
|
13296 |
+
// require concatenating the whole document (in case we're
|
13297 |
+
// searching for something that has tons of matches), but at the
|
13298 |
+
// same time, the amount of retries is limited.
|
13299 |
+
for (var i = 0; i < chunk; i++) {
|
13300 |
+
var curLine = doc.getLine(line++)
|
13301 |
+
string = string == null ? curLine : string + "\n" + curLine
|
13302 |
+
}
|
13303 |
+
chunk = chunk * 2
|
13304 |
+
regexp.lastIndex = start.ch
|
13305 |
+
var match = regexp.exec(string)
|
13306 |
+
if (match) {
|
13307 |
+
var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
|
13308 |
+
var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length
|
13309 |
+
return {from: Pos(startLine, startCh),
|
13310 |
+
to: Pos(startLine + inside.length - 1,
|
13311 |
+
inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
|
13312 |
+
match: match}
|
13313 |
+
}
|
13314 |
+
}
|
13315 |
+
}
|
13316 |
+
|
13317 |
+
function lastMatchIn(string, regexp) {
|
13318 |
+
var cutOff = 0, match
|
13319 |
+
for (;;) {
|
13320 |
+
regexp.lastIndex = cutOff
|
13321 |
+
var newMatch = regexp.exec(string)
|
13322 |
+
if (!newMatch) return match
|
13323 |
+
match = newMatch
|
13324 |
+
cutOff = match.index + (match[0].length || 1)
|
13325 |
+
if (cutOff == string.length) return match
|
13326 |
+
}
|
13327 |
+
}
|
13328 |
+
|
13329 |
+
function searchRegexpBackward(doc, regexp, start) {
|
13330 |
+
regexp = ensureGlobal(regexp)
|
13331 |
+
for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
|
13332 |
+
var string = doc.getLine(line)
|
13333 |
+
if (ch > -1) string = string.slice(0, ch)
|
13334 |
+
var match = lastMatchIn(string, regexp)
|
13335 |
+
if (match)
|
13336 |
+
return {from: Pos(line, match.index),
|
13337 |
+
to: Pos(line, match.index + match[0].length),
|
13338 |
+
match: match}
|
13339 |
+
}
|
13340 |
+
}
|
13341 |
+
|
13342 |
+
function searchRegexpBackwardMultiline(doc, regexp, start) {
|
13343 |
+
regexp = ensureGlobal(regexp)
|
13344 |
+
var string, chunk = 1
|
13345 |
+
for (var line = start.line, first = doc.firstLine(); line >= first;) {
|
13346 |
+
for (var i = 0; i < chunk; i++) {
|
13347 |
+
var curLine = doc.getLine(line--)
|
13348 |
+
string = string == null ? curLine.slice(0, start.ch) : curLine + "\n" + string
|
13349 |
+
}
|
13350 |
+
chunk *= 2
|
13351 |
+
|
13352 |
+
var match = lastMatchIn(string, regexp)
|
13353 |
+
if (match) {
|
13354 |
+
var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n")
|
13355 |
+
var startLine = line + before.length, startCh = before[before.length - 1].length
|
13356 |
+
return {from: Pos(startLine, startCh),
|
13357 |
+
to: Pos(startLine + inside.length - 1,
|
13358 |
+
inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length),
|
13359 |
+
match: match}
|
13360 |
+
}
|
13361 |
+
}
|
13362 |
+
}
|
13363 |
+
|
13364 |
+
var doFold, noFold
|
13365 |
+
if (String.prototype.normalize) {
|
13366 |
+
doFold = function(str) { return str.normalize("NFD").toLowerCase() }
|
13367 |
+
noFold = function(str) { return str.normalize("NFD") }
|
13368 |
+
} else {
|
13369 |
+
doFold = function(str) { return str.toLowerCase() }
|
13370 |
+
noFold = function(str) { return str }
|
13371 |
+
}
|
13372 |
+
|
13373 |
+
// Maps a position in a case-folded line back to a position in the original line
|
13374 |
+
// (compensating for codepoints increasing in number during folding)
|
13375 |
+
function adjustPos(orig, folded, pos, foldFunc) {
|
13376 |
+
if (orig.length == folded.length) return pos
|
13377 |
+
for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) {
|
13378 |
+
if (min == max) return min
|
13379 |
+
var mid = (min + max) >> 1
|
13380 |
+
var len = foldFunc(orig.slice(0, mid)).length
|
13381 |
+
if (len == pos) return mid
|
13382 |
+
else if (len > pos) max = mid
|
13383 |
+
else min = mid + 1
|
13384 |
+
}
|
13385 |
+
}
|
13386 |
+
|
13387 |
+
function searchStringForward(doc, query, start, caseFold) {
|
13388 |
+
// Empty string would match anything and never progress, so we
|
13389 |
+
// define it to match nothing instead.
|
13390 |
+
if (!query.length) return null
|
13391 |
+
var fold = caseFold ? doFold : noFold
|
13392 |
+
var lines = fold(query).split(/\r|\n\r?/)
|
13393 |
+
|
13394 |
+
search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) {
|
13395 |
+
var orig = doc.getLine(line).slice(ch), string = fold(orig)
|
13396 |
+
if (lines.length == 1) {
|
13397 |
+
var found = string.indexOf(lines[0])
|
13398 |
+
if (found == -1) continue search
|
13399 |
+
var start = adjustPos(orig, string, found, fold) + ch
|
13400 |
+
return {from: Pos(line, adjustPos(orig, string, found, fold) + ch),
|
13401 |
+
to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)}
|
13402 |
+
} else {
|
13403 |
+
var cutFrom = string.length - lines[0].length
|
13404 |
+
if (string.slice(cutFrom) != lines[0]) continue search
|
13405 |
+
for (var i = 1; i < lines.length - 1; i++)
|
13406 |
+
if (fold(doc.getLine(line + i)) != lines[i]) continue search
|
13407 |
+
var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
|
13408 |
+
if (end.slice(0, lastLine.length) != lastLine) continue search
|
13409 |
+
return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
|
13410 |
+
to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
|
13411 |
+
}
|
13412 |
+
}
|
13413 |
+
}
|
13414 |
+
|
13415 |
+
function searchStringBackward(doc, query, start, caseFold) {
|
13416 |
+
if (!query.length) return null
|
13417 |
+
var fold = caseFold ? doFold : noFold
|
13418 |
+
var lines = fold(query).split(/\r|\n\r?/)
|
13419 |
+
|
13420 |
+
search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) {
|
13421 |
+
var orig = doc.getLine(line)
|
13422 |
+
if (ch > -1) orig = orig.slice(0, ch)
|
13423 |
+
var string = fold(orig)
|
13424 |
+
if (lines.length == 1) {
|
13425 |
+
var found = string.lastIndexOf(lines[0])
|
13426 |
+
if (found == -1) continue search
|
13427 |
+
return {from: Pos(line, adjustPos(orig, string, found, fold)),
|
13428 |
+
to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))}
|
13429 |
+
} else {
|
13430 |
+
var lastLine = lines[lines.length - 1]
|
13431 |
+
if (string.slice(0, lastLine.length) != lastLine) continue search
|
13432 |
+
for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++)
|
13433 |
+
if (fold(doc.getLine(start + i)) != lines[i]) continue search
|
13434 |
+
var top = doc.getLine(line + 1 - lines.length), topString = fold(top)
|
13435 |
+
if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search
|
13436 |
+
return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)),
|
13437 |
+
to: Pos(line, adjustPos(orig, string, lastLine.length, fold))}
|
13438 |
+
}
|
13439 |
+
}
|
13440 |
+
}
|
13441 |
|
13442 |
+
function SearchCursor(doc, query, pos, options) {
|
13443 |
+
this.atOccurrence = false
|
13444 |
+
this.doc = doc
|
13445 |
+
pos = pos ? doc.clipPos(pos) : Pos(0, 0)
|
13446 |
+
this.pos = {from: pos, to: pos}
|
13447 |
+
|
13448 |
+
var caseFold
|
13449 |
+
if (typeof options == "object") {
|
13450 |
+
caseFold = options.caseFold
|
13451 |
+
} else { // Backwards compat for when caseFold was the 4th argument
|
13452 |
+
caseFold = options
|
13453 |
+
options = null
|
13454 |
+
}
|
13455 |
+
|
13456 |
+
if (typeof query == "string") {
|
13457 |
+
if (caseFold == null) caseFold = false
|
13458 |
this.matches = function(reverse, pos) {
|
13459 |
+
return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
|
13460 |
+
}
|
13461 |
+
} else {
|
13462 |
+
query = ensureGlobal(query)
|
13463 |
+
if (!options || options.multiline !== false)
|
13464 |
+
this.matches = function(reverse, pos) {
|
13465 |
+
return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13466 |
}
|
13467 |
+
else
|
|
|
13468 |
this.matches = function(reverse, pos) {
|
13469 |
+
return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos)
|
13470 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13471 |
}
|
13472 |
}
|
13473 |
|
13474 |
SearchCursor.prototype = {
|
13475 |
+
findNext: function() {return this.find(false)},
|
13476 |
+
findPrevious: function() {return this.find(true)},
|
13477 |
|
13478 |
find: function(reverse) {
|
13479 |
+
var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to))
|
|
|
|
|
|
|
|
|
|
|
|
|
13480 |
|
13481 |
+
// Implements weird auto-growing behavior on null-matches for
|
13482 |
+
// backwards-compatiblity with the vim code (unfortunately)
|
13483 |
+
while (result && CodeMirror.cmpPos(result.from, result.to) == 0) {
|
|
|
|
|
13484 |
if (reverse) {
|
13485 |
+
if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1)
|
13486 |
+
else if (result.from.line == this.doc.firstLine()) result = null
|
13487 |
+
else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1)))
|
13488 |
+
} else {
|
13489 |
+
if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1)
|
13490 |
+
else if (result.to.line == this.doc.lastLine()) result = null
|
13491 |
+
else result = this.matches(reverse, Pos(result.to.line + 1, 0))
|
13492 |
}
|
13493 |
}
|
13494 |
+
|
13495 |
+
if (result) {
|
13496 |
+
this.pos = result
|
13497 |
+
this.atOccurrence = true
|
13498 |
+
return this.pos.match || true
|
13499 |
+
} else {
|
13500 |
+
var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0)
|
13501 |
+
this.pos = {from: end, to: end}
|
13502 |
+
return this.atOccurrence = false
|
13503 |
+
}
|
13504 |
},
|
13505 |
|
13506 |
+
from: function() {if (this.atOccurrence) return this.pos.from},
|
13507 |
+
to: function() {if (this.atOccurrence) return this.pos.to},
|
13508 |
|
13509 |
replace: function(newText, origin) {
|
13510 |
+
if (!this.atOccurrence) return
|
13511 |
+
var lines = CodeMirror.splitLines(newText)
|
13512 |
+
this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin)
|
13513 |
this.pos.to = Pos(this.pos.from.line + lines.length - 1,
|
13514 |
+
lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13515 |
}
|
13516 |
}
|
13517 |
|
13518 |
CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) {
|
13519 |
+
return new SearchCursor(this.doc, query, pos, caseFold)
|
13520 |
+
})
|
13521 |
CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) {
|
13522 |
+
return new SearchCursor(this, query, pos, caseFold)
|
13523 |
+
})
|
13524 |
|
13525 |
CodeMirror.defineExtension("selectMatches", function(query, caseFold) {
|
13526 |
+
var ranges = []
|
13527 |
+
var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold)
|
13528 |
while (cur.findNext()) {
|
13529 |
+
if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break
|
13530 |
+
ranges.push({anchor: cur.from(), head: cur.to()})
|
13531 |
}
|
13532 |
if (ranges.length)
|
13533 |
+
this.setSelections(ranges, 0)
|
13534 |
+
})
|
13535 |
});
|
13536 |
|
13537 |
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
13590 |
|
13591 |
function getSearchCursor(cm, query, pos) {
|
13592 |
// Heuristic: if the query string is all lowercase, do a case insensitive search.
|
13593 |
+
return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});
|
13594 |
}
|
13595 |
|
13596 |
function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {
|
13635 |
}
|
13636 |
|
13637 |
var queryDialog =
|
13638 |
+
'<span class="CodeMirror-search-label">Search:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
|
13639 |
|
13640 |
function startSearch(cm, state, query) {
|
13641 |
state.queryText = query;
|
13673 |
};
|
13674 |
persistentDialog(cm, queryDialog, q, searchNext, function(event, query) {
|
13675 |
var keyName = CodeMirror.keyName(event)
|
13676 |
+
var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
|
|
|
13677 |
if (cmd == "findNext" || cmd == "findPrev" ||
|
13678 |
cmd == "findPersistentNext" || cmd == "findPersistentPrev") {
|
13679 |
CodeMirror.e_stop(event);
|
13723 |
|
13724 |
var replaceQueryDialog =
|
13725 |
' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
|
13726 |
+
var replacementQueryDialog = '<span class="CodeMirror-search-label">With:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
|
13727 |
+
var doReplaceConfirm = '<span class="CodeMirror-search-label">Replace?</span> <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>';
|
13728 |
|
13729 |
function replaceAll(cm, query, text) {
|
13730 |
cm.operation(function() {
|
13740 |
function replace(cm, all) {
|
13741 |
if (cm.getOption("readOnly")) return;
|
13742 |
var query = cm.getSelection() || getSearchState(cm).lastQuery;
|
13743 |
+
var dialogText = '<span class="CodeMirror-search-label">' + (all ? 'Replace all:' : 'Replace:') + '</span>';
|
13744 |
dialog(cm, dialogText + replaceQueryDialog, dialogText, query, function(query) {
|
13745 |
if (!query) return;
|
13746 |
query = parseQuery(query);
|
14378 |
widget = document.createElement("span");
|
14379 |
widget.appendChild(text);
|
14380 |
widget.className = "CodeMirror-foldmarker";
|
14381 |
+
} else if (widget) {
|
14382 |
+
widget = widget.cloneNode(true)
|
14383 |
}
|
14384 |
return widget;
|
14385 |
}
|
14776 |
}
|
14777 |
};
|
14778 |
|
14779 |
+
CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {
|
14780 |
var iter = new Iter(cm, pos.line, pos.ch, range);
|
14781 |
for (;;) {
|
14782 |
+
var open = findMatchingOpen(iter, tag);
|
14783 |
if (!open) break;
|
14784 |
var forward = new Iter(cm, pos.line, pos.ch, range);
|
14785 |
var close = findMatchingClose(forward, open.tag);
|
14814 |
return -1
|
14815 |
return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
|
14816 |
}
|
14817 |
+
|
14818 |
CodeMirror.registerHelper("fold", "indent", function(cm, start) {
|
14819 |
var myIndent = lineIndent(cm, start.line)
|
14820 |
if (myIndent < 0) return
|
14861 |
|
14862 |
var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
|
14863 |
|
14864 |
+
function findMatchingBracket(cm, where, config) {
|
14865 |
var line = cm.getLineHandle(where.line), pos = where.ch - 1;
|
14866 |
+
var afterCursor = config && config.afterCursor
|
14867 |
+
if (afterCursor == null)
|
14868 |
+
afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)
|
14869 |
+
|
14870 |
+
// A cursor is defined as between two characters, but in in vim command mode
|
14871 |
+
// (i.e. not insert mode), the cursor is visually represented as a
|
14872 |
+
// highlighted box on top of the 2nd character. Otherwise, we allow matches
|
14873 |
+
// from before or after the cursor.
|
14874 |
+
var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
|
14875 |
+
matching[line.text.charAt(++pos)];
|
14876 |
if (!match) return null;
|
14877 |
var dir = match.charAt(1) == ">" ? 1 : -1;
|
14878 |
+
if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;
|
14879 |
var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
|
14880 |
|
14881 |
var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
|
14923 |
var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
|
14924 |
var marks = [], ranges = cm.listSelections();
|
14925 |
for (var i = 0; i < ranges.length; i++) {
|
14926 |
+
var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);
|
14927 |
if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
|
14928 |
var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
|
14929 |
marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
|
14967 |
});
|
14968 |
|
14969 |
CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
|
14970 |
+
CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){
|
14971 |
+
// Backwards-compatibility kludge
|
14972 |
+
if (oldConfig || typeof config == "boolean") {
|
14973 |
+
if (!oldConfig) {
|
14974 |
+
config = config ? {strict: true} : null
|
14975 |
+
} else {
|
14976 |
+
oldConfig.strict = config
|
14977 |
+
config = oldConfig
|
14978 |
+
}
|
14979 |
+
}
|
14980 |
+
return findMatchingBracket(this, pos, config)
|
14981 |
});
|
14982 |
CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
|
14983 |
return scanForBracket(this, pos, dir, style, config);
|
15757 |
cm.state.sublimeFindFullWord = cm.doc.sel;
|
15758 |
};
|
15759 |
|
15760 |
+
function addCursorToSelection(cm, dir) {
|
15761 |
+
var ranges = cm.listSelections(), newRanges = [];
|
15762 |
+
for (var i = 0; i < ranges.length; i++) {
|
15763 |
+
var range = ranges[i];
|
15764 |
+
var newAnchor = cm.findPosV(range.anchor, dir, "line");
|
15765 |
+
var newHead = cm.findPosV(range.head, dir, "line");
|
15766 |
+
var newRange = {anchor: newAnchor, head: newHead};
|
15767 |
+
newRanges.push(range);
|
15768 |
+
newRanges.push(newRange);
|
15769 |
+
}
|
15770 |
+
cm.setSelections(newRanges);
|
15771 |
+
}
|
15772 |
+
|
15773 |
+
var addCursorToLineCombo = mac ? "Shift-Cmd" : 'Alt-Ctrl';
|
15774 |
+
cmds[map[addCursorToLineCombo + "Up"] = "addCursorToPrevLine"] = function(cm) { addCursorToSelection(cm, -1); };
|
15775 |
+
cmds[map[addCursorToLineCombo + "Down"] = "addCursorToNextLine"] = function(cm) { addCursorToSelection(cm, 1); };
|
15776 |
+
|
15777 |
function isSelectedRange(ranges, from, to) {
|
15778 |
for (var i = 0; i < ranges.length; i++)
|
15779 |
if (ranges[i].from() == from && ranges[i].to() == to) return true
|
16303 |
|
16304 |
function byExpr(cm, pos, dir) {
|
16305 |
var wrap;
|
16306 |
+
if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, {strict: true}))
|
16307 |
&& wrap.match && (wrap.forward ? 1 : -1) == dir)
|
16308 |
return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;
|
16309 |
|
16575 |
"Ctrl-/": repeated("undo"), "Shift-Ctrl--": repeated("undo"),
|
16576 |
"Ctrl-Z": repeated("undo"), "Cmd-Z": repeated("undo"),
|
16577 |
"Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd",
|
16578 |
+
"Ctrl-S": "findPersistentNext", "Ctrl-R": "findPersistentPrev", "Ctrl-G": quit, "Shift-Alt-5": "replace",
|
16579 |
"Alt-/": "autocomplete",
|
16580 |
"Enter": "newlineAndIndent",
|
16581 |
"Ctrl-J": repeated(function(cm) { cm.replaceSelection("\n", "end"); }),
|
16882 |
CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
|
16883 |
|
16884 |
if (!next || next.attach != attachVimMap)
|
16885 |
+
leaveVimMode(cm);
|
16886 |
}
|
16887 |
function attachVimMap(cm, prev) {
|
16888 |
if (this == CodeMirror.keyMap.vim)
|
17034 |
cfg = cfg || {};
|
17035 |
var scope = cfg.scope;
|
17036 |
if (!option) {
|
17037 |
+
return new Error('Unknown option: ' + name);
|
17038 |
}
|
17039 |
if (option.type == 'boolean') {
|
17040 |
if (value && value !== true) {
|
17041 |
+
return new Error('Invalid argument: ' + name + '=' + value);
|
17042 |
} else if (value !== false) {
|
17043 |
// Boolean options are set to true if value is not defined.
|
17044 |
value = true;
|
17066 |
cfg = cfg || {};
|
17067 |
var scope = cfg.scope;
|
17068 |
if (!option) {
|
17069 |
+
return new Error('Unknown option: ' + name);
|
17070 |
}
|
17071 |
if (option.callback) {
|
17072 |
var local = cm && option.callback(undefined, cm);
|
17272 |
lastCharacterSearch: {increment:0, forward:true, selectedCharacter:''},
|
17273 |
registerController: new RegisterController({}),
|
17274 |
// search history buffer
|
17275 |
+
searchHistoryController: new HistoryController(),
|
17276 |
// ex Command history buffer
|
17277 |
+
exCommandHistoryController : new HistoryController()
|
17278 |
};
|
17279 |
for (var optionName in options) {
|
17280 |
var option = options[optionName];
|
17581 |
* for a reference implementation.
|
17582 |
*/
|
17583 |
function defineRegister(name, register) {
|
17584 |
+
var registers = vimGlobalState.registerController.registers;
|
17585 |
if (!name || name.length != 1) {
|
17586 |
throw Error('Register name must be 1 character');
|
17587 |
}
|
17609 |
}
|
17610 |
RegisterController.prototype = {
|
17611 |
pushText: function(registerName, operator, text, linewise, blockwise) {
|
|
|
|
|
|
|
17612 |
if (linewise && text.charAt(text.length - 1) !== '\n'){
|
17613 |
text += '\n';
|
17614 |
}
|
17730 |
}
|
17731 |
}
|
17732 |
if (bestMatch.keys.slice(-11) == '<character>') {
|
17733 |
+
var character = lastChar(keys);
|
17734 |
+
if (!character) return {type: 'none'};
|
17735 |
+
inputState.selectedCharacter = character;
|
17736 |
}
|
17737 |
return {type: 'full', command: bestMatch};
|
17738 |
},
|
18458 |
var ch = cursor.ch;
|
18459 |
var lineText = cm.getLine(line);
|
18460 |
var symbol;
|
18461 |
+
for (; ch < lineText.length; ch++) {
|
18462 |
+
symbol = lineText.charAt(ch);
|
18463 |
if (symbol && isMatchableSymbol(symbol)) {
|
18464 |
+
var style = cm.getTokenTypeAt(Pos(line, ch + 1));
|
18465 |
if (style !== "string" && style !== "comment") {
|
18466 |
break;
|
18467 |
}
|
18468 |
}
|
18469 |
+
}
|
18470 |
+
if (ch < lineText.length) {
|
18471 |
var matched = cm.findMatchingBracket(Pos(line, ch));
|
18472 |
return matched.to;
|
18473 |
} else {
|
18808 |
enterMacroRecordMode: function(cm, actionArgs) {
|
18809 |
var macroModeState = vimGlobalState.macroModeState;
|
18810 |
var registerName = actionArgs.selectedCharacter;
|
18811 |
+
if (vimGlobalState.registerController.isValidRegister(registerName)) {
|
18812 |
+
macroModeState.enterMacroRecordMode(cm, registerName);
|
18813 |
+
}
|
18814 |
},
|
18815 |
toggleOverwrite: function(cm) {
|
18816 |
if (!cm.state.overwrite) {
|
19328 |
}
|
19329 |
}
|
19330 |
function lastChar(keys) {
|
19331 |
+
var match = /^.*(<[^>]+>)$/.exec(keys);
|
19332 |
var selectedCharacter = match ? match[1] : keys.slice(-1);
|
19333 |
if (selectedCharacter.length > 1){
|
19334 |
switch(selectedCharacter){
|
19339 |
selectedCharacter=' ';
|
19340 |
break;
|
19341 |
default:
|
19342 |
+
selectedCharacter='';
|
19343 |
break;
|
19344 |
}
|
19345 |
}
|
19440 |
var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)};
|
19441 |
selections.push(range);
|
19442 |
}
|
|
|
19443 |
cm.setSelections(selections);
|
19444 |
selectionEnd.ch = headCh;
|
19445 |
base.ch = baseCh;
|
20707 |
parseLineSpec_: function(cm, inputStream) {
|
20708 |
var numberMatch = inputStream.match(/^(\d+)/);
|
20709 |
if (numberMatch) {
|
20710 |
+
// Absolute line number plus offset (N+M or N-M) is probably a typo,
|
20711 |
+
// not something the user actually wanted. (NB: vim does allow this.)
|
20712 |
return parseInt(numberMatch[1], 10) - 1;
|
20713 |
}
|
20714 |
switch (inputStream.next()) {
|
20715 |
case '.':
|
20716 |
+
return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);
|
20717 |
case '$':
|
20718 |
+
return this.parseLineSpecOffset_(inputStream, cm.lastLine());
|
20719 |
case '\'':
|
20720 |
var markName = inputStream.next();
|
20721 |
var markPos = getMarkPos(cm, cm.state.vim, markName);
|
20722 |
if (!markPos) throw new Error('Mark not set');
|
20723 |
+
return this.parseLineSpecOffset_(inputStream, markPos.line);
|
20724 |
+
case '-':
|
20725 |
+
case '+':
|
20726 |
+
inputStream.backUp(1);
|
20727 |
+
// Offset is relative to current line if not otherwise specified.
|
20728 |
+
return this.parseLineSpecOffset_(inputStream, cm.getCursor().line);
|
20729 |
default:
|
20730 |
inputStream.backUp(1);
|
20731 |
return undefined;
|
20732 |
}
|
20733 |
},
|
20734 |
+
parseLineSpecOffset_: function(inputStream, line) {
|
20735 |
+
var offsetMatch = inputStream.match(/^([+-])?(\d+)/);
|
20736 |
+
if (offsetMatch) {
|
20737 |
+
var offset = parseInt(offsetMatch[2], 10);
|
20738 |
+
if (offsetMatch[1] == "-") {
|
20739 |
+
line -= offset;
|
20740 |
+
} else {
|
20741 |
+
line += offset;
|
20742 |
+
}
|
20743 |
+
}
|
20744 |
+
return line;
|
20745 |
+
},
|
20746 |
parseCommandArgs_: function(inputStream, params, command) {
|
20747 |
if (inputStream.eol()) {
|
20748 |
return;
|
20922 |
// If no value is provided, then we assume this is a get.
|
20923 |
if (!optionIsBoolean && value === undefined || forceGet) {
|
20924 |
var oldValue = getOption(optionName, cm, setCfg);
|
20925 |
+
if (oldValue instanceof Error) {
|
20926 |
+
showConfirm(cm, oldValue.message);
|
20927 |
+
} else if (oldValue === true || oldValue === false) {
|
20928 |
showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName);
|
20929 |
} else {
|
20930 |
showConfirm(cm, ' ' + optionName + '=' + oldValue);
|
20931 |
}
|
20932 |
} else {
|
20933 |
+
var setOptionReturn = setOption(optionName, value, cm, setCfg);
|
20934 |
+
if (setOptionReturn instanceof Error) {
|
20935 |
+
showConfirm(cm, setOptionReturn.message);
|
20936 |
+
}
|
20937 |
}
|
20938 |
},
|
20939 |
setlocal: function (cm, params) {
|
21132 |
if (tokens.length) {
|
21133 |
regexPart = tokens[0];
|
21134 |
replacePart = tokens[1];
|
21135 |
+
if (regexPart && regexPart[regexPart.length - 1] === '$') {
|
21136 |
+
regexPart = regexPart.slice(0, regexPart.length - 1) + '\\n';
|
21137 |
+
replacePart = replacePart ? replacePart + '\n' : '\n';
|
21138 |
+
}
|
21139 |
if (replacePart !== undefined) {
|
21140 |
if (getOption('pcre')) {
|
21141 |
replacePart = unescapeRegexReplace(replacePart);
|
21555 |
* Listens for changes made in insert mode.
|
21556 |
* Should only be active in insert mode.
|
21557 |
*/
|
21558 |
+
function onChange(cm, changeObj) {
|
21559 |
var macroModeState = vimGlobalState.macroModeState;
|
21560 |
var lastChange = macroModeState.lastInsertModeChanges;
|
21561 |
if (!macroModeState.isPlaying) {
|
21568 |
lastChange.changes = [];
|
21569 |
lastChange.maybeReset = false;
|
21570 |
}
|
21571 |
+
if (cm.state.overwrite && !/\n/.test(text)) {
|
21572 |
+
lastChange.changes.push([text]);
|
21573 |
+
} else {
|
21574 |
+
lastChange.changes.push(text);
|
21575 |
+
}
|
21576 |
}
|
21577 |
// Change objects may be chained with next.
|
21578 |
changeObj = changeObj.next;
|
21754 |
var change = changes[j];
|
21755 |
if (change instanceof InsertModeKey) {
|
21756 |
CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
|
21757 |
+
} else if (typeof change == "string") {
|
21758 |
var cur = cm.getCursor();
|
21759 |
cm.replaceRange(change, cur, cur);
|
21760 |
+
} else {
|
21761 |
+
var start = cm.getCursor();
|
21762 |
+
var end = offsetCursor(start, 0, change[0].length);
|
21763 |
+
cm.replaceRange(change[0], start, end);
|
21764 |
}
|
21765 |
}
|
21766 |
}
|
21785 |
* @since 2.2.1
|
21786 |
*/
|
21787 |
|
21788 |
+
// console.log(window.heshOptions); // from wordpress php
|
21789 |
|
21790 |
(function (
|
21791 |
document,
|
dist/hesh.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.CodeMirror{font-family:monospace;height:300px;color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:a 1.06s steps(1) infinite;background-color:#7e7}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.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-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.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,.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-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{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}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{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;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.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;overflow:auto}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day div.CodeMirror-selected{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::selection,.cm-s-3024-day .CodeMirror-line>span::selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-day .CodeMirror-guttermarker-subtle,.cm-s-3024-day .CodeMirror-linenumber{color:#807d7c}.cm-s-3024-day .CodeMirror-cursor{border-left:1px solid #5c5855}.cm-s-3024-day span.cm-comment{color:#cdab53}.cm-s-3024-day span.cm-atom,.cm-s-3024-day span.cm-number{color:#a16a94}.cm-s-3024-day span.cm-attribute,.cm-s-3024-day span.cm-property{color:#01a252}.cm-s-3024-day span.cm-keyword{color:#db2d20}.cm-s-3024-day span.cm-string{color:#fded02}.cm-s-3024-day span.cm-variable{color:#01a252}.cm-s-3024-day span.cm-variable-2{color:#01a0e4}.cm-s-3024-day span.cm-def{color:#e8bbd0}.cm-s-3024-day span.cm-bracket{color:#3a3432}.cm-s-3024-day span.cm-tag{color:#db2d20}.cm-s-3024-day span.cm-link{color:#a16a94}.cm-s-3024-day span.cm-error{background:#db2d20;color:#5c5855}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-3024-day .CodeMirror-matchingbracket{text-decoration:underline;color:#a16a94!important}.cm-s-3024-night.CodeMirror{background:#090300;color:#d6d5d4}.cm-s-3024-night div.CodeMirror-selected{background:#3a3432}.cm-s-3024-night .CodeMirror-line::selection,.cm-s-3024-night .CodeMirror-line>span::selection,.cm-s-3024-night .CodeMirror-line>span>span::selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-line::-moz-selection,.cm-s-3024-night .CodeMirror-line>span::-moz-selection,.cm-s-3024-night .CodeMirror-line>span>span::-moz-selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-gutters{background:#090300;border-right:0}.cm-s-3024-night .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-night .CodeMirror-guttermarker-subtle,.cm-s-3024-night .CodeMirror-linenumber{color:#5c5855}.cm-s-3024-night .CodeMirror-cursor{border-left:1px solid #807d7c}.cm-s-3024-night span.cm-comment{color:#cdab53}.cm-s-3024-night span.cm-atom,.cm-s-3024-night span.cm-number{color:#a16a94}.cm-s-3024-night span.cm-attribute,.cm-s-3024-night span.cm-property{color:#01a252}.cm-s-3024-night span.cm-keyword{color:#db2d20}.cm-s-3024-night span.cm-string{color:#fded02}.cm-s-3024-night span.cm-variable{color:#01a252}.cm-s-3024-night span.cm-variable-2{color:#01a0e4}.cm-s-3024-night span.cm-def{color:#e8bbd0}.cm-s-3024-night span.cm-bracket{color:#d6d5d4}.cm-s-3024-night span.cm-tag{color:#db2d20}.cm-s-3024-night span.cm-link{color:#a16a94}.cm-s-3024-night span.cm-error{background:#db2d20;color:#807d7c}.cm-s-3024-night .CodeMirror-activeline-background{background:#2f2f2f}.cm-s-3024-night .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-abcdef.CodeMirror{background:#0f0f0f;color:#defdef}.cm-s-abcdef div.CodeMirror-selected{background:#515151}.cm-s-abcdef .CodeMirror-line::selection,.cm-s-abcdef .CodeMirror-line>span::selection,.cm-s-abcdef .CodeMirror-line>span>span::selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-line::-moz-selection,.cm-s-abcdef .CodeMirror-line>span::-moz-selection,.cm-s-abcdef .CodeMirror-line>span>span::-moz-selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-gutters{background:#555;border-right:2px solid #314151}.cm-s-abcdef .CodeMirror-guttermarker{color:#222}.cm-s-abcdef .CodeMirror-guttermarker-subtle{color:azure}.cm-s-abcdef .CodeMirror-linenumber{color:#fff}.cm-s-abcdef .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-abcdef span.cm-keyword{color:#b8860b;font-weight:700}.cm-s-abcdef span.cm-atom{color:#77f}.cm-s-abcdef span.cm-number{color:violet}.cm-s-abcdef span.cm-def{color:#fffabc}.cm-s-abcdef span.cm-variable{color:#abcdef}.cm-s-abcdef span.cm-variable-2{color:#cacbcc}.cm-s-abcdef span.cm-variable-3{color:#def}.cm-s-abcdef span.cm-property{color:#fedcba}.cm-s-abcdef span.cm-operator{color:#ff0}.cm-s-abcdef span.cm-comment{color:#7a7b7c;font-style:italic}.cm-s-abcdef span.cm-string{color:#2b4}.cm-s-abcdef span.cm-meta{color:#c9f}.cm-s-abcdef span.cm-qualifier{color:#fff700}.cm-s-abcdef span.cm-builtin{color:#30aabc}.cm-s-abcdef span.cm-bracket{color:#8a8a8a}.cm-s-abcdef span.cm-tag{color:#fd4}.cm-s-abcdef span.cm-attribute{color:#df0}.cm-s-abcdef span.cm-error{color:red}.cm-s-abcdef span.cm-header{color:#7fffd4;font-weight:700}.cm-s-abcdef span.cm-link{color:#8a2be2}.cm-s-abcdef .CodeMirror-activeline-background{background:#314151}.cm-s-ambiance.CodeMirror{box-shadow:none}.cm-s-ambiance .cm-header{color:blue}.cm-s-ambiance .cm-quote{color:#24c2c7}.cm-s-ambiance .cm-keyword{color:#cda869}.cm-s-ambiance .cm-atom{color:#cf7ea9}.cm-s-ambiance .cm-number{color:#78cf8a}.cm-s-ambiance .cm-def{color:#aac6e3}.cm-s-ambiance .cm-variable{color:#ffb795}.cm-s-ambiance .cm-variable-2{color:#eed1b3}.cm-s-ambiance .cm-variable-3{color:#faded3}.cm-s-ambiance .cm-property{color:#eed1b3}.cm-s-ambiance .cm-operator{color:#fa8d6a}.cm-s-ambiance .cm-comment{color:#555;font-style:italic}.cm-s-ambiance .cm-string{color:#8f9d6a}.cm-s-ambiance .cm-string-2{color:#9d937c}.cm-s-ambiance .cm-meta{color:#d2a8a1}.cm-s-ambiance .cm-qualifier{color:#ff0}.cm-s-ambiance .cm-builtin{color:#99c}.cm-s-ambiance .cm-bracket{color:#24c2c7}.cm-s-ambiance .cm-tag{color:#fee4ff}.cm-s-ambiance .cm-attribute{color:#9b859d}.cm-s-ambiance .cm-hr{color:pink}.cm-s-ambiance .cm-link{color:#f4c20b}.cm-s-ambiance .cm-special{color:#ff9d00}.cm-s-ambiance .cm-error{color:#af2018}.cm-s-ambiance .CodeMirror-matchingbracket{color:#0f0}.cm-s-ambiance .CodeMirror-nonmatchingbracket{color:#f22}.cm-s-ambiance div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::selection,.cm-s-ambiance .CodeMirror-line>span::selection,.cm-s-ambiance .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line>span::-moz-selection,.cm-s-ambiance .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance.CodeMirror{line-height:1.4em;color:#e6e1dc;background-color:#202020;box-shadow:inset 0 0 10px #000}.cm-s-ambiance .CodeMirror-gutters{background:#3d3d3d;border-right:1px solid #4d4d4d;box-shadow:0 10px 20px #000}.cm-s-ambiance .CodeMirror-linenumber{text-shadow:0 1px 1px #4d4d4d;color:#111;padding:0 5px}.cm-s-ambiance .CodeMirror-guttermarker{color:#aaa}.cm-s-ambiance .CodeMirror-guttermarker-subtle{color:#111}.cm-s-ambiance .CodeMirror-cursor{border-left:1px solid #7991e8}.cm-s-ambiance .CodeMirror-activeline-background{background:none repeat scroll 0 0 hsla(0,0%,100%,.031)}.cm-s-ambiance.CodeMirror,.cm-s-ambiance .CodeMirror-gutters{background-image:url("data:image/png;base64,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")}.cm-s-base16-dark.CodeMirror{background:#151515;color:#e0e0e0}.cm-s-base16-dark div.CodeMirror-selected{background:#303030}.cm-s-base16-dark .CodeMirror-line::selection,.cm-s-base16-dark .CodeMirror-line>span::selection,.cm-s-base16-dark .CodeMirror-line>span>span::selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-line::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-gutters{background:#151515;border-right:0}.cm-s-base16-dark .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-dark .CodeMirror-guttermarker-subtle,.cm-s-base16-dark .CodeMirror-linenumber{color:#505050}.cm-s-base16-dark .CodeMirror-cursor{border-left:1px solid #b0b0b0}.cm-s-base16-dark span.cm-comment{color:#8f5536}.cm-s-base16-dark span.cm-atom,.cm-s-base16-dark span.cm-number{color:#aa759f}.cm-s-base16-dark span.cm-attribute,.cm-s-base16-dark span.cm-property{color:#90a959}.cm-s-base16-dark span.cm-keyword{color:#ac4142}.cm-s-base16-dark span.cm-string{color:#f4bf75}.cm-s-base16-dark span.cm-variable{color:#90a959}.cm-s-base16-dark span.cm-variable-2{color:#6a9fb5}.cm-s-base16-dark span.cm-def{color:#d28445}.cm-s-base16-dark span.cm-bracket{color:#e0e0e0}.cm-s-base16-dark span.cm-tag{color:#ac4142}.cm-s-base16-dark span.cm-link{color:#aa759f}.cm-s-base16-dark span.cm-error{background:#ac4142;color:#b0b0b0}.cm-s-base16-dark .CodeMirror-activeline-background{background:#202020}.cm-s-base16-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin.CodeMirror{background:#28211c;color:#9d9b97}.cm-s-bespin div.CodeMirror-selected{background:#36312e!important}.cm-s-bespin .CodeMirror-gutters{background:#28211c;border-right:0}.cm-s-bespin .CodeMirror-linenumber{color:#666}.cm-s-bespin .CodeMirror-cursor{border-left:1px solid #797977!important}.cm-s-bespin span.cm-comment{color:#937121}.cm-s-bespin span.cm-atom,.cm-s-bespin span.cm-number{color:#9b859d}.cm-s-bespin span.cm-attribute,.cm-s-bespin span.cm-property{color:#54be0d}.cm-s-bespin span.cm-keyword{color:#cf6a4c}.cm-s-bespin span.cm-string{color:#f9ee98}.cm-s-bespin span.cm-variable{color:#54be0d}.cm-s-bespin span.cm-variable-2{color:#5ea6ea}.cm-s-bespin span.cm-def{color:#cf7d34}.cm-s-bespin span.cm-error{background:#cf6a4c;color:#797977}.cm-s-bespin span.cm-bracket{color:#9d9b97}.cm-s-bespin span.cm-tag{color:#cf6a4c}.cm-s-bespin span.cm-link{color:#9b859d}.cm-s-bespin .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin .CodeMirror-activeline-background{background:#404040}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard div.CodeMirror-selected{background:#253b76}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line>span::selection,.cm-s-blackboard .CodeMirror-line>span>span::selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line>span::-moz-selection,.cm-s-blackboard .CodeMirror-line>span>span::-moz-selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-guttermarker{color:#fbde2d}.cm-s-blackboard .CodeMirror-guttermarker-subtle,.cm-s-blackboard .CodeMirror-linenumber{color:#888}.cm-s-blackboard .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-blackboard .cm-keyword{color:#fbde2d}.cm-s-blackboard .cm-atom,.cm-s-blackboard .cm-number{color:#d8fa3c}.cm-s-blackboard .cm-def{color:#8da6ce}.cm-s-blackboard .cm-variable{color:#ff6400}.cm-s-blackboard .cm-operator{color:#fbde2d}.cm-s-blackboard .cm-comment{color:#aeaeae}.cm-s-blackboard .cm-string,.cm-s-blackboard .cm-string-2{color:#61ce3c}.cm-s-blackboard .cm-meta{color:#d8fa3c}.cm-s-blackboard .cm-attribute,.cm-s-blackboard .cm-builtin,.cm-s-blackboard .cm-tag{color:#8da6ce}.cm-s-blackboard .cm-header{color:#ff6400}.cm-s-blackboard .cm-hr{color:#aeaeae}.cm-s-blackboard .cm-link{color:#8da6ce}.cm-s-blackboard .cm-error{background:#9d1e15;color:#f8f8f8}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-blackboard .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-cobalt.CodeMirror{background:#002240;color:#fff}.cm-s-cobalt div.CodeMirror-selected{background:#b36539}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line>span::selection,.cm-s-cobalt .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line>span::-moz-selection,.cm-s-cobalt .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-cobalt .CodeMirror-guttermarker{color:#ffee80}.cm-s-cobalt .CodeMirror-guttermarker-subtle,.cm-s-cobalt .CodeMirror-linenumber{color:#d0d0d0}.cm-s-cobalt .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-cobalt span.cm-comment{color:#08f}.cm-s-cobalt span.cm-atom{color:#845dc4}.cm-s-cobalt span.cm-attribute,.cm-s-cobalt span.cm-number{color:#ff80e1}.cm-s-cobalt span.cm-keyword{color:#ffee80}.cm-s-cobalt span.cm-string{color:#3ad900}.cm-s-cobalt span.cm-meta{color:#ff9d00}.cm-s-cobalt span.cm-tag,.cm-s-cobalt span.cm-variable-2{color:#9effff}.cm-s-cobalt span.cm-def,.cm-s-cobalt span.cm-variable-3{color:#fff}.cm-s-cobalt span.cm-bracket{color:#d8d8d8}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special{color:#ff9e59}.cm-s-cobalt span.cm-link{color:#845dc4}.cm-s-cobalt span.cm-error{color:#9d1e15}.cm-s-cobalt .CodeMirror-activeline-background{background:#002d57}.cm-s-cobalt .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-colorforth.CodeMirror{background:#000;color:#f8f8f8}.cm-s-colorforth .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-colorforth .CodeMirror-guttermarker{color:#ffbd40}.cm-s-colorforth .CodeMirror-guttermarker-subtle{color:#78846f}.cm-s-colorforth .CodeMirror-linenumber{color:#bababa}.cm-s-colorforth .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-colorforth span.cm-comment{color:#ededed}.cm-s-colorforth span.cm-def{color:#ff1c1c;font-weight:700}.cm-s-colorforth span.cm-keyword{color:#ffd900}.cm-s-colorforth span.cm-builtin{color:#00d95a}.cm-s-colorforth span.cm-variable{color:#73ff00}.cm-s-colorforth span.cm-string{color:#007bff}.cm-s-colorforth span.cm-number{color:#00c4ff}.cm-s-colorforth span.cm-atom{color:#606060}.cm-s-colorforth span.cm-variable-2{color:#eee}.cm-s-colorforth span.cm-variable-3{color:#ddd}.cm-s-colorforth span.cm-meta{color:#ff0}.cm-s-colorforth span.cm-qualifier{color:#fff700}.cm-s-colorforth span.cm-bracket{color:#cc7}.cm-s-colorforth span.cm-tag{color:#ffbd40}.cm-s-colorforth span.cm-attribute{color:#fff700}.cm-s-colorforth span.cm-error{color:red}.cm-s-colorforth div.CodeMirror-selected{background:#333d53}.cm-s-colorforth span.cm-compilation{background:hsla(0,0%,100%,.12)}.cm-s-colorforth .CodeMirror-activeline-background{background:#253540}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-keyword,.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-variable-3{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-duotone-dark.CodeMirror{background:#2a2734;color:#6c6783}.cm-s-duotone-dark div.CodeMirror-selected{background:#545167!important}.cm-s-duotone-dark .CodeMirror-gutters{background:#2a2734;border-right:0}.cm-s-duotone-dark .CodeMirror-linenumber{color:#545167}.cm-s-duotone-dark .CodeMirror-cursor{border-left:1px solid #ffad5c;border-right:.5em solid #ffad5c;opacity:.5}.cm-s-duotone-dark .CodeMirror-activeline-background{background:#363342;opacity:.5}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor{background:#ffad5c;opacity:.5}.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-link,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-variable{color:#fc9}.cm-s-duotone-dark span.cm-property{color:#9a86fd}.cm-s-duotone-dark span.cm-negative,.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit{color:#e09142}.cm-s-duotone-dark span.cm-string{color:#ffb870}.cm-s-duotone-dark span.cm-operator{color:#ffad5c}.cm-s-duotone-dark span.cm-positive{color:#6a51e6}.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url,.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3{color:#7a63ee}.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-em,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-tag{color:#eeebff}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment{color:#6c6783}.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar{color:red}.cm-s-duotone-dark span.cm-header{font-weight:400}.cm-s-duotone-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#eeebff!important}.cm-s-duotone-light.CodeMirror{background:#faf8f5;color:#b29762}.cm-s-duotone-light div.CodeMirror-selected{background:#e3dcce!important}.cm-s-duotone-light .CodeMirror-gutters{background:#faf8f5;border-right:0}.cm-s-duotone-light .CodeMirror-linenumber{color:#cdc4b1}.cm-s-duotone-light .CodeMirror-cursor{border-left:1px solid #93abdc;border-right:.5em solid #93abdc;opacity:.5}.cm-s-duotone-light .CodeMirror-activeline-background{background:#e3dcce;opacity:.5}.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor{background:#93abdc;opacity:.5}.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link,.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light span.cm-variable{color:#063289}.cm-s-duotone-light span.cm-property{color:#b29762}.cm-s-duotone-light span.cm-negative,.cm-s-duotone-light span.cm-punctuation,.cm-s-duotone-light span.cm-unit{color:#063289}.cm-s-duotone-light span.cm-operator,.cm-s-duotone-light span.cm-string{color:#1659df}.cm-s-duotone-light span.cm-positive,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-url,.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3{color:#896724}.cm-s-duotone-light span.cm-builtin,.cm-s-duotone-light span.cm-def,.cm-s-duotone-light span.cm-em,.cm-s-duotone-light span.cm-header,.cm-s-duotone-light span.cm-qualifier,.cm-s-duotone-light span.cm-tag{color:#2d2006}.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment{color:#b6ad9a}.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar{color:red}.cm-s-duotone-light span.cm-header{font-weight:400}.cm-s-duotone-light .CodeMirror-matchingbracket{text-decoration:underline;color:#faf8f5!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-elegant span.cm-atom,.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string{color:#762}.cm-s-elegant span.cm-comment{color:#262;font-style:italic;line-height:1em}.cm-s-elegant span.cm-meta{color:#555;font-style:italic;line-height:1em}.cm-s-elegant span.cm-variable{color:#000}.cm-s-elegant span.cm-variable-2{color:#b11}.cm-s-elegant span.cm-qualifier{color:#555}.cm-s-elegant span.cm-keyword{color:#730}.cm-s-elegant span.cm-builtin{color:#30a}.cm-s-elegant span.cm-link{color:#762}.cm-s-elegant span.cm-error{background-color:#fdd}.cm-s-elegant .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-elegant .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-erlang-dark.CodeMirror{background:#002240;color:#fff}.cm-s-erlang-dark div.CodeMirror-selected{background:#b36539}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line>span::selection,.cm-s-erlang-dark .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-erlang-dark .CodeMirror-guttermarker{color:#fff}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle,.cm-s-erlang-dark .CodeMirror-linenumber{color:#d0d0d0}.cm-s-erlang-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-erlang-dark span.cm-quote{color:#ccc}.cm-s-erlang-dark span.cm-atom{color:#f133f1}.cm-s-erlang-dark span.cm-attribute{color:#ff80e1}.cm-s-erlang-dark span.cm-bracket{color:#ff9d00}.cm-s-erlang-dark span.cm-builtin{color:#eaa}.cm-s-erlang-dark span.cm-comment{color:#77f}.cm-s-erlang-dark span.cm-def{color:#e7a}.cm-s-erlang-dark span.cm-keyword{color:#ffee80}.cm-s-erlang-dark span.cm-meta{color:#50fefe}.cm-s-erlang-dark span.cm-number{color:#ffd0d0}.cm-s-erlang-dark span.cm-operator{color:#d55}.cm-s-erlang-dark span.cm-property,.cm-s-erlang-dark span.cm-qualifier{color:#ccc}.cm-s-erlang-dark span.cm-special{color:#fbb}.cm-s-erlang-dark span.cm-string{color:#3ad900}.cm-s-erlang-dark span.cm-string-2{color:#ccc}.cm-s-erlang-dark span.cm-tag{color:#9effff}.cm-s-erlang-dark span.cm-variable{color:#50fe50}.cm-s-erlang-dark span.cm-variable-2{color:#e0e}.cm-s-erlang-dark span.cm-variable-3{color:#ccc}.cm-s-erlang-dark span.cm-error{color:#9d1e15}.cm-s-erlang-dark .CodeMirror-activeline-background{background:#013461}.cm-s-erlang-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42!important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498!important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom,.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-attribute,.cm-s-hopscotch span.cm-property{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}.cm-s-icecoder{color:#666;background:#1d1d1b}.cm-s-icecoder span.cm-keyword{color:#eee;font-weight:700}.cm-s-icecoder span.cm-atom{color:#e1c76e}.cm-s-icecoder span.cm-number{color:#6cb5d9}.cm-s-icecoder span.cm-def{color:#b9ca4a}.cm-s-icecoder span.cm-variable{color:#6cb5d9}.cm-s-icecoder span.cm-variable-2{color:#cc1e5c}.cm-s-icecoder span.cm-variable-3{color:#f9602c}.cm-s-icecoder span.cm-property{color:#eee}.cm-s-icecoder span.cm-operator{color:#9179bb}.cm-s-icecoder span.cm-comment{color:#97a3aa}.cm-s-icecoder span.cm-string{color:#b9ca4a}.cm-s-icecoder span.cm-string-2{color:#6cb5d9}.cm-s-icecoder span.cm-meta,.cm-s-icecoder span.cm-qualifier{color:#555}.cm-s-icecoder span.cm-builtin{color:#214e7b}.cm-s-icecoder span.cm-bracket{color:#cc7}.cm-s-icecoder span.cm-tag{color:#e8e8e8}.cm-s-icecoder span.cm-attribute{color:#099}.cm-s-icecoder span.cm-header{color:#6a0d6a}.cm-s-icecoder span.cm-quote{color:#186718}.cm-s-icecoder span.cm-hr{color:#888}.cm-s-icecoder span.cm-link{color:#e1c76e}.cm-s-icecoder span.cm-error{color:#d00}.cm-s-icecoder .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-icecoder div.CodeMirror-selected{color:#fff;background:#037}.cm-s-icecoder .CodeMirror-gutters{background:#1d1d1b;min-width:41px;border-right:0}.cm-s-icecoder .CodeMirror-linenumber{color:#555;cursor:default}.cm-s-icecoder .CodeMirror-matchingbracket{color:#fff!important;background:#555!important}.cm-s-icecoder .CodeMirror-activeline-background{background:#000}.cm-s-isotope.CodeMirror{background:#000;color:#e0e0e0}.cm-s-isotope div.CodeMirror-selected{background:#404040!important}.cm-s-isotope .CodeMirror-gutters{background:#000;border-right:0}.cm-s-isotope .CodeMirror-linenumber{color:gray}.cm-s-isotope .CodeMirror-cursor{border-left:1px solid silver!important}.cm-s-isotope span.cm-comment{color:#30f}.cm-s-isotope span.cm-atom,.cm-s-isotope span.cm-number{color:#c0f}.cm-s-isotope span.cm-attribute,.cm-s-isotope span.cm-property{color:#3f0}.cm-s-isotope span.cm-keyword{color:red}.cm-s-isotope span.cm-string{color:#f09}.cm-s-isotope span.cm-variable{color:#3f0}.cm-s-isotope span.cm-variable-2{color:#06f}.cm-s-isotope span.cm-def{color:#f90}.cm-s-isotope span.cm-error{background:red;color:silver}.cm-s-isotope span.cm-bracket{color:#e0e0e0}.cm-s-isotope span.cm-tag{color:red}.cm-s-isotope span.cm-link{color:#c0f}.cm-s-isotope .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-isotope .CodeMirror-activeline-background{background:#202020}.cm-s-lesser-dark{line-height:1.3em}.cm-s-lesser-dark.CodeMirror{background:#262626;color:#ebefe7;text-shadow:0 -1px 1px #262626}.cm-s-lesser-dark div.CodeMirror-selected{background:#45443b}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line>span::selection,.cm-s-lesser-dark .CodeMirror-line>span>span::selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-lesser-dark pre{padding:0 8px}.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket{color:#7efc7e}.cm-s-lesser-dark .CodeMirror-gutters{background:#262626;border-right:1px solid #aaa}.cm-s-lesser-dark .CodeMirror-guttermarker{color:#599eff}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle,.cm-s-lesser-dark .CodeMirror-linenumber{color:#777}.cm-s-lesser-dark span.cm-header{color:#a0a}.cm-s-lesser-dark span.cm-quote{color:#090}.cm-s-lesser-dark span.cm-keyword{color:#599eff}.cm-s-lesser-dark span.cm-atom{color:#c2b470}.cm-s-lesser-dark span.cm-number{color:#b35e4d}.cm-s-lesser-dark span.cm-def{color:#fff}.cm-s-lesser-dark span.cm-variable{color:#d9bf8c}.cm-s-lesser-dark span.cm-variable-2{color:#669199}.cm-s-lesser-dark span.cm-variable-3{color:#fff}.cm-s-lesser-dark span.cm-operator,.cm-s-lesser-dark span.cm-property{color:#92a75c}.cm-s-lesser-dark span.cm-comment{color:#666}.cm-s-lesser-dark span.cm-string{color:#bcd279}.cm-s-lesser-dark span.cm-string-2{color:#f50}.cm-s-lesser-dark span.cm-meta{color:#738c73}.cm-s-lesser-dark span.cm-qualifier{color:#555}.cm-s-lesser-dark span.cm-builtin{color:#ff9e59}.cm-s-lesser-dark span.cm-bracket{color:#ebefe7}.cm-s-lesser-dark span.cm-tag{color:#669199}.cm-s-lesser-dark span.cm-attribute{color:#00c}.cm-s-lesser-dark span.cm-hr{color:#999}.cm-s-lesser-dark span.cm-link{color:#00c}.cm-s-lesser-dark span.cm-error{color:#9d1e15}.cm-s-lesser-dark .CodeMirror-activeline-background{background:#3c3a3a}.cm-s-lesser-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-liquibyte.CodeMirror{background-color:#000;color:#fff;line-height:1.2em;font-size:1em}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight{text-decoration:underline;-webkit-text-decoration-color:#0f0;text-decoration-color:#0f0;-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.cm-s-liquibyte .cm-trailingspace{text-decoration:line-through;-webkit-text-decoration-color:red;text-decoration-color:red;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .cm-tab{text-decoration:line-through;-webkit-text-decoration-color:#404040;text-decoration-color:#404040;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .CodeMirror-gutters{background-color:#262626;border-right:1px solid #505050;padding-right:.8em}.cm-s-liquibyte .CodeMirror-gutter-elt div{font-size:1.2em}.cm-s-liquibyte .CodeMirror-linenumber{color:#606060;padding-left:0}.cm-s-liquibyte .CodeMirror-cursor{border-left:1px solid #eee}.cm-s-liquibyte span.cm-comment{color:green}.cm-s-liquibyte span.cm-def{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-keyword{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-builtin{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-variable{color:#5967ff;font-weight:700}.cm-s-liquibyte span.cm-string{color:#ff8000}.cm-s-liquibyte span.cm-number{color:#0f0;font-weight:700}.cm-s-liquibyte span.cm-atom{color:#bf3030;font-weight:700}.cm-s-liquibyte span.cm-variable-2{color:#007f7f;font-weight:700}.cm-s-liquibyte span.cm-variable-3{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-property{color:#999;font-weight:700}.cm-s-liquibyte span.cm-operator{color:#fff}.cm-s-liquibyte span.cm-meta{color:#0f0}.cm-s-liquibyte span.cm-qualifier{color:#fff700;font-weight:700}.cm-s-liquibyte span.cm-bracket{color:#cc7}.cm-s-liquibyte span.cm-tag{color:#ff0;font-weight:700}.cm-s-liquibyte span.cm-attribute{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-error{color:red}.cm-s-liquibyte div.CodeMirror-selected{background-color:rgba(255,0,0,.25)}.cm-s-liquibyte span.cm-compilation{background-color:hsla(0,0%,100%,.12)}.cm-s-liquibyte .CodeMirror-activeline-background{background-color:rgba(0,255,0,.15)}.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket{color:#0f0;font-weight:700}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket{color:red;font-weight:700}.CodeMirror-matchingtag{background-color:rgba(150,255,0,.3)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,div.CodeMirror-simplescroll-vertical div:hover{background-color:rgba(80,80,80,.7)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,div.CodeMirror-simplescroll-vertical div{background-color:rgba(80,80,80,.3);border:1px solid #404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{border-top:1px solid #404040;border-bottom:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div{border-left:1px solid #404040;border-right:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical{background-color:#262626}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal{background-color:#262626;border-top:1px solid #404040}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div{background-color:#404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div{border:1px solid #404040}.cm-s-material.CodeMirror{background-color:#263238;color:#e9eded}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-activeline-background{background:transparent}.cm-s-material .cm-keyword{color:#c792ea}.cm-s-material .cm-operator{color:#e9eded}.cm-s-material .cm-variable-2{color:#80cbc4}.cm-s-material .cm-variable-3{color:#82b1ff}.cm-s-material .cm-builtin{color:#decb6b}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#f77669}.cm-s-material .cm-def{color:#e9eded}.cm-s-material .cm-string{color:#c3e88d}.cm-s-material .cm-string-2{color:#80cbc4}.cm-s-material .cm-comment{color:#546e7a}.cm-s-material .cm-variable{color:#82b1ff}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80cbc4}.cm-s-material .cm-attribute{color:#ffcb6b}.cm-s-material .cm-property{color:#80cbae}.cm-s-material .cm-qualifier,.cm-s-material .cm-variable-3{color:#decb6b}.cm-s-material .cm-tag{color:#ff5370}.cm-s-material .cm-error{color:#fff;background-color:#ec5f67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-mbo.CodeMirror{background:#2c2c2c;color:#ffffec}.cm-s-mbo div.CodeMirror-selected{background:#716c62}.cm-s-mbo .CodeMirror-line::selection,.cm-s-mbo .CodeMirror-line>span::selection,.cm-s-mbo .CodeMirror-line>span>span::selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-line::-moz-selection,.cm-s-mbo .CodeMirror-line>span::-moz-selection,.cm-s-mbo .CodeMirror-line>span>span::-moz-selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-gutters{background:#4e4e4e;border-right:0}.cm-s-mbo .CodeMirror-guttermarker{color:#fff}.cm-s-mbo .CodeMirror-guttermarker-subtle{color:grey}.cm-s-mbo .CodeMirror-linenumber{color:#dadada}.cm-s-mbo .CodeMirror-cursor{border-left:1px solid #ffffec}.cm-s-mbo span.cm-comment{color:#95958a}.cm-s-mbo span.cm-atom,.cm-s-mbo span.cm-number{color:#00a8c6}.cm-s-mbo span.cm-attribute,.cm-s-mbo span.cm-property{color:#9ddfe9}.cm-s-mbo span.cm-keyword{color:#ffb928}.cm-s-mbo span.cm-string{color:#ffcf6c}.cm-s-mbo span.cm-string.cm-property,.cm-s-mbo span.cm-variable{color:#ffffec}.cm-s-mbo span.cm-variable-2{color:#00a8c6}.cm-s-mbo span.cm-def{color:#ffffec}.cm-s-mbo span.cm-bracket{color:#fffffc;font-weight:700}.cm-s-mbo span.cm-tag{color:#9ddfe9}.cm-s-mbo span.cm-link{color:#f54b07}.cm-s-mbo span.cm-error{border-bottom:#636363;color:#ffffec}.cm-s-mbo span.cm-qualifier{color:#ffffec}.cm-s-mbo .CodeMirror-activeline-background{background:#494b41}.cm-s-mbo .CodeMirror-matchingbracket{color:#ffb928!important}.cm-s-mbo .CodeMirror-matchingtag{background:hsla(0,0%,100%,.37)}.cm-s-mdn-like.CodeMirror{color:#999;background-color:#fff}.cm-s-mdn-like div.CodeMirror-selected{background:#cfc}.cm-s-mdn-like .CodeMirror-line::selection,.cm-s-mdn-like .CodeMirror-line>span::selection,.cm-s-mdn-like .CodeMirror-line>span>span::selection{background:#cfc}.cm-s-mdn-like .CodeMirror-line::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span>span::-moz-selection{background:#cfc}.cm-s-mdn-like .CodeMirror-gutters{background:#f8f8f8;border-left:6px solid rgba(0,83,159,.65);color:#333}.cm-s-mdn-like .CodeMirror-linenumber{color:#aaa;padding-left:8px}.cm-s-mdn-like .CodeMirror-cursor{border-left:2px solid #222}.cm-s-mdn-like .cm-keyword{color:#6262ff}.cm-s-mdn-like .cm-atom{color:#f90}.cm-s-mdn-like .cm-number{color:#ca7841}.cm-s-mdn-like .cm-def{color:#8da6ce}.cm-s-mdn-like span.cm-tag,.cm-s-mdn-like span.cm-variable-2{color:#690}.cm-s-mdn-like .cm-variable,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-variable-3{color:#07a}.cm-s-mdn-like .cm-property{color:#905}.cm-s-mdn-like .cm-qualifier{color:#690}.cm-s-mdn-like .cm-operator{color:#cda869}.cm-s-mdn-like .cm-comment{color:#777;font-weight:400}.cm-s-mdn-like .cm-string{color:#07a;font-style:italic}.cm-s-mdn-like .cm-string-2{color:#bd6b18}.cm-s-mdn-like .cm-meta{color:#000}.cm-s-mdn-like .cm-builtin{color:#9b7536}.cm-s-mdn-like .cm-tag{color:#997643}.cm-s-mdn-like .cm-attribute{color:#d6bb6d}.cm-s-mdn-like .cm-header{color:#ff6400}.cm-s-mdn-like .cm-hr{color:#aeaeae}.cm-s-mdn-like .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-mdn-like .cm-error{border-bottom:1px solid red}div.cm-s-mdn-like .CodeMirror-activeline-background{background:#efefff}div.cm-s-mdn-like span.CodeMirror-matchingbracket{outline:1px solid grey;color:inherit}.cm-s-mdn-like.CodeMirror{background-image:url(data:image/png;base64,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)}.cm-s-midnight span.CodeMirror-matchhighlight{background:#494949}.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight{background:#314d67!important}.cm-s-midnight .CodeMirror-activeline-background{background:#253540}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff;border-top:1px solid #000;border-bottom:1px solid #000}.cm-s-midnight div.CodeMirror-selected{background:#314d67}.cm-s-midnight .CodeMirror-line::selection,.cm-s-midnight .CodeMirror-line>span::selection,.cm-s-midnight .CodeMirror-line>span>span::selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-line::-moz-selection,.cm-s-midnight .CodeMirror-line>span::-moz-selection,.cm-s-midnight .CodeMirror-line>span>span::-moz-selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-guttermarker{color:#fff}.cm-s-midnight .CodeMirror-guttermarker-subtle,.cm-s-midnight .CodeMirror-linenumber{color:#d0d0d0}.cm-s-midnight .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-midnight span.cm-comment{color:#428bdd}.cm-s-midnight span.cm-atom{color:#ae81ff}.cm-s-midnight span.cm-number{color:#d1edff}.cm-s-midnight span.cm-attribute,.cm-s-midnight span.cm-property{color:#a6e22e}.cm-s-midnight span.cm-keyword{color:#e83737}.cm-s-midnight span.cm-string{color:#1dc116}.cm-s-midnight span.cm-variable,.cm-s-midnight span.cm-variable-2{color:#ffaa3e}.cm-s-midnight span.cm-def{color:#4dd}.cm-s-midnight span.cm-bracket{color:#d1edff}.cm-s-midnight span.cm-tag{color:#449}.cm-s-midnight span.cm-link{color:#ae81ff}.cm-s-midnight span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-midnight .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:blue}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-neo.CodeMirror{background-color:#fff;color:#2e383c;line-height:1.4375}.cm-s-neo .cm-comment{color:#75787b}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property{color:#1d75b3}.cm-s-neo .cm-atom,.cm-s-neo .cm-number{color:#75438a}.cm-s-neo .cm-node,.cm-s-neo .cm-tag{color:#9c3328}.cm-s-neo .cm-string{color:#b35e14}.cm-s-neo .cm-qualifier,.cm-s-neo .cm-variable{color:#047d65}.cm-s-neo pre{padding:0}.cm-s-neo .CodeMirror-gutters{border:none;border-right:10px solid transparent;background-color:transparent}.cm-s-neo .CodeMirror-linenumber{padding:0;color:#e0e2e5}.cm-s-neo .CodeMirror-guttermarker{color:#1d75b3}.cm-s-neo .CodeMirror-guttermarker-subtle{color:#e0e2e5}.cm-s-neo .CodeMirror-cursor{width:auto;border:0;background:hsla(223,4%,62%,.37);z-index:1}.cm-s-night.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-night div.CodeMirror-selected{background:#447}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line>span::selection,.cm-s-night .CodeMirror-line>span>span::selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line>span::-moz-selection,.cm-s-night .CodeMirror-line>span>span::-moz-selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-night .CodeMirror-guttermarker{color:#fff}.cm-s-night .CodeMirror-guttermarker-subtle{color:#bbb}.cm-s-night .CodeMirror-linenumber{color:#f8f8f8}.cm-s-night .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-night span.cm-comment{color:#8900d1}.cm-s-night span.cm-atom{color:#845dc4}.cm-s-night span.cm-attribute,.cm-s-night span.cm-number{color:#ffd500}.cm-s-night span.cm-keyword{color:#599eff}.cm-s-night span.cm-string{color:#37f14a}.cm-s-night span.cm-meta{color:#7678e2}.cm-s-night span.cm-tag,.cm-s-night span.cm-variable-2{color:#99b2ff}.cm-s-night span.cm-def,.cm-s-night span.cm-variable-3{color:#fff}.cm-s-night span.cm-bracket{color:#8da6ce}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special{color:#ff9e59}.cm-s-night span.cm-link{color:#845dc4}.cm-s-night span.cm-error{color:#9d1e15}.cm-s-night .CodeMirror-activeline-background{background:#1c005a}.cm-s-night .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-panda-syntax{background:#292a2b;color:#e6e6e6;line-height:1.5;font-family:Operator Mono,Source Sans Pro,Menlo,Monaco,Consolas,Courier New,monospace}.cm-s-panda-syntax .CodeMirror-cursor{border-color:#ff2c6d}.cm-s-panda-syntax .CodeMirror-activeline-background{background:rgba(99,123,156,.1)}.cm-s-panda-syntax .CodeMirror-selected{background:#fff}.cm-s-panda-syntax .cm-comment{font-style:italic;color:#676b79}.cm-s-panda-syntax .cm-operator{color:#f3f3f3}.cm-s-panda-syntax .cm-string{color:#19f9d8}.cm-s-panda-syntax .cm-string-2{color:#ffb86c}.cm-s-panda-syntax .cm-tag{color:#ff2c6d}.cm-s-panda-syntax .cm-meta{color:#b084eb}.cm-s-panda-syntax .cm-number{color:#ffb86c}.cm-s-panda-syntax .cm-atom{color:#ff2c6d}.cm-s-panda-syntax .cm-keyword{color:#ff75b5}.cm-s-panda-syntax .cm-variable{color:#ffb86c}.cm-s-panda-syntax .cm-variable-2,.cm-s-panda-syntax .cm-variable-3{color:#ff9ac1}.cm-s-panda-syntax .cm-def{color:#e6e6e6}.cm-s-panda-syntax .cm-property{color:#f3f3f3}.cm-s-panda-syntax .cm-attribute,.cm-s-panda-syntax .cm-unit{color:#ffb86c}.cm-s-panda-syntax .CodeMirror-matchingbracket{border-bottom:1px dotted #19f9d8;padding-bottom:2px;color:#e6e6e6}.cm-s-panda-syntax .CodeMirror-gutters{background:#292a2b;border-right-color:hsla(0,0%,100%,.1)}.cm-s-panda-syntax .CodeMirror-linenumber{color:#e6e6e6;opacity:.6}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark div.CodeMirror-selected{background:#41323f}.cm-s-paraiso-dark .CodeMirror-line::selection,.cm-s-paraiso-dark .CodeMirror-line>span::selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-line::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-guttermarker{color:#ef6155}.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle,.cm-s-paraiso-dark .CodeMirror-linenumber{color:#776e71}.cm-s-paraiso-dark .CodeMirror-cursor{border-left:1px solid #8d8687}.cm-s-paraiso-dark span.cm-comment{color:#e96ba8}.cm-s-paraiso-dark span.cm-atom,.cm-s-paraiso-dark span.cm-number{color:#815ba4}.cm-s-paraiso-dark span.cm-attribute,.cm-s-paraiso-dark span.cm-property{color:#48b685}.cm-s-paraiso-dark span.cm-keyword{color:#ef6155}.cm-s-paraiso-dark span.cm-string{color:#fec418}.cm-s-paraiso-dark span.cm-variable{color:#48b685}.cm-s-paraiso-dark span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-dark span.cm-def{color:#f99b15}.cm-s-paraiso-dark span.cm-bracket{color:#b9b6b0}.cm-s-paraiso-dark span.cm-tag{color:#ef6155}.cm-s-paraiso-dark span.cm-link{color:#815ba4}.cm-s-paraiso-dark span.cm-error{background:#ef6155;color:#8d8687}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-paraiso-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-paraiso-light.CodeMirror{background:#e7e9db;color:#41323f}.cm-s-paraiso-light div.CodeMirror-selected{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::selection,.cm-s-paraiso-light .CodeMirror-line>span::selection,.cm-s-paraiso-light .CodeMirror-line>span>span::selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span>span::-moz-selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-gutters{background:#e7e9db;border-right:0}.cm-s-paraiso-light .CodeMirror-guttermarker{color:#000}.cm-s-paraiso-light .CodeMirror-guttermarker-subtle,.cm-s-paraiso-light .CodeMirror-linenumber{color:#8d8687}.cm-s-paraiso-light .CodeMirror-cursor{border-left:1px solid #776e71}.cm-s-paraiso-light span.cm-comment{color:#e96ba8}.cm-s-paraiso-light span.cm-atom,.cm-s-paraiso-light span.cm-number{color:#815ba4}.cm-s-paraiso-light span.cm-attribute,.cm-s-paraiso-light span.cm-property{color:#48b685}.cm-s-paraiso-light span.cm-keyword{color:#ef6155}.cm-s-paraiso-light span.cm-string{color:#fec418}.cm-s-paraiso-light span.cm-variable{color:#48b685}.cm-s-paraiso-light span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-light span.cm-def{color:#f99b15}.cm-s-paraiso-light span.cm-bracket{color:#41323f}.cm-s-paraiso-light span.cm-tag{color:#ef6155}.cm-s-paraiso-light span.cm-link{color:#815ba4}.cm-s-paraiso-light span.cm-error{background:#ef6155;color:#776e71}.cm-s-paraiso-light .CodeMirror-activeline-background{background:#cfd1c4}.cm-s-paraiso-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-pastel-on-dark.CodeMirror{background:#2c2827;color:#8f938f;line-height:1.5}.cm-s-pastel-on-dark div.CodeMirror-selected{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line>span::selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-gutters{background:#34302f;border-right:0;padding:0 3px}.cm-s-pastel-on-dark .CodeMirror-guttermarker{color:#fff}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle,.cm-s-pastel-on-dark .CodeMirror-linenumber{color:#8f938f}.cm-s-pastel-on-dark .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-pastel-on-dark span.cm-comment{color:#a6c6ff}.cm-s-pastel-on-dark span.cm-atom{color:#de8e30}.cm-s-pastel-on-dark span.cm-number{color:#ccc}.cm-s-pastel-on-dark span.cm-property{color:#8f938f}.cm-s-pastel-on-dark span.cm-attribute{color:#a6e22e}.cm-s-pastel-on-dark span.cm-keyword{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-string{color:#66a968}.cm-s-pastel-on-dark span.cm-variable{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-variable-2{color:#bebf55}.cm-s-pastel-on-dark span.cm-variable-3{color:#de8e30}.cm-s-pastel-on-dark span.cm-def{color:#757ad8}.cm-s-pastel-on-dark span.cm-bracket{color:#f8f8f2}.cm-s-pastel-on-dark span.cm-tag{color:#c1c144}.cm-s-pastel-on-dark span.cm-link{color:#ae81ff}.cm-s-pastel-on-dark span.cm-builtin,.cm-s-pastel-on-dark span.cm-qualifier{color:#c1c144}.cm-s-pastel-on-dark span.cm-error{background:#757ad8;color:#f8f8f0}.cm-s-pastel-on-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.031)}.cm-s-pastel-on-dark .CodeMirror-matchingbracket{border:1px solid hsla(0,0%,100%,.25);color:#8f938f!important;margin:-1px -1px 0}.cm-s-railscasts.CodeMirror{background:#2b2b2b;color:#f4f1ed}.cm-s-railscasts div.CodeMirror-selected{background:#272935!important}.cm-s-railscasts .CodeMirror-gutters{background:#2b2b2b;border-right:0}.cm-s-railscasts .CodeMirror-linenumber{color:#5a647e}.cm-s-railscasts .CodeMirror-cursor{border-left:1px solid #d4cfc9!important}.cm-s-railscasts span.cm-comment{color:#bc9458}.cm-s-railscasts span.cm-atom,.cm-s-railscasts span.cm-number{color:#b6b3eb}.cm-s-railscasts span.cm-attribute,.cm-s-railscasts span.cm-property{color:#a5c261}.cm-s-railscasts span.cm-keyword{color:#da4939}.cm-s-railscasts span.cm-string{color:#ffc66d}.cm-s-railscasts span.cm-variable{color:#a5c261}.cm-s-railscasts span.cm-variable-2{color:#6d9cbe}.cm-s-railscasts span.cm-def{color:#cc7833}.cm-s-railscasts span.cm-error{background:#da4939;color:#d4cfc9}.cm-s-railscasts span.cm-bracket{color:#f4f1ed}.cm-s-railscasts span.cm-tag{color:#da4939}.cm-s-railscasts span.cm-link{color:#b6b3eb}.cm-s-railscasts .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-railscasts .CodeMirror-activeline-background{background:#303040}.cm-s-rubyblue.CodeMirror{background:#112435;color:#fff}.cm-s-rubyblue div.CodeMirror-selected{background:#38566f}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line>span::selection,.cm-s-rubyblue .CodeMirror-line>span>span::selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span>span::-moz-selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-gutters{background:#1f4661;border-right:7px solid #3e7087}.cm-s-rubyblue .CodeMirror-guttermarker{color:#fff}.cm-s-rubyblue .CodeMirror-guttermarker-subtle{color:#3e7087}.cm-s-rubyblue .CodeMirror-linenumber{color:#fff}.cm-s-rubyblue .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-rubyblue span.cm-comment{color:#999;font-style:italic;line-height:1em}.cm-s-rubyblue span.cm-atom{color:#f4c20b}.cm-s-rubyblue span.cm-attribute,.cm-s-rubyblue span.cm-number{color:#82c6e0}.cm-s-rubyblue span.cm-keyword{color:#f0f}.cm-s-rubyblue span.cm-string{color:#f08047}.cm-s-rubyblue span.cm-meta{color:#f0f}.cm-s-rubyblue span.cm-tag,.cm-s-rubyblue span.cm-variable-2{color:#7bd827}.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-variable-3{color:#fff}.cm-s-rubyblue span.cm-bracket{color:#f0f}.cm-s-rubyblue span.cm-link{color:#f4c20b}.cm-s-rubyblue span.CodeMirror-matchingbracket{color:#f0f!important}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special{color:#ff9d00}.cm-s-rubyblue span.cm-error{color:#af2018}.cm-s-rubyblue .CodeMirror-activeline-background{background:#173047}.cm-s-seti.CodeMirror{background-color:#151718!important;color:#cfd2d1!important;border:none}.cm-s-seti .CodeMirror-gutters{color:#404b53;background-color:#0e1112;border:none}.cm-s-seti .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-seti .CodeMirror-linenumber{color:#6d8a88}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line>span::selection,.cm-s-seti .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line>span::-moz-selection,.cm-s-seti .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-seti span.cm-comment{color:#41535b}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2{color:#55b5db}.cm-s-seti span.cm-number{color:#cd3f45}.cm-s-seti span.cm-variable{color:#55b5db}.cm-s-seti span.cm-variable-2{color:#a074c4}.cm-s-seti span.cm-def{color:#55b5db}.cm-s-seti span.cm-keyword{color:#ff79c6}.cm-s-seti span.cm-operator{color:#9fca56}.cm-s-seti span.cm-keyword{color:#e6cd69}.cm-s-seti span.cm-atom{color:#cd3f45}.cm-s-seti span.cm-meta,.cm-s-seti span.cm-tag{color:#55b5db}.cm-s-seti span.cm-attribute,.cm-s-seti span.cm-qualifier{color:#9fca56}.cm-s-seti span.cm-property{color:#a074c4}.cm-s-seti span.cm-builtin,.cm-s-seti span.cm-variable-3{color:#9fca56}.cm-s-seti .CodeMirror-activeline-background{background:#101213}.cm-s-seti .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.solarized.base03{color:#002b36}.solarized.base02{color:#073642}.solarized.base01{color:#586e75}.solarized.base00{color:#657b83}.solarized.base0{color:#839496}.solarized.base1{color:#93a1a1}.solarized.base2{color:#eee8d5}.solarized.base3{color:#fdf6e3}.solarized.solar-yellow{color:#b58900}.solarized.solar-orange{color:#cb4b16}.solarized.solar-red{color:#dc322f}.solarized.solar-magenta{color:#d33682}.solarized.solar-violet{color:#6c71c4}.solarized.solar-blue{color:#268bd2}.solarized.solar-cyan{color:#2aa198}.solarized.solar-green{color:#859900}.cm-s-solarized{line-height:1.45em;color-profile:sRGB;rendering-intent:auto}.cm-s-solarized.cm-s-dark{color:#839496;background-color:#002b36;text-shadow:#002b36 0 1px}.cm-s-solarized.cm-s-light{background-color:#fdf6e3;color:#657b83;text-shadow:#eee8d5 0 1px}.cm-s-solarized .CodeMirror-widget{text-shadow:none}.cm-s-solarized .cm-header{color:#586e75}.cm-s-solarized .cm-quote{color:#93a1a1}.cm-s-solarized .cm-keyword{color:#cb4b16}.cm-s-solarized .cm-atom,.cm-s-solarized .cm-number{color:#d33682}.cm-s-solarized .cm-def{color:#2aa198}.cm-s-solarized .cm-variable{color:#839496}.cm-s-solarized .cm-variable-2{color:#b58900}.cm-s-solarized .cm-variable-3{color:#6c71c4}.cm-s-solarized .cm-property{color:#2aa198}.cm-s-solarized .cm-operator{color:#6c71c4}.cm-s-solarized .cm-comment{color:#586e75;font-style:italic}.cm-s-solarized .cm-string{color:#859900}.cm-s-solarized .cm-string-2{color:#b58900}.cm-s-solarized .cm-meta{color:#859900}.cm-s-solarized .cm-qualifier{color:#b58900}.cm-s-solarized .cm-builtin{color:#d33682}.cm-s-solarized .cm-bracket{color:#cb4b16}.cm-s-solarized .CodeMirror-matchingbracket{color:#859900}.cm-s-solarized .CodeMirror-nonmatchingbracket{color:#dc322f}.cm-s-solarized .cm-tag{color:#93a1a1}.cm-s-solarized .cm-attribute{color:#2aa198}.cm-s-solarized .cm-hr{color:transparent;border-top:1px solid #586e75;display:block}.cm-s-solarized .cm-link{color:#93a1a1;cursor:pointer}.cm-s-solarized .cm-special{color:#6c71c4}.cm-s-solarized .cm-em{color:#999;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-solarized .cm-strong{color:#eee}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar{color:#586e75;border-bottom:1px dotted #dc322f}.cm-s-solarized.cm-s-dark div.CodeMirror-selected{background:#073642}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-dark.CodeMirror ::selection{background:rgba(7,54,66,.99)}.cm-s-dark .CodeMirror-line>span::-moz-selection,.cm-s-dark .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-light div.CodeMirror-selected{background:#eee8d5}.cm-s-light .CodeMirror-line>span::-moz-selection,.cm-s-light .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-light .CodeMirror-line>span::selection,.cm-s-light .CodeMirror-line>span>span::selection,.cm-s-solarized.cm-s-light .CodeMirror-line::selection{background:#eee8d5}.cm-s-ligh .CodeMirror-line>span::-moz-selection,.cm-s-ligh .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-solarized.CodeMirror{box-shadow:inset 7px 0 12px -6px #000}.cm-s-solarized .CodeMirror-gutters{border-right:0}.cm-s-solarized.cm-s-dark .CodeMirror-gutters{background-color:#073642}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber{color:#586e75;text-shadow:#021014 0 -1px}.cm-s-solarized.cm-s-light .CodeMirror-gutters{background-color:#eee8d5}.cm-s-solarized.cm-s-light .CodeMirror-linenumber{color:#839496}.cm-s-solarized .CodeMirror-linenumber{padding:0 5px}.cm-s-solarized .CodeMirror-guttermarker-subtle{color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker{color:#ddd}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker{color:#cb4b16}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized .CodeMirror-cursor{border-left:1px solid #819090}.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor{background:#7e7}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor{background-color:#7e7}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor{background:#586e75}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor{background-color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.06)}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background{background:rgba(0,0,0,.06)}.cm-s-the-matrix.CodeMirror{background:#000;color:#0f0}.cm-s-the-matrix div.CodeMirror-selected{background:#2d2d2d}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line>span::selection,.cm-s-the-matrix .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-gutters{background:#060;border-right:2px solid #0f0}.cm-s-the-matrix .CodeMirror-guttermarker{color:#0f0}.cm-s-the-matrix .CodeMirror-guttermarker-subtle,.cm-s-the-matrix .CodeMirror-linenumber{color:#fff}.cm-s-the-matrix .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-the-matrix span.cm-keyword{color:#008803;font-weight:700}.cm-s-the-matrix span.cm-atom{color:#3ff}.cm-s-the-matrix span.cm-number{color:#ffb94f}.cm-s-the-matrix span.cm-def{color:#99c}.cm-s-the-matrix span.cm-variable{color:#f6c}.cm-s-the-matrix span.cm-variable-2{color:#c6f}.cm-s-the-matrix span.cm-variable-3{color:#96f}.cm-s-the-matrix span.cm-property{color:#62ffa0}.cm-s-the-matrix span.cm-operator{color:#999}.cm-s-the-matrix span.cm-comment{color:#ccc}.cm-s-the-matrix span.cm-string{color:#39c}.cm-s-the-matrix span.cm-meta{color:#c9f}.cm-s-the-matrix span.cm-qualifier{color:#fff700}.cm-s-the-matrix span.cm-builtin{color:#30a}.cm-s-the-matrix span.cm-bracket{color:#cc7}.cm-s-the-matrix span.cm-tag{color:#ffbd40}.cm-s-the-matrix span.cm-attribute{color:#fff700}.cm-s-the-matrix span.cm-error{color:red}.cm-s-the-matrix .CodeMirror-activeline-background{background:#040}.cm-s-tomorrow-night-bright.CodeMirror{background:#000;color:#eaeaea}.cm-s-tomorrow-night-bright div.CodeMirror-selected{background:#424242}.cm-s-tomorrow-night-bright .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker{color:#e78c45}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-bright .CodeMirror-linenumber{color:#424242}.cm-s-tomorrow-night-bright .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-bright span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-bright span.cm-atom,.cm-s-tomorrow-night-bright span.cm-number{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-attribute,.cm-s-tomorrow-night-bright span.cm-property{color:#9c9}.cm-s-tomorrow-night-bright span.cm-keyword{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-string{color:#e7c547}.cm-s-tomorrow-night-bright span.cm-variable{color:#b9ca4a}.cm-s-tomorrow-night-bright span.cm-variable-2{color:#7aa6da}.cm-s-tomorrow-night-bright span.cm-def{color:#e78c45}.cm-s-tomorrow-night-bright span.cm-bracket{color:#eaeaea}.cm-s-tomorrow-night-bright span.cm-tag{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-link{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-error{background:#d54e53;color:#6a6a6a}.cm-s-tomorrow-night-bright .CodeMirror-activeline-background{background:#2a2a2a}.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-tomorrow-night-eighties.CodeMirror{background:#000;color:#ccc}.cm-s-tomorrow-night-eighties div.CodeMirror-selected{background:#2d2d2d}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker{color:#f2777a}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber{color:#515151}.cm-s-tomorrow-night-eighties .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-eighties span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-eighties span.cm-atom,.cm-s-tomorrow-night-eighties span.cm-number{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-attribute,.cm-s-tomorrow-night-eighties span.cm-property{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-keyword{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-string{color:#fc6}.cm-s-tomorrow-night-eighties span.cm-variable{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-variable-2{color:#69c}.cm-s-tomorrow-night-eighties span.cm-def{color:#f99157}.cm-s-tomorrow-night-eighties span.cm-bracket{color:#ccc}.cm-s-tomorrow-night-eighties span.cm-tag{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-link{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-error{background:#f2777a;color:#6a6a6a}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background{background:#343600}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#219}.cm-s-ttcn .cm-attribute{color:#00c}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{font-weight:700}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#006400}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.cm-s-twilight.CodeMirror{background:#141414;color:#f7f7f7}.cm-s-twilight div.CodeMirror-selected{background:#323232}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line>span::selection,.cm-s-twilight .CodeMirror-line>span>span::selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line>span::-moz-selection,.cm-s-twilight .CodeMirror-line>span>span::-moz-selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-gutters{background:#222;border-right:1px solid #aaa}.cm-s-twilight .CodeMirror-guttermarker{color:#fff}.cm-s-twilight .CodeMirror-guttermarker-subtle,.cm-s-twilight .CodeMirror-linenumber{color:#aaa}.cm-s-twilight .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-twilight .cm-keyword{color:#f9ee98}.cm-s-twilight .cm-atom{color:#fc0}.cm-s-twilight .cm-number{color:#ca7841}.cm-s-twilight .cm-def{color:#8da6ce}.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-tag,.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-variable-3{color:#607392}.cm-s-twilight .cm-operator{color:#cda869}.cm-s-twilight .cm-comment{color:#777;font-style:italic;font-weight:400}.cm-s-twilight .cm-string{color:#8f9d6a;font-style:italic}.cm-s-twilight .cm-string-2{color:#bd6b18}.cm-s-twilight .cm-meta{background-color:#141414;color:#f7f7f7}.cm-s-twilight .cm-builtin{color:#cda869}.cm-s-twilight .cm-tag{color:#997643}.cm-s-twilight .cm-attribute{color:#d6bb6d}.cm-s-twilight .cm-header{color:#ff6400}.cm-s-twilight .cm-hr{color:#aeaeae}.cm-s-twilight .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-twilight .cm-error{border-bottom:1px solid red}.cm-s-twilight .CodeMirror-activeline-background{background:#27282e}.cm-s-twilight .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-vibrant-ink.CodeMirror{background:#000;color:#fff}.cm-s-vibrant-ink div.CodeMirror-selected{background:#35493c}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line>span::selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::-moz-selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-vibrant-ink .CodeMirror-guttermarker{color:#fff}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle,.cm-s-vibrant-ink .CodeMirror-linenumber{color:#d0d0d0}.cm-s-vibrant-ink .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-vibrant-ink .cm-keyword{color:#cc7832}.cm-s-vibrant-ink .cm-atom{color:#fc0}.cm-s-vibrant-ink .cm-number{color:#ffee98}.cm-s-vibrant-ink .cm-def{color:#8da6ce}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-tag{color:#ffc66d}.cm-s-vibrant-ink .cm-operator{color:#888}.cm-s-vibrant-ink .cm-comment{color:gray;font-weight:700}.cm-s-vibrant-ink .cm-string{color:#a5c25c}.cm-s-vibrant-ink .cm-string-2{color:red}.cm-s-vibrant-ink .cm-meta{color:#d8fa3c}.cm-s-vibrant-ink .cm-attribute,.cm-s-vibrant-ink .cm-builtin,.cm-s-vibrant-ink .cm-tag{color:#8da6ce}.cm-s-vibrant-ink .cm-header{color:#ff6400}.cm-s-vibrant-ink .cm-hr{color:#aeaeae}.cm-s-vibrant-ink .cm-link{color:blue}.cm-s-vibrant-ink .cm-error{border-bottom:1px solid red}.cm-s-vibrant-ink .CodeMirror-activeline-background{background:#27282e}.cm-s-vibrant-ink .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-dark.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-xq-dark div.CodeMirror-selected{background:#27007a}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line>span::selection,.cm-s-xq-dark .CodeMirror-line>span>span::selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-xq-dark .CodeMirror-guttermarker{color:#ffbd40}.cm-s-xq-dark .CodeMirror-guttermarker-subtle,.cm-s-xq-dark .CodeMirror-linenumber{color:#f8f8f8}.cm-s-xq-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-xq-dark span.cm-keyword{color:#ffbd40}.cm-s-xq-dark span.cm-atom{color:#6c8cd5}.cm-s-xq-dark span.cm-number{color:#164}.cm-s-xq-dark span.cm-def{color:#fff;text-decoration:underline}.cm-s-xq-dark span.cm-variable{color:#fff}.cm-s-xq-dark span.cm-variable-2{color:#eee}.cm-s-xq-dark span.cm-variable-3{color:#ddd}.cm-s-xq-dark span.cm-comment{color:gray}.cm-s-xq-dark span.cm-string{color:#9fee00}.cm-s-xq-dark span.cm-meta{color:#ff0}.cm-s-xq-dark span.cm-qualifier{color:#fff700}.cm-s-xq-dark span.cm-builtin{color:#30a}.cm-s-xq-dark span.cm-bracket{color:#cc7}.cm-s-xq-dark span.cm-tag{color:#ffbd40}.cm-s-xq-dark span.cm-attribute{color:#fff700}.cm-s-xq-dark span.cm-error{color:red}.cm-s-xq-dark .CodeMirror-activeline-background{background:#27282e}.cm-s-xq-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-light span.cm-keyword{line-height:1em;font-weight:700;color:#5a5cad}.cm-s-xq-light span.cm-atom{color:#6c8cd5}.cm-s-xq-light span.cm-number{color:#164}.cm-s-xq-light span.cm-def{text-decoration:underline}.cm-s-xq-light span.cm-variable,.cm-s-xq-light span.cm-variable-2,.cm-s-xq-light span.cm-variable-3{color:#000}.cm-s-xq-light span.cm-comment{color:#0080ff;font-style:italic}.cm-s-xq-light span.cm-string{color:red}.cm-s-xq-light span.cm-meta{color:#ff0}.cm-s-xq-light span.cm-qualifier{color:grey}.cm-s-xq-light span.cm-builtin{color:#7ea656}.cm-s-xq-light span.cm-bracket{color:#cc7}.cm-s-xq-light span.cm-tag{color:#3f7f7f}.cm-s-xq-light span.cm-attribute{color:#7f007f}.cm-s-xq-light span.cm-error{color:red}.cm-s-xq-light .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-xq-light .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important;background:#ff0}.cm-s-yeti.CodeMirror{background-color:#eceae8!important;color:#d1c9c0!important;border:none}.cm-s-yeti .CodeMirror-gutters{color:#adaba6;background-color:#e5e1db;border:none}.cm-s-yeti .CodeMirror-cursor{border-left:thin solid #d1c9c0}.cm-s-yeti .CodeMirror-linenumber{color:#adaba6}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line>span::selection,.cm-s-yeti .CodeMirror-line>span>span::selection{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line>span::-moz-selection,.cm-s-yeti .CodeMirror-line>span>span::-moz-selection{background:#dcd8d2}.cm-s-yeti span.cm-comment{color:#d4c8be}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2{color:#96c0d8}.cm-s-yeti span.cm-number{color:#a074c4}.cm-s-yeti span.cm-variable{color:#55b5db}.cm-s-yeti span.cm-variable-2{color:#a074c4}.cm-s-yeti span.cm-def{color:#55b5db}.cm-s-yeti span.cm-keyword,.cm-s-yeti span.cm-operator{color:#9fb96e}.cm-s-yeti span.cm-atom{color:#a074c4}.cm-s-yeti span.cm-meta,.cm-s-yeti span.cm-tag{color:#96c0d8}.cm-s-yeti span.cm-attribute{color:#9fb96e}.cm-s-yeti span.cm-qualifier{color:#96c0d8}.cm-s-yeti span.cm-builtin,.cm-s-yeti span.cm-property{color:#a074c4}.cm-s-yeti span.cm-variable-3{color:#96c0d8}.cm-s-yeti .CodeMirror-activeline-background{background:#e7e4e0}.cm-s-yeti .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-zenburn .CodeMirror-gutters{background:#3f3f3f!important}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{color:#999}.cm-s-zenburn .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-zenburn{background-color:#3f3f3f;color:#dcdccc}.cm-s-zenburn span.cm-builtin{color:#dcdccc;font-weight:700}.cm-s-zenburn span.cm-comment{color:#7f9f7f}.cm-s-zenburn span.cm-keyword{color:#f0dfaf;font-weight:700}.cm-s-zenburn span.cm-atom{color:#bfebbf}.cm-s-zenburn span.cm-def{color:#dcdccc}.cm-s-zenburn span.cm-variable{color:#dfaf8f}.cm-s-zenburn span.cm-variable-2{color:#dcdccc}.cm-s-zenburn span.cm-string,.cm-s-zenburn span.cm-string-2{color:#cc9393}.cm-s-zenburn span.cm-number{color:#dcdccc}.cm-s-zenburn span.cm-tag{color:#93e0e3}.cm-s-zenburn span.cm-attribute,.cm-s-zenburn span.cm-property{color:#dfaf8f}.cm-s-zenburn span.cm-qualifier{color:#7cb8bb}.cm-s-zenburn span.cm-meta{color:#f0dfaf}.cm-s-zenburn span.cm-header,.cm-s-zenburn span.cm-operator{color:#f0efd0}.cm-s-zenburn span.CodeMirror-matchingbracket{box-sizing:border-box;background:transparent;border-bottom:1px solid}.cm-s-zenburn span.CodeMirror-nonmatchingbracket{border-bottom:1px solid;background:none}.cm-s-zenburn .CodeMirror-activeline,.cm-s-zenburn .CodeMirror-activeline-background{background:#000}.cm-s-zenburn div.CodeMirror-selected{background:#545454}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected{background:#4f4f4f}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror{font:inherit}.CodeMirror-scroll{font-family:Menlo Regular,Consolas,Monaco,monospace;line-height:150%;position:relative}.CodeMirror-settings{color:#444;height:0;width:100%;z-index:9;text-shadow:none}.CodeMirror-settings__toggle{border-radius:3px;z-index:11;box-sizing:border-box;position:absolute;top:0;right:0;margin:6px;display:block;cursor:pointer}.CodeMirror-settings__toggle:after{content:"\f111";font-family:dashicons;line-height:1em;display:inline-block}.CodeMirror-settings__toggle:before{border:1px solid #ddd;border-radius:3px;z-index:-1;content:"";background-color:#fff;transition:.25s ease;transition-property:transform opacity;position:absolute;top:0;right:0;bottom:0;left:0}.CodeMirror-settings__wrapper{pointer-events:none;visibility:hidden}.CodeMirror-settings__body,.CodeMirror-settings__docked{pointer-events:auto;visibility:visible}.CodeMirror-settings__wrapper{position:absolute;width:calc(100% - 12px);max-height:calc(100% - 12px);top:0;margin:6px;box-sizing:border-box;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.CodeMirror-settings__docked{-ms-flex:0 0 auto;flex:0 0 auto;z-index:10;background-color:#fff;box-sizing:border-box}.CodeMirror-settings__header{border-top-left-radius:3px;border-top-right-radius:3px;border:1px solid #ddd;padding:4px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.CodeMirror-settings__body{-ms-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box;padding:1px 12px;overflow-y:auto;background-color:hsla(0,0%,100%,.93);border-left:1px solid #ddd;border-right:1px solid #ddd}.CodeMirror-settings__footer{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:1px solid #ddd;padding:6px 12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:justify;justify-content:space-between}.CodeMirror-settings-advanced__description{margin-left:10px;opacity:.6}td.CodeMirror-settings__heading{padding:0;padding-bottom:12px}.CodeMirror-settings__foot-content{margin:0}.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__header,.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__wrapper{transition:.25s ease;transition-property:opacity,transform;transform-origin:top right}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.closed .CodeMirror-settings__toggle{opacity:.5}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before,.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover{opacity:1}.CodeMirror-settings.closed .CodeMirror-settings__wrapper{opacity:0;transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.open .CodeMirror-settings__toggle:after{content:"\f158"}.CodeMirror-settings.open .CodeMirror-settings__toggle:before{opacity:0}.CodeMirror-settings.open .CodeMirror-settings__wrapper{opacity:1;transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before{content:"less"}.CodeMirror-settings.open-advanced .CodeMirror-settings__header{border-bottom-left-radius:0;border-bottom-right-radius:0}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer{visibility:visible;opacity:1;transform:translate(0);transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{transform:none!important}.CodeMirror-settings__button input,.CodeMirror-settings__button select{display:block;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;margin:0;padding:0;border:none;height:auto;font-size:0;line-height:0;height:100%!important;width:100%!important;background:none;opacity:0}.CodeMirror-settings__button option{font-size:12px}.CodeMirror-settings__button--select:after{content:"\f140";font-family:dashicons;vertical-align:top;display:inline-block;margin:0 -5px -4px}.CodeMirror-settings__toggle-advanced{cursor:pointer;display:inline-block;line-height:25px;padding:0 4px;vertical-align:middle}.CodeMirror-dialog{position:absolute;left:0;right:0;top:0;width:calc(100% - 12px);margin:6px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:12;padding-left:12px;border-radius:3px;border:1px solid #ddd;color:#444;background-color:#fff}.CodeMirror-dialog:after{position:absolute;right:0;top:0;bottom:0;content:"\f158";font-family:dashicons;line-height:1em;cursor:pointer}.CodeMirror-dialog input{border:none;outline:none;background:rgba(0,0,0,.05);color:inherit;font-family:monospace;margin:-1px 12px;padding:0 12px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;-ms-flex:1 1 auto;flex:1 1 auto}.CodeMirror-dialog input,.CodeMirror-dialog input:focus{box-shadow:none}.CodeMirror-dialog button{margin:0 2px!important}.CodeMirror-dialog button:first-of-type{margin-left:12px!important}.CodeMirror-dialog span{-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none!important}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6;transition:opacity .1s linear;opacity:.5}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover{opacity:1}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active{opacity:.75}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:transparent!important}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after{content:"";background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;position:absolute}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:8px;margin-bottom:6px}.CodeMirror-overlayscroll-horizontal div{top:0;bottom:0}.CodeMirror-overlayscroll-horizontal div:after{top:0;bottom:0;left:6px;right:6px}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:8px;margin-right:6px}.CodeMirror-overlayscroll-vertical div{left:0;right:0}.CodeMirror-overlayscroll-vertical div:after{left:0;right:0;bottom:6px}.wp-editor-expand .CodeMirror{min-height:300px}.wp-editor-expand .CodeMirror .CodeMirror-scroll{padding-bottom:330px!important;margin-bottom:-330px!important}.CodeMirror-mirrored{display:block!important;position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:-999!important;opacity:0!important}#template .CodeMirror div{margin-right:0}#template .CodeMirror p{width:auto}.CodeMirror-vscrollbar{display:none!important}.CodeMirror-scroll{margin-right:-30px!important}.CodeMirror-settings__toggle{margin:6px!important}.heshFullscreen{z-index:99999;position:fixed!important;top:0;left:0;right:0;bottom:0;height:100%;background:#fff;padding:2% 2% 0}.heshFullscreen .CodeMirror{border:1px solid #ccc;border-radius:0 0 4px 4px;height:85%!important}.heshFullscreen #ed_toolbar{border:1px solid #ccc;border-bottom:0;border-radius:4px 4px 0 0}.heshFullscreen #cm_content_fullscreen:before{content:"\f506"}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag{background-color:rgba(0,255,175,.2)}#cm_content_fullscreen{display:inline-block}.wp-editor-expand #cm_content_fullscreen{display:none}.hesh-content-resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;z-index:8;margin:1px!important}#ed_toolbar{z-index:10}@media screen and (min-width:782px){.CodeMirror-settings__toggle{height:35px;width:35px}.CodeMirror-settings__toggle:after{font-size:20px;margin:7px}.CodeMirror-settings__docked{min-height:35px}.CodeMirror-settings__header{padding-right:35px}.CodeMirror-settings__button--select:after{font-size:16px;margin-top:0}.CodeMirror-dialog{height:35px;padding-right:35px}.CodeMirror-dialog:after{font-size:20px;margin:7px}.CodeMirror-overlayscroll-vertical div:after{top:47px}#template .CodeMirror{margin-right:20px}}@media screen and (max-width:781px){.CodeMirror-settings__toggle{height:44px;width:44px}.CodeMirror-settings__toggle:after{font-size:28px;margin:8px}.CodeMirror-settings__docked{min-height:44px}.CodeMirror-settings__header{padding-right:44px}.CodeMirror-settings__button--select:after{font-size:20px;margin-top:-2px}.CodeMirror-dialog{height:44px;padding-right:44px}.CodeMirror-dialog:after{font-size:28px;margin:8px}.CodeMirror-overlayscroll-vertical div:after{top:56px}#template .CodeMirror{margin-right:0}}@media screen and (max-height:550px){.heshFullscreen .CodeMirror{height:75%!important}}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}@keyframes a{50%{background-color:transparent}}
|
1 |
+
.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:a 1.06s steps(1) infinite;background-color:#7e7}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.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-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.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,.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-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{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}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{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;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.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;overflow:auto}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day div.CodeMirror-selected{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::selection,.cm-s-3024-day .CodeMirror-line>span::selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-day .CodeMirror-guttermarker-subtle,.cm-s-3024-day .CodeMirror-linenumber{color:#807d7c}.cm-s-3024-day .CodeMirror-cursor{border-left:1px solid #5c5855}.cm-s-3024-day span.cm-comment{color:#cdab53}.cm-s-3024-day span.cm-atom,.cm-s-3024-day span.cm-number{color:#a16a94}.cm-s-3024-day span.cm-attribute,.cm-s-3024-day span.cm-property{color:#01a252}.cm-s-3024-day span.cm-keyword{color:#db2d20}.cm-s-3024-day span.cm-string{color:#fded02}.cm-s-3024-day span.cm-variable{color:#01a252}.cm-s-3024-day span.cm-variable-2{color:#01a0e4}.cm-s-3024-day span.cm-def{color:#e8bbd0}.cm-s-3024-day span.cm-bracket{color:#3a3432}.cm-s-3024-day span.cm-tag{color:#db2d20}.cm-s-3024-day span.cm-link{color:#a16a94}.cm-s-3024-day span.cm-error{background:#db2d20;color:#5c5855}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-3024-day .CodeMirror-matchingbracket{text-decoration:underline;color:#a16a94!important}.cm-s-3024-night.CodeMirror{background:#090300;color:#d6d5d4}.cm-s-3024-night div.CodeMirror-selected{background:#3a3432}.cm-s-3024-night .CodeMirror-line::selection,.cm-s-3024-night .CodeMirror-line>span::selection,.cm-s-3024-night .CodeMirror-line>span>span::selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-line::-moz-selection,.cm-s-3024-night .CodeMirror-line>span::-moz-selection,.cm-s-3024-night .CodeMirror-line>span>span::-moz-selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-gutters{background:#090300;border-right:0}.cm-s-3024-night .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-night .CodeMirror-guttermarker-subtle,.cm-s-3024-night .CodeMirror-linenumber{color:#5c5855}.cm-s-3024-night .CodeMirror-cursor{border-left:1px solid #807d7c}.cm-s-3024-night span.cm-comment{color:#cdab53}.cm-s-3024-night span.cm-atom,.cm-s-3024-night span.cm-number{color:#a16a94}.cm-s-3024-night span.cm-attribute,.cm-s-3024-night span.cm-property{color:#01a252}.cm-s-3024-night span.cm-keyword{color:#db2d20}.cm-s-3024-night span.cm-string{color:#fded02}.cm-s-3024-night span.cm-variable{color:#01a252}.cm-s-3024-night span.cm-variable-2{color:#01a0e4}.cm-s-3024-night span.cm-def{color:#e8bbd0}.cm-s-3024-night span.cm-bracket{color:#d6d5d4}.cm-s-3024-night span.cm-tag{color:#db2d20}.cm-s-3024-night span.cm-link{color:#a16a94}.cm-s-3024-night span.cm-error{background:#db2d20;color:#807d7c}.cm-s-3024-night .CodeMirror-activeline-background{background:#2f2f2f}.cm-s-3024-night .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-abcdef.CodeMirror{background:#0f0f0f;color:#defdef}.cm-s-abcdef div.CodeMirror-selected{background:#515151}.cm-s-abcdef .CodeMirror-line::selection,.cm-s-abcdef .CodeMirror-line>span::selection,.cm-s-abcdef .CodeMirror-line>span>span::selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-line::-moz-selection,.cm-s-abcdef .CodeMirror-line>span::-moz-selection,.cm-s-abcdef .CodeMirror-line>span>span::-moz-selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-gutters{background:#555;border-right:2px solid #314151}.cm-s-abcdef .CodeMirror-guttermarker{color:#222}.cm-s-abcdef .CodeMirror-guttermarker-subtle{color:azure}.cm-s-abcdef .CodeMirror-linenumber{color:#fff}.cm-s-abcdef .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-abcdef span.cm-keyword{color:#b8860b;font-weight:700}.cm-s-abcdef span.cm-atom{color:#77f}.cm-s-abcdef span.cm-number{color:violet}.cm-s-abcdef span.cm-def{color:#fffabc}.cm-s-abcdef span.cm-variable{color:#abcdef}.cm-s-abcdef span.cm-variable-2{color:#cacbcc}.cm-s-abcdef span.cm-type,.cm-s-abcdef span.cm-variable-3{color:#def}.cm-s-abcdef span.cm-property{color:#fedcba}.cm-s-abcdef span.cm-operator{color:#ff0}.cm-s-abcdef span.cm-comment{color:#7a7b7c;font-style:italic}.cm-s-abcdef span.cm-string{color:#2b4}.cm-s-abcdef span.cm-meta{color:#c9f}.cm-s-abcdef span.cm-qualifier{color:#fff700}.cm-s-abcdef span.cm-builtin{color:#30aabc}.cm-s-abcdef span.cm-bracket{color:#8a8a8a}.cm-s-abcdef span.cm-tag{color:#fd4}.cm-s-abcdef span.cm-attribute{color:#df0}.cm-s-abcdef span.cm-error{color:red}.cm-s-abcdef span.cm-header{color:#7fffd4;font-weight:700}.cm-s-abcdef span.cm-link{color:#8a2be2}.cm-s-abcdef .CodeMirror-activeline-background{background:#314151}.cm-s-ambiance.CodeMirror{box-shadow:none}.cm-s-ambiance .cm-header{color:blue}.cm-s-ambiance .cm-quote{color:#24c2c7}.cm-s-ambiance .cm-keyword{color:#cda869}.cm-s-ambiance .cm-atom{color:#cf7ea9}.cm-s-ambiance .cm-number{color:#78cf8a}.cm-s-ambiance .cm-def{color:#aac6e3}.cm-s-ambiance .cm-variable{color:#ffb795}.cm-s-ambiance .cm-variable-2{color:#eed1b3}.cm-s-ambiance .cm-type,.cm-s-ambiance .cm-variable-3{color:#faded3}.cm-s-ambiance .cm-property{color:#eed1b3}.cm-s-ambiance .cm-operator{color:#fa8d6a}.cm-s-ambiance .cm-comment{color:#555;font-style:italic}.cm-s-ambiance .cm-string{color:#8f9d6a}.cm-s-ambiance .cm-string-2{color:#9d937c}.cm-s-ambiance .cm-meta{color:#d2a8a1}.cm-s-ambiance .cm-qualifier{color:#ff0}.cm-s-ambiance .cm-builtin{color:#99c}.cm-s-ambiance .cm-bracket{color:#24c2c7}.cm-s-ambiance .cm-tag{color:#fee4ff}.cm-s-ambiance .cm-attribute{color:#9b859d}.cm-s-ambiance .cm-hr{color:pink}.cm-s-ambiance .cm-link{color:#f4c20b}.cm-s-ambiance .cm-special{color:#ff9d00}.cm-s-ambiance .cm-error{color:#af2018}.cm-s-ambiance .CodeMirror-matchingbracket{color:#0f0}.cm-s-ambiance .CodeMirror-nonmatchingbracket{color:#f22}.cm-s-ambiance div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::selection,.cm-s-ambiance .CodeMirror-line>span::selection,.cm-s-ambiance .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line>span::-moz-selection,.cm-s-ambiance .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance.CodeMirror{line-height:1.4em;color:#e6e1dc;background-color:#202020;box-shadow:inset 0 0 10px #000}.cm-s-ambiance .CodeMirror-gutters{background:#3d3d3d;border-right:1px solid #4d4d4d;box-shadow:0 10px 20px #000}.cm-s-ambiance .CodeMirror-linenumber{text-shadow:0 1px 1px #4d4d4d;color:#111;padding:0 5px}.cm-s-ambiance .CodeMirror-guttermarker{color:#aaa}.cm-s-ambiance .CodeMirror-guttermarker-subtle{color:#111}.cm-s-ambiance .CodeMirror-cursor{border-left:1px solid #7991e8}.cm-s-ambiance .CodeMirror-activeline-background{background:none repeat scroll 0 0 hsla(0,0%,100%,.031)}.cm-s-ambiance.CodeMirror,.cm-s-ambiance .CodeMirror-gutters{background-image:url("data:image/png;base64,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")}.cm-s-base16-dark.CodeMirror{background:#151515;color:#e0e0e0}.cm-s-base16-dark div.CodeMirror-selected{background:#303030}.cm-s-base16-dark .CodeMirror-line::selection,.cm-s-base16-dark .CodeMirror-line>span::selection,.cm-s-base16-dark .CodeMirror-line>span>span::selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-line::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-gutters{background:#151515;border-right:0}.cm-s-base16-dark .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-dark .CodeMirror-guttermarker-subtle,.cm-s-base16-dark .CodeMirror-linenumber{color:#505050}.cm-s-base16-dark .CodeMirror-cursor{border-left:1px solid #b0b0b0}.cm-s-base16-dark span.cm-comment{color:#8f5536}.cm-s-base16-dark span.cm-atom,.cm-s-base16-dark span.cm-number{color:#aa759f}.cm-s-base16-dark span.cm-attribute,.cm-s-base16-dark span.cm-property{color:#90a959}.cm-s-base16-dark span.cm-keyword{color:#ac4142}.cm-s-base16-dark span.cm-string{color:#f4bf75}.cm-s-base16-dark span.cm-variable{color:#90a959}.cm-s-base16-dark span.cm-variable-2{color:#6a9fb5}.cm-s-base16-dark span.cm-def{color:#d28445}.cm-s-base16-dark span.cm-bracket{color:#e0e0e0}.cm-s-base16-dark span.cm-tag{color:#ac4142}.cm-s-base16-dark span.cm-link{color:#aa759f}.cm-s-base16-dark span.cm-error{background:#ac4142;color:#b0b0b0}.cm-s-base16-dark .CodeMirror-activeline-background{background:#202020}.cm-s-base16-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin.CodeMirror{background:#28211c;color:#9d9b97}.cm-s-bespin div.CodeMirror-selected{background:#36312e!important}.cm-s-bespin .CodeMirror-gutters{background:#28211c;border-right:0}.cm-s-bespin .CodeMirror-linenumber{color:#666}.cm-s-bespin .CodeMirror-cursor{border-left:1px solid #797977!important}.cm-s-bespin span.cm-comment{color:#937121}.cm-s-bespin span.cm-atom,.cm-s-bespin span.cm-number{color:#9b859d}.cm-s-bespin span.cm-attribute,.cm-s-bespin span.cm-property{color:#54be0d}.cm-s-bespin span.cm-keyword{color:#cf6a4c}.cm-s-bespin span.cm-string{color:#f9ee98}.cm-s-bespin span.cm-variable{color:#54be0d}.cm-s-bespin span.cm-variable-2{color:#5ea6ea}.cm-s-bespin span.cm-def{color:#cf7d34}.cm-s-bespin span.cm-error{background:#cf6a4c;color:#797977}.cm-s-bespin span.cm-bracket{color:#9d9b97}.cm-s-bespin span.cm-tag{color:#cf6a4c}.cm-s-bespin span.cm-link{color:#9b859d}.cm-s-bespin .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin .CodeMirror-activeline-background{background:#404040}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard div.CodeMirror-selected{background:#253b76}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line>span::selection,.cm-s-blackboard .CodeMirror-line>span>span::selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line>span::-moz-selection,.cm-s-blackboard .CodeMirror-line>span>span::-moz-selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-guttermarker{color:#fbde2d}.cm-s-blackboard .CodeMirror-guttermarker-subtle,.cm-s-blackboard .CodeMirror-linenumber{color:#888}.cm-s-blackboard .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-blackboard .cm-keyword{color:#fbde2d}.cm-s-blackboard .cm-atom,.cm-s-blackboard .cm-number{color:#d8fa3c}.cm-s-blackboard .cm-def{color:#8da6ce}.cm-s-blackboard .cm-variable{color:#ff6400}.cm-s-blackboard .cm-operator{color:#fbde2d}.cm-s-blackboard .cm-comment{color:#aeaeae}.cm-s-blackboard .cm-string,.cm-s-blackboard .cm-string-2{color:#61ce3c}.cm-s-blackboard .cm-meta{color:#d8fa3c}.cm-s-blackboard .cm-attribute,.cm-s-blackboard .cm-builtin,.cm-s-blackboard .cm-tag{color:#8da6ce}.cm-s-blackboard .cm-header{color:#ff6400}.cm-s-blackboard .cm-hr{color:#aeaeae}.cm-s-blackboard .cm-link{color:#8da6ce}.cm-s-blackboard .cm-error{background:#9d1e15;color:#f8f8f8}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-blackboard .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-cobalt.CodeMirror{background:#002240;color:#fff}.cm-s-cobalt div.CodeMirror-selected{background:#b36539}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line>span::selection,.cm-s-cobalt .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line>span::-moz-selection,.cm-s-cobalt .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-cobalt .CodeMirror-guttermarker{color:#ffee80}.cm-s-cobalt .CodeMirror-guttermarker-subtle,.cm-s-cobalt .CodeMirror-linenumber{color:#d0d0d0}.cm-s-cobalt .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-cobalt span.cm-comment{color:#08f}.cm-s-cobalt span.cm-atom{color:#845dc4}.cm-s-cobalt span.cm-attribute,.cm-s-cobalt span.cm-number{color:#ff80e1}.cm-s-cobalt span.cm-keyword{color:#ffee80}.cm-s-cobalt span.cm-string{color:#3ad900}.cm-s-cobalt span.cm-meta{color:#ff9d00}.cm-s-cobalt span.cm-tag,.cm-s-cobalt span.cm-variable-2{color:#9effff}.cm-s-cobalt .cm-type,.cm-s-cobalt span.cm-def,.cm-s-cobalt span.cm-variable-3{color:#fff}.cm-s-cobalt span.cm-bracket{color:#d8d8d8}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special{color:#ff9e59}.cm-s-cobalt span.cm-link{color:#845dc4}.cm-s-cobalt span.cm-error{color:#9d1e15}.cm-s-cobalt .CodeMirror-activeline-background{background:#002d57}.cm-s-cobalt .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-colorforth.CodeMirror{background:#000;color:#f8f8f8}.cm-s-colorforth .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-colorforth .CodeMirror-guttermarker{color:#ffbd40}.cm-s-colorforth .CodeMirror-guttermarker-subtle{color:#78846f}.cm-s-colorforth .CodeMirror-linenumber{color:#bababa}.cm-s-colorforth .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-colorforth span.cm-comment{color:#ededed}.cm-s-colorforth span.cm-def{color:#ff1c1c;font-weight:700}.cm-s-colorforth span.cm-keyword{color:#ffd900}.cm-s-colorforth span.cm-builtin{color:#00d95a}.cm-s-colorforth span.cm-variable{color:#73ff00}.cm-s-colorforth span.cm-string{color:#007bff}.cm-s-colorforth span.cm-number{color:#00c4ff}.cm-s-colorforth span.cm-atom{color:#606060}.cm-s-colorforth span.cm-variable-2{color:#eee}.cm-s-colorforth span.cm-type,.cm-s-colorforth span.cm-variable-3{color:#ddd}.cm-s-colorforth span.cm-meta{color:#ff0}.cm-s-colorforth span.cm-qualifier{color:#fff700}.cm-s-colorforth span.cm-bracket{color:#cc7}.cm-s-colorforth span.cm-tag{color:#ffbd40}.cm-s-colorforth span.cm-attribute{color:#fff700}.cm-s-colorforth span.cm-error{color:red}.cm-s-colorforth div.CodeMirror-selected{background:#333d53}.cm-s-colorforth span.cm-compilation{background:hsla(0,0%,100%,.12)}.cm-s-colorforth .CodeMirror-activeline-background{background:#253540}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-keyword,.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-type,.cm-s-dracula span.cm-variable-3{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-duotone-dark.CodeMirror{background:#2a2734;color:#6c6783}.cm-s-duotone-dark div.CodeMirror-selected{background:#545167!important}.cm-s-duotone-dark .CodeMirror-gutters{background:#2a2734;border-right:0}.cm-s-duotone-dark .CodeMirror-linenumber{color:#545167}.cm-s-duotone-dark .CodeMirror-cursor{border-left:1px solid #ffad5c;border-right:.5em solid #ffad5c;opacity:.5}.cm-s-duotone-dark .CodeMirror-activeline-background{background:#363342;opacity:.5}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor{background:#ffad5c;opacity:.5}.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-link,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-variable{color:#fc9}.cm-s-duotone-dark span.cm-property{color:#9a86fd}.cm-s-duotone-dark span.cm-negative,.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit{color:#e09142}.cm-s-duotone-dark span.cm-string{color:#ffb870}.cm-s-duotone-dark span.cm-operator{color:#ffad5c}.cm-s-duotone-dark span.cm-positive{color:#6a51e6}.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-url,.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3{color:#7a63ee}.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-em,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-tag{color:#eeebff}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment{color:#6c6783}.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar{color:red}.cm-s-duotone-dark span.cm-header{font-weight:400}.cm-s-duotone-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#eeebff!important}.cm-s-duotone-light.CodeMirror{background:#faf8f5;color:#b29762}.cm-s-duotone-light div.CodeMirror-selected{background:#e3dcce!important}.cm-s-duotone-light .CodeMirror-gutters{background:#faf8f5;border-right:0}.cm-s-duotone-light .CodeMirror-linenumber{color:#cdc4b1}.cm-s-duotone-light .CodeMirror-cursor{border-left:1px solid #93abdc;border-right:.5em solid #93abdc;opacity:.5}.cm-s-duotone-light .CodeMirror-activeline-background{background:#e3dcce;opacity:.5}.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor{background:#93abdc;opacity:.5}.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link,.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light span.cm-variable{color:#063289}.cm-s-duotone-light span.cm-property{color:#b29762}.cm-s-duotone-light span.cm-negative,.cm-s-duotone-light span.cm-punctuation,.cm-s-duotone-light span.cm-unit{color:#063289}.cm-s-duotone-light span.cm-operator,.cm-s-duotone-light span.cm-string{color:#1659df}.cm-s-duotone-light span.cm-positive,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-type,.cm-s-duotone-light span.cm-url,.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3{color:#896724}.cm-s-duotone-light span.cm-builtin,.cm-s-duotone-light span.cm-def,.cm-s-duotone-light span.cm-em,.cm-s-duotone-light span.cm-header,.cm-s-duotone-light span.cm-qualifier,.cm-s-duotone-light span.cm-tag{color:#2d2006}.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment{color:#b6ad9a}.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar{color:red}.cm-s-duotone-light span.cm-header{font-weight:400}.cm-s-duotone-light .CodeMirror-matchingbracket{text-decoration:underline;color:#faf8f5!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-type,.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-elegant span.cm-atom,.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string{color:#762}.cm-s-elegant span.cm-comment{color:#262;font-style:italic;line-height:1em}.cm-s-elegant span.cm-meta{color:#555;font-style:italic;line-height:1em}.cm-s-elegant span.cm-variable{color:#000}.cm-s-elegant span.cm-variable-2{color:#b11}.cm-s-elegant span.cm-qualifier{color:#555}.cm-s-elegant span.cm-keyword{color:#730}.cm-s-elegant span.cm-builtin{color:#30a}.cm-s-elegant span.cm-link{color:#762}.cm-s-elegant span.cm-error{background-color:#fdd}.cm-s-elegant .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-elegant .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-erlang-dark.CodeMirror{background:#002240;color:#fff}.cm-s-erlang-dark div.CodeMirror-selected{background:#b36539}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line>span::selection,.cm-s-erlang-dark .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-erlang-dark .CodeMirror-guttermarker{color:#fff}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle,.cm-s-erlang-dark .CodeMirror-linenumber{color:#d0d0d0}.cm-s-erlang-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-erlang-dark span.cm-quote{color:#ccc}.cm-s-erlang-dark span.cm-atom{color:#f133f1}.cm-s-erlang-dark span.cm-attribute{color:#ff80e1}.cm-s-erlang-dark span.cm-bracket{color:#ff9d00}.cm-s-erlang-dark span.cm-builtin{color:#eaa}.cm-s-erlang-dark span.cm-comment{color:#77f}.cm-s-erlang-dark span.cm-def{color:#e7a}.cm-s-erlang-dark span.cm-keyword{color:#ffee80}.cm-s-erlang-dark span.cm-meta{color:#50fefe}.cm-s-erlang-dark span.cm-number{color:#ffd0d0}.cm-s-erlang-dark span.cm-operator{color:#d55}.cm-s-erlang-dark span.cm-property,.cm-s-erlang-dark span.cm-qualifier{color:#ccc}.cm-s-erlang-dark span.cm-special{color:#fbb}.cm-s-erlang-dark span.cm-string{color:#3ad900}.cm-s-erlang-dark span.cm-string-2{color:#ccc}.cm-s-erlang-dark span.cm-tag{color:#9effff}.cm-s-erlang-dark span.cm-variable{color:#50fe50}.cm-s-erlang-dark span.cm-variable-2{color:#e0e}.cm-s-erlang-dark span.cm-type,.cm-s-erlang-dark span.cm-variable-3{color:#ccc}.cm-s-erlang-dark span.cm-error{color:#9d1e15}.cm-s-erlang-dark .CodeMirror-activeline-background{background:#013461}.cm-s-erlang-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42!important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498!important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom,.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-attribute,.cm-s-hopscotch span.cm-property{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}.cm-s-icecoder{color:#666;background:#1d1d1b}.cm-s-icecoder span.cm-keyword{color:#eee;font-weight:700}.cm-s-icecoder span.cm-atom{color:#e1c76e}.cm-s-icecoder span.cm-number{color:#6cb5d9}.cm-s-icecoder span.cm-def{color:#b9ca4a}.cm-s-icecoder span.cm-variable{color:#6cb5d9}.cm-s-icecoder span.cm-variable-2{color:#cc1e5c}.cm-s-icecoder span.cm-type,.cm-s-icecoder span.cm-variable-3{color:#f9602c}.cm-s-icecoder span.cm-property{color:#eee}.cm-s-icecoder span.cm-operator{color:#9179bb}.cm-s-icecoder span.cm-comment{color:#97a3aa}.cm-s-icecoder span.cm-string{color:#b9ca4a}.cm-s-icecoder span.cm-string-2{color:#6cb5d9}.cm-s-icecoder span.cm-meta,.cm-s-icecoder span.cm-qualifier{color:#555}.cm-s-icecoder span.cm-builtin{color:#214e7b}.cm-s-icecoder span.cm-bracket{color:#cc7}.cm-s-icecoder span.cm-tag{color:#e8e8e8}.cm-s-icecoder span.cm-attribute{color:#099}.cm-s-icecoder span.cm-header{color:#6a0d6a}.cm-s-icecoder span.cm-quote{color:#186718}.cm-s-icecoder span.cm-hr{color:#888}.cm-s-icecoder span.cm-link{color:#e1c76e}.cm-s-icecoder span.cm-error{color:#d00}.cm-s-icecoder .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-icecoder div.CodeMirror-selected{color:#fff;background:#037}.cm-s-icecoder .CodeMirror-gutters{background:#1d1d1b;min-width:41px;border-right:0}.cm-s-icecoder .CodeMirror-linenumber{color:#555;cursor:default}.cm-s-icecoder .CodeMirror-matchingbracket{color:#fff!important;background:#555!important}.cm-s-icecoder .CodeMirror-activeline-background{background:#000}.cm-s-isotope.CodeMirror{background:#000;color:#e0e0e0}.cm-s-isotope div.CodeMirror-selected{background:#404040!important}.cm-s-isotope .CodeMirror-gutters{background:#000;border-right:0}.cm-s-isotope .CodeMirror-linenumber{color:gray}.cm-s-isotope .CodeMirror-cursor{border-left:1px solid silver!important}.cm-s-isotope span.cm-comment{color:#30f}.cm-s-isotope span.cm-atom,.cm-s-isotope span.cm-number{color:#c0f}.cm-s-isotope span.cm-attribute,.cm-s-isotope span.cm-property{color:#3f0}.cm-s-isotope span.cm-keyword{color:red}.cm-s-isotope span.cm-string{color:#f09}.cm-s-isotope span.cm-variable{color:#3f0}.cm-s-isotope span.cm-variable-2{color:#06f}.cm-s-isotope span.cm-def{color:#f90}.cm-s-isotope span.cm-error{background:red;color:silver}.cm-s-isotope span.cm-bracket{color:#e0e0e0}.cm-s-isotope span.cm-tag{color:red}.cm-s-isotope span.cm-link{color:#c0f}.cm-s-isotope .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-isotope .CodeMirror-activeline-background{background:#202020}.cm-s-lesser-dark{line-height:1.3em}.cm-s-lesser-dark.CodeMirror{background:#262626;color:#ebefe7;text-shadow:0 -1px 1px #262626}.cm-s-lesser-dark div.CodeMirror-selected{background:#45443b}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line>span::selection,.cm-s-lesser-dark .CodeMirror-line>span>span::selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-lesser-dark pre{padding:0 8px}.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket{color:#7efc7e}.cm-s-lesser-dark .CodeMirror-gutters{background:#262626;border-right:1px solid #aaa}.cm-s-lesser-dark .CodeMirror-guttermarker{color:#599eff}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle,.cm-s-lesser-dark .CodeMirror-linenumber{color:#777}.cm-s-lesser-dark span.cm-header{color:#a0a}.cm-s-lesser-dark span.cm-quote{color:#090}.cm-s-lesser-dark span.cm-keyword{color:#599eff}.cm-s-lesser-dark span.cm-atom{color:#c2b470}.cm-s-lesser-dark span.cm-number{color:#b35e4d}.cm-s-lesser-dark span.cm-def{color:#fff}.cm-s-lesser-dark span.cm-variable{color:#d9bf8c}.cm-s-lesser-dark span.cm-variable-2{color:#669199}.cm-s-lesser-dark span.cm-type,.cm-s-lesser-dark span.cm-variable-3{color:#fff}.cm-s-lesser-dark span.cm-operator,.cm-s-lesser-dark span.cm-property{color:#92a75c}.cm-s-lesser-dark span.cm-comment{color:#666}.cm-s-lesser-dark span.cm-string{color:#bcd279}.cm-s-lesser-dark span.cm-string-2{color:#f50}.cm-s-lesser-dark span.cm-meta{color:#738c73}.cm-s-lesser-dark span.cm-qualifier{color:#555}.cm-s-lesser-dark span.cm-builtin{color:#ff9e59}.cm-s-lesser-dark span.cm-bracket{color:#ebefe7}.cm-s-lesser-dark span.cm-tag{color:#669199}.cm-s-lesser-dark span.cm-attribute{color:#00c}.cm-s-lesser-dark span.cm-hr{color:#999}.cm-s-lesser-dark span.cm-link{color:#00c}.cm-s-lesser-dark span.cm-error{color:#9d1e15}.cm-s-lesser-dark .CodeMirror-activeline-background{background:#3c3a3a}.cm-s-lesser-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-liquibyte.CodeMirror{background-color:#000;color:#fff;line-height:1.2em;font-size:1em}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight{text-decoration:underline;-webkit-text-decoration-color:#0f0;text-decoration-color:#0f0;-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.cm-s-liquibyte .cm-trailingspace{text-decoration:line-through;-webkit-text-decoration-color:red;text-decoration-color:red;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .cm-tab{text-decoration:line-through;-webkit-text-decoration-color:#404040;text-decoration-color:#404040;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .CodeMirror-gutters{background-color:#262626;border-right:1px solid #505050;padding-right:.8em}.cm-s-liquibyte .CodeMirror-gutter-elt div{font-size:1.2em}.cm-s-liquibyte .CodeMirror-linenumber{color:#606060;padding-left:0}.cm-s-liquibyte .CodeMirror-cursor{border-left:1px solid #eee}.cm-s-liquibyte span.cm-comment{color:green}.cm-s-liquibyte span.cm-def{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-keyword{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-builtin{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-variable{color:#5967ff;font-weight:700}.cm-s-liquibyte span.cm-string{color:#ff8000}.cm-s-liquibyte span.cm-number{color:#0f0;font-weight:700}.cm-s-liquibyte span.cm-atom{color:#bf3030;font-weight:700}.cm-s-liquibyte span.cm-variable-2{color:#007f7f;font-weight:700}.cm-s-liquibyte span.cm-type,.cm-s-liquibyte span.cm-variable-3{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-property{color:#999;font-weight:700}.cm-s-liquibyte span.cm-operator{color:#fff}.cm-s-liquibyte span.cm-meta{color:#0f0}.cm-s-liquibyte span.cm-qualifier{color:#fff700;font-weight:700}.cm-s-liquibyte span.cm-bracket{color:#cc7}.cm-s-liquibyte span.cm-tag{color:#ff0;font-weight:700}.cm-s-liquibyte span.cm-attribute{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-error{color:red}.cm-s-liquibyte div.CodeMirror-selected{background-color:rgba(255,0,0,.25)}.cm-s-liquibyte span.cm-compilation{background-color:hsla(0,0%,100%,.12)}.cm-s-liquibyte .CodeMirror-activeline-background{background-color:rgba(0,255,0,.15)}.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket{color:#0f0;font-weight:700}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket{color:red;font-weight:700}.CodeMirror-matchingtag{background-color:rgba(150,255,0,.3)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover{background-color:rgba(80,80,80,.7)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{background-color:rgba(80,80,80,.3);border:1px solid #404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{border-top:1px solid #404040;border-bottom:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div{border-left:1px solid #404040;border-right:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical{background-color:#262626}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal{background-color:#262626;border-top:1px solid #404040}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div{background-color:#404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div{border:1px solid #404040}.cm-s-material.CodeMirror{background-color:#263238;color:#e9eded}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-activeline-background{background:transparent}.cm-s-material .cm-keyword{color:#c792ea}.cm-s-material .cm-operator{color:#e9eded}.cm-s-material .cm-variable-2{color:#80cbc4}.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#82b1ff}.cm-s-material .cm-builtin{color:#decb6b}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#f77669}.cm-s-material .cm-def{color:#e9eded}.cm-s-material .cm-string{color:#c3e88d}.cm-s-material .cm-string-2{color:#80cbc4}.cm-s-material .cm-comment{color:#546e7a}.cm-s-material .cm-variable{color:#82b1ff}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80cbc4}.cm-s-material .cm-attribute{color:#ffcb6b}.cm-s-material .cm-property{color:#80cbae}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#decb6b}.cm-s-material .cm-tag{color:#ff5370}.cm-s-material .cm-error{color:#fff;background-color:#ec5f67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-mbo.CodeMirror{background:#2c2c2c;color:#ffffec}.cm-s-mbo div.CodeMirror-selected{background:#716c62}.cm-s-mbo .CodeMirror-line::selection,.cm-s-mbo .CodeMirror-line>span::selection,.cm-s-mbo .CodeMirror-line>span>span::selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-line::-moz-selection,.cm-s-mbo .CodeMirror-line>span::-moz-selection,.cm-s-mbo .CodeMirror-line>span>span::-moz-selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-gutters{background:#4e4e4e;border-right:0}.cm-s-mbo .CodeMirror-guttermarker{color:#fff}.cm-s-mbo .CodeMirror-guttermarker-subtle{color:grey}.cm-s-mbo .CodeMirror-linenumber{color:#dadada}.cm-s-mbo .CodeMirror-cursor{border-left:1px solid #ffffec}.cm-s-mbo span.cm-comment{color:#95958a}.cm-s-mbo span.cm-atom,.cm-s-mbo span.cm-number{color:#00a8c6}.cm-s-mbo span.cm-attribute,.cm-s-mbo span.cm-property{color:#9ddfe9}.cm-s-mbo span.cm-keyword{color:#ffb928}.cm-s-mbo span.cm-string{color:#ffcf6c}.cm-s-mbo span.cm-string.cm-property,.cm-s-mbo span.cm-variable{color:#ffffec}.cm-s-mbo span.cm-variable-2{color:#00a8c6}.cm-s-mbo span.cm-def{color:#ffffec}.cm-s-mbo span.cm-bracket{color:#fffffc;font-weight:700}.cm-s-mbo span.cm-tag{color:#9ddfe9}.cm-s-mbo span.cm-link{color:#f54b07}.cm-s-mbo span.cm-error{border-bottom:#636363;color:#ffffec}.cm-s-mbo span.cm-qualifier{color:#ffffec}.cm-s-mbo .CodeMirror-activeline-background{background:#494b41}.cm-s-mbo .CodeMirror-matchingbracket{color:#ffb928!important}.cm-s-mbo .CodeMirror-matchingtag{background:hsla(0,0%,100%,.37)}.cm-s-mdn-like.CodeMirror{color:#999;background-color:#fff}.cm-s-mdn-like div.CodeMirror-selected{background:#cfc}.cm-s-mdn-like .CodeMirror-line::selection,.cm-s-mdn-like .CodeMirror-line>span::selection,.cm-s-mdn-like .CodeMirror-line>span>span::selection{background:#cfc}.cm-s-mdn-like .CodeMirror-line::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span>span::-moz-selection{background:#cfc}.cm-s-mdn-like .CodeMirror-gutters{background:#f8f8f8;border-left:6px solid rgba(0,83,159,.65);color:#333}.cm-s-mdn-like .CodeMirror-linenumber{color:#aaa;padding-left:8px}.cm-s-mdn-like .CodeMirror-cursor{border-left:2px solid #222}.cm-s-mdn-like .cm-keyword{color:#6262ff}.cm-s-mdn-like .cm-atom{color:#f90}.cm-s-mdn-like .cm-number{color:#ca7841}.cm-s-mdn-like .cm-def{color:#8da6ce}.cm-s-mdn-like span.cm-tag,.cm-s-mdn-like span.cm-variable-2{color:#690}.cm-s-mdn-like .cm-variable,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-type,.cm-s-mdn-like span.cm-variable-3{color:#07a}.cm-s-mdn-like .cm-property{color:#905}.cm-s-mdn-like .cm-qualifier{color:#690}.cm-s-mdn-like .cm-operator{color:#cda869}.cm-s-mdn-like .cm-comment{color:#777;font-weight:400}.cm-s-mdn-like .cm-string{color:#07a;font-style:italic}.cm-s-mdn-like .cm-string-2{color:#bd6b18}.cm-s-mdn-like .cm-meta{color:#000}.cm-s-mdn-like .cm-builtin{color:#9b7536}.cm-s-mdn-like .cm-tag{color:#997643}.cm-s-mdn-like .cm-attribute{color:#d6bb6d}.cm-s-mdn-like .cm-header{color:#ff6400}.cm-s-mdn-like .cm-hr{color:#aeaeae}.cm-s-mdn-like .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-mdn-like .cm-error{border-bottom:1px solid red}div.cm-s-mdn-like .CodeMirror-activeline-background{background:#efefff}div.cm-s-mdn-like span.CodeMirror-matchingbracket{outline:1px solid grey;color:inherit}.cm-s-mdn-like.CodeMirror{background-image:url(data:image/png;base64,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)}.cm-s-midnight span.CodeMirror-matchhighlight{background:#494949}.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight{background:#314d67!important}.cm-s-midnight .CodeMirror-activeline-background{background:#253540}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight div.CodeMirror-selected{background:#314d67}.cm-s-midnight .CodeMirror-line::selection,.cm-s-midnight .CodeMirror-line>span::selection,.cm-s-midnight .CodeMirror-line>span>span::selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-line::-moz-selection,.cm-s-midnight .CodeMirror-line>span::-moz-selection,.cm-s-midnight .CodeMirror-line>span>span::-moz-selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-guttermarker{color:#fff}.cm-s-midnight .CodeMirror-guttermarker-subtle,.cm-s-midnight .CodeMirror-linenumber{color:#d0d0d0}.cm-s-midnight .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-midnight span.cm-comment{color:#428bdd}.cm-s-midnight span.cm-atom{color:#ae81ff}.cm-s-midnight span.cm-number{color:#d1edff}.cm-s-midnight span.cm-attribute,.cm-s-midnight span.cm-property{color:#a6e22e}.cm-s-midnight span.cm-keyword{color:#e83737}.cm-s-midnight span.cm-string{color:#1dc116}.cm-s-midnight span.cm-variable,.cm-s-midnight span.cm-variable-2{color:#ffaa3e}.cm-s-midnight span.cm-def{color:#4dd}.cm-s-midnight span.cm-bracket{color:#d1edff}.cm-s-midnight span.cm-tag{color:#449}.cm-s-midnight span.cm-link{color:#ae81ff}.cm-s-midnight span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-midnight .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-type,.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:blue}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-neo.CodeMirror{background-color:#fff;color:#2e383c;line-height:1.4375}.cm-s-neo .cm-comment{color:#75787b}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property{color:#1d75b3}.cm-s-neo .cm-atom,.cm-s-neo .cm-number{color:#75438a}.cm-s-neo .cm-node,.cm-s-neo .cm-tag{color:#9c3328}.cm-s-neo .cm-string{color:#b35e14}.cm-s-neo .cm-qualifier,.cm-s-neo .cm-variable{color:#047d65}.cm-s-neo pre{padding:0}.cm-s-neo .CodeMirror-gutters{border:none;border-right:10px solid transparent;background-color:transparent}.cm-s-neo .CodeMirror-linenumber{padding:0;color:#e0e2e5}.cm-s-neo .CodeMirror-guttermarker{color:#1d75b3}.cm-s-neo .CodeMirror-guttermarker-subtle{color:#e0e2e5}.cm-s-neo .CodeMirror-cursor{width:auto;border:0;background:hsla(223,4%,62%,.37);z-index:1}.cm-s-night.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-night div.CodeMirror-selected{background:#447}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line>span::selection,.cm-s-night .CodeMirror-line>span>span::selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line>span::-moz-selection,.cm-s-night .CodeMirror-line>span>span::-moz-selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-night .CodeMirror-guttermarker{color:#fff}.cm-s-night .CodeMirror-guttermarker-subtle{color:#bbb}.cm-s-night .CodeMirror-linenumber{color:#f8f8f8}.cm-s-night .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-night span.cm-comment{color:#8900d1}.cm-s-night span.cm-atom{color:#845dc4}.cm-s-night span.cm-attribute,.cm-s-night span.cm-number{color:#ffd500}.cm-s-night span.cm-keyword{color:#599eff}.cm-s-night span.cm-string{color:#37f14a}.cm-s-night span.cm-meta{color:#7678e2}.cm-s-night span.cm-tag,.cm-s-night span.cm-variable-2{color:#99b2ff}.cm-s-night span.cm-def,.cm-s-night span.cm-type,.cm-s-night span.cm-variable-3{color:#fff}.cm-s-night span.cm-bracket{color:#8da6ce}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special{color:#ff9e59}.cm-s-night span.cm-link{color:#845dc4}.cm-s-night span.cm-error{color:#9d1e15}.cm-s-night .CodeMirror-activeline-background{background:#1c005a}.cm-s-night .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-panda-syntax{background:#292a2b;color:#e6e6e6;line-height:1.5;font-family:Operator Mono,Source Sans Pro,Menlo,Monaco,Consolas,Courier New,monospace}.cm-s-panda-syntax .CodeMirror-cursor{border-color:#ff2c6d}.cm-s-panda-syntax .CodeMirror-activeline-background{background:rgba(99,123,156,.1)}.cm-s-panda-syntax .CodeMirror-selected{background:#fff}.cm-s-panda-syntax .cm-comment{font-style:italic;color:#676b79}.cm-s-panda-syntax .cm-operator{color:#f3f3f3}.cm-s-panda-syntax .cm-string{color:#19f9d8}.cm-s-panda-syntax .cm-string-2{color:#ffb86c}.cm-s-panda-syntax .cm-tag{color:#ff2c6d}.cm-s-panda-syntax .cm-meta{color:#b084eb}.cm-s-panda-syntax .cm-number{color:#ffb86c}.cm-s-panda-syntax .cm-atom{color:#ff2c6d}.cm-s-panda-syntax .cm-keyword{color:#ff75b5}.cm-s-panda-syntax .cm-variable{color:#ffb86c}.cm-s-panda-syntax .cm-type,.cm-s-panda-syntax .cm-variable-2,.cm-s-panda-syntax .cm-variable-3{color:#ff9ac1}.cm-s-panda-syntax .cm-def{color:#e6e6e6}.cm-s-panda-syntax .cm-property{color:#f3f3f3}.cm-s-panda-syntax .cm-attribute,.cm-s-panda-syntax .cm-unit{color:#ffb86c}.cm-s-panda-syntax .CodeMirror-matchingbracket{border-bottom:1px dotted #19f9d8;padding-bottom:2px;color:#e6e6e6}.cm-s-panda-syntax .CodeMirror-gutters{background:#292a2b;border-right-color:hsla(0,0%,100%,.1)}.cm-s-panda-syntax .CodeMirror-linenumber{color:#e6e6e6;opacity:.6}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark div.CodeMirror-selected{background:#41323f}.cm-s-paraiso-dark .CodeMirror-line::selection,.cm-s-paraiso-dark .CodeMirror-line>span::selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-line::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-guttermarker{color:#ef6155}.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle,.cm-s-paraiso-dark .CodeMirror-linenumber{color:#776e71}.cm-s-paraiso-dark .CodeMirror-cursor{border-left:1px solid #8d8687}.cm-s-paraiso-dark span.cm-comment{color:#e96ba8}.cm-s-paraiso-dark span.cm-atom,.cm-s-paraiso-dark span.cm-number{color:#815ba4}.cm-s-paraiso-dark span.cm-attribute,.cm-s-paraiso-dark span.cm-property{color:#48b685}.cm-s-paraiso-dark span.cm-keyword{color:#ef6155}.cm-s-paraiso-dark span.cm-string{color:#fec418}.cm-s-paraiso-dark span.cm-variable{color:#48b685}.cm-s-paraiso-dark span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-dark span.cm-def{color:#f99b15}.cm-s-paraiso-dark span.cm-bracket{color:#b9b6b0}.cm-s-paraiso-dark span.cm-tag{color:#ef6155}.cm-s-paraiso-dark span.cm-link{color:#815ba4}.cm-s-paraiso-dark span.cm-error{background:#ef6155;color:#8d8687}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-paraiso-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-paraiso-light.CodeMirror{background:#e7e9db;color:#41323f}.cm-s-paraiso-light div.CodeMirror-selected{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::selection,.cm-s-paraiso-light .CodeMirror-line>span::selection,.cm-s-paraiso-light .CodeMirror-line>span>span::selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span>span::-moz-selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-gutters{background:#e7e9db;border-right:0}.cm-s-paraiso-light .CodeMirror-guttermarker{color:#000}.cm-s-paraiso-light .CodeMirror-guttermarker-subtle,.cm-s-paraiso-light .CodeMirror-linenumber{color:#8d8687}.cm-s-paraiso-light .CodeMirror-cursor{border-left:1px solid #776e71}.cm-s-paraiso-light span.cm-comment{color:#e96ba8}.cm-s-paraiso-light span.cm-atom,.cm-s-paraiso-light span.cm-number{color:#815ba4}.cm-s-paraiso-light span.cm-attribute,.cm-s-paraiso-light span.cm-property{color:#48b685}.cm-s-paraiso-light span.cm-keyword{color:#ef6155}.cm-s-paraiso-light span.cm-string{color:#fec418}.cm-s-paraiso-light span.cm-variable{color:#48b685}.cm-s-paraiso-light span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-light span.cm-def{color:#f99b15}.cm-s-paraiso-light span.cm-bracket{color:#41323f}.cm-s-paraiso-light span.cm-tag{color:#ef6155}.cm-s-paraiso-light span.cm-link{color:#815ba4}.cm-s-paraiso-light span.cm-error{background:#ef6155;color:#776e71}.cm-s-paraiso-light .CodeMirror-activeline-background{background:#cfd1c4}.cm-s-paraiso-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-pastel-on-dark.CodeMirror{background:#2c2827;color:#8f938f;line-height:1.5}.cm-s-pastel-on-dark div.CodeMirror-selected{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line>span::selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-gutters{background:#34302f;border-right:0;padding:0 3px}.cm-s-pastel-on-dark .CodeMirror-guttermarker{color:#fff}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle,.cm-s-pastel-on-dark .CodeMirror-linenumber{color:#8f938f}.cm-s-pastel-on-dark .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-pastel-on-dark span.cm-comment{color:#a6c6ff}.cm-s-pastel-on-dark span.cm-atom{color:#de8e30}.cm-s-pastel-on-dark span.cm-number{color:#ccc}.cm-s-pastel-on-dark span.cm-property{color:#8f938f}.cm-s-pastel-on-dark span.cm-attribute{color:#a6e22e}.cm-s-pastel-on-dark span.cm-keyword{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-string{color:#66a968}.cm-s-pastel-on-dark span.cm-variable{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-variable-2{color:#bebf55}.cm-s-pastel-on-dark span.cm-type,.cm-s-pastel-on-dark span.cm-variable-3{color:#de8e30}.cm-s-pastel-on-dark span.cm-def{color:#757ad8}.cm-s-pastel-on-dark span.cm-bracket{color:#f8f8f2}.cm-s-pastel-on-dark span.cm-tag{color:#c1c144}.cm-s-pastel-on-dark span.cm-link{color:#ae81ff}.cm-s-pastel-on-dark span.cm-builtin,.cm-s-pastel-on-dark span.cm-qualifier{color:#c1c144}.cm-s-pastel-on-dark span.cm-error{background:#757ad8;color:#f8f8f0}.cm-s-pastel-on-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.031)}.cm-s-pastel-on-dark .CodeMirror-matchingbracket{border:1px solid hsla(0,0%,100%,.25);color:#8f938f!important;margin:-1px -1px 0}.cm-s-railscasts.CodeMirror{background:#2b2b2b;color:#f4f1ed}.cm-s-railscasts div.CodeMirror-selected{background:#272935!important}.cm-s-railscasts .CodeMirror-gutters{background:#2b2b2b;border-right:0}.cm-s-railscasts .CodeMirror-linenumber{color:#5a647e}.cm-s-railscasts .CodeMirror-cursor{border-left:1px solid #d4cfc9!important}.cm-s-railscasts span.cm-comment{color:#bc9458}.cm-s-railscasts span.cm-atom,.cm-s-railscasts span.cm-number{color:#b6b3eb}.cm-s-railscasts span.cm-attribute,.cm-s-railscasts span.cm-property{color:#a5c261}.cm-s-railscasts span.cm-keyword{color:#da4939}.cm-s-railscasts span.cm-string{color:#ffc66d}.cm-s-railscasts span.cm-variable{color:#a5c261}.cm-s-railscasts span.cm-variable-2{color:#6d9cbe}.cm-s-railscasts span.cm-def{color:#cc7833}.cm-s-railscasts span.cm-error{background:#da4939;color:#d4cfc9}.cm-s-railscasts span.cm-bracket{color:#f4f1ed}.cm-s-railscasts span.cm-tag{color:#da4939}.cm-s-railscasts span.cm-link{color:#b6b3eb}.cm-s-railscasts .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-railscasts .CodeMirror-activeline-background{background:#303040}.cm-s-rubyblue.CodeMirror{background:#112435;color:#fff}.cm-s-rubyblue div.CodeMirror-selected{background:#38566f}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line>span::selection,.cm-s-rubyblue .CodeMirror-line>span>span::selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span>span::-moz-selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-gutters{background:#1f4661;border-right:7px solid #3e7087}.cm-s-rubyblue .CodeMirror-guttermarker{color:#fff}.cm-s-rubyblue .CodeMirror-guttermarker-subtle{color:#3e7087}.cm-s-rubyblue .CodeMirror-linenumber{color:#fff}.cm-s-rubyblue .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-rubyblue span.cm-comment{color:#999;font-style:italic;line-height:1em}.cm-s-rubyblue span.cm-atom{color:#f4c20b}.cm-s-rubyblue span.cm-attribute,.cm-s-rubyblue span.cm-number{color:#82c6e0}.cm-s-rubyblue span.cm-keyword{color:#f0f}.cm-s-rubyblue span.cm-string{color:#f08047}.cm-s-rubyblue span.cm-meta{color:#f0f}.cm-s-rubyblue span.cm-tag,.cm-s-rubyblue span.cm-variable-2{color:#7bd827}.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-type,.cm-s-rubyblue span.cm-variable-3{color:#fff}.cm-s-rubyblue span.cm-bracket{color:#f0f}.cm-s-rubyblue span.cm-link{color:#f4c20b}.cm-s-rubyblue span.CodeMirror-matchingbracket{color:#f0f!important}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special{color:#ff9d00}.cm-s-rubyblue span.cm-error{color:#af2018}.cm-s-rubyblue .CodeMirror-activeline-background{background:#173047}.cm-s-seti.CodeMirror{background-color:#151718!important;color:#cfd2d1!important;border:none}.cm-s-seti .CodeMirror-gutters{color:#404b53;background-color:#0e1112;border:none}.cm-s-seti .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-seti .CodeMirror-linenumber{color:#6d8a88}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line>span::selection,.cm-s-seti .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line>span::-moz-selection,.cm-s-seti .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-seti span.cm-comment{color:#41535b}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2{color:#55b5db}.cm-s-seti span.cm-number{color:#cd3f45}.cm-s-seti span.cm-variable{color:#55b5db}.cm-s-seti span.cm-variable-2{color:#a074c4}.cm-s-seti span.cm-def{color:#55b5db}.cm-s-seti span.cm-keyword{color:#ff79c6}.cm-s-seti span.cm-operator{color:#9fca56}.cm-s-seti span.cm-keyword{color:#e6cd69}.cm-s-seti span.cm-atom{color:#cd3f45}.cm-s-seti span.cm-meta,.cm-s-seti span.cm-tag{color:#55b5db}.cm-s-seti span.cm-attribute,.cm-s-seti span.cm-qualifier{color:#9fca56}.cm-s-seti span.cm-property{color:#a074c4}.cm-s-seti span.cm-builtin,.cm-s-seti span.cm-type,.cm-s-seti span.cm-variable-3{color:#9fca56}.cm-s-seti .CodeMirror-activeline-background{background:#101213}.cm-s-seti .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.solarized.base03{color:#002b36}.solarized.base02{color:#073642}.solarized.base01{color:#586e75}.solarized.base00{color:#657b83}.solarized.base0{color:#839496}.solarized.base1{color:#93a1a1}.solarized.base2{color:#eee8d5}.solarized.base3{color:#fdf6e3}.solarized.solar-yellow{color:#b58900}.solarized.solar-orange{color:#cb4b16}.solarized.solar-red{color:#dc322f}.solarized.solar-magenta{color:#d33682}.solarized.solar-violet{color:#6c71c4}.solarized.solar-blue{color:#268bd2}.solarized.solar-cyan{color:#2aa198}.solarized.solar-green{color:#859900}.cm-s-solarized{line-height:1.45em;color-profile:sRGB;rendering-intent:auto}.cm-s-solarized.cm-s-dark{color:#839496;background-color:#002b36;text-shadow:#002b36 0 1px}.cm-s-solarized.cm-s-light{background-color:#fdf6e3;color:#657b83;text-shadow:#eee8d5 0 1px}.cm-s-solarized .CodeMirror-widget{text-shadow:none}.cm-s-solarized .cm-header{color:#586e75}.cm-s-solarized .cm-quote{color:#93a1a1}.cm-s-solarized .cm-keyword{color:#cb4b16}.cm-s-solarized .cm-atom,.cm-s-solarized .cm-number{color:#d33682}.cm-s-solarized .cm-def{color:#2aa198}.cm-s-solarized .cm-variable{color:#839496}.cm-s-solarized .cm-variable-2{color:#b58900}.cm-s-solarized .cm-type,.cm-s-solarized .cm-variable-3{color:#6c71c4}.cm-s-solarized .cm-property{color:#2aa198}.cm-s-solarized .cm-operator{color:#6c71c4}.cm-s-solarized .cm-comment{color:#586e75;font-style:italic}.cm-s-solarized .cm-string{color:#859900}.cm-s-solarized .cm-string-2{color:#b58900}.cm-s-solarized .cm-meta{color:#859900}.cm-s-solarized .cm-qualifier{color:#b58900}.cm-s-solarized .cm-builtin{color:#d33682}.cm-s-solarized .cm-bracket{color:#cb4b16}.cm-s-solarized .CodeMirror-matchingbracket{color:#859900}.cm-s-solarized .CodeMirror-nonmatchingbracket{color:#dc322f}.cm-s-solarized .cm-tag{color:#93a1a1}.cm-s-solarized .cm-attribute{color:#2aa198}.cm-s-solarized .cm-hr{color:transparent;border-top:1px solid #586e75;display:block}.cm-s-solarized .cm-link{color:#93a1a1;cursor:pointer}.cm-s-solarized .cm-special{color:#6c71c4}.cm-s-solarized .cm-em{color:#999;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-solarized .cm-strong{color:#eee}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar{color:#586e75;border-bottom:1px dotted #dc322f}.cm-s-solarized.cm-s-dark div.CodeMirror-selected{background:#073642}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-dark.CodeMirror ::selection{background:rgba(7,54,66,.99)}.cm-s-dark .CodeMirror-line>span::-moz-selection,.cm-s-dark .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-light div.CodeMirror-selected{background:#eee8d5}.cm-s-light .CodeMirror-line>span::-moz-selection,.cm-s-light .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-light .CodeMirror-line>span::selection,.cm-s-light .CodeMirror-line>span>span::selection,.cm-s-solarized.cm-s-light .CodeMirror-line::selection{background:#eee8d5}.cm-s-ligh .CodeMirror-line>span::-moz-selection,.cm-s-ligh .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-solarized.CodeMirror{box-shadow:inset 7px 0 12px -6px #000}.cm-s-solarized .CodeMirror-gutters{border-right:0}.cm-s-solarized.cm-s-dark .CodeMirror-gutters{background-color:#073642}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber{color:#586e75;text-shadow:#021014 0 -1px}.cm-s-solarized.cm-s-light .CodeMirror-gutters{background-color:#eee8d5}.cm-s-solarized.cm-s-light .CodeMirror-linenumber{color:#839496}.cm-s-solarized .CodeMirror-linenumber{padding:0 5px}.cm-s-solarized .CodeMirror-guttermarker-subtle{color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker{color:#ddd}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker{color:#cb4b16}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized .CodeMirror-cursor{border-left:1px solid #819090}.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor{background:#7e7}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor{background-color:#7e7}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor{background:#586e75}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor{background-color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.06)}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background{background:rgba(0,0,0,.06)}.cm-s-the-matrix.CodeMirror{background:#000;color:#0f0}.cm-s-the-matrix div.CodeMirror-selected{background:#2d2d2d}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line>span::selection,.cm-s-the-matrix .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-gutters{background:#060;border-right:2px solid #0f0}.cm-s-the-matrix .CodeMirror-guttermarker{color:#0f0}.cm-s-the-matrix .CodeMirror-guttermarker-subtle,.cm-s-the-matrix .CodeMirror-linenumber{color:#fff}.cm-s-the-matrix .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-the-matrix span.cm-keyword{color:#008803;font-weight:700}.cm-s-the-matrix span.cm-atom{color:#3ff}.cm-s-the-matrix span.cm-number{color:#ffb94f}.cm-s-the-matrix span.cm-def{color:#99c}.cm-s-the-matrix span.cm-variable{color:#f6c}.cm-s-the-matrix span.cm-variable-2{color:#c6f}.cm-s-the-matrix span.cm-type,.cm-s-the-matrix span.cm-variable-3{color:#96f}.cm-s-the-matrix span.cm-property{color:#62ffa0}.cm-s-the-matrix span.cm-operator{color:#999}.cm-s-the-matrix span.cm-comment{color:#ccc}.cm-s-the-matrix span.cm-string{color:#39c}.cm-s-the-matrix span.cm-meta{color:#c9f}.cm-s-the-matrix span.cm-qualifier{color:#fff700}.cm-s-the-matrix span.cm-builtin{color:#30a}.cm-s-the-matrix span.cm-bracket{color:#cc7}.cm-s-the-matrix span.cm-tag{color:#ffbd40}.cm-s-the-matrix span.cm-attribute{color:#fff700}.cm-s-the-matrix span.cm-error{color:red}.cm-s-the-matrix .CodeMirror-activeline-background{background:#040}.cm-s-tomorrow-night-bright.CodeMirror{background:#000;color:#eaeaea}.cm-s-tomorrow-night-bright div.CodeMirror-selected{background:#424242}.cm-s-tomorrow-night-bright .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker{color:#e78c45}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-bright .CodeMirror-linenumber{color:#424242}.cm-s-tomorrow-night-bright .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-bright span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-bright span.cm-atom,.cm-s-tomorrow-night-bright span.cm-number{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-attribute,.cm-s-tomorrow-night-bright span.cm-property{color:#9c9}.cm-s-tomorrow-night-bright span.cm-keyword{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-string{color:#e7c547}.cm-s-tomorrow-night-bright span.cm-variable{color:#b9ca4a}.cm-s-tomorrow-night-bright span.cm-variable-2{color:#7aa6da}.cm-s-tomorrow-night-bright span.cm-def{color:#e78c45}.cm-s-tomorrow-night-bright span.cm-bracket{color:#eaeaea}.cm-s-tomorrow-night-bright span.cm-tag{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-link{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-error{background:#d54e53;color:#6a6a6a}.cm-s-tomorrow-night-bright .CodeMirror-activeline-background{background:#2a2a2a}.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-tomorrow-night-eighties.CodeMirror{background:#000;color:#ccc}.cm-s-tomorrow-night-eighties div.CodeMirror-selected{background:#2d2d2d}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker{color:#f2777a}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber{color:#515151}.cm-s-tomorrow-night-eighties .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-eighties span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-eighties span.cm-atom,.cm-s-tomorrow-night-eighties span.cm-number{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-attribute,.cm-s-tomorrow-night-eighties span.cm-property{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-keyword{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-string{color:#fc6}.cm-s-tomorrow-night-eighties span.cm-variable{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-variable-2{color:#69c}.cm-s-tomorrow-night-eighties span.cm-def{color:#f99157}.cm-s-tomorrow-night-eighties span.cm-bracket{color:#ccc}.cm-s-tomorrow-night-eighties span.cm-tag{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-link{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-error{background:#f2777a;color:#6a6a6a}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background{background:#343600}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#219}.cm-s-ttcn .cm-attribute{color:#00c}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{font-weight:700}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#006400}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-type,.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.cm-s-twilight.CodeMirror{background:#141414;color:#f7f7f7}.cm-s-twilight div.CodeMirror-selected{background:#323232}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line>span::selection,.cm-s-twilight .CodeMirror-line>span>span::selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line>span::-moz-selection,.cm-s-twilight .CodeMirror-line>span>span::-moz-selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-gutters{background:#222;border-right:1px solid #aaa}.cm-s-twilight .CodeMirror-guttermarker{color:#fff}.cm-s-twilight .CodeMirror-guttermarker-subtle,.cm-s-twilight .CodeMirror-linenumber{color:#aaa}.cm-s-twilight .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-twilight .cm-keyword{color:#f9ee98}.cm-s-twilight .cm-atom{color:#fc0}.cm-s-twilight .cm-number{color:#ca7841}.cm-s-twilight .cm-def{color:#8da6ce}.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-tag,.cm-s-twilight span.cm-type,.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-variable-3{color:#607392}.cm-s-twilight .cm-operator{color:#cda869}.cm-s-twilight .cm-comment{color:#777;font-style:italic;font-weight:400}.cm-s-twilight .cm-string{color:#8f9d6a;font-style:italic}.cm-s-twilight .cm-string-2{color:#bd6b18}.cm-s-twilight .cm-meta{background-color:#141414;color:#f7f7f7}.cm-s-twilight .cm-builtin{color:#cda869}.cm-s-twilight .cm-tag{color:#997643}.cm-s-twilight .cm-attribute{color:#d6bb6d}.cm-s-twilight .cm-header{color:#ff6400}.cm-s-twilight .cm-hr{color:#aeaeae}.cm-s-twilight .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-twilight .cm-error{border-bottom:1px solid red}.cm-s-twilight .CodeMirror-activeline-background{background:#27282e}.cm-s-twilight .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-vibrant-ink.CodeMirror{background:#000;color:#fff}.cm-s-vibrant-ink div.CodeMirror-selected{background:#35493c}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line>span::selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::-moz-selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-vibrant-ink .CodeMirror-guttermarker{color:#fff}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle,.cm-s-vibrant-ink .CodeMirror-linenumber{color:#d0d0d0}.cm-s-vibrant-ink .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-vibrant-ink .cm-keyword{color:#cc7832}.cm-s-vibrant-ink .cm-atom{color:#fc0}.cm-s-vibrant-ink .cm-number{color:#ffee98}.cm-s-vibrant-ink .cm-def{color:#8da6ce}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-tag,.cm-s-vibrant span.cm-type{color:#ffc66d}.cm-s-vibrant-ink .cm-operator{color:#888}.cm-s-vibrant-ink .cm-comment{color:gray;font-weight:700}.cm-s-vibrant-ink .cm-string{color:#a5c25c}.cm-s-vibrant-ink .cm-string-2{color:red}.cm-s-vibrant-ink .cm-meta{color:#d8fa3c}.cm-s-vibrant-ink .cm-attribute,.cm-s-vibrant-ink .cm-builtin,.cm-s-vibrant-ink .cm-tag{color:#8da6ce}.cm-s-vibrant-ink .cm-header{color:#ff6400}.cm-s-vibrant-ink .cm-hr{color:#aeaeae}.cm-s-vibrant-ink .cm-link{color:blue}.cm-s-vibrant-ink .cm-error{border-bottom:1px solid red}.cm-s-vibrant-ink .CodeMirror-activeline-background{background:#27282e}.cm-s-vibrant-ink .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-dark.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-xq-dark div.CodeMirror-selected{background:#27007a}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line>span::selection,.cm-s-xq-dark .CodeMirror-line>span>span::selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-xq-dark .CodeMirror-guttermarker{color:#ffbd40}.cm-s-xq-dark .CodeMirror-guttermarker-subtle,.cm-s-xq-dark .CodeMirror-linenumber{color:#f8f8f8}.cm-s-xq-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-xq-dark span.cm-keyword{color:#ffbd40}.cm-s-xq-dark span.cm-atom{color:#6c8cd5}.cm-s-xq-dark span.cm-number{color:#164}.cm-s-xq-dark span.cm-def{color:#fff;text-decoration:underline}.cm-s-xq-dark span.cm-variable{color:#fff}.cm-s-xq-dark span.cm-variable-2{color:#eee}.cm-s-xq-dark span.cm-type,.cm-s-xq-dark span.cm-variable-3{color:#ddd}.cm-s-xq-dark span.cm-comment{color:gray}.cm-s-xq-dark span.cm-string{color:#9fee00}.cm-s-xq-dark span.cm-meta{color:#ff0}.cm-s-xq-dark span.cm-qualifier{color:#fff700}.cm-s-xq-dark span.cm-builtin{color:#30a}.cm-s-xq-dark span.cm-bracket{color:#cc7}.cm-s-xq-dark span.cm-tag{color:#ffbd40}.cm-s-xq-dark span.cm-attribute{color:#fff700}.cm-s-xq-dark span.cm-error{color:red}.cm-s-xq-dark .CodeMirror-activeline-background{background:#27282e}.cm-s-xq-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-light span.cm-keyword{line-height:1em;font-weight:700;color:#5a5cad}.cm-s-xq-light span.cm-atom{color:#6c8cd5}.cm-s-xq-light span.cm-number{color:#164}.cm-s-xq-light span.cm-def{text-decoration:underline}.cm-s-xq-light span.cm-type,.cm-s-xq-light span.cm-variable,.cm-s-xq-light span.cm-variable-2,.cm-s-xq-light span.cm-variable-3{color:#000}.cm-s-xq-light span.cm-comment{color:#0080ff;font-style:italic}.cm-s-xq-light span.cm-string{color:red}.cm-s-xq-light span.cm-meta{color:#ff0}.cm-s-xq-light span.cm-qualifier{color:grey}.cm-s-xq-light span.cm-builtin{color:#7ea656}.cm-s-xq-light span.cm-bracket{color:#cc7}.cm-s-xq-light span.cm-tag{color:#3f7f7f}.cm-s-xq-light span.cm-attribute{color:#7f007f}.cm-s-xq-light span.cm-error{color:red}.cm-s-xq-light .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-xq-light .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important;background:#ff0}.cm-s-yeti.CodeMirror{background-color:#eceae8!important;color:#d1c9c0!important;border:none}.cm-s-yeti .CodeMirror-gutters{color:#adaba6;background-color:#e5e1db;border:none}.cm-s-yeti .CodeMirror-cursor{border-left:thin solid #d1c9c0}.cm-s-yeti .CodeMirror-linenumber{color:#adaba6}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line>span::selection,.cm-s-yeti .CodeMirror-line>span>span::selection{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line>span::-moz-selection,.cm-s-yeti .CodeMirror-line>span>span::-moz-selection{background:#dcd8d2}.cm-s-yeti span.cm-comment{color:#d4c8be}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2{color:#96c0d8}.cm-s-yeti span.cm-number{color:#a074c4}.cm-s-yeti span.cm-variable{color:#55b5db}.cm-s-yeti span.cm-variable-2{color:#a074c4}.cm-s-yeti span.cm-def{color:#55b5db}.cm-s-yeti span.cm-keyword,.cm-s-yeti span.cm-operator{color:#9fb96e}.cm-s-yeti span.cm-atom{color:#a074c4}.cm-s-yeti span.cm-meta,.cm-s-yeti span.cm-tag{color:#96c0d8}.cm-s-yeti span.cm-attribute{color:#9fb96e}.cm-s-yeti span.cm-qualifier{color:#96c0d8}.cm-s-yeti span.cm-builtin,.cm-s-yeti span.cm-property{color:#a074c4}.cm-s-yeti span.cm-type,.cm-s-yeti span.cm-variable-3{color:#96c0d8}.cm-s-yeti .CodeMirror-activeline-background{background:#e7e4e0}.cm-s-yeti .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-zenburn .CodeMirror-gutters{background:#3f3f3f!important}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{color:#999}.cm-s-zenburn .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-zenburn{background-color:#3f3f3f;color:#dcdccc}.cm-s-zenburn span.cm-builtin{color:#dcdccc;font-weight:700}.cm-s-zenburn span.cm-comment{color:#7f9f7f}.cm-s-zenburn span.cm-keyword{color:#f0dfaf;font-weight:700}.cm-s-zenburn span.cm-atom{color:#bfebbf}.cm-s-zenburn span.cm-def{color:#dcdccc}.cm-s-zenburn span.cm-variable{color:#dfaf8f}.cm-s-zenburn span.cm-variable-2{color:#dcdccc}.cm-s-zenburn span.cm-string,.cm-s-zenburn span.cm-string-2{color:#cc9393}.cm-s-zenburn span.cm-number{color:#dcdccc}.cm-s-zenburn span.cm-tag{color:#93e0e3}.cm-s-zenburn span.cm-attribute,.cm-s-zenburn span.cm-property{color:#dfaf8f}.cm-s-zenburn span.cm-qualifier{color:#7cb8bb}.cm-s-zenburn span.cm-meta{color:#f0dfaf}.cm-s-zenburn span.cm-header,.cm-s-zenburn span.cm-operator{color:#f0efd0}.cm-s-zenburn span.CodeMirror-matchingbracket{box-sizing:border-box;background:transparent;border-bottom:1px solid}.cm-s-zenburn span.CodeMirror-nonmatchingbracket{border-bottom:1px solid;background:none}.cm-s-zenburn .CodeMirror-activeline,.cm-s-zenburn .CodeMirror-activeline-background{background:#000}.cm-s-zenburn div.CodeMirror-selected{background:#545454}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected{background:#4f4f4f}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror{font:inherit}.CodeMirror-scroll{font-family:Menlo Regular,Consolas,Monaco,monospace;line-height:150%;position:relative}.CodeMirror-settings{color:#444;height:0;width:100%;z-index:9;text-shadow:none}.CodeMirror-settings__toggle{border-radius:3px;z-index:11;box-sizing:border-box;position:absolute;top:0;right:0;margin:6px;display:block;cursor:pointer}.CodeMirror-settings__toggle:after{content:"\f111";font-family:dashicons;line-height:1em;display:inline-block}.CodeMirror-settings__toggle:before{border:1px solid #ddd;border-radius:3px;z-index:-1;content:"";background-color:#fff;transition:.25s ease;transition-property:transform opacity;position:absolute;top:0;right:0;bottom:0;left:0}.CodeMirror-settings__wrapper{pointer-events:none;visibility:hidden}.CodeMirror-settings__body,.CodeMirror-settings__docked{pointer-events:auto;visibility:visible}.CodeMirror-settings__wrapper{position:absolute;width:calc(100% - 12px);max-height:calc(100% - 12px);top:0;margin:6px;box-sizing:border-box;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.CodeMirror-settings__docked{-ms-flex:0 0 auto;flex:0 0 auto;z-index:10;background-color:#fff;box-sizing:border-box}.CodeMirror-settings__header{border-top-left-radius:3px;border-top-right-radius:3px;border:1px solid #ddd;padding:4px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.CodeMirror-settings__body{-ms-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box;padding:1px 12px;overflow-y:auto;background-color:hsla(0,0%,100%,.93);border-left:1px solid #ddd;border-right:1px solid #ddd}.CodeMirror-settings__footer{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:1px solid #ddd;padding:6px 12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:justify;justify-content:space-between}.CodeMirror-settings-advanced__description{margin-left:10px;opacity:.6}td.CodeMirror-settings__heading{padding:0;padding-bottom:12px}.CodeMirror-settings__foot-content{margin:0}.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__header,.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__wrapper{transition:.25s ease;transition-property:opacity,transform;transform-origin:top right}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.closed .CodeMirror-settings__toggle{opacity:.5}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before,.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover{opacity:1}.CodeMirror-settings.closed .CodeMirror-settings__wrapper{opacity:0;transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.open .CodeMirror-settings__toggle:after{content:"\f158"}.CodeMirror-settings.open .CodeMirror-settings__toggle:before{opacity:0}.CodeMirror-settings.open .CodeMirror-settings__wrapper{opacity:1;transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before{content:"less"}.CodeMirror-settings.open-advanced .CodeMirror-settings__header{border-bottom-left-radius:0;border-bottom-right-radius:0}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer{visibility:visible;opacity:1;transform:translate(0);transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{transform:none!important}.CodeMirror-settings__button input,.CodeMirror-settings__button select{display:block;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;margin:0;padding:0;border:none;height:auto;font-size:0;line-height:0;height:100%!important;width:100%!important;background:none;opacity:0}.CodeMirror-settings__button option{font-size:12px}.CodeMirror-settings__button--select:after{content:"\f140";font-family:dashicons;vertical-align:top;display:inline-block;margin:0 -5px -4px}.CodeMirror-settings__toggle-advanced{cursor:pointer;display:inline-block;line-height:25px;padding:0 4px;vertical-align:middle}.CodeMirror-dialog{position:absolute;left:0;right:0;top:0;width:calc(100% - 12px);margin:6px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:12;padding-left:12px;border-radius:3px;border:1px solid #ddd;color:#444;background-color:#fff}.CodeMirror-dialog:after{position:absolute;right:0;top:0;bottom:0;content:"\f158";font-family:dashicons;line-height:1em;cursor:pointer}.CodeMirror-dialog input{border:none;outline:none;background:rgba(0,0,0,.05);color:inherit;font-family:monospace;margin:-1px 12px;padding:0 12px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;-ms-flex:1 1 auto;flex:1 1 auto}.CodeMirror-dialog input,.CodeMirror-dialog input:focus{box-shadow:none}.CodeMirror-dialog button{margin:0 2px!important}.CodeMirror-dialog button:first-of-type{margin-left:12px!important}.CodeMirror-dialog span{-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none!important}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6;transition:opacity .1s linear;opacity:.5}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover{opacity:1}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active{opacity:.75}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:transparent!important}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after{content:"";background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;position:absolute}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:8px;margin-bottom:6px}.CodeMirror-overlayscroll-horizontal div{top:0;bottom:0}.CodeMirror-overlayscroll-horizontal div:after{top:0;bottom:0;left:6px;right:6px}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:8px;margin-right:6px}.CodeMirror-overlayscroll-vertical div{left:0;right:0}.CodeMirror-overlayscroll-vertical div:after{left:0;right:0;bottom:6px}.wp-editor-expand .CodeMirror{min-height:300px}.wp-editor-expand .CodeMirror .CodeMirror-scroll{padding-bottom:330px!important;margin-bottom:-330px!important}.CodeMirror-mirrored{display:block!important;position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:-999!important;opacity:0!important}#template .CodeMirror div{margin-right:0}#template .CodeMirror p{width:auto}.CodeMirror-vscrollbar{display:none!important}.CodeMirror-scroll{margin-right:-30px!important}.CodeMirror-settings__toggle{margin:6px!important}.heshFullscreen{z-index:99999;position:fixed!important;top:0;left:0;right:0;bottom:0;height:100%;background:#fff;padding:2% 2% 0}.heshFullscreen .CodeMirror{border:1px solid #ccc;border-radius:0 0 4px 4px;height:85%!important}.heshFullscreen #ed_toolbar{border:1px solid #ccc;border-bottom:0;border-radius:4px 4px 0 0}.heshFullscreen #cm_content_fullscreen:before{content:"\f506"}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag{background-color:rgba(0,255,175,.2)}#cm_content_fullscreen{display:inline-block}.wp-editor-expand #cm_content_fullscreen{display:none}.hesh-content-resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;z-index:8;margin:1px!important}#ed_toolbar{z-index:10}@media screen and (min-width:782px){.CodeMirror-settings__toggle{height:35px;width:35px}.CodeMirror-settings__toggle:after{font-size:20px;margin:7px}.CodeMirror-settings__docked{min-height:35px}.CodeMirror-settings__header{padding-right:35px}.CodeMirror-settings__button--select:after{font-size:16px;margin-top:0}.CodeMirror-dialog{height:35px;padding-right:35px}.CodeMirror-dialog:after{font-size:20px;margin:7px}.CodeMirror-overlayscroll-vertical div:after{top:47px}#template .CodeMirror{margin-right:20px}}@media screen and (max-width:781px){.CodeMirror-settings__toggle{height:44px;width:44px}.CodeMirror-settings__toggle:after{font-size:28px;margin:8px}.CodeMirror-settings__docked{min-height:44px}.CodeMirror-settings__header{padding-right:44px}.CodeMirror-settings__button--select:after{font-size:20px;margin-top:-2px}.CodeMirror-dialog{height:44px;padding-right:44px}.CodeMirror-dialog:after{font-size:28px;margin:8px}.CodeMirror-overlayscroll-vertical div:after{top:56px}#template .CodeMirror{margin-right:0}}@media screen and (max-height:550px){.heshFullscreen .CodeMirror{height:75%!important}}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}@keyframes a{50%{background-color:transparent}}
|
dist/hesh.min.js
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function l(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function s(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||r===!1&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function f(e,t,r,n,i){null==t&&(t=e.search(/[^\s\u00a0]/))==-1&&(t=e.length);for(var o=n||0,a=i||0;;){var l=e.indexOf("\t",o);if(l<0||l>=t)return a+(t-o);a+=l-o,a+=r-a%r,o=l+1}}function d(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function h(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);o==-1&&(o=e.length);var a=o-n;if(o==e.length||i+a>=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;Ma.length<=e;)Ma.push(m(Ma)+" ");return Ma[e]}function m(e){return e[e.length-1]}function g(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function v(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}function y(){}function b(e,t){var r;return Object.create?r=Object.create(e):(y.prototype=e,r=new y),t&&u(t,r),r}function x(e){return/\w/.test(e)||e>""&&(e.toUpperCase()!=e.toLowerCase()||La.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&x(e))||t.test(e):x(e)}function k(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function C(e){return e.charCodeAt(0)>=768&&Ta.test(e)}function S(e,t,r){for(;(r<0?t>0:t<e.length)&&C(e.charAt(t));)t+=r;return t}function _(e,t,r){for(;;){if(Math.abs(t-r)<=1)return e(t)?t:r;var n=Math.floor((t+r)/2);e(n)?r=n:t=n}}function M(e,t,r){var o=this;this.input=r,o.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=n("div",null,"CodeMirror-cursors"),o.measure=n("div",null,"CodeMirror-measure"),o.lineMeasure=n("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=n("div",[a],null,"position: relative"),o.sizer=n("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=n("div",null,null,"position: absolute; height: "+wa+"px; width: 1px;"),o.gutters=n("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=n("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=n("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),Qo&&Jo<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),Zo||$o&&sa||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,r.init(o)}function L(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function T(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function A(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function O(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function E(e){if(null==e.parent)return null;for(var t=e.parent,r=d(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function I(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var l=e.lines[a],s=l.height;if(t<s)break;t-=s}return r+a}function N(e,t){return t>=e.first&&t<e.first+e.size}function P(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function R(e,t,r){if(void 0===r&&(r=null),!(this instanceof R))return new R(e,t,r);this.line=e,this.ch=t,this.sticky=r}function B(e,t){return e.line-t.line||e.ch-t.ch}function z(e,t){return e.sticky==t.sticky&&0==B(e,t)}function D(e){return R(e.line,e.ch)}function W(e,t){return B(e,t)<0?t:e}function q(e,t){return B(e,t)<0?e:t}function F(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function H(e,t){if(t.line<e.first)return R(e.first,0);var r=e.first+e.size-1;return t.line>r?R(r,L(e,r).text.length):j(t,L(e,t.line).text.length)}function j(e,t){var r=e.ch;return null==r||r>t?R(e.line,t):r<0?R(e.line,0):e}function K(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=H(e,t[n]);return r}function U(){Aa=!0}function V(){Oa=!0}function $(e,t,r){this.marker=e,this.from=t,this.to=r}function G(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function X(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function Y(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Q(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(l||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new $(a,o.from,s?null:o.to))}}return n}function J(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(l||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new $(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}function Z(e,t){if(t.full)return null;var r=N(e,t.from.line)&&L(e,t.from.line).markedSpans,n=N(e,t.to.line)&&L(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==B(t.from,t.to),l=Q(r,i,a),s=J(n,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(l)for(var f=0;f<l.length;++f){var d=l[f];if(null==d.to){var h=G(s,d.marker);h?c&&(d.to=null==h.to?null:h.to+u):d.to=i}}if(s)for(var p=0;p<s.length;++p){var g=s[p];if(null!=g.to&&(g.to+=u),null==g.from){var v=G(l,g.marker);v||(g.from=u,c&&(l||(l=[])).push(g))}else g.from+=u,c&&(l||(l=[])).push(g)}l&&(l=ee(l)),s&&s!=l&&(s=ee(s));var y=[l];if(!c){var b,x=t.text.length-2;if(x>0&&l)for(var w=0;w<l.length;++w)null==l[w].to&&(b||(b=[])).push(new $(l[w].marker,null,null));for(var k=0;k<x;++k)y.push(b);y.push(s)}return y}function ee(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&r.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function te(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&d(n,r)!=-1||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var a=n[o],l=a.find(0),s=0;s<i.length;++s){var c=i[s];if(!(B(c.to,l.from)<0||B(c.from,l.to)>0)){var u=[s,1],f=B(c.from,l.from),h=B(c.to,l.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:l.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:l.to,to:c.to}),i.splice.apply(i,u),s+=u.length-3}}return i}function re(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function ne(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function ae(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=B(n.from,i.from)||ie(e)-ie(t);if(o)return-o;var a=B(n.to,i.to)||oe(e)-oe(t);return a?a:t.id-e.id}function le(e,t){var r,n=Oa&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)i=n[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!r||ae(r,i.marker)<0)&&(r=i.marker);return r}function se(e){return le(e,!0)}function ce(e){return le(e,!1)}function ue(e,t,r,n,i){var o=L(e,t),a=Oa&&o.markedSpans;if(a)for(var l=0;l<a.length;++l){var s=a[l];if(s.marker.collapsed){var c=s.marker.find(0),u=B(c.from,r)||ie(s.marker)-ie(i),f=B(c.to,n)||oe(s.marker)-oe(i);if(!(u>=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?B(c.to,r)>=0:B(c.to,r)>0)||u>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?B(c.from,n)<=0:B(c.from,n)<0)))return!0}}}function fe(e){for(var t;t=se(e);)e=t.find(-1,!0).line;return e}function de(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function he(e){for(var t,r;t=ce(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}function pe(e,t){var r=L(e,t),n=fe(r);return r==n?t:E(n)}function me(e,t){if(t>e.lastLine())return t;var r,n=L(e,t);if(!ge(e,n))return t;for(;r=ce(n);)n=r.find(1,!0).line;return E(n)+1}function ge(e,t){var r=Oa&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if(n=r[i],n.marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&ve(e,t,n))return!0}}function ve(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return ve(e,n.line,G(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&ve(e,t,i))return!0}function ye(e){e=fe(e);for(var t=0,r=e.parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var a=0;a<o.children.length;++a){var l=o.children[a];if(l==r)break;t+=l.height}return t}function be(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=se(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ce(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,n=o.to.line,r+=n.text.length-o.to.ch}return r}function xe(e){var t=e.display,r=e.doc;t.maxLine=L(r,r.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=be(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function we(e,t,r,n){if(!e)return n(t,r,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<r&&a.to>t||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr"),i=!0)}i||n(t,r,"ltr")}function ke(e,t,r){var n;Ea=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:Ea=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ea=i)}return null!=n?n:Ea}function Ce(e,t){var r=e.order;return null==r&&(r=e.order=Ia(e.text,t)),r}function Se(e,t,r){var n=S(e.text,t+r,r);return n<0||n>e.text.length?null:n}function _e(e,t,r){var n=Se(e,t.ch,r);return null==n?null:new R(t.line,n,r<0?"after":"before")}function Me(e,t,r,n,i){if(e){var o=Ce(r,t.doc.direction);if(o){var a,l=i<0?m(o):o[0],s=i<0==(1==l.level),c=s?"after":"before";if(l.level>0){var u=Yt(t,r);a=i<0?r.text.length-1:0;var f=Qt(t,u,a).top;a=_(function(e){return Qt(t,u,e).top==f},i<0==(1==l.level)?l.from:l.to-1,a),"before"==c&&(a=Se(r,a,1,!0))}else a=i<0?l.to:l.from;return new R(n,a,c)}}return new R(n,i<0?r.text.length:0,i<0?"before":"after")}function Le(e,t,r,n){var i=Ce(t,e.doc.direction);if(!i)return _e(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ke(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from<r.ch))return _e(t,r,n);var l,s=function(e,r){return Se(t,e instanceof R?e.ch:e,r)},c=function(r){return e.options.lineWrapping?(l=l||Yt(e,t),mr(e,t,l,r)):{begin:0,end:t.text.length}},u=c("before"==r.sticky?s(r,-1):r.ch);if("rtl"==e.doc.direction||1==a.level){var f=1==a.level==n<0,d=s(r,f?1:-1);if(null!=d&&(f?d<=a.to&&d<=u.end:d>=a.from&&d>=u.begin)){var h=f?"before":"after";return new R(r.line,d,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new R(r.line,s(e,1),"before"):new R(r.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],l=t>0==(1!=a.level),c=l?n.begin:s(n.end,-1);if(a.from<=c&&c<a.to)return o(c,l);if(c=l?a.from:s(a.to,-1),n.begin<=c&&c<n.end)return o(c,l)}},m=p(o+n,n,u);if(m)return m;var g=n>0?u.end:s(u.begin,-1);return null==g||n>0&&g==t.text.length||!(m=p(n>0?0:i.length-1,n,c(g)))?null:m}function Te(e,t){return e._handlers&&e._handlers[t]||Na}function Ae(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=d(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Oe(e,t){var r=Te(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function Ee(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Oe(e,r||t.type,e,t),ze(t)||t.codemirrorIgnore}function Ie(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)d(r,t[n])==-1&&r.push(t[n])}function Ne(e,t){return Te(e,t).length>0}function Pe(e){e.prototype.on=function(e,t){Pa(this,e,t)},e.prototype.off=function(e,t){Ae(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ze(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){Re(e),Be(e)}function We(e){return e.target||e.srcElement}function qe(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),ca&&e.ctrlKey&&1==t&&(t=3),t}function Fe(e){if(null==ba){var t=n("span","");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ba=t.offsetWidth<=1&&t.offsetHeight>2&&!(Qo&&Jo<8))}var i=ba?n("span",""):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function He(e){if(null!=xa)return xa;var n=r(e,document.createTextNode("AخA")),i=ha(n,0,1).getBoundingClientRect(),o=ha(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(xa=o.right-i.right<3)}function je(e){if(null!=Wa)return Wa;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=ha(t,0,1).getBoundingClientRect();return Wa=Math.abs(i.left-o.left)>1}function Ke(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),qa[e]=t}function Ue(e,t){Fa[e]=t}function Ve(e){if("string"==typeof e&&Fa.hasOwnProperty(e))e=Fa[e];else if(e&&"string"==typeof e.name&&Fa.hasOwnProperty(e.name)){var t=Fa[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ve("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ve("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function $e(e,t){t=Ve(t);var r=qa[t.name];if(!r)return $e(e,"text/plain");var n=r(e,t);if(Ha.hasOwnProperty(t.name)){var i=Ha[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}function Ge(e,t){u(t,Ha.hasOwnProperty(e)?Ha[e]:Ha[e]={})}function Xe(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Ye(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Qe(e,t,r){return!e.startState||e.startState(t,r)}function Je(e,t,r,n){var i=[e.state.modeGen],o={};at(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var a=0;a<e.state.overlays.length;++a)!function(r){var n=e.state.overlays[r],a=1,l=0;at(e,t.text,n.mode,!0,function(e,t){for(var r=a;l<e;){var o=i[a];o>e&&i.splice(a,1,e,i[a+1],o),a+=2,l=Math.min(e,o)}if(t)if(n.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;r<a;r+=2){var s=i[r+1];i[r+1]=(s?s+" ":"")+"overlay "+t}},o)}(a);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ze(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=et(e,E(t)),i=Je(e,t,t.text.length>e.options.maxHighlightLength?Xe(e.doc.mode,n):n);t.stateAfter=n,t.styles=i.styles,i.classes?t.styleClasses=i.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.frontier&&e.doc.frontier++}return t.styles}function et(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return!0;var o=lt(e,t,r),a=o>n.first&&L(n,o-1).stateAfter;return a=a?Xe(n.mode,a):Qe(n.mode),n.iter(o,t,function(r){tt(e,r.text,a);var l=o==t-1||o%5==0||o>=i.viewFrom&&o<i.viewTo;r.stateAfter=l?Xe(n.mode,a):null,++o}),r&&(n.frontier=o),a}function tt(e,t,r,n){var i=e.doc.mode,o=new ja(t,e.options.tabSize);for(o.start=o.pos=n||0,""==t&&rt(i,r);!o.eol();)nt(i,o,r),o.start=o.pos}function rt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Ye(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function nt(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Ye(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function it(e,t,r,n){var i,o=function(e){return{start:f.start,end:f.pos,string:f.current(),type:i||null,state:e?Xe(a.mode,u):u}},a=e.doc,l=a.mode;t=H(a,t);var s,c=L(a,t.line),u=et(e,t.line,r),f=new ja(c.text,e.options.tabSize);for(n&&(s=[]);(n||f.pos<t.ch)&&!f.eol();)f.start=f.pos,i=nt(l,f,u),n&&s.push(o(!0));return n?s:o()}function ot(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function at(e,t,r,n,i,o,a){var l=r.flattenSpans;null==l&&(l=e.options.flattenSpans);var s,c=0,u=null,f=new ja(t,e.options.tabSize),d=e.options.addModeClass&&[null];for(""==t&&ot(rt(r,n),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(l=!1,a&&tt(e,t,n,f.pos),f.pos=t.length,s=null):s=ot(nt(r,f,n,d),o),d){var h=d[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;c<f.start;)c=Math.min(f.start,c+5e3),i(c,u);u=s}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}function lt(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;l>a;--l){if(l<=o.first)return o.first;var s=L(o,l-1);if(s.stateAfter&&(!r||l<=o.frontier))return l;var c=f(s.text,null,e.options.tabSize);(null==i||n>c)&&(i=l-1,n=c)}return i}function st(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),re(e),ne(e,r);var i=n?n(e):1;i!=e.height&&O(e,i)}function ct(e){e.parent=null,re(e)}function ut(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?$a:Va;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function ft(e,t){var r=i("span",null,null,Zo?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(Qo||Zo)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,l=void 0;n.pos=0,n.addToken=ht,He(e.display.measure)&&(l=Ce(a,e.doc.direction))&&(n.addToken=mt(n.addToken,l)),n.map=[];vt(a,n,Ze(e,a,t!=e.display.externalMeasured&&E(a))),a.styleClasses&&(a.styleClasses.bgClass&&(n.bgClass=s(a.styleClasses.bgClass,n.bgClass||"")),a.styleClasses.textClass&&(n.textClass=s(a.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Fe(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(Zo){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return Oe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=s(n.pre.className,n.textClass||"")),n}function dt(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function ht(e,t,r,i,o,a,l){if(t){var s,c=e.splitSpaces?pt(t,e.trailingSpace):t,u=e.cm.state.specialChars,f=!1;if(u.test(t)){s=document.createDocumentFragment();for(var d=0;;){u.lastIndex=d;var h=u.exec(t),m=h?h.index-d:t.length-d;if(m){var g=document.createTextNode(c.slice(d,d+m));Qo&&Jo<9?s.appendChild(n("span",[g])):s.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;d+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=s.appendChild(n("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?(v=s.appendChild(n("span","\r"==h[0]?"␍":"","cm-invalidchar")),v.setAttribute("cm-text",h[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(h[0]),v.setAttribute("cm-text",h[0]),Qo&&Jo<9?s.appendChild(n("span",[v])):s.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,s=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,s),Qo&&Jo<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||i||o||f||l){var x=r||"";i&&(x+=i),o&&(x+=o);var w=n("span",[s],x,l);return a&&(w.title=a),e.content.appendChild(w)}e.content.appendChild(s)}}function pt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}function mt(e,t){return function(r,n,i,o,a,l,s){i=i?i+" cm-force-border":"cm-force-border";for(var c=r.pos,u=c+n.length;;){for(var f=void 0,d=0;d<t.length&&(f=t[d],!(f.to>c&&f.from<=c));d++);if(f.to>=u)return e(r,n,i,o,a,l,s);e(r,n.slice(0,f.to-c),i,o,null,l,s),o=null,n=n.slice(f.to-c),c=f.to}}}function gt(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function vt(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var a,l,s,c,u,f,d,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=c=u=f=l="",d=null,v=1/0;for(var y=[],b=void 0,x=0;x<n.length;++x){var w=n[x],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?y.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(s+=" "+k.className),k.css&&(l=(l?l+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(b||(b=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!d||ae(d.marker,k)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!d||d.from==p)for(var S=0;S<y.length;++S)gt(t,0,y[S]);if(d&&(d.from||0)==p){if(gt(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(p>=h)break;for(var _=Math.min(h,v);;){if(g){var M=p+g.length;if(!d){var L=M>_?g.slice(0,_-p):g;t.addToken(t,L,a?a+s:s,u,p+L.length==v?c:"",f,l)}if(M>=_){g=g.slice(_-p),p=_;break}p=M,u=""}g=i.slice(o,o=r[m++]),a=ut(r[m++],t.cm.options)}}else for(var T=1;T<r.length;T+=2)t.addToken(t,i.slice(o,o=r[T]),ut(r[T+1],t.cm.options))}function yt(e,t,r){this.line=t,this.rest=he(t),this.size=this.rest?E(m(this.rest))-r+1:1,this.node=this.text=null,this.hidden=ge(e,t)}function bt(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new yt(e.doc,L(e.doc,o),o);n=o+a.size,i.push(a)}return i}function xt(e){Ga?Ga.ops.push(e):e.ownsGroup=Ga={ops:[e],delayedCallbacks:[]}}function wt(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}function kt(e,t){var r=e.ownsGroup;if(r)try{wt(r)}finally{Ga=null,t(r)}}function Ct(e,t){var r=Te(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);Ga?n=Ga.delayedCallbacks:Xa?n=Xa:(n=Xa=[],setTimeout(St,0));for(var o=0;o<r.length;++o)!function(e){n.push(function(){return r[e].apply(null,i)})}(o)}}function St(){var e=Xa;Xa=null;for(var t=0;t<e.length;++t)e[t]()}function _t(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?At(e,t):"gutter"==o?Et(e,t,r,n):"class"==o?Ot(e,t):"widget"==o&&It(e,t,n)}t.changes=null}function Mt(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),Qo&&Jo<8&&(e.node.style.zIndex=2)),e.node}function Lt(e,t){var r=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(r&&(r+=" CodeMirror-linebackground"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var i=Mt(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}function Tt(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):ft(e,t)}function At(e,t){var r=t.text.className,n=Tt(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,Ot(e,t)):r&&(t.text.className=r)}function Ot(e,t){Lt(e,t),t.line.wrapClass?Mt(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var r=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=r||""}function Et(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Mt(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var l=Mt(t),s=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(n("div",P(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],f=a.hasOwnProperty(u)&&a[u];f&&s.appendChild(n("div",[f],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function It(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,"CodeMirror-linewidget"==n.className&&t.node.removeChild(n);Pt(e,t,r)}function Nt(e,t,r,n){var i=Tt(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Ot(e,t),Et(e,t,r,n),Pt(e,t,n),t.node}function Pt(e,t,r){if(Rt(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)Rt(e,t.rest[n],t,r,!1)}function Rt(e,t,r,i,o){if(t.widgets)for(var a=Mt(r),l=0,s=t.widgets;l<s.length;++l){var c=s[l],u=n("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),Bt(c,u,r,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,r.gutter||r.text):a.appendChild(u),Ct(c,"redraw")}}function Bt(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}function zt(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Dt(e,t){for(var r=We(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function Wt(e){return e.lineSpace.offsetTop}function qt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ft(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function Ht(e){return wa-e.display.nativeBarWidth}function jt(e){return e.display.scroller.clientWidth-Ht(e)-e.display.barWidth}function Kt(e){return e.display.scroller.clientHeight-Ht(e)-e.display.barHeight}function Ut(e,t,r){var n=e.options.lineWrapping,i=n&&jt(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),l=0;l<a.length-1;l++){var s=a[l],c=a[l+1];Math.abs(s.bottom-c.bottom)>2&&o.push((s.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}function Vt(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(E(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function $t(e,t){t=fe(t);var n=E(t),i=e.display.externalMeasured=new yt(e.doc,t,n);i.lineN=n;var o=i.built=ft(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}function Gt(e,t,r,n){return Qt(e,Yt(e,t),r,n)}function Xt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Sr(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Yt(e,t){var r=E(t),n=Xt(e,r);n&&!n.text?n=null:n&&n.changes&&(_t(e,n,r,br(e)),e.curOp.forceUpdate=!0),n||(n=$t(e,t));var i=Vt(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,
|
2 |
-
before:i.before,hasHeights:!1}}function Qt(e,t,r,n,i){t.before&&(r=-1);var o,a=r+(n||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Ut(e,t.view,t.rect),t.hasHeights=!0),o=er(e,t,r,n),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function Jt(e,t,r){for(var n,i,o,a,l,s,c=0;c<e.length;c+=3)if(l=e[c],s=e[c+1],t<l?(i=0,o=1,a="left"):t<s?(i=t-l,o=i+1):(c==e.length-3||t==s&&e[c+3]>t)&&(o=s-l,i=o-1,t>=s&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[2+(c+=3)],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:l,coverEnd:s}}function Zt(e,t){var r=Ya;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function er(e,t,r,n){var i,o=Jt(t.map,r,n),a=o.node,l=o.start,s=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;l&&C(t.line.text.charAt(o.coverStart+l));)--l;for(;o.coverStart+s<o.coverEnd&&C(t.line.text.charAt(o.coverStart+s));)++s;if(i=Qo&&Jo<9&&0==l&&s==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Zt(ha(a,l,s).getClientRects(),n),i.left||i.right||0==l)break;s=l,l-=1,c="right"}Qo&&Jo<11&&(i=tr(e.display.measure,i))}else{l>0&&(c=n="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==n?f.length-1:0]:a.getBoundingClientRect()}if(Qo&&Jo<9&&!l&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+yr(e.display),top:d.top,bottom:d.bottom}:Ya}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p),x}function tr(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!je(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}function rr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function nr(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)rr(e.display.view[r])}function ir(e){nr(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function or(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ar(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function lr(e,t,r,n,i){if(!i&&t.widgets)for(var o=0;o<t.widgets.length;++o)if(t.widgets[o].above){var a=zt(t.widgets[o]);r.top+=a,r.bottom+=a}if("line"==n)return r;n||(n="local");var l=ye(t);if("local"==n?l+=Wt(e.display):l-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+("window"==n?0:ar());var c=s.left+("window"==n?0:or());r.left+=c,r.right+=c}return r.top+=l,r.bottom+=l,r}function sr(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=or(),i-=ar();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:n-a.left,top:i-a.top}}function cr(e,t,r,n,i){return n||(n=L(e.doc,t.line)),lr(e,n,Gt(e,n,t.ch,i),r)}function ur(e,t,r,n,i,o){function a(t,a){var l=Qt(e,i,t,a?"right":"left",o);return a?l.left=l.right:l.right=l.left,lr(e,n,l,r)}function l(e,t,r){var n=s[t],i=n.level%2!=0;return a(r?e-1:e,i!=r)}n=n||L(e.doc,t.line),i||(i=Yt(e,n));var s=Ce(n,e.doc.direction),c=t.ch,u=t.sticky;if(c>=n.text.length?(c=n.text.length,u="before"):c<=0&&(c=0,u="after"),!s)return a("before"==u?c-1:c,"before"==u);var f=ke(s,c,u),d=Ea,h=l(c,f,"before"==u);return null!=d&&(h.other=l(c,d,"before"!=u)),h}function fr(e,t){var r=0;t=H(e.doc,t),e.options.lineWrapping||(r=yr(e.display)*t.ch);var n=L(e.doc,t.line),i=ye(n)+Wt(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function dr(e,t,r,n,i){var o=R(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function hr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return dr(n.first,0,null,!0,-1);var i=I(n,r),o=n.first+n.size-1;if(i>o)return dr(n.first+n.size-1,L(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=L(n,i);;){var l=gr(e,a,i,t,r),s=ce(a),c=s&&s.find(0,!0);if(!s||!(l.ch>c.from.ch||l.ch==c.from.ch&&l.xRel>0))return l;i=E(a=c.to.line)}}function pr(e,t,r,n){var i=function(n){return lr(e,t,Qt(e,r,n),"line")},o=t.text.length,a=_(function(e){return i(e-1).bottom<=n},o,0);return o=_(function(e){return i(e).top>n},a,o),{begin:a,end:o}}function mr(e,t,r,n){return pr(e,t,r,lr(e,t,Qt(e,r,n),"line").top)}function gr(e,t,r,n,i){i-=ye(t);var o,a=0,l=t.text.length,s=Yt(e,t);if(Ce(t,e.doc.direction)){if(e.options.lineWrapping){var c;c=pr(e,t,s,i),a=c.begin,l=c.end}o=new R(r,a);var u,f,d=ur(e,o,"line",t,s).left,h=d<n?1:-1,p=d-n;do{if(u=p,f=o,null==(o=Le(e,t,o,h))||o.ch<a||l<=("before"==o.sticky?o.ch-1:o.ch)){o=f;break}p=ur(e,o,"line",t,s).left-n}while(h<0!=p<0&&Math.abs(p)<=Math.abs(u));if(Math.abs(p)>Math.abs(u)){if(p<0==u<0)throw new Error("Broke out of infinite loop in coordsCharInner");o=f}}else{var m=_(function(r){var o=lr(e,t,Qt(e,s,r),"line");return o.top>i?(l=Math.min(r,l),!0):!(o.bottom<=i)&&(o.left>n||!(o.right<n)&&n-o.left<o.right-n)},a,l);m=S(t.text,m,1),o=new R(r,m,m==l?"before":"after")}var g=ur(e,o,"line",t,s);return(i<g.top||g.bottom<i)&&(o.outside=!0),o.xRel=n<g.left?-1:n>g.right?1:0,o}function vr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ua){Ua=n("pre");for(var i=0;i<49;++i)Ua.appendChild(document.createTextNode("x")),Ua.appendChild(n("br"));Ua.appendChild(document.createTextNode("x"))}r(e.measure,Ua);var o=Ua.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function yr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function br(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)r[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[a]]=o.clientWidth;return{fixedPos:xr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function xr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function wr(e){var t=vr(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/yr(e.display)-3);return function(i){if(ge(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function kr(e){var t=e.doc,r=wr(e);t.iter(function(e){var t=r(e);t!=e.height&&O(e,t)})}function Cr(e,t,r,n){var i=e.display;if(!r&&"true"==We(t).getAttribute("cm-not-content"))return null;var o,a,l=i.lineSpace.getBoundingClientRect();try{o=t.clientX-l.left,a=t.clientY-l.top}catch(e){return null}var s,c=hr(e,o,a);if(n&&1==c.xRel&&(s=L(e.doc,c.line).text).length==c.ch){var u=f(s,s.length,e.options.tabSize)-s.length;c=R(c.line,Math.max(0,Math.round((o-Ft(e.display).left)/yr(e.display))-u))}return c}function Sr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function _r(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Mr(e,t){for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),a=0;a<r.sel.ranges.length;a++)if(t!==!1||a!=r.sel.primIndex){var l=r.sel.ranges[a];if(!(l.from().line>=e.display.viewTo||l.to().line<e.display.viewFrom)){var s=l.empty();(s||e.options.showCursorWhenSelecting)&&Lr(e,l.head,i),s||Tr(e,l,o)}}return n}function Lr(e,t,r){var i=ur(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function Tr(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?f-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return cr(e,R(t,r),"div",c,n)}var a,s,c=L(l,t),d=c.text.length;return we(Ce(c,l.direction),r||0,null==n?d:n,function(e,t,l){var c,h,p,m=o(e,"left");if(e==t)c=m,h=p=m.left;else{if(c=o(t-1,"right"),"rtl"==l){var g=m;m=c,c=g}h=m.left,p=c.right}null==r&&0==e&&(h=u),c.top-m.top>3&&(i(h,m.top,null,m.bottom),h=u,m.bottom<c.top&&i(h,m.bottom,null,c.top)),null==n&&t==d&&(p=f),(!a||m.top<a.top||m.top==a.top&&m.left<a.left)&&(a=m),(!s||c.bottom>s.bottom||c.bottom==s.bottom&&c.right>s.right)&&(s=c),h<u+1&&(h=u),i(h,c.top,p-h,c.bottom)}),{start:a,end:s}}var a=e.display,l=e.doc,s=document.createDocumentFragment(),c=Ft(e.display),u=c.left,f=Math.max(a.sizerWidth,jt(e)-a.sizer.offsetLeft)-c.right,d=t.from(),h=t.to();if(d.line==h.line)o(d.line,d.ch,h.ch);else{var p=L(l,d.line),m=L(l,h.line),g=fe(p)==fe(m),v=o(d.line,d.ch,g?p.text.length+1:null).end,y=o(h.line,g?0:null,h.ch).start;g&&(v.top<y.top-2?(i(v.right,v.top,null,v.bottom),i(u,y.top,y.left,y.bottom)):i(v.right,v.top,y.left-v.right,v.bottom)),v.bottom<y.top&&i(u,v.bottom,null,y.top)}r.appendChild(s)}function Ar(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Or(e){e.state.focused||(e.display.input.focus(),Ir(e))}function Er(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Nr(e))},100)}function Ir(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Oe(e,"focus",e,t),e.state.focused=!0,l(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),Zo&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Ar(e))}function Nr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Oe(e,"blur",e,t),e.state.focused=!1,ga(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Pr(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=xr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var l=r[a].alignable;if(l)for(var s=0;s<l.length;s++)l[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function Rr(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=P(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,l=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-l)+1,i.lineNumWidth=i.lineNumInnerWidth+l,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Ln(e),!0}return!1}function Br(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(Qo&&Jo<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var l=i.node.getBoundingClientRect();o=l.bottom-l.top}var s=i.line.height-o;if(o<2&&(o=vr(t)),(s>.001||s<-.001)&&(O(i.line,o),zr(i.line),i.rest))for(var c=0;c<i.rest.length;c++)zr(i.rest[c])}}}function zr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Dr(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-Wt(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=I(t,n),a=I(t,i);if(r&&r.ensure){var l=r.ensure.from.line,s=r.ensure.to.line;l<o?(o=l,a=I(t,ye(L(t,l))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=a&&(o=I(t,ye(L(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function Wr(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,$o||_n(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),$o&&_n(e),xn(e,100))}function qr(e,t,r){(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,Pr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Fr(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function Hr(e){var t=Fr(e);return t.x*=Ja,t.y*=Ja,t}function jr(e,t){var r=Fr(t),n=r.x,i=r.y,o=e.display,a=o.scroller,l=a.scrollWidth>a.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&ca&&Zo)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(n&&!$o&&!ra&&null!=Ja)return i&&s&&Wr(e,Math.max(0,Math.min(a.scrollTop+i*Ja,a.scrollHeight-a.clientHeight))),qr(e,Math.max(0,Math.min(a.scrollLeft+n*Ja,a.scrollWidth-a.clientWidth))),(!i||i&&s)&&Re(t),void(o.wheelStartX=null);if(i&&null!=Ja){var d=i*Ja,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;d<0?h=Math.max(0,h+d-50):p=Math.min(e.doc.height,p+d+50),_n(e,{top:h,bottom:p})}Qa<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(Ja=(Ja*Qa+r)/(Qa+1),++Qa)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function Kr(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+qt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Ht(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function Ur(e,t){t||(t=Kr(e));var r=e.display.barWidth,n=e.display.barHeight;Vr(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Br(e),Vr(e,Kr(e)),r=e.display.barWidth,n=e.display.barHeight}function Vr(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function $r(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&ga(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new tl[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Pa(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?qr(e,t):Wr(e,t)},e),e.display.scrollbars.addClass&&l(e.display.wrapper,e.display.scrollbars.addClass)}function Gr(e,t){if(!Ee(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!oa){var a=n("div","",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Wt(e.display))+"px;\n height: "+(t.bottom-t.top+Ht(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}function Xr(e,t,r,n){null==n&&(n=0);for(var i,o=0;o<5;o++){var a=!1,l=ur(e,t),s=r&&r!=t?ur(e,r):l;i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n};var c=Qr(e,i),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(Wr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(qr(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function Yr(e,t){var r=Qr(e,t);null!=r.scrollTop&&Wr(e,r.scrollTop),null!=r.scrollLeft&&qr(e,r.scrollLeft)}function Qr(e,t){var r=e.display,n=vr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Kt(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var l=e.doc.height+qt(r),s=t.top<n,c=t.bottom>l-n;if(t.top<i)a.scrollTop=s?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,d=jt(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.left<f?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>d+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function Jr(e,t,r){null==t&&null==r||en(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=r&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+r)}function Zr(e){en(e);var t=e.getCursor(),r=t,n=t;e.options.lineWrapping||(r=t.ch?R(t.line,t.ch-1):t,n=R(t.line,t.ch+1)),e.curOp.scrollToPos={from:r,to:n,margin:e.options.cursorScrollMargin}}function en(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var r=fr(e,t.from),n=fr(e,t.to),i=Qr(e,{left:Math.min(r.left,n.left),top:Math.min(r.top,n.top)-t.margin,right:Math.max(r.right,n.right),bottom:Math.max(r.bottom,n.bottom)+t.margin});e.scrollTo(i.scrollLeft,i.scrollTop)}}function tn(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++rl},xt(e.curOp)}function rn(e){kt(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;nn(e)})}function nn(e){for(var t=e.ops,r=0;r<t.length;r++)on(t[r]);for(var n=0;n<t.length;n++)an(t[n]);for(var i=0;i<t.length;i++)ln(t[i]);for(var o=0;o<t.length;o++)sn(t[o]);for(var a=0;a<t.length;a++)cn(t[a])}function on(e){var t=e.cm,r=t.display;kn(t),e.updateMaxLine&&xe(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new nl(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function an(e){e.updatedDisplay=e.mustUpdate&&Cn(e.cm,e.update)}function ln(e){var t=e.cm,r=t.display;e.updatedDisplay&&Br(t),e.barMeasure=Kr(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Gt(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Ht(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-jt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection(e.focus))}function sn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&qr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==a()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&Ur(t,e.barMeasure),e.updatedDisplay&&Tn(t,e.barMeasure),e.selectionChanged&&Ar(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&Or(e.cm)}function cn(e){var t=e.cm,r=t.display,n=t.doc;if(e.updatedDisplay&&Sn(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null==e.scrollTop||r.scroller.scrollTop==e.scrollTop&&!e.forceScroll||(n.scrollTop=Math.max(0,Math.min(r.scroller.scrollHeight-r.scroller.clientHeight,e.scrollTop)),r.scrollbars.setScrollTop(n.scrollTop),r.scroller.scrollTop=n.scrollTop),null==e.scrollLeft||r.scroller.scrollLeft==e.scrollLeft&&!e.forceScroll||(n.scrollLeft=Math.max(0,Math.min(r.scroller.scrollWidth-r.scroller.clientWidth,e.scrollLeft)),r.scrollbars.setScrollLeft(n.scrollLeft),r.scroller.scrollLeft=n.scrollLeft,Pr(t)),e.scrollToPos){Gr(t,Xr(t,H(n,e.scrollToPos.from),H(n,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||Oe(i[a],"hide");if(o)for(var l=0;l<o.length;++l)o[l].lines.length&&Oe(o[l],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Oe(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function un(e,t){if(e.curOp)return t();tn(e);try{return t()}finally{rn(e)}}function fn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);tn(e);try{return t.apply(e,arguments)}finally{rn(e)}}}function dn(e){return function(){if(this.curOp)return e.apply(this,arguments);tn(this);try{return e.apply(this,arguments)}finally{rn(this)}}}function hn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);tn(t);try{return e.apply(this,arguments)}finally{rn(t)}}}function pn(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Oa&&pe(e.doc,t)<i.viewTo&&gn(e);else if(r<=i.viewFrom)Oa&&me(e.doc,r+n)>i.viewFrom?gn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)gn(e);else if(t<=i.viewFrom){var o=vn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):gn(e)}else if(r>=i.viewTo){var a=vn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):gn(e)}else{var l=vn(e,t,t,-1),s=vn(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(bt(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):gn(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function mn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[Sr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);d(a,r)==-1&&a.push(r)}}}function gn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function vn(e,t,r,n){var i,o=Sr(e,t),a=e.display.view;if(!Oa||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s<o;s++)l+=a[s].size;if(l!=t){if(n>0){if(o==a.length-1)return null;i=l+a[o].size-t,o++}else i=l-t;t+=i,r+=i}for(;pe(e.doc,r)!=r;){if(o==(n<0?0:a.length-1))return null;r+=n*a[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function yn(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=bt(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=bt(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(Sr(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(bt(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,Sr(e,r)))),n.viewTo=r}function bn(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function xn(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.viewTo&&e.state.highlight.set(t,c(wn,e))}function wn(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=Xe(t.mode,et(e,t.frontier)),i=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var a=o.styles,l=o.text.length>e.options.maxHighlightLength,s=Je(e,o,l?Xe(t.mode,n):n,!0);o.styles=s.styles;var c=o.styleClasses,u=s.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!f&&d<a.length;++d)f=a[d]!=o.styles[d];f&&i.push(t.frontier),o.stateAfter=l?n:Xe(t.mode,n)}else o.text.length<=e.options.maxHighlightLength&&tt(e,o.text,n),o.stateAfter=t.frontier%5==0?Xe(t.mode,n):null;if(++t.frontier,+new Date>r)return xn(e,e.options.workDelay),!0}),i.length&&un(e,function(){for(var t=0;t<i.length;t++)mn(e,i[t],"text")})}}function kn(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=Ht(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=Ht(e)+"px",t.scrollbarsClipped=!0)}function Cn(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return gn(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==bn(e))return!1;Rr(e)&&(gn(e),r.dims=br(e));var o=i.first+i.size,l=Math.max(r.visible.from-e.options.viewportMargin,i.first),s=Math.min(o,r.visible.to+e.options.viewportMargin);n.viewFrom<l&&l-n.viewFrom<20&&(l=Math.max(i.first,n.viewFrom)),n.viewTo>s&&n.viewTo-s<20&&(s=Math.min(o,n.viewTo)),Oa&&(l=pe(e.doc,l),s=me(e.doc,s));var c=l!=n.viewFrom||s!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;yn(e,l,s),n.viewOffset=ye(L(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=bn(e);if(!c&&0==u&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var f=a();return u>4&&(n.lineDiv.style.display="none"),Mn(e,n.updateLineNumbers,r.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,f&&a()!=f&&f.offsetHeight&&f.focus(),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,c&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,xn(e,400)),n.updateLineNumbers=null,!0}function Sn(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=jt(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+qt(e.display)-Kt(e),r.top)}),t.visible=Dr(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Cn(e,t);n=!1){Br(e);var i=Kr(e);_r(e),Ur(e,i),Tn(e,i)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function _n(e,t){var r=new nl(e,t);if(Cn(e,r)){Br(e),Sn(e,r);var n=Kr(e);_r(e),Ur(e,n),Tn(e,n),r.finish()}}function Mn(e,r,n){function i(t){var r=t.nextSibling;return Zo&&ca&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var o=e.display,a=e.options.lineNumbers,l=o.lineDiv,s=l.firstChild,c=o.view,u=o.viewFrom,f=0;f<c.length;f++){var h=c[f];if(h.hidden);else if(h.node&&h.node.parentNode==l){for(;s!=h.node;)s=i(s);var p=a&&null!=r&&r<=u&&h.lineNumber;h.changes&&(d(h.changes,"gutter")>-1&&(p=!1),_t(e,h,u,n)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(P(e.options,u)))),s=h.node.nextSibling}else{var m=Nt(e,h,u,n);l.insertBefore(m,s)}u+=h.size}for(;s;)s=i(s)}function Ln(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Tn(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Ht(e)+"px"}function An(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var a=i[o],l=r.appendChild(n("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=l,l.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",Ln(e)}function On(e){var t=d(e.gutters,"CodeMirror-linenumbers");t==-1&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function En(e,t){var r=e[t];e.sort(function(e,t){return B(e.from(),t.from())}),t=d(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(B(o.to(),i.from())>=0){var a=q(o.from(),i.from()),l=W(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new ol(s?l:a,s?a:l))}}return new il(e,t)}function In(e,t){return new il([new ol(e,t||e)],0)}function Nn(e){return e.text?R(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Pn(e,t){if(B(e,t.from)<0)return e;if(B(e,t.to)<=0)return Nn(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Nn(t).ch-t.to.ch),R(r,n)}function Rn(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new ol(Pn(i.anchor,t),Pn(i.head,t)))}return En(r,e.sel.primIndex)}function Bn(e,t,r){return e.line==t.line?R(r.line,e.ch-t.ch+r.ch):R(r.line+(e.line-t.line),e.ch)}function zn(e,t,r){for(var n=[],i=R(e.first,0),o=i,a=0;a<t.length;a++){var l=t[a],s=Bn(l.from,i,o),c=Bn(Nn(l),i,o);if(i=l.to,o=c,"around"==r){var u=e.sel.ranges[a],f=B(u.head,u.anchor)<0;n[a]=new ol(f?c:s,f?s:c)}else n[a]=new ol(s,s)}return new il(n,e.sel.primIndex)}function Dn(e){e.doc.mode=$e(e.options,e.doc.modeOption),Wn(e)}function Wn(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.frontier=e.doc.first,xn(e,100),e.state.modeGen++,e.curOp&&pn(e)}function qn(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Fn(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){st(e,r,i,n),Ct(e,"change",e,t)}function a(e,t){for(var r=[],o=e;o<t;++o)r.push(new Ka(c[o],i(o),n));return r}var l=t.from,s=t.to,c=t.text,u=L(e,l.line),f=L(e,s.line),d=m(c),h=i(c.length-1),p=s.line-l.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(qn(e,t)){var g=a(0,c.length-1);o(f,f.text,h),p&&e.remove(l.line,p),g.length&&e.insert(l.line,g)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,l.ch)+d+u.text.slice(s.ch),h);else{
|
3 |
-
var v=a(1,c.length-1);v.push(new Ka(d+u.text.slice(s.ch),h,n)),o(u,u.text.slice(0,l.ch)+c[0],i(0)),e.insert(l.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,l.ch)+c[0]+f.text.slice(s.ch),i(0)),e.remove(l.line+1,p);else{o(u,u.text.slice(0,l.ch)+c[0],i(0)),o(f,d+f.text.slice(s.ch),h);var y=a(1,c.length-1);p>1&&e.remove(l.line+1,p-1),e.insert(l.line+1,y)}Ct(e,"change",e,t)}function Hn(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var l=e.linked[a];if(l.doc!=i){var s=o&&l.sharedHist;r&&!s||(t(l.doc,s),n(l.doc,e,s))}}}n(e,null,!0)}function jn(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,kr(e),Dn(e),Kn(e),e.options.lineWrapping||xe(e),e.options.mode=t.modeOption,pn(e)}function Kn(e){("rtl"==e.doc.direction?l:ga)(e.display.lineDiv,"CodeMirror-rtl")}function Un(e){un(e,function(){Kn(e),pn(e)})}function Vn(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function $n(e,t){var r={from:D(t.from),to:Nn(t),text:T(e,t.from,t.to)};return ei(e,r,t.from.line,t.to.line+1),Hn(e,function(e){return ei(e,r,t.from.line,t.to.line+1)},!0),r}function Gn(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function Xn(e,t){return t?(Gn(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}function Yn(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=Xn(i,i.lastOp==n)))a=m(o.changes),0==B(t.from,t.to)&&0==B(t.from,a.to)?a.to=Nn(t):o.changes.push($n(e,t));else{var s=m(i.done);for(s&&s.ranges||Zn(e.sel,i.done),o={changes:[$n(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||Oe(e,"historyAdded")}function Qn(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Jn(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||Qn(e,o,m(i.done),t))?i.done[i.done.length-1]=t:Zn(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&n.clearRedo!==!1&&Gn(i.undone)}function Zn(e,t){var r=m(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ei(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function ti(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function ri(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(ti(r[i]));return n}function ni(e,t){var r=ri(e,t),n=Z(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var l=0;l<a.length;++l){for(var s=a[l],c=0;c<o.length;++c)if(o[c].marker==s.marker)continue e;o.push(s)}else a&&(r[i]=a)}return r}function ii(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?il.prototype.deepCopy.call(o):o);else{var a=o.changes,l=[];n.push({changes:l});for(var s=0;s<a.length;++s){var c=a[s],u=void 0;if(l.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&d(t,Number(u[1]))>-1&&(m(l)[f]=c[f],delete c[f])}}}return n}function oi(e,t,r,n){if(e.cm&&e.cm.display.shift||e.extend){var i=t.anchor;if(n){var o=B(r,i)<0;o!=B(n,i)<0?(i=r,r=n):o!=B(r,n)<0&&(r=n)}return new ol(i,r)}return new ol(n||r,r)}function ai(e,t,r,n){di(e,new il([oi(e,e.sel.primary(),t,r)],0),n)}function li(e,t,r){for(var n=[],i=0;i<e.sel.ranges.length;i++)n[i]=oi(e,e.sel.ranges[i],t[i],null);di(e,En(n,e.sel.primIndex),r)}function si(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,di(e,En(i,e.sel.primIndex),n)}function ci(e,t,r,n){di(e,In(t,r),n)}function ui(e,t,r){var n={ranges:t.ranges,update:function(t){var r=this;this.ranges=[];for(var n=0;n<t.length;n++)r.ranges[n]=new ol(H(e,t[n].anchor),H(e,t[n].head))},origin:r&&r.origin};return Oe(e,"beforeSelectionChange",e,n),e.cm&&Oe(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?En(n.ranges,n.ranges.length-1):t}function fi(e,t,r){var n=e.history.done,i=m(n);i&&i.ranges?(n[n.length-1]=t,hi(e,t,r)):di(e,t,r)}function di(e,t,r){hi(e,t,r),Jn(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function hi(e,t,r){(Ne(e,"beforeSelectionChange")||e.cm&&Ne(e.cm,"beforeSelectionChange"))&&(t=ui(e,t,r)),pi(e,gi(e,t,r&&r.bias||(B(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&r.scroll===!1||!e.cm||Zr(e.cm)}function pi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ie(e.cm)),Ct(e,"cursorActivity",e))}function mi(e){pi(e,gi(e,e.sel,null,!1),Ca)}function gi(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],l=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=yi(e,a.anchor,l&&l.anchor,r,n),c=yi(e,a.head,l&&l.head,r,n);(i||s!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ol(s,c))}return i?En(i,t.primIndex):t}function vi(e,t,r,n,i){var o=L(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var l=o.markedSpans[a],s=l.marker;if((null==l.from||(s.inclusiveLeft?l.from<=t.ch:l.from<t.ch))&&(null==l.to||(s.inclusiveRight?l.to>=t.ch:l.to>t.ch))){if(i&&(Oe(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=bi(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=B(c,r))&&(n<0?u<0:u>0))return vi(e,c,t,n,i)}var f=s.find(n<0?-1:1);return(n<0?s.inclusiveLeft:s.inclusiveRight)&&(f=bi(e,f,n,f.line==t.line?o:null)),f?vi(e,f,t,n,i):null}}return t}function yi(e,t,r,n,i){var o=n||1,a=vi(e,t,r,o,i)||!i&&vi(e,t,r,o,!0)||vi(e,t,r,-o,i)||!i&&vi(e,t,r,-o,!0);return a?a:(e.cantEdit=!0,R(e.first,0))}function bi(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?H(e,R(t.line-1)):null:r>0&&t.ch==(n||L(e,t.line)).text.length?t.line<e.first+e.size-1?R(t.line+1,0):null:new R(t.line,t.ch+r)}function xi(e){e.setSelection(R(e.firstLine(),0),R(e.lastLine()),Ca)}function wi(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=H(e,t)),r&&(n.to=H(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),Oe(e,"beforeChange",e,n),e.cm&&Oe(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function ki(e,t,r){if(e.cm){if(!e.cm.curOp)return fn(e.cm,ki)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(Ne(e,"beforeChange")||e.cm&&Ne(e.cm,"beforeChange"))||(t=wi(e,t,!0))){var n=Aa&&!r&&te(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)Ci(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text});else Ci(e,t)}}function Ci(e,t){if(1!=t.text.length||""!=t.text[0]||0!=B(t.from,t.to)){var r=Rn(e,t);Yn(e,t,r,e.cm?e.cm.curOp.id:NaN),Mi(e,t,r,Z(e,t));var n=[];Hn(e,function(e,r){r||d(n,e.history)!=-1||(Ei(e.history,t),n.push(e.history)),Mi(e,t,null,Z(e,t))})}}function Si(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,l="undo"==t?i.undone:i.done,s=0;s<a.length&&(n=a[s],r?!n.ranges||n.equals(e.sel):n.ranges);s++);if(s!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;n=a.pop(),n.ranges;){if(Zn(n,l),r&&!n.equals(e.sel))return void di(e,n,{clearRedo:!1});o=n}var c=[];Zn(o,l),l.push({changes:c,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var u=Ne(e,"beforeChange")||e.cm&&Ne(e.cm,"beforeChange"),f=n.changes.length-1;f>=0;--f){var h=function(r){var i=n.changes[r];if(i.origin=t,u&&!wi(e,i,!1))return a.length=0,{};c.push($n(e,i));var o=r?Rn(e,i):m(a);Mi(e,i,o,ni(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Nn(i)});var l=[];Hn(e,function(e,t){t||d(l,e.history)!=-1||(Ei(e.history,i),l.push(e.history)),Mi(e,i,null,ni(e,i))})}(f);if(h)return h.v}}}}function _i(e,t){if(0!=t&&(e.first+=t,e.sel=new il(g(e.sel.ranges,function(e){return new ol(R(e.anchor.line+t,e.anchor.ch),R(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){pn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)mn(e.cm,n,"gutter")}}function Mi(e,t,r,n){if(e.cm&&!e.cm.curOp)return fn(e.cm,Mi)(e,t,r,n);if(t.to.line<e.first)return void _i(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);_i(e,i),t={from:R(e.first,0),to:R(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:R(o,L(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),r||(r=Rn(e,t)),e.cm?Li(e.cm,t,n):Fn(e,t,n),hi(e,r,Ca)}}function Li(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=E(fe(L(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0,!0})),n.sel.contains(t.from,t.to)>-1&&Ie(e),Fn(n,t,r,wr(e)),e.options.lineWrapping||(n.iter(s,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0)),n.frontier=Math.min(n.frontier,o.line),xn(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?pn(e):o.line!=a.line||1!=t.text.length||qn(e.doc,t)?pn(e,o.line,a.line+1,c):mn(e,o.line,"text");var u=Ne(e,"changes"),f=Ne(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&Ct(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}function Ti(e,t,r,n,i){if(n||(n=r),B(n,r)<0){var o=n;n=r,r=o}"string"==typeof t&&(t=e.splitLines(t)),ki(e,{from:r,to:n,text:t,origin:i})}function Ai(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Oi(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var l=0;l<o.ranges.length;l++)Ai(o.ranges[l].anchor,t,r,n),Ai(o.ranges[l].head,t,r,n)}else{for(var s=0;s<o.changes.length;++s){var c=o.changes[s];if(r<c.from.line)c.from=R(c.from.line+n,c.from.ch),c.to=R(c.to.line+n,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Ei(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Oi(e.done,r,n,i),Oi(e.undone,r,n,i)}function Ii(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=L(e,F(e,t)):i=E(t),null==i?null:(n(o,i)&&e.cm&&mn(e.cm,i,r),o)}function Ni(e,t,r){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Jr(e,null,r)}function Pi(e,t,r,n){var i=new sl(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Ii(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ge(e,t)){var n=ye(t)<e.scrollTop;O(t,t.height+zt(i)),n&&Jr(o,null,i.height),o.curOp.forceUpdate=!0}return!0}),Ct(o,"lineWidgetAdded",o,i,"number"==typeof t?t:E(t)),i}function Ri(e,t,r,n,o){if(n&&n.shared)return Bi(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return fn(e.cm,Ri)(e,t,r,n,o);var a=new ul(e,o),l=B(t,r);if(n&&u(n,a,!1),l>0||0==l&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ue(e,t.line,t,r,a)||t.line!=r.line&&ue(e,r.line,t,r,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");V()}a.addToHistory&&Yn(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,c=t.line,f=e.cm;if(e.iter(c,r.line+1,function(e){f&&a.collapsed&&!f.options.lineWrapping&&fe(e)==f.display.maxLine&&(s=!0),a.collapsed&&c!=t.line&&O(e,0),Y(e,new $(a,c==t.line?t.ch:null,c==r.line?r.ch:null)),++c}),a.collapsed&&e.iter(t.line,r.line+1,function(t){ge(e,t)&&O(t,0)}),a.clearOnEnter&&Pa(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(U(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++cl,a.atomic=!0),f){if(s&&(f.curOp.updateMaxLine=!0),a.collapsed)pn(f,t.line,r.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var d=t.line;d<=r.line;d++)mn(f,d,"text");a.atomic&&mi(f.doc),Ct(f,"markerAdded",f,a)}return a}function Bi(e,t,r,n,i){n=u(n),n.shared=!1;var o=[Ri(e,t,r,n,i)],a=o[0],l=n.widgetNode;return Hn(e,function(e){l&&(n.widgetNode=l.cloneNode(!0)),o.push(Ri(e,H(e,t),H(e,r),n,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;a=m(o)}),new fl(o,a)}function zi(e){return e.findMarks(R(e.first,0),e.clipPos(R(e.lastLine())),function(e){return e.parent})}function Di(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(B(o,a)){var l=Ri(e,o,a,n.primary,n.primary.type);n.markers.push(l),l.parent=n}}}function Wi(e){for(var t=0;t<e.length;t++)!function(t){var r=e[t],n=[r.primary.doc];Hn(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];d(n,o.doc)==-1&&(o.parent=null,r.markers.splice(i--,1))}}(t)}function qi(e){var t=this;if(ji(t),!Ee(t,e)&&!Dt(t.display,e)){Re(e),Qo&&(pl=+new Date);var r=Cr(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),a=0,l=0;l<i;++l)!function(e,n){if(!t.options.allowDropFileTypes||d(t.options.allowDropFileTypes,e.type)!=-1){var l=new FileReader;l.onload=fn(t,function(){var e=l.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++a==i){r=H(t.doc,r);var s={from:r,to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};ki(t.doc,s),fi(t.doc,In(r,Nn(s)))}}),l.readAsText(e)}}(n[l],l);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var s=e.dataTransfer.getData("Text");if(s){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),hi(t.doc,In(r,r)),c)for(var u=0;u<c.length;++u)Ti(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(s,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Fi(e,t){if(Qo&&(!e.state.draggingText||+new Date-pl<100))return void De(t);if(!Ee(e,t)&&!Dt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!na)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ra&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),ra&&r.parentNode.removeChild(r)}}function Hi(e,t){var i=Cr(e,t);if(i){var o=document.createDocumentFragment();Lr(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}function ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Ki(e){if(document.body.getElementsByClassName)for(var t=document.body.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function Ui(){ml||(Vi(),ml=!0)}function Vi(){var e;Pa(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Ki($i)},100))}),Pa(window,"blur",function(){return Ki(Nr)})}function $i(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Gi(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,a=0;a<t.length-1;a++){var l=t[a];if(/^(cmd|meta|m)$/i.test(l))o=!0;else if(/^a(lt)?$/i.test(l))r=!0;else if(/^(c|ctrl|control)$/i.test(l))n=!0;else{if(!/^s(hift)?$/i.test(l))throw new Error("Unrecognized modifier name: "+l);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function Xi(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=g(r.split(" "),Gi),o=0;o<i.length;o++){var a=void 0,l=void 0;o==i.length-1?(l=i.join(" "),a=n):(l=i.slice(0,o+1).join(" "),a="...");var s=t[l];if(s){if(s!=a)throw new Error("Inconsistent bindings for "+l)}else t[l]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Yi(e,t,r,n){t=Zi(t);var i=t.call?t.call(e,n):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return Yi(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Yi(e,t.fallthrough[o],r,n);if(a)return a}}}function Qi(e){var t="string"==typeof e?e:gl[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Ji(e,t){if(ra&&34==e.keyCode&&e.char)return!1;var r=gl[e.keyCode],n=r;return null!=n&&!e.altGraphKey&&(e.altKey&&"Alt"!=r&&(n="Alt-"+n),(pa?e.metaKey:e.ctrlKey)&&"Ctrl"!=r&&(n="Ctrl-"+n),(pa?e.ctrlKey:e.metaKey)&&"Cmd"!=r&&(n="Cmd-"+n),!t&&e.shiftKey&&"Shift"!=r&&(n="Shift-"+n),n)}function Zi(e){return"string"==typeof e?xl[e]:e}function eo(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&B(o.from,m(n).to)<=0;){var a=n.pop();if(B(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}un(e,function(){for(var t=n.length-1;t>=0;t--)Ti(e.doc,"",n[t].from,n[t].to,"+delete");Zr(e)})}function to(e,t){var r=L(e.doc,t),n=fe(r);return n!=r&&(t=E(n)),Me(!0,e,n,t,1)}function ro(e,t){var r=L(e.doc,t),n=de(r);return n!=r&&(t=E(n)),Me(!0,e,r,t,-1)}function no(e,t){var r=to(e,t.line),n=L(e.doc,r.line),i=Ce(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return R(r.line,a?0:o,r.sticky)}return r}function io(e,t,r){if("string"==typeof t&&!(t=Cl[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=ka}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function oo(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Yi(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Yi(t,e.options.extraKeys,r,e)||Yi(t,e.options.keyMap,r,e)}function ao(e,t,r,n){var i=e.state.keySeq;if(i){if(Qi(t))return"handled";Sl.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=oo(e,t,n);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&Ct(e,"keyHandled",e,t,r),"handled"!=o&&"multi"!=o||(Re(r),Ar(e)),i&&!o&&/\'$/.test(t)?(Re(r),!0):!!o}function lo(e,t){var r=Ji(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?ao(e,"Shift-"+r,t,function(t){return io(e,t,!0)})||ao(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return io(e,t)}):ao(e,r,t,function(t){return io(e,t)}))}function so(e,t,r){return ao(e,"'"+r+"'",t,function(t){return io(e,t,!0)})}function co(e){var t=this;if(t.curOp.focus=a(),!Ee(t,e)){Qo&&Jo<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=lo(t,e);ra&&(_l=n?r:null,!n&&88==r&&!Da&&(ca?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||uo(t)}}function uo(e){function t(e){18!=e.keyCode&&e.altKey||(ga(r,"CodeMirror-crosshair"),Ae(document,"keyup",t),Ae(document,"mouseover",t))}var r=e.display.lineDiv;l(r,"CodeMirror-crosshair"),Pa(document,"keyup",t),Pa(document,"mouseover",t)}function fo(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ee(this,e)}function ho(e){var t=this;if(!(Dt(t.display,e)||Ee(t,e)||e.ctrlKey&&!e.altKey||ca&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(ra&&r==_l)return _l=null,void Re(e);if(!ra||e.which&&!(e.which<10)||!lo(t,e)){var i=String.fromCharCode(null==n?r:n);"\b"!=i&&(so(t,e,i)||t.display.input.onKeyPress(e))}}}function po(e){var t=this,r=t.display;if(!(Ee(t,e)||r.activeTouch&&r.input.supportsTouch())){if(r.input.ensurePolled(),r.shift=e.shiftKey,Dt(r,e))return void(Zo||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100)));if(!bo(t,e)){var n=Cr(t,e);switch(window.focus(),qe(e)){case 1:t.state.selectingText?t.state.selectingText(e):n?mo(t,e,n):We(e)==r.scroller&&Re(e);break;case 2:Zo&&(t.state.lastMiddleDown=+new Date),n&&ai(t.doc,n),setTimeout(function(){return r.input.focus()},20),Re(e);break;case 3:ma?xo(t,e):Er(t)}}}}function mo(e,t,r){Qo?setTimeout(c(Or,e),0):e.curOp.focus=a();var n,i=+new Date;kl&&kl.time>i-400&&0==B(kl.pos,r)?n="triple":wl&&wl.time>i-400&&0==B(wl.pos,r)?(n="double",kl={time:i,pos:r}):(n="single",wl={time:i,pos:r});var o,l=e.doc.sel,s=ca?t.metaKey:t.ctrlKey;e.options.dragDrop&&Ra&&!e.isReadOnly()&&"single"==n&&(o=l.contains(r))>-1&&(B((o=l.ranges[o]).from(),r)<0||r.xRel>0)&&(B(o.to(),r)>0||r.xRel<0)?go(e,t,r,s):vo(e,t,r,n,s)}function go(e,t,r,n){var i=e.display,o=+new Date,a=fn(e,function(l){Zo&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ae(document,"mouseup",a),Ae(i.scroller,"drop",a),Math.abs(t.clientX-l.clientX)+Math.abs(t.clientY-l.clientY)<10&&(Re(l),!n&&+new Date-200<o&&ai(e.doc,r),Zo||Qo&&9==Jo?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())});Zo&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=ca?t.altKey:t.ctrlKey,i.scroller.dragDrop&&i.scroller.dragDrop(),Pa(document,"mouseup",a),Pa(i.scroller,"drop",a)}function vo(e,t,r,n,i){function o(t){if(0!=B(b,t))if(b=t,"rect"==n){for(var i=[],o=e.options.tabSize,a=f(L(u,r.line).text,r.ch,o),l=f(L(u,t.line).text,t.ch,o),s=Math.min(a,l),c=Math.max(a,l),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var y=L(u,g).text,x=h(y,s,o);s==c?i.push(new ol(R(g,x),R(g,x))):y.length>x&&i.push(new ol(R(g,x),R(g,h(y,c,o))))}i.length||i.push(new ol(r,r)),di(u,En(m.ranges.slice(0,p).concat(i),p),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w=d,k=w.anchor,C=t;if("single"!=n){var S;S="double"==n?e.findWordAt(t):new ol(R(t.line,0),H(u,R(t.line+1,0))),B(S.anchor,k)>0?(C=S.head,k=q(w.from(),S.anchor)):(C=S.anchor,k=W(w.to(),S.head))}var _=m.ranges.slice(0);_[p]=new ol(H(u,k),C),di(u,En(_,p),Sa)}}function l(t){var r=++w,i=Cr(e,t,!0,"rect"==n);if(i)if(0!=B(i,b)){e.curOp.focus=a(),o(i);var s=Dr(c,u);(i.line>=s.to||i.line<s.from)&&setTimeout(fn(e,function(){w==r&&l(t)}),150)}else{var f=t.clientY<x.top?-20:t.clientY>x.bottom?20:0;f&&setTimeout(fn(e,function(){w==r&&(c.scroller.scrollTop+=f,l(t))}),50)}}function s(t){e.state.selectingText=!1,w=1/0,Re(t),c.input.focus(),Ae(document,"mousemove",k),Ae(document,"mouseup",C),u.history.lastSelOrigin=null}var c=e.display,u=e.doc;Re(t);var d,p,m=u.sel,g=m.ranges;if(i&&!t.shiftKey?(p=u.sel.contains(r),d=p>-1?g[p]:new ol(r,r)):(d=u.sel.primary(),p=u.sel.primIndex),ua?t.shiftKey&&t.metaKey:t.altKey)n="rect",i||(d=new ol(r,r)),r=Cr(e,t,!0,!0),p=-1;else if("double"==n){var v=e.findWordAt(r);d=e.display.shift||u.extend?oi(u,d,v.anchor,v.head):v}else if("triple"==n){var y=new ol(R(r.line,0),H(u,R(r.line+1,0)));d=e.display.shift||u.extend?oi(u,d,y.anchor,y.head):y}else d=oi(u,d,r);i?p==-1?(p=g.length,di(u,En(g.concat([d]),p),{scroll:!1,origin:"*mouse"})):g.length>1&&g[p].empty()&&"single"==n&&!t.shiftKey?(di(u,En(g.slice(0,p).concat(g.slice(p+1)),0),{scroll:!1,origin:"*mouse"}),m=u.sel):si(u,p,d,Sa):(p=0,di(u,new il([d],0),Sa),m=u.sel);var b=r,x=c.wrapper.getBoundingClientRect(),w=0,k=fn(e,function(e){qe(e)?l(e):s(e)}),C=fn(e,s);e.state.selectingText=C,Pa(document,"mousemove",k),Pa(document,"mouseup",C)}function yo(e,t,r,n){var i,o;try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&Re(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!Ne(e,r))return ze(t);o-=l.top-a.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var c=a.gutters.childNodes[s];if(c&&c.getBoundingClientRect().right>=i){return Oe(e,r,e,I(e.doc,o),e.options.gutters[s],t),ze(t)}}}function bo(e,t){return yo(e,t,"gutterClick",!0)}function xo(e,t){Dt(e.display,t)||wo(e,t)||Ee(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function wo(e,t){return!!Ne(e,"gutterContextMenu")&&yo(e,t,"gutterContextMenu",!1)}function ko(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),ir(e)}function Co(e){An(e),pn(e),Pr(e)}function So(e,t,r){if(!t!=!(r&&r!=Ml)){var n=e.display.dragFunctions,i=t?Pa:Ae;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function _o(e){e.options.lineWrapping?(l(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(ga(e.display.wrapper,"CodeMirror-wrap"),xe(e)),kr(e),pn(e),ir(e),setTimeout(function(){return Ur(e)},100)}function Mo(e,t){var r=this;if(!(this instanceof Mo))return new Mo(e,t);this.options=t=t?u(t):{},u(Ll,t,!1),On(t);var n=t.value;"string"==typeof n&&(n=new hl(n,t.mode,null,t.lineSeparator,t.direction)),this.doc=n;var i=new Mo.inputStyles[t.inputStyle](this),o=this.display=new M(e,n,i);o.wrapper.CodeMirror=this,An(this),ko(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),$r(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new ya,keySeq:null,specialChars:null},t.autofocus&&!sa&&o.input.focus(),Qo&&Jo<11&&setTimeout(function(){return r.display.input.reset(!0)},20),Lo(this),Ui(),tn(this),this.curOp.forceUpdate=!0,jn(this,n),t.autofocus&&!sa||this.hasFocus()?setTimeout(c(Ir,this),20):Nr(this);for(var a in Tl)Tl.hasOwnProperty(a)&&Tl[a](r,t[a],Ml);Rr(this),t.finishInit&&t.finishInit(this);for(var l=0;l<Al.length;++l)Al[l](r);rn(this),Zo&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function Lo(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function r(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function n(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var i=e.display;Pa(i.scroller,"mousedown",fn(e,po)),Qo&&Jo<11?Pa(i.scroller,"dblclick",fn(e,function(t){if(!Ee(e,t)){var r=Cr(e,t);if(r&&!bo(e,t)&&!Dt(e.display,t)){Re(t);var n=e.findWordAt(r);ai(e.doc,n.anchor,n.head)}}})):Pa(i.scroller,"dblclick",function(t){return Ee(e,t)||Re(t)}),ma||Pa(i.scroller,"contextmenu",function(t){return xo(e,t)});var o,a={end:0};Pa(i.scroller,"touchstart",function(t){if(!Ee(e,t)&&!r(t)){i.input.ensurePolled(),clearTimeout(o);var n=+new Date;i.activeTouch={start:n,moved:!1,prev:n-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Pa(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Pa(i.scroller,"touchend",function(r){var o=i.activeTouch;if(o&&!Dt(i,r)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,l=e.coordsChar(i.activeTouch,"page");a=!o.prev||n(o,o.prev)?new ol(l,l):!o.prev.prev||n(o,o.prev.prev)?e.findWordAt(l):new ol(R(l.line,0),H(e.doc,R(l.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Re(r)}t()}),Pa(i.scroller,"touchcancel",t),Pa(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Wr(e,i.scroller.scrollTop),qr(e,i.scroller.scrollLeft,!0),Oe(e,"scroll",e))}),Pa(i.scroller,"mousewheel",function(t){return jr(e,t)}),Pa(i.scroller,"DOMMouseScroll",function(t){return jr(e,t)}),Pa(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ee(e,t)||De(t)},over:function(t){Ee(e,t)||(Hi(e,t),De(t))},start:function(t){return Fi(e,t)},drop:fn(e,qi),leave:function(t){Ee(e,t)||ji(e)}};var l=i.input.getField();Pa(l,"keyup",function(t){return fo.call(e,t)}),Pa(l,"keydown",fn(e,co)),Pa(l,"keypress",fn(e,ho)),Pa(l,"focus",function(t){return Ir(e,t)}),Pa(l,"blur",function(t){return Nr(e,t)})}function To(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=et(e,t):r="prev");var a=e.options.tabSize,l=L(o,t),s=f(l.text,null,a);l.stateAfter&&(l.stateAfter=null);var c,u=l.text.match(/^\s*/)[0];if(n||/\S/.test(l.text)){if("smart"==r&&((c=o.mode.indent(i,l.text.slice(u.length),l.text))==ka||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?f(L(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var d="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,d+="\t";if(h<c&&(d+=p(c-h)),d!=u)return Ti(o,d,R(t,0),R(t,u.length),"+input"),l.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=R(t,u.length);si(o,g,new ol(y,y));break}}}function Ao(e){Ol=e}function Oo(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a=e.state.pasteIncoming||"paste"==i,l=Ba(t),s=null;if(a&&n.ranges.length>1)if(Ol&&Ol.text.join("\n")==t){if(n.ranges.length%Ol.text.length==0){s=[];for(var c=0;c<Ol.text.length;c++)s.push(o.splitLines(Ol.text[c]))}}else l.length==n.ranges.length&&(s=g(l,function(e){return[e]}));for(var u,f=n.ranges.length-1;f>=0;f--){var d=n.ranges[f],h=d.from(),p=d.to();d.empty()&&(r&&r>0?h=R(h.line,h.ch-r):e.state.overwrite&&!a?p=R(p.line,Math.min(L(o,p.line).text.length,p.ch+m(l).length)):Ol&&Ol.lineWise&&Ol.text.join("\n")==t&&(h=p=R(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:s?s[f%s.length]:l,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};ki(e.doc,v),Ct(e,"inputRead",e,v)}t&&!a&&Io(e,t),Zr(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Eo(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||un(t,function(){return Oo(t,r,0,null,"paste")}),!0}function Io(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var l=0;l<o.electricChars.length;l++)if(t.indexOf(o.electricChars.charAt(l))>-1){a=To(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(L(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=To(e,i.head.line,"smart"));a&&Ct(e,"electricInput",e,i.head.line)}}}function No(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:R(i,0),head:R(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Po(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Ro(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Zo?e.style.width="1000px":e.setAttribute("wrap","off"),aa&&(e.style.border="1px solid black"),Po(e),t}function Bo(e,t,r,n,i){function o(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new R(n,t.ch,t.sticky),
|
4 |
-
c=L(e,n))}function a(n){var a;if(null==(a=i?Le(e.cm,c,t,r):_e(c,t,r))){if(n||!o())return!1;t=Me(i,e.cm,c,t.line,r)}else t=a;return!0}var l=t,s=r,c=L(e,t.line);if("char"==n)a();else if("column"==n)a(!0);else if("word"==n||"group"==n)for(var u=null,f="group"==n,d=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(r<0)||a(!h);h=!1){var p=c.text.charAt(t.ch)||"\n",m=w(p,d)?"w":f&&"\n"==p?"n":!f||/\s/.test(p)?null:"p";if(!f||h||m||(m="s"),u&&u!=m){r<0&&(r=1,a(),t.sticky="after");break}if(m&&(u=m),r>0&&!a(!h))break}var g=yi(e,t,l,s,!0);return z(l,g)&&(g.hitSide=!0),g}function zo(e,t,r,n){var i,o=e.doc,a=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(l-.5*vr(e.display),3);i=(r>0?t.bottom:t.top)+r*s}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var c;c=hr(e,a,i),c.outside;){if(r<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*r}return c}function Do(e,t){var r=Xt(e,t.line);if(!r||r.hidden)return null;var n=L(e.doc,t.line),i=Vt(r,n,t.line),o=Ce(n,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var l=Jt(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function Wo(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function qo(e,t){return t&&(e.bad=!0),e}function Fo(e,t,r,n,i){function o(e){return function(t){return t.id==e}}function a(){u&&(c+=f,u=!1)}function l(e){e&&(a(),c+=e)}function s(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void l(r||t.textContent.replace(/\u200b/g,""));var c,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(R(n,0),R(i+1,0),o(+d));return void(h.length&&(c=h[0].find())&&l(T(e.doc,c.from,c.to).join(f)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&a();for(var m=0;m<t.childNodes.length;m++)s(t.childNodes[m]);p&&(u=!0)}else 3==t.nodeType&&l(t.nodeValue)}for(var c="",u=!1,f=e.doc.lineSeparator();s(t),t!=r;)t=t.nextSibling;return c}function Ho(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return qo(e.clipPos(R(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return jo(o,t,r)}}function jo(e,t,r){function n(t,r,n){for(var i=-1;i<(f?f.length:0);i++)for(var o=i<0?u.map:f[i],a=0;a<o.length;a+=3){var l=o[a+2];if(l==t||l==r){var s=E(i<0?e.line:e.rest[i]),c=o[a]+n;return(n<0||l!=t)&&(c=o[a+(n?1:0)]),R(s,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return qo(R(E(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[r],r=0,!t)){var l=e.rest?m(e.rest):e.line;return qo(R(E(l),l.text.length),a)}var s=3==t.nodeType?t:null,c=t;for(s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,r&&(r=s.nodeValue.length));c.parentNode!=i;)c=c.parentNode;var u=e.measure,f=u.maps,d=n(s,c,r);if(d)return qo(d,a);for(var h=c.nextSibling,p=s?s.nodeValue.length-r:0;h;h=h.nextSibling){if(d=n(h,h.firstChild,0))return qo(R(d.line,d.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=r;g;g=g.previousSibling){if(d=n(g,g.firstChild,-1))return qo(R(d.line,d.ch+v),a);v+=g.textContent.length}}function Ko(e,t){function r(){e.value=s.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=a();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(Pa(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Ae(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=Mo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s}var Uo=navigator.userAgent,Vo=navigator.platform,$o=/gecko\/\d/i.test(Uo),Go=/MSIE \d/.test(Uo),Xo=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Uo),Yo=/Edge\/(\d+)/.exec(Uo),Qo=Go||Xo||Yo,Jo=Qo&&(Go?document.documentMode||6:+(Yo||Xo)[1]),Zo=!Yo&&/WebKit\//.test(Uo),ea=Zo&&/Qt\/\d+\.\d+/.test(Uo),ta=!Yo&&/Chrome\//.test(Uo),ra=/Opera\//.test(Uo),na=/Apple Computer/.test(navigator.vendor),ia=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Uo),oa=/PhantomJS/.test(Uo),aa=!Yo&&/AppleWebKit/.test(Uo)&&/Mobile\/\w+/.test(Uo),la=/Android/.test(Uo),sa=aa||la||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Uo),ca=aa||/Mac/.test(Vo),ua=/\bCrOS\b/.test(Uo),fa=/win/i.test(Vo),da=ra&&Uo.match(/Version\/(\d*\.\d*)/);da&&(da=Number(da[1])),da&&da>=15&&(ra=!1,Zo=!0);var ha,pa=ca&&(ea||ra&&(null==da||da<12.11)),ma=$o||Qo&&Jo>=9,ga=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};ha=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var va=function(e){e.select()};aa?va=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:Qo&&(va=function(e){try{e.select()}catch(e){}});var ya=function(){this.id=null};ya.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var ba,xa,wa=30,ka={toString:function(){return"CodeMirror.Pass"}},Ca={scroll:!1},Sa={origin:"*mouse"},_a={origin:"+move"},Ma=[""],La=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ta=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,Aa=!1,Oa=!1,Ea=null,Ia=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,s=/[1n]/;return function(r,n){var c="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var u=r.length,f=[],d=0;d<u;++d)f.push(e(r.charCodeAt(d)));for(var h=0,p=c;h<u;++h){var g=f[h];"m"==g?f[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=f[v];"1"==b&&"r"==y?f[v]="n":a.test(b)&&(y=b,"r"==b&&(f[v]="R"))}for(var x=1,w=f[0];x<u-1;++x){var k=f[x];"+"==k&&"1"==w&&"1"==f[x+1]?f[x]="1":","!=k||w!=f[x+1]||"1"!=w&&"n"!=w||(f[x]=w),w=k}for(var C=0;C<u;++C){var S=f[C];if(","==S)f[C]="N";else if("%"==S){var _=void 0;for(_=C+1;_<u&&"%"==f[_];++_);for(var M=C&&"!"==f[C-1]||_<u&&"1"==f[_]?"1":"N",L=C;L<_;++L)f[L]=M;C=_-1}}for(var T=0,A=c;T<u;++T){var O=f[T];"L"==A&&"1"==O?f[T]="L":a.test(O)&&(A=O)}for(var E=0;E<u;++E)if(o.test(f[E])){var I=void 0;for(I=E+1;I<u&&o.test(f[I]);++I);for(var N="L"==(E?f[E-1]:c),P="L"==(I<u?f[I]:c),R=N==P?N?"L":"R":c,B=E;B<I;++B)f[B]=R;E=I-1}for(var z,D=[],W=0;W<u;)if(l.test(f[W])){var q=W;for(++W;W<u&&l.test(f[W]);++W);D.push(new t(0,q,W))}else{var F=W,H=D.length;for(++W;W<u&&"L"!=f[W];++W);for(var j=F;j<W;)if(s.test(f[j])){F<j&&D.splice(H,0,new t(1,F,j));var K=j;for(++j;j<W&&s.test(f[j]);++j);D.splice(H,0,new t(2,K,j)),F=j}else++j;F<W&&D.splice(H,0,new t(1,F,W))}return 1==D[0].level&&(z=r.match(/^\s+/))&&(D[0].from=z[0].length,D.unshift(new t(0,0,z[0].length))),1==m(D).level&&(z=r.match(/\s+$/))&&(m(D).to-=z[0].length,D.push(new t(0,u-z[0].length,u))),"rtl"==n?D.reverse():D}}(),Na=[],Pa=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||Na).concat(r)}},Ra=function(){if(Qo&&Jo<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),Ba=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);i==-1&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");a!=-1?(r.push(o.slice(0,a)),t+=a+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},za=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Da=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Wa=null,qa={},Fa={},Ha={},ja=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};ja.prototype.eol=function(){return this.pos>=this.string.length},ja.prototype.sol=function(){return this.pos==this.lineStart},ja.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},ja.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},ja.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},ja.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},ja.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},ja.prototype.skipToEnd=function(){this.pos=this.string.length},ja.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},ja.prototype.backUp=function(e){this.pos-=e},ja.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},ja.prototype.indentation=function(){return f(this.string,null,this.tabSize)-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},ja.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&t!==!1&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return t!==!1&&(this.pos+=e.length),!0},ja.prototype.current=function(){return this.string.slice(this.start,this.pos)},ja.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}};var Ka=function(e,t,r){this.text=e,ne(this,t),this.height=r?r(this):1};Ka.prototype.lineNo=function(){return E(this)},Pe(Ka);var Ua,Va={},$a={},Ga=null,Xa=null,Ya={left:0,right:0,top:0,bottom:0},Qa=0,Ja=null;Qo?Ja=-.53:$o?Ja=15:ta?Ja=-.7:na&&(Ja=-1/3);var Za=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Pa(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Pa(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,Qo&&Jo<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Za.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},Za.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz)},Za.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert)},Za.prototype.zeroWidthHack=function(){var e=ca&&!ia?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new ya,this.disableVert=new ya},Za.prototype.enableZeroWidthBar=function(e,t){function r(){var n=e.getBoundingClientRect();document.elementFromPoint(n.left+1,n.bottom-1)!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},Za.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var el=function(){};el.prototype.update=function(){return{bottom:0,right:0}},el.prototype.setScrollLeft=function(){},el.prototype.setScrollTop=function(){},el.prototype.clear=function(){};var tl={native:Za,null:el},rl=0,nl=function(e,t,r){var n=e.display;this.viewport=t,this.visible=Dr(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=jt(e),this.force=r,this.dims=br(e),this.events=[]};nl.prototype.signal=function(e,t){Ne(e,t)&&this.events.push(arguments)},nl.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Oe.apply(null,e.events[t])};var il=function(e,t){this.ranges=e,this.primIndex=t};il.prototype.primary=function(){return this.ranges[this.primIndex]},il.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var r=0;r<this.ranges.length;r++){var n=t.ranges[r],i=e.ranges[r];if(!z(n.anchor,i.anchor)||!z(n.head,i.head))return!1}return!0},il.prototype.deepCopy=function(){for(var e=this,t=[],r=0;r<this.ranges.length;r++)t[r]=new ol(D(e.ranges[r].anchor),D(e.ranges[r].head));return new il(t,this.primIndex)},il.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},il.prototype.contains=function(e,t){var r=this;t||(t=e);for(var n=0;n<this.ranges.length;n++){var i=r.ranges[n];if(B(t,i.from())>=0&&B(e,i.to())<=0)return n}return-1};var ol=function(e,t){this.anchor=e,this.head=t};ol.prototype.from=function(){return q(this.anchor,this.head)},ol.prototype.to=function(){return W(this.anchor,this.head)},ol.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};var al=function(e){var t=this;this.lines=e,this.parent=null;for(var r=0,n=0;n<e.length;++n)e[n].parent=t,r+=e[n].height;this.height=r};al.prototype.chunkSize=function(){return this.lines.length},al.prototype.removeInner=function(e,t){for(var r=this,n=e,i=e+t;n<i;++n){var o=r.lines[n];r.height-=o.height,ct(o),Ct(o,"delete")}this.lines.splice(e,t)},al.prototype.collapse=function(e){e.push.apply(e,this.lines)},al.prototype.insertInner=function(e,t,r){var n=this;this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=n},al.prototype.iterN=function(e,t,r){for(var n=this,i=e+t;e<i;++e)if(r(n.lines[e]))return!0};var ll=function(e){var t=this;this.children=e;for(var r=0,n=0,i=0;i<e.length;++i){var o=e[i];r+=o.chunkSize(),n+=o.height,o.parent=t}this.size=r,this.height=n,this.parent=null};ll.prototype.chunkSize=function(){return this.size},ll.prototype.removeInner=function(e,t){var r=this;this.size-=t;for(var n=0;n<this.children.length;++n){var i=r.children[n],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e),l=i.height;if(i.removeInner(e,a),r.height-=l-i.height,o==a&&(r.children.splice(n--,1),i.parent=null),0==(t-=a))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof al))){var s=[];this.collapse(s),this.children=[new al(s)],this.children[0].parent=this}},ll.prototype.collapse=function(e){for(var t=this,r=0;r<this.children.length;++r)t.children[r].collapse(e)},ll.prototype.insertInner=function(e,t,r){var n=this;this.size+=t.length,this.height+=r;for(var i=0;i<this.children.length;++i){var o=n.children[i],a=o.chunkSize();if(e<=a){if(o.insertInner(e,t,r),o.lines&&o.lines.length>50){for(var l=o.lines.length%25+25,s=l;s<o.lines.length;){var c=new al(o.lines.slice(s,s+=25));o.height-=c.height,n.children.splice(++i,0,c),c.parent=n}o.lines=o.lines.slice(0,l),n.maybeSpill()}break}e-=a}},ll.prototype.maybeSpill=function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),r=new ll(t);if(e.parent){e.size-=r.size,e.height-=r.height;var n=d(e.parent.children,e);e.parent.children.splice(n+1,0,r)}else{var i=new ll(e.children);i.parent=e,e.children=[i,r],e=i}r.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},ll.prototype.iterN=function(e,t,r){for(var n=this,i=0;i<this.children.length;++i){var o=n.children[i],a=o.chunkSize();if(e<a){var l=Math.min(t,a-e);if(o.iterN(e,l,r))return!0;if(0==(t-=l))break;e=0}else e-=a}};var sl=function(e,t,r){var n=this;if(r)for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i]);this.doc=e,this.node=t};sl.prototype.clear=function(){var e=this,t=this.doc.cm,r=this.line.widgets,n=this.line,i=E(n);if(null!=i&&r){for(var o=0;o<r.length;++o)r[o]==e&&r.splice(o--,1);r.length||(n.widgets=null);var a=zt(this);O(n,Math.max(0,n.height-a)),t&&(un(t,function(){Ni(t,n,-a),mn(t,i,"widget")}),Ct(t,"lineWidgetCleared",t,this,i))}},sl.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=zt(this)-t;i&&(O(n,n.height+i),r&&un(r,function(){r.curOp.forceUpdate=!0,Ni(r,n,i),Ct(r,"lineWidgetChanged",r,e,E(n))}))},Pe(sl);var cl=0,ul=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++cl};ul.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&tn(t),Ne(this,"clear")){var n=this.find();n&&Ct(this,"clear",n.from,n.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var l=e.lines[a],s=G(l.markedSpans,e);t&&!e.collapsed?mn(t,E(l),"text"):t&&(null!=s.to&&(o=E(l)),null!=s.from&&(i=E(l))),l.markedSpans=X(l.markedSpans,s),null==s.from&&e.collapsed&&!ge(e.doc,l)&&t&&O(l,vr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=fe(e.lines[c]),f=be(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&pn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&mi(t.doc)),t&&Ct(t,"markerCleared",t,this,i,o),r&&rn(t),this.parent&&this.parent.clear()}},ul.prototype.find=function(e,t){var r=this;null==e&&"bookmark"==this.type&&(e=1);for(var n,i,o=0;o<this.lines.length;++o){var a=r.lines[o],l=G(a.markedSpans,r);if(null!=l.from&&(n=R(t?a:E(a),l.from),e==-1))return n;if(null!=l.to&&(i=R(t?a:E(a),l.to),1==e))return i}return n&&{from:n,to:i}},ul.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&un(n,function(){var i=t.line,o=E(t.line),a=Xt(n,o);if(a&&(rr(a),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!ge(r.doc,i)&&null!=r.height){var l=r.height;r.height=null;var s=zt(r)-l;s&&O(i,i.height+s)}Ct(n,"markerChanged",n,e)})},ul.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&d(t.maybeHiddenMarkers,this)!=-1||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},ul.prototype.detachLine=function(e){if(this.lines.splice(d(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Pe(ul);var fl=function(e,t){var r=this;this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=r};fl.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();Ct(this,"clear")}},fl.prototype.find=function(e,t){return this.primary.find(e,t)},Pe(fl);var dl=0,hl=function(e,t,r,n,i){if(!(this instanceof hl))return new hl(e,t,r,n,i);null==r&&(r=0),ll.call(this,[new al([new Ka("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=r;var o=R(r,0);this.sel=In(o),this.history=new Vn(null),this.id=++dl,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Fn(this,{from:o,to:o,text:e}),di(this,In(o),Ca)};hl.prototype=b(ll.prototype,{constructor:hl,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=A(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:hn(function(e){var t=R(this.first,0),r=this.first+this.size-1;ki(this,{from:t,to:R(r,L(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),di(this,In(t))}),replaceRange:function(e,t,r,n){t=H(this,t),r=r?H(this,r):t,Ti(this,e,t,r,n)},getRange:function(e,t,r){var n=T(this,H(this,e),H(this,t));return r===!1?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(N(this,e))return L(this,e)},getLineNumber:function(e){return E(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=L(this,e)),fe(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return H(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||e===!1?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:hn(function(e,t,r){ci(this,H(this,"number"==typeof e?R(e,t||0):e),null,r)}),setSelection:hn(function(e,t,r){ci(this,H(this,e),H(this,t||e),r)}),extendSelection:hn(function(e,t,r){ai(this,H(this,e),t&&H(this,t),r)}),extendSelections:hn(function(e,t){li(this,K(this,e),t)}),extendSelectionsBy:hn(function(e,t){li(this,K(this,g(this.sel.ranges,e)),t)}),setSelections:hn(function(e,t,r){var n=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new ol(H(n,e[o].anchor),H(n,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),di(this,En(i,t),r)}}),addSelection:hn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new ol(H(this,e),H(this,t||e))),di(this,En(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this,n=this.sel.ranges,i=0;i<n.length;i++){var o=T(r,n[i].from(),n[i].to());t=t?t.concat(o):o}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,r=[],n=this.sel.ranges,i=0;i<n.length;i++){var o=T(t,n[i].from(),n[i].to());e!==!1&&(o=o.join(e||t.lineSeparator())),r[i]=o}return r},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:hn(function(e,t,r){for(var n=this,i=[],o=this.sel,a=0;a<o.ranges.length;a++){var l=o.ranges[a];i[a]={from:l.from(),to:l.to(),text:n.splitLines(e[a]),origin:r}}for(var s=t&&"end"!=t&&zn(this,i,t),c=i.length-1;c>=0;c--)ki(n,i[c]);s?fi(this,s):this.cm&&Zr(this.cm)}),undo:hn(function(){Si(this,"undo")}),redo:hn(function(){Si(this,"redo")}),undoSelection:hn(function(){Si(this,"undo",!0)}),redoSelection:hn(function(){Si(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new Vn(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:ii(this.history.done),undone:ii(this.history.undone)}},setHistory:function(e){var t=this.history=new Vn(this.history.maxGeneration);t.done=ii(e.done.slice(0),null,!0),t.undone=ii(e.undone.slice(0),null,!0)},setGutterMarker:hn(function(e,t,r){return Ii(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&k(n)&&(e.gutterMarkers=null),!0})}),clearGutter:hn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&Ii(t,r,"gutter",function(){return r.gutterMarkers[e]=null,k(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!N(this,e))return null;if(t=e,!(e=L(this,e)))return null}else if(null==(t=E(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:hn(function(t,r,n){return Ii(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:hn(function(t,r,n){return Ii(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var a=o.match(e(n));if(!a)return!1;var l=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&l!=o.length?" ":"")+o.slice(l)||null}return!0})}),addLineWidget:hn(function(e,t,r){return Pi(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return Ri(this,H(this,e),H(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=H(this,e),Ri(this,e,e,r,"bookmark")},findMarksAt:function(e){e=H(this,e);var t=[],r=L(this,e.line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=H(this,e),t=H(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var l=0;l<a.length;l++){var s=a[l];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||r&&!r(s.marker)||n.push(s.marker.parent||s.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),H(this,R(r,t))},indexFromPos:function(e){e=H(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new hl(A(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new hl(A(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],Di(n,zi(this)),n},unlinkDoc:function(e){var t=this;if(e instanceof Mo&&(e=e.doc),this.linked)for(var r=0;r<this.linked.length;++r){var n=t.linked[r];if(n.doc==e){t.linked.splice(r,1),e.unlinkDoc(t),Wi(zi(t));break}}if(e.history==this.history){var i=[e.id];Hn(e,function(e){return i.push(e.id)},!0),e.history=new Vn(null),e.history.done=ii(this.history.done,i),e.history.undone=ii(this.history.undone,i)}},iterLinkedDocs:function(e){Hn(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Ba(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:hn(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Un(this.cm))})}),hl.prototype.eachLine=hl.prototype.iter;for(var pl=0,ml=!1,gl={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",
|
5 |
-
63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},vl=0;vl<10;vl++)gl[vl+48]=gl[vl+96]=String(vl);for(var yl=65;yl<=90;yl++)gl[yl]=String.fromCharCode(yl);for(var bl=1;bl<=12;bl++)gl[bl+111]=gl[bl+63235]="F"+bl;var xl={};xl.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},xl.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},xl.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},xl.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},xl.default=ca?xl.macDefault:xl.pcDefault;var wl,kl,Cl={selectAll:xi,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Ca)},killLine:function(e){return eo(e,function(t){if(t.empty()){var r=L(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:R(t.head.line+1,0)}:{from:t.head,to:R(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return eo(e,function(t){return{from:R(t.from().line,0),to:H(e.doc,R(t.to().line+1,0))}})},delLineLeft:function(e){return eo(e,function(e){return{from:R(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return eo(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return eo(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(R(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(R(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return to(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return no(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ro(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},_a)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.charCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},_a)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?no(e,t.head):n},_a)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),a=f(e.getLine(o.line),o.ch,n);t.push(p(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return un(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=L(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new R(i.line,i.ch-1)),i.ch>0)i=new R(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),R(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=L(e.doc,i.line-1).text;a&&(i=new R(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),R(i.line-1,a.length-1),i,"+transpose"))}r.push(new ol(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return un(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);Zr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},Sl=new ya,_l=null,Ml={toString:function(){return"CodeMirror.Init"}},Ll={},Tl={};Mo.defaults=Ll,Mo.optionHandlers=Tl;var Al=[];Mo.defineInitHook=function(e){return Al.push(e)};var Ol=null,El=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new ya,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};El.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())Ao({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=No(i);Ao({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,Ca),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=Ol.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var a=Ro(),l=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),l.value=Ol.text.join("\n");var s=document.activeElement;va(l),setTimeout(function(){i.display.lineSpace.removeChild(a),s.focus(),s==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;Po(o,i.options.spellcheck),Pa(o,"paste",function(e){Ee(i,e)||Eo(e,i)||Jo<=11&&setTimeout(fn(i,function(){return r.updateFromDOM()}),20)}),Pa(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),Pa(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),Pa(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),Pa(o,"touchstart",function(){return n.forceCompositionEnd()}),Pa(o,"input",function(){r.composing||r.readFromDOMSoon()}),Pa(o,"copy",t),Pa(o,"cut",t)},El.prototype.prepareSelection=function(){var e=Mr(this.cm,!1);return e.focus=this.cm.state.focused,e},El.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},El.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),r=Ho(this.cm,e.anchorNode,e.anchorOffset),n=Ho(this.cm,e.focusNode,e.focusOffset);if(!r||r.bad||!n||n.bad||0!=B(q(r,n),t.from())||0!=B(W(r,n),t.to())){var i=Do(this.cm,t.from()),o=Do(this.cm,t.to());if(!i&&!o)return void e.removeAllRanges();var a=this.cm.display.view,l=e.rangeCount&&e.getRangeAt(0);if(i){if(!o){var s=a[a.length-1].measure,c=s.maps?s.maps[s.maps.length-1]:s.map;o={node:c[c.length-1],offset:c[c.length-2]-c[c.length-3]}}}else i={node:a[0].measure.map[2],offset:0};var u;try{u=ha(i.node,i.offset,o.offset,o.node)}catch(e){}u&&(!$o&&this.cm.state.focused?(e.collapse(i.node,i.offset),u.collapsed||(e.removeAllRanges(),e.addRange(u))):(e.removeAllRanges(),e.addRange(u)),l&&null==e.anchorNode?e.addRange(l):$o&&this.startGracePeriod()),this.rememberSelection()}},El.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},El.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},El.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},El.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},El.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},El.prototype.blur=function(){this.div.blur()},El.prototype.getField=function(){return this.div},El.prototype.supportsTouch=function(){return!0},El.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():un(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},El.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},El.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(la&&ta&&this.cm.options.gutters.length&&Wo(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=Ho(t,e.anchorNode,e.anchorOffset),n=Ho(t,e.focusNode,e.focusOffset);r&&n&&un(t,function(){di(t.doc,In(r,n),Ca),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},El.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=R(n.line-1,L(e.doc,n.line-1).length)),i.ch==L(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=R(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,l;n.line==t.viewFrom||0==(o=Sr(e,n.line))?(a=E(t.view[0].line),l=t.view[0].node):(a=E(t.view[o].line),l=t.view[o-1].node.nextSibling);var s,c,u=Sr(e,i.line);if(u==t.view.length-1?(s=t.viewTo-1,c=t.lineDiv.lastChild):(s=E(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!l)return!1;for(var f=e.doc.splitLines(Fo(e,l,c,a,s)),d=T(e.doc,R(a,0),R(s,L(e.doc,s).text.length));f.length>1&&d.length>1;)if(m(f)==m(d))f.pop(),d.pop(),s--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),a++}for(var h=0,p=0,g=f[0],v=d[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(f),x=m(d),w=Math.min(b.length-(1==f.length?h:0),x.length-(1==d.length?h:0));p<w&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)++p;if(1==f.length&&1==d.length&&a==n.line)for(;h&&h>n.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)h--,p++;f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var k=R(a,h),C=R(s,d.length?m(d).length-p:0);return f.length>1||f[0]||B(k,C)?(Ti(e.doc,f,k,C,"+input"),!0):void 0},El.prototype.ensurePolled=function(){this.forceCompositionEnd()},El.prototype.reset=function(){this.forceCompositionEnd()},El.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},El.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},El.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||un(this.cm,function(){return pn(e.cm)})},El.prototype.setUneditable=function(e){e.contentEditable="false"},El.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||fn(this.cm,Oo)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},El.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},El.prototype.onContextMenu=function(){},El.prototype.resetPosition=function(){},El.prototype.needsContentAttribute=!0;var Il=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new ya,this.inaccurateSelection=!1,this.hasSelection=!1,this.composing=null};Il.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())Ao({lineWise:!1,text:i.getSelections()}),n.inaccurateSelection&&(n.prevInput="",n.inaccurateSelection=!1,a.value=Ol.text.join("\n"),va(a));else{if(!i.options.lineWiseCopyCut)return;var t=No(i);Ao({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,Ca):(n.prevInput="",a.value=t.text.join("\n"),va(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=Ro(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),aa&&(a.style.width="0px"),Pa(a,"input",function(){Qo&&Jo>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),Pa(a,"paste",function(e){Ee(i,e)||Eo(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),Pa(a,"cut",t),Pa(a,"copy",t),Pa(e.scroller,"paste",function(t){Dt(e,t)||Ee(i,t)||(i.state.pasteIncoming=!0,n.focus())}),Pa(e.lineSpace,"selectstart",function(t){Dt(e,t)||Re(t)}),Pa(a,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Pa(a,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},Il.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Mr(e);if(e.options.moveInputWithCursor){var i=ur(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return n},Il.prototype.showSelection=function(e){var t=this.cm,n=t.display;r(n.cursorDiv,e.cursors),r(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Il.prototype.reset=function(e){if(!this.contextMenuPending){var t,r,n=this.cm,i=n.doc;if(n.somethingSelected()){this.prevInput="";var o=i.sel.primary();t=Da&&(o.to().line-o.from().line>100||(r=n.getSelection()).length>1e3);var a=t?"-":r||n.getSelection();this.textarea.value=a,n.state.focused&&va(this.textarea),Qo&&Jo>=9&&(this.hasSelection=a)}else e||(this.prevInput=this.textarea.value="",Qo&&Jo>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},Il.prototype.getField=function(){return this.textarea},Il.prototype.supportsTouch=function(){return!1},Il.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!sa||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Il.prototype.blur=function(){this.textarea.blur()},Il.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Il.prototype.receivedFocus=function(){this.slowPoll()},Il.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Il.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},Il.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||za(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(Qo&&Jo>=9&&this.hasSelection===i||ca&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n=""),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,l=Math.min(n.length,i.length);a<l&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return un(t,function(){Oo(t,i.slice(a),n.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Il.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Il.prototype.onKeyPress=function(){Qo&&Jo>=9&&(this.hasSelection=null),this.fastPoll()},Il.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t=""+(e?a.value:"");a.value="⇚",a.value=t,n.prevInput=e?"":"",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=u,a.style.cssText=c,Qo&&Jo<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=a.selectionStart){(!Qo||Qo&&Jo<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&""==n.prevInput?fn(i,xi)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,a=n.textarea,l=Cr(i,e),s=o.scroller.scrollTop;if(l&&!ra){i.options.resetSelectionOnContextMenu&&i.doc.sel.contains(l)==-1&&fn(i,di)(i.doc,In(l),Ca);var c=a.style.cssText,u=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var f=n.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-f.top-5)+"px; left: "+(e.clientX-f.left-5)+"px;\n z-index: 1000; background: "+(Qo?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(Zo&&(d=window.scrollY),o.input.focus(),Zo&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),Qo&&Jo>=9&&t(),ma){De(e);var h=function(){Ae(window,"mouseup",h),setTimeout(r,20)};Pa(window,"mouseup",h)}else setTimeout(r,50)}},Il.prototype.readOnlyChanged=function(e){e||this.reset()},Il.prototype.setUneditable=function(){},Il.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=Ml&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=Ml,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Dn(e)},!0),t("indentUnit",2,Dn,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Wn(e),ir(e),pn(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(o==-1)break;i=o+t.length,r.push(R(n,o))}n++});for(var i=r.length-1;i>=0;i--)Ti(e.doc,t,r[i],R(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=Ml&&e.refresh()}),t("specialCharPlaceholder",dt,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",sa?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!fa),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){ko(e),Co(e)},!0),t("keyMap","default",function(e,t,r){var n=Zi(t),i=r!=Ml&&Zi(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("lineWrapping",!1,_o,!0),t("gutters",[],function(e){On(e.options),Co(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?xr(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return Ur(e)},!0),t("scrollbarStyle","native",function(e){$r(e),Ur(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){On(e.options),Co(e)},!0),t("firstLineNumber",1,Co,!0),t("lineNumberFormatter",function(e){return e},Co,!0),t("showCursorWhenSelecting",!1,_r,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("readOnly",!1,function(e,t){"nocursor"==t?(Nr(e),e.display.input.blur(),e.display.disabled=!0):e.display.disabled=!1,e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,So),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,_r,!0),t("singleCursorHeightPerLine",!0,_r,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Wn,!0),t("addModeClass",!1,Wn,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Wn,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Mo),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&fn(this,t[e])(this,r,i),Oe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Zi(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:dn(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");v(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,pn(this)}),removeOverlay:dn(function(e){for(var t=this,r=this.state.overlays,n=0;n<r.length;++n){var i=r[n].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return r.splice(n,1),t.state.modeGen++,void pn(t)}}),indentLine:dn(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),N(this.doc,e)&&To(this,e,t,r)}),indentSelection:dn(function(e){for(var t=this,r=this.doc.sel.ranges,n=-1,i=0;i<r.length;i++){var o=r[i];if(o.empty())o.head.line>n&&(To(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Zr(t));else{var a=o.from(),l=o.to(),s=Math.max(n,a.line);n=Math.min(t.lastLine(),l.line-(l.ch?0:1))+1;for(var c=s;c<n;++c)To(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&r.length==u.length&&u[i].from().ch>0&&si(t.doc,i,new ol(a,u[i].to()),Ca)}}}),getTokenAt:function(e,t){return it(this,e,t)},getLineTokens:function(e,t){return it(this,R(e),t,!0)},getTokenTypeAt:function(e){e=H(this.doc,e);var t,r=Ze(this,L(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]<o)){t=r[2*a+2];break}n=a+1}}var l=t?t.indexOf("overlay "):-1;return l<0?t:0==l?null:t.slice(0,l-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=this,i=[];if(!r.hasOwnProperty(t))return i;var o=r[t],a=this.getModeAt(e);if("string"==typeof a[t])o[a[t]]&&i.push(o[a[t]]);else if(a[t])for(var l=0;l<a[t].length;l++){var s=o[a[t][l]];s&&i.push(s)}else a.helperType&&o[a.helperType]?i.push(o[a.helperType]):o[a.name]&&i.push(o[a.name]);for(var c=0;c<o._global.length;c++){var u=o._global[c];u.pred(a,n)&&d(i,u.val)==-1&&i.push(u.val)}return i},getStateAfter:function(e,t){var r=this.doc;return e=F(r,null==e?r.first+r.size-1:e),et(this,e+1,t)},cursorCoords:function(e,t){var r,n=this.doc.sel.primary();return r=null==e?n.head:"object"==typeof e?H(this.doc,e):e?n.from():n.to(),ur(this,r,t||"page")},charCoords:function(e,t){return cr(this,H(this.doc,e),t||"page")},coordsChar:function(e,t){return e=sr(this,e,t||"page"),hr(this,e.left,e.top)},lineAtHeight:function(e,t){return e=sr(this,{top:e,left:0},t||"page").top,I(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=L(this.doc,e)}else n=e;return lr(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-ye(n):0)},defaultTextHeight:function(){return vr(this.display)},defaultCharWidth:function(){return yr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display;e=ur(this,H(this.doc,e));var a=e.bottom,l=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var s=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(a=e.bottom),l+t.offsetWidth>c&&(l=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(l=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?l=0:"middle"==i&&(l=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=l+"px"),r&&Yr(this,{left:l,top:a,right:l+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:dn(co),triggerOnKeyPress:dn(ho),triggerOnKeyUp:fo,execCommand:function(e){if(Cl.hasOwnProperty(e))return Cl[e].call(null,this)},triggerElectric:dn(function(e){Io(this,e)}),findPosH:function(e,t,r,n){var i=this,o=1;t<0&&(o=-1,t=-t);for(var a=H(this.doc,e),l=0;l<t&&(a=Bo(i.doc,a,o,r,n),!a.hitSide);++l);return a},moveH:dn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Bo(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},_a)}),deleteH:dn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):eo(this,function(r){var i=Bo(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=this,o=1,a=n;t<0&&(o=-1,t=-t);for(var l=H(this.doc,e),s=0;s<t;++s){var c=ur(i,l,"div");if(null==a?a=c.left:c.left=a,l=zo(i,c,o,r),l.hitSide)break}return l},moveV:dn(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var l=ur(r,a.head,"div");null!=a.goalColumn&&(l.left=a.goalColumn),i.push(l.left);var s=zo(r,l,e,t);return"page"==t&&a==n.sel.primary()&&Jr(r,null,cr(r,s,"div").top-l.top),s},_a),i.length)for(var a=0;a<n.sel.ranges.length;a++)n.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,r=L(t,e.line).text,n=e.ch,i=e.ch;if(r){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=r.length||!n?++i:--n;for(var a=r.charAt(n),l=w(a,o)?function(e){return w(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};n>0&&l(r.charAt(n-1));)--n;for(;i<r.length&&l(r.charAt(i));)++i}return new ol(R(e.line,n),R(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?l(this.display.cursorDiv,"CodeMirror-overwrite"):ga(this.display.cursorDiv,"CodeMirror-overwrite"),Oe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:dn(function(e,t){null==e&&null==t||en(this),null!=e&&(this.curOp.scrollLeft=e),null!=t&&(this.curOp.scrollTop=t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Ht(this)-this.display.barHeight,width:e.scrollWidth-Ht(this)-this.display.barWidth,clientHeight:Kt(this),clientWidth:jt(this)}},scrollIntoView:dn(function(e,t){if(null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:R(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line)en(this),this.curOp.scrollToPos=e;else{var r=Qr(this,{left:Math.min(e.from.left,e.to.left),top:Math.min(e.from.top,e.to.top)-e.margin,right:Math.max(e.from.right,e.to.right),bottom:Math.max(e.from.bottom,e.to.bottom)+e.margin});this.scrollTo(r.scrollLeft,r.scrollTop)}}),setSize:dn(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&nr(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){mn(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Oe(this,"refresh",this)}),operation:function(e){return un(this,e)},refresh:dn(function(){var e=this.display.cachedTextHeight;pn(this),this.curOp.forceUpdate=!0,ir(this),this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop),Ln(this),(null==e||Math.abs(e-vr(this.display))>.5)&&kr(this),Oe(this,"refresh",this)}),
|
6 |
-
swapDoc:dn(function(e){var t=this.doc;return t.cm=null,jn(this,e),ir(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Ct(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Pe(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Mo);var Nl="iter insert remove copy getEditor constructor".split(" ");for(var Pl in hl.prototype)hl.prototype.hasOwnProperty(Pl)&&d(Nl,Pl)<0&&(Mo.prototype[Pl]=function(e){return function(){return e.apply(this.doc,arguments)}}(hl.prototype[Pl]));return Pe(hl),Mo.inputStyles={textarea:Il,contenteditable:El},Mo.defineMode=function(e){Mo.defaults.mode||"null"==e||(Mo.defaults.mode=e),Ke.apply(this,arguments)},Mo.defineMIME=Ue,Mo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Mo.defineMIME("text/plain","null"),Mo.defineExtension=function(e,t){Mo.prototype[e]=t},Mo.defineDocExtension=function(e,t){hl.prototype[e]=t},Mo.fromTextArea=Ko,function(e){e.off=Ae,e.on=Pa,e.wheelEventPixels=Hr,e.Doc=hl,e.splitLines=Ba,e.countColumn=f,e.findColumn=h,e.isWordChar=x,e.Pass=ka,e.signal=Oe,e.Line=Ka,e.changeEnd=Nn,e.scrollbarModel=tl,e.Pos=R,e.cmpPos=B,e.modes=qa,e.mimeModes=Fa,e.resolveMode=Ve,e.getMode=$e,e.modeExtensions=Ha,e.extendMode=Ge,e.copyState=Xe,e.startState=Qe,e.innerMode=Ye,e.commands=Cl,e.keyMap=xl,e.keyName=Ji,e.isModifierKey=Qi,e.lookupKey=Yi,e.normalizeKeyMap=Xi,e.StringStream=ja,e.SharedTextMarker=fl,e.TextMarker=ul,e.LineWidget=sl,e.e_preventDefault=Re,e.e_stopPropagation=Be,e.e_stop=De,e.addClass=l,e.contains=o,e.rmClass=ga,e.keyNames=gl}(Mo),Mo.version="5.25.0",Mo}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},r={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(n,i){function o(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(s("atom","]]>")):null:e.match("--")?r(s("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=s("meta","?>"),"meta"):(M=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==n){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=o,M=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return M="equals",null;if("<"==r){t.tokenize=o,t.state=h,t.tagName=t.tagStart=null;var n=t.tokenize(e,t);return n?n+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=l(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function l(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function s(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){n.tokenize=o;break}r.next()}return e}}function c(e){return function(t,r){for(var n;null!=(n=t.next());){if("<"==n)return r.tokenize=c(e+1),r.tokenize(t,r);if(">"==n){if(1==e){r.tokenize=o;break}return r.tokenize=c(e-1),r.tokenize(t,r)}}return"meta"}}function u(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(C.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function d(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!C.contextGrabbers.hasOwnProperty(r)||!C.contextGrabbers[r].hasOwnProperty(t))return;f(e)}}function h(e,t,r){return"openTag"==e?(r.tagStart=t.column(),p):"closeTag"==e?m:h}function p(e,t,r){return"word"==e?(r.tagName=t.current(),L="tag",y):(L="error",p)}function m(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&C.implicitlyClosed.hasOwnProperty(r.context.tagName)&&f(r),r.context&&r.context.tagName==n||C.matchClosing===!1?(L="tag",g):(L="tag error",v)}return L="error",v}function g(e,t,r){return"endTag"!=e?(L="error",g):(f(r),h)}function v(e,t,r){return L="error",g(e,t,r)}function y(e,t,r){if("word"==e)return L="attribute",b;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||C.autoSelfClosers.hasOwnProperty(n)?d(r,n):(d(r,n),r.context=new u(r,n,i==r.indented)),h}return L="error",y}function b(e,t,r){return"equals"==e?x:(C.allowMissing||(L="error"),y(e,t,r))}function x(e,t,r){return"string"==e?w:"word"==e&&C.allowUnquoted?(L="string",y):(L="error",y(e,t,r))}function w(e,t,r){return"string"==e?w:y(e,t,r)}var k=n.indentUnit,C={},S=i.htmlMode?t:r;for(var _ in S)C[_]=S[_];for(var _ in i)C[_]=i[_];var M,L;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;M=null;var r=t.tokenize(e,t);return(r||M)&&"comment"!=r&&(L=null,t.state=t.state(M||r,e,t),L&&(r="error"==L?r+" error":L)),r},indent:function(t,r,n){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return C.multilineTagIndentPastTag!==!1?t.tagStart+t.tagName.length+2:t.tagStart+k*(C.multilineTagIndentFactor||1);if(C.alignCDATA&&/<!\[CDATA\[/.test(r))return 0;var l=r&&/^<(\/)?([\w_:\.-]*)/.exec(r);if(l&&l[1])for(;i;){if(i.tagName==l[2]){i=i.prev;break}if(!C.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(l)for(;i;){var s=C.contextGrabbers[i.tagName];if(!s||!s.hasOwnProperty(l[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:C.htmlMode?"html":"xml",helperType:C.htmlMode?"html":"xml",skipAttribute:function(e){e.state==x&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r){return/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}e.defineMode("javascript",function(r,n){function i(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}function o(e,t,r){return _e=e,Me=r,t}function a(e,r){var n=e.next();if('"'==n||"'"==n)return r.tokenize=l(n),r.tokenize(e,r);if("."==n&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return o("number","number");if("."==n&&e.match(".."))return o("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return o(n);if("="==n&&e.eat(">"))return o("=>","operator");if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),o("number","number");if("0"==n&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),o("number","number");if("0"==n&&e.eat(/b/i))return e.eatWhile(/[01]/i),o("number","number");if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),o("number","number");if("/"==n)return e.eat("*")?(r.tokenize=s,s(e,r)):e.eat("/")?(e.skipToEnd(),o("comment","comment")):t(e,r,1)?(i(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),o("regexp","string-2")):(e.eatWhile(Pe),o("operator","operator",e.current()));if("`"==n)return r.tokenize=c,c(e,r);if("#"==n)return e.skipToEnd(),o("error","error");if(Pe.test(n))return">"==n&&r.lexical&&">"==r.lexical.type||e.eatWhile(Pe),o("operator","operator",e.current());if(Ie.test(n)){e.eatWhile(Ie);var a=e.current(),u=Ne.propertyIsEnumerable(a)&&Ne[a];return u&&"."!=r.lastType?o(u.type,u.style,a):o("variable","variable",a)}}function l(e){return function(t,r){var n,i=!1;if(Ae&&"@"==t.peek()&&t.match(Re))return r.tokenize=a,o("jsonld-keyword","meta");for(;null!=(n=t.next())&&(n!=e||i);)i=!i&&"\\"==n;return i||(r.tokenize=a),o("string","string")}}function s(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=a;break}n="*"==r}return o("comment","comment")}function c(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=a;break}n=!n&&"\\"==r}return o("quasi","string-2",e.current())}function u(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(Ee){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var l=e.string.charAt(a),s=Be.indexOf(l);if(s>=0&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(s>=3&&s<6)++i;else if(Ie.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function f(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function d(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(var r=n.vars;r;r=r.next)if(r.name==t)return!0}function h(e,t,r,n,i){var o=e.cc;for(De.state=e,De.stream=i,De.marked=null,De.cc=o,De.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():Oe?C:k)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return De.marked?De.marked:"variable"==r&&d(e,n)?"variable-2":t}}}function p(){for(var e=arguments.length-1;e>=0;e--)De.cc.push(arguments[e])}function m(){return p.apply(null,arguments),!0}function g(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var r=De.state;if(De.marked="def",r.context){if(t(r.localVars))return;r.localVars={name:e,next:r.localVars}}else{if(t(r.globalVars))return;n.globalVars&&(r.globalVars={name:e,next:r.globalVars})}}function v(){De.state.context={prev:De.state.context,vars:De.state.localVars},De.state.localVars=We}function y(){De.state.localVars=De.state.context.vars,De.state.context=De.state.context.prev}function b(e,t){var r=function(){var r=De.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new f(n,De.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function x(){var e=De.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function w(e){function t(r){return r==e?m():";"==e?p():m(t)}return t}function k(e,t){return"var"==e?m(b("vardef",t.length),J,w(";"),x):"keyword a"==e?m(b("form"),_,k,x):"keyword b"==e?m(b("form"),k,x):"{"==e?m(b("}"),U,x):";"==e?m():"if"==e?("else"==De.state.lexical.info&&De.state.cc[De.state.cc.length-1]==x&&De.state.cc.pop()(),m(b("form"),_,k,x,ne)):"function"==e?m(ce):"for"==e?m(b("form"),ie,k,x):"variable"==e?m(b("stat"),D):"switch"==e?m(b("form"),_,b("}","switch"),w("{"),U,x,x):"case"==e?m(C,w(":")):"default"==e?m(w(":")):"catch"==e?m(b("form"),v,w("("),ue,w(")"),k,x,y):"class"==e?m(b("form"),de,x):"export"==e?m(b("stat"),ge,x):"import"==e?m(b("stat"),ye,x):"module"==e?m(b("form"),Z,b("}"),w("{"),U,x,x):"type"==e?m($,w("operator"),$,w(";")):"async"==e?m(k):p(b("stat"),C,w(";"),x)}function C(e){return M(e,!1)}function S(e){return M(e,!0)}function _(e){return"("!=e?p():m(b(")"),C,w(")"),x)}function M(e,t){if(De.state.fatArrowAt==De.stream.start){var r=t?P:N;if("("==e)return m(v,b(")"),j(Z,")"),x,w("=>"),r,y);if("variable"==e)return p(v,Z,w("=>"),r,y)}var n=t?O:A;return ze.hasOwnProperty(e)?m(n):"function"==e?m(ce,n):"class"==e?m(b("form"),fe,x):"keyword c"==e||"async"==e?m(t?T:L):"("==e?m(b(")"),L,w(")"),x,n):"operator"==e||"spread"==e?m(t?S:C):"["==e?m(b("]"),Ce,x,n):"{"==e?K(q,"}",null,n):"quasi"==e?p(E,n):"new"==e?m(R(t)):m()}function L(e){return e.match(/[;\}\)\],]/)?p():p(C)}function T(e){return e.match(/[;\}\)\],]/)?p():p(S)}function A(e,t){return","==e?m(C):O(e,t,!1)}function O(e,t,r){var n=0==r?A:O,i=0==r?C:S;return"=>"==e?m(v,r?P:N,y):"operator"==e?/\+\+|--/.test(t)?m(n):"?"==t?m(C,w(":"),i):m(i):"quasi"==e?p(E,n):";"!=e?"("==e?K(S,")","call",n):"."==e?m(W,n):"["==e?m(b("]"),L,w("]"),x,n):void 0:void 0}function E(e,t){return"quasi"!=e?p():"${"!=t.slice(t.length-2)?m(E):m(C,I)}function I(e){if("}"==e)return De.marked="string-2",De.state.tokenize=c,m(E)}function N(e){return u(De.stream,De.state),p("{"==e?k:C)}function P(e){return u(De.stream,De.state),p("{"==e?k:S)}function R(e){return function(t){return"."==t?m(e?z:B):p(e?S:C)}}function B(e,t){if("target"==t)return De.marked="keyword",m(A)}function z(e,t){if("target"==t)return De.marked="keyword",m(O)}function D(e){return":"==e?m(x,k):p(A,w(";"),x)}function W(e){if("variable"==e)return De.marked="property",m()}function q(e,t){return"async"==e?(De.marked="property",m(q)):"variable"==e||"keyword"==De.style?(De.marked="property",m("get"==t||"set"==t?F:H)):"number"==e||"string"==e?(De.marked=Ae?"property":De.style+" property",m(H)):"jsonld-keyword"==e?m(H):"modifier"==e?m(q):"["==e?m(C,w("]"),H):"spread"==e?m(C):":"==e?p(H):void 0}function F(e){return"variable"!=e?p(H):(De.marked="property",m(ce))}function H(e){return":"==e?m(S):"("==e?p(ce):void 0}function j(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=De.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),m(function(r,n){return r==t||n==t?p():p(e)},n)}return i==t||o==t?m():m(w(t))}return function(r,i){return r==t||i==t?m():p(e,n)}}function K(e,t,r){for(var n=3;n<arguments.length;n++)De.cc.push(arguments[n]);return m(b(t,r),j(e,t),x)}function U(e){return"}"==e?m():p(k,U)}function V(e,t){if(Ee){if(":"==e)return m($);if("?"==t)return m(V)}}function $(e){return"variable"==e?(De.marked="variable-3",m(Q)):"string"==e||"number"==e||"atom"==e?m(Q):"{"==e?m(b("}"),j(X,"}",",;"),x):"("==e?m(j(Y,")"),G):void 0}function G(e){if("=>"==e)return m($)}function X(e,t){return"variable"==e||"keyword"==De.style?(De.marked="property",m(X)):"?"==t?m(X):":"==e?m($):void 0}function Y(e){return"variable"==e?m(Y):":"==e?m($):void 0}function Q(e,t){return"<"==t?m(b(">"),j($,">"),x,Q):"|"==t||"."==e?m($):"["==e?m(w("]"),Q):void 0}function J(){return p(Z,V,te,re)}function Z(e,t){return"modifier"==e?m(Z):"variable"==e?(g(t),m()):"spread"==e?m(Z):"["==e?K(Z,"]"):"{"==e?K(ee,"}"):void 0}function ee(e,t){return"variable"!=e||De.stream.match(/^\s*:/,!1)?("variable"==e&&(De.marked="property"),"spread"==e?m(Z):"}"==e?p():m(w(":"),Z,te)):(g(t),m(te))}function te(e,t){if("="==t)return m(S)}function re(e){if(","==e)return m(J)}function ne(e,t){if("keyword b"==e&&"else"==t)return m(b("form","else"),k,x)}function ie(e){if("("==e)return m(b(")"),oe,w(")"),x)}function oe(e){return"var"==e?m(J,w(";"),le):";"==e?m(le):"variable"==e?m(ae):p(C,w(";"),le)}function ae(e,t){return"in"==t||"of"==t?(De.marked="keyword",m(C)):m(A,le)}function le(e,t){return";"==e?m(se):"in"==t||"of"==t?(De.marked="keyword",m(C)):p(C,w(";"),se)}function se(e){")"!=e&&m(C)}function ce(e,t){return"*"==t?(De.marked="keyword",m(ce)):"variable"==e?(g(t),m(ce)):"("==e?m(v,b(")"),j(ue,")"),x,V,k,y):void 0}function ue(e){return"spread"==e?m(ue):p(Z,V,te)}function fe(e,t){return"variable"==e?de(e,t):he(e,t)}function de(e,t){if("variable"==e)return g(t),m(he)}function he(e,t){return"<"==t?m(b(">"),j($,">"),x,he):"extends"==t||"implements"==t||Ee&&","==e?m(Ee?$:C,he):"{"==e?m(b("}"),pe,x):void 0}function pe(e,t){return"variable"==e||"keyword"==De.style?("async"==t||"static"==t||"get"==t||"set"==t||Ee&&("public"==t||"private"==t||"protected"==t||"readonly"==t||"abstract"==t))&&De.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(De.marked="keyword",m(pe)):(De.marked="property",m(Ee?me:ce,pe)):"["==e?m(C,w("]"),Ee?me:ce,pe):"*"==t?(De.marked="keyword",m(pe)):";"==e?m(pe):"}"==e?m():void 0}function me(e,t){return"?"==t?m(me):":"==e?m($,te):"="==t?m(S):p(ce)}function ge(e,t){return"*"==t?(De.marked="keyword",m(ke,w(";"))):"default"==t?(De.marked="keyword",m(C,w(";"))):"{"==e?m(j(ve,"}"),ke,w(";")):p(k)}function ve(e,t){return"as"==t?(De.marked="keyword",m(w("variable"))):"variable"==e?p(S,ve):void 0}function ye(e){return"string"==e?m():p(be,xe,ke)}function be(e,t){return"{"==e?K(be,"}"):("variable"==e&&g(t),"*"==t&&(De.marked="keyword"),m(we))}function xe(e){if(","==e)return m(be,xe)}function we(e,t){if("as"==t)return De.marked="keyword",m(be)}function ke(e,t){if("from"==t)return De.marked="keyword",m(C)}function Ce(e){return"]"==e?m():p(j(S,"]"))}function Se(e,t){return"operator"==e.lastType||","==e.lastType||Pe.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}var _e,Me,Le=r.indentUnit,Te=n.statementIndent,Ae=n.jsonld,Oe=n.json||Ae,Ee=n.typescript,Ie=n.wordCharacters||/[\w$\xa1-\uffff]/,Ne=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:n,break:n,continue:n,new:e("new"),delete:n,throw:n,debugger:n,var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n,async:e("async")};if(Ee){var l={type:"variable",style:"variable-3"},s={interface:e("class"),implements:n,namespace:n,module:e("module"),enum:e("module"),type:e("type"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),as:i,string:l,number:l,boolean:l,any:l};for(var c in s)a[c]=s[c]}return a}(),Pe=/[+\-*&%=<>!?|~^]/,Re=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Be="([{}])",ze={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},De={state:null,column:null,marked:null,cc:null},We={name:"this",next:{name:"arguments"}};return x.lex=!0,{startState:function(e){var t={tokenize:a,lastType:"sof",cc:[],lexical:new f((e||0)-Le,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),u(e,t)),t.tokenize!=s&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==_e?r:(t.lastType="operator"!=_e||"++"!=Me&&"--"!=Me?_e:"incdec",h(t,r,_e,Me,e))},indent:function(t,r){if(t.tokenize==s)return e.Pass;if(t.tokenize!=a)return 0;var i,o=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==x)l=l.prev;else if(u!=ne)break}for(;("stat"==l.type||"form"==l.type)&&("}"==o||(i=t.cc[t.cc.length-1])&&(i==A||i==O)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;Te&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,d=o==f;return"vardef"==f?l.indented+("operator"==t.lastType||","==t.lastType?l.info+1:0):"form"==f&&"{"==o?l.indented:"form"==f?l.indented+Le:"stat"==f?l.indented+(Se(t,r)?Te||Le:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Le):l.indented+(/^(?:case|default)\b/.test(r)?Le:2*Le)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Oe?null:"/*",blockCommentEnd:Oe?null:"*/",lineComment:Oe?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Oe?"json":"javascript",jsonldMode:Ae,jsonMode:Oe,expressionAllowed:t,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=C&&t!=S||e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}function r(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return p=t,e}function i(e,t){var r=e.next();if(v[r]){var i=v[r](e,t);if(i!==!1)return i}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=o(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0}function o(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),n(null,"(")}function l(e,t,r){this.type=e,this.indent=t,this.prev=r}function s(e,t,r,n){return e.context=new l(r,t.indentation()+(n===!1?0:g),e.context),r}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function u(e,t,r){return E[r.context.type](e,t,r)}function f(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return u(e,t,r)}function d(e){var t=e.current().toLowerCase();m=L.hasOwnProperty(t)?"atom":M.hasOwnProperty(t)?"keyword":"variable"}var h=r.inline;r.propertyKeywords||(r=e.resolveMode("text/css"));var p,m,g=t.indentUnit,v=r.tokenHooks,y=r.documentTypes||{},b=r.mediaTypes||{},x=r.mediaFeatures||{},w=r.mediaValueKeywords||{},k=r.propertyKeywords||{},C=r.nonStandardPropertyKeywords||{},S=r.fontProperties||{},_=r.counterDescriptors||{},M=r.colorKeywords||{},L=r.valueKeywords||{},T=r.allowNested,A=r.lineComment,O=r.supportsAtComponent===!0,E={};return E.top=function(e,t,r){if("{"==e)return s(r,t,"block");if("}"==e&&r.context.prev)return c(r);if(O&&/@component/.test(e))return s(r,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return s(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return s(r,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return s(r,t,"at");if("hash"==e)m="builtin";else if("word"==e)m="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return s(r,t,"interpolation");if(":"==e)return"pseudo";if(T&&"("==e)return s(r,t,"parens")}return r.context.type},E.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return k.hasOwnProperty(n)?(m="property","maybeprop"):C.hasOwnProperty(n)?(m="string-2","maybeprop"):T?(m=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(m+=" error","maybeprop")}return"meta"==e?"block":T||"hash"!=e&&"qualifier"!=e?E.top(e,t,r):(m="error","block")},E.maybeprop=function(e,t,r){return":"==e?s(r,t,"prop"):u(e,t,r)},E.prop=function(e,t,r){if(";"==e)return c(r);if("{"==e&&T)return s(r,t,"propBlock");if("}"==e||"{"==e)return f(e,t,r);if("("==e)return s(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return s(r,t,"interpolation")}else m+=" error";return"prop"},E.propBlock=function(e,t,r){return"}"==e?c(r):"word"==e?(m="property","maybeprop"):r.context.type},E.parens=function(e,t,r){return"{"==e||"}"==e?f(e,t,r):")"==e?c(r):"("==e?s(r,t,"parens"):"interpolation"==e?s(r,t,"interpolation"):("word"==e&&d(t),"parens")},E.pseudo=function(e,t,r){return"meta"==e?"pseudo":"word"==e?(m="variable-3",r.context.type):u(e,t,r)},E.documentTypes=function(e,t,r){return"word"==e&&y.hasOwnProperty(t.current())?(m="tag",r.context.type):E.atBlock(e,t,r)},E.atBlock=function(e,t,r){if("("==e)return s(r,t,"atBlock_parens");if("}"==e||";"==e)return f(e,t,r);if("{"==e)return c(r)&&s(r,t,T?"block":"top");if("interpolation"==e)return s(r,t,"interpolation");if("word"==e){var n=t.current().toLowerCase();m="only"==n||"not"==n||"and"==n||"or"==n?"keyword":b.hasOwnProperty(n)?"attribute":x.hasOwnProperty(n)?"property":w.hasOwnProperty(n)?"keyword":k.hasOwnProperty(n)?"property":C.hasOwnProperty(n)?"string-2":L.hasOwnProperty(n)?"atom":M.hasOwnProperty(n)?"keyword":"error"}return r.context.type},E.atComponentBlock=function(e,t,r){return"}"==e?f(e,t,r):"{"==e?c(r)&&s(r,t,T?"block":"top",!1):("word"==e&&(m="error"),r.context.type)},E.atBlock_parens=function(e,t,r){return")"==e?c(r):"{"==e||"}"==e?f(e,t,r,2):E.atBlock(e,t,r)},E.restricted_atBlock_before=function(e,t,r){return"{"==e?s(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(m="variable","restricted_atBlock_before"):u(e,t,r)},E.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,c(r)):"word"==e?(m="@font-face"==r.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!_.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(e,t,r){return"word"==e?(m="variable","keyframes"):"{"==e?s(r,t,"top"):u(e,t,r)},E.at=function(e,t,r){return";"==e?c(r):"{"==e||"}"==e?f(e,t,r):("word"==e?m="tag":"hash"==e&&(m="builtin"),"at")},E.interpolation=function(e,t,r){return"}"==e?c(r):"{"==e||";"==e?f(e,t,r):("word"==e?m="variable":"variable"!=e&&"("!=e&&")"!=e&&(m="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:h?"block":"top",stateArg:null,context:new l(h?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||i)(e,t);return r&&"object"==typeof r&&(p=r[1],r=r[0]),m=r,t.state=E[t.state](p,e,t),m},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-g),r=r.prev):(r=r.prev,i=r.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:A,fold:"brace"}})
|
7 |
-
;var n=["domain","regexp","url","url-prefix"],i=t(n),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],s=t(l),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),f=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(f),h=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=t(h),m=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],g=t(m),v=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=t(v),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=t(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],k=t(w),C=n.concat(o).concat(l).concat(c).concat(f).concat(h).concat(b).concat(w);e.registerHelper("hintWords","css",C),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/)&&[null,"{"]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:a,mediaFeatures:s,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:s,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=r,r(e,t))}},name:"css",helperType:"gss"})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r){var n=e.current(),i=n.search(t);return i>-1?e.backUp(n.length-i):n.match(/<\/?$/)&&(e.backUp(n.length),e.match(t,!1)||e.match(n)),r}function r(e){var t=s[e];return t?t:s[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function n(e,t){var n=e.match(r(t));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function i(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function o(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;o>=0;o--)n.unshift(i[o])}function a(e,t){for(var r=0;r<e.length;r++){var i=e[r];if(!i[0]||i[1].test(n(t,i[0])))return i[2]}}var l={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},s={};e.defineMode("htmlmixed",function(r,n){function s(n,o){var l,f=c.token(n,o.htmlState),d=/\btag\b/.test(f);if(d&&!/[<>\s\/]/.test(n.current())&&(l=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(l))o.inTag=l+" ";else if(o.inTag&&d&&/>$/.test(n.current())){var h=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==n.current()&&a(u[h[1]],h[2]),m=e.getMode(r,p),g=i(h[1],!0),v=i(h[1],!1);o.token=function(e,r){return e.match(g,!1)?(r.token=s,r.localState=r.localMode=null,null):t(e,v,r.localMode.token(e,r.localState))},o.localMode=m,o.localState=e.startState(m,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=n.current(),n.eol()&&(o.inTag+=" "));return f}var c=e.getMode(r,{name:"xml",htmlMode:!0,multilineTagIndentFactor:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag}),u={},f=n&&n.tags,d=n&&n.scriptTypes;if(o(l,u),f&&o(f,u),d)for(var h=d.length-1;h>=0;h--)u.script.unshift(["type",d[h].matches,d[h].mode]);return{startState:function(){return{token:s,inTag:null,localMode:null,localState:null,htmlState:e.startState(c)}},copyState:function(t){var r;return t.localState&&(r=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:r,htmlState:e.copyState(c,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r){return!t.localMode||/^\s*<\//.test(r)?c.indent(t.htmlState,r):t.localMode.indent?t.localMode.indent(t.localState,r):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||c}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.info=n,this.align=i,this.prev=o}function r(e,r,n,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=n&&(o=e.context.indented),e.context=new t(o,r,n,i,null,e.context)}function n(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,r){return"variable"==t.prevToken||"variable-3"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,r))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function o(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function a(e){for(var t={},r=e.split(" "),n=0;n<r.length;++n)t[r[n]]=!0;return t}function l(e,t){return"function"==typeof e?e(t):e.propertyIsEnumerable(t)}function s(e,t){if(!t.startOfLine)return!1;for(var r,n=null;r=e.peek();){if("\\"==r&&e.match(/^.$/)){n=s;break}if("/"==r&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=n,"meta"}function c(e,t){return"variable-3"==t.prevToken&&"variable-3"}function u(e){return e.eatWhile(/[\w\.']/),"number"}function f(e,t){if(e.backUp(1),e.match(/(R|u8R|uR|UR|LR)/)){var r=e.match(/"([^\s\\()]{0,16})\(/);return!!r&&(t.cpp11RawStringDelim=r[1],t.tokenize=p,p(e,t))}return e.match(/(u8|u|U|L)/)?!!e.match(/["']/,!1)&&"string":(e.next(),!1)}function d(e){var t=/(\w+)::(\w+)$/.exec(e);return t&&t[1]==t[2]}function h(e,t){for(var r;null!=(r=e.next());)if('"'==r&&!e.eat('"')){t.tokenize=null;break}return"string"}function p(e,t){var r=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+r+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function m(t,r){function n(e){if(e)for(var t in e)e.hasOwnProperty(t)&&i.push(t)}"string"==typeof t&&(t=[t]);var i=[];n(r.keywords),n(r.types),n(r.builtin),n(r.atoms),i.length&&(r.helperType=t[0],e.registerHelper("hintWords",t[0],i));for(var o=0;o<t.length;++o)e.defineMIME(t[o],r)}function g(e,t){for(var r=!1;!e.eol();){if(!r&&e.match('"""')){t.tokenize=null;break}r="\\"==e.next()&&!r}return"string"}function v(e){return function(t,r){for(var n,i=!1,o=!1;!t.eol();){if(!e&&!i&&t.match('"')){o=!0;break}if(e&&t.match('"""')){o=!0;break}n=t.next(),!i&&"$"==n&&t.match("{")&&t.skipTo("}"),i=!i&&"\\"==n&&!e}return!o&&e||(r.tokenize=null),"string"}}function y(e){return function(t,r){for(var n,i=!1,o=!1;!t.eol();){if(!i&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!i&&t.match("``")){w=y(e),o=!0;break}n=t.next(),i="single"==e&&!i&&"\\"==n}return o&&(r.tokenize=null),"string"}}e.defineMode("clike",function(a,s){function c(e,t){var r=e.next();if(S[r]){var n=S[r](e,t);if(n!==!1)return n}if('"'==r||"'"==r)return t.tokenize=u(r),t.tokenize(e,t);if(A.test(r))return h=r,null;if(O.test(r)){if(e.backUp(1),e.match(E))return"number";e.next()}if("/"==r){if(e.eat("*"))return t.tokenize=f,f(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(I.test(r)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(I););return"operator"}if(e.eatWhile(/[\w\$_\xa1-\uffff]/),T)for(;e.match(T);)e.eatWhile(/[\w\$_\xa1-\uffff]/);var i=e.current();return l(y,i)?(l(w,i)&&(h="newstatement"),l(k,i)&&(p=!0),"keyword"):l(b,i)?"variable-3":l(x,i)?(l(w,i)&&(h="newstatement"),"builtin"):l(C,i)?"atom":"variable"}function u(e){return function(t,r){for(var n,i=!1,o=!1;null!=(n=t.next());){if(n==e&&!i){o=!0;break}i=!i&&"\\"==n}return(o||!i&&!_)&&(r.tokenize=null),"string"}}function f(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=null;break}n="*"==r}return"comment"}function d(e,t){s.typeFirstDefinitions&&e.eol()&&o(t.context)&&(t.typeAtEndOfLine=i(e,t,e.pos))}var h,p,m=a.indentUnit,g=s.statementIndentUnit||m,v=s.dontAlignCalls,y=s.keywords||{},b=s.types||{},x=s.builtin||{},w=s.blockKeywords||{},k=s.defKeywords||{},C=s.atoms||{},S=s.hooks||{},_=s.multiLineStrings,M=s.indentStatements!==!1,L=s.indentSwitch!==!1,T=s.namespaceSeparator,A=s.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,O=s.numberStart||/[\d\.]/,E=s.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,I=s.isOperatorChar||/[+\-*&%=<>!?|\/]/;return{startState:function(e){return{tokenize:null,context:new t((e||0)-m,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var a=t.context;if(e.sol()&&(null==a.align&&(a.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return d(e,t),null;h=p=null;var l=(t.tokenize||c)(e,t);if("comment"==l||"meta"==l)return l;if(null==a.align&&(a.align=!0),";"==h||":"==h||","==h&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)n(t);else if("{"==h)r(t,e.column(),"}");else if("["==h)r(t,e.column(),"]");else if("("==h)r(t,e.column(),")");else if("}"==h){for(;"statement"==a.type;)a=n(t);for("}"==a.type&&(a=n(t));"statement"==a.type;)a=n(t)}else h==a.type?n(t):M&&(("}"==a.type||"top"==a.type)&&";"!=h||"statement"==a.type&&"newstatement"==h)&&r(t,e.column(),"statement",e.current());if("variable"==l&&("def"==t.prevToken||s.typeFirstDefinitions&&i(e,t,e.start)&&o(t.context)&&e.match(/^\s*\(/,!1))&&(l="def"),S.token){var u=S.token(e,t,l);void 0!==u&&(l=u)}return"def"==l&&s.styleDefs===!1&&(l="variable"),t.startOfLine=!1,t.prevToken=p?"def":l||h,d(e,t),l},indent:function(t,r){if(t.tokenize!=c&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var n=t.context,i=r&&r.charAt(0);if("statement"==n.type&&"}"==i&&(n=n.prev),s.dontIndentStatements)for(;"statement"==n.type&&s.dontIndentStatements.test(n.info);)n=n.prev;if(S.indent){var o=S.indent(t,n,r);if("number"==typeof o)return o}var a=i==n.type,l=n.prev&&"switch"==n.prev.info;if(s.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=n.type&&"}"!=n.type;)n=n.prev;return n.indented}return"statement"==n.type?n.indented+("{"==i?0:g):!n.align||v&&")"==n.type?")"!=n.type||a?n.indented+(a?0:m)+(a||!l||/^(?:case|default)\b/.test(r)?0:m):n.indented+g:n.column+(a?0:1)},electricInput:L?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var b="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile",x="int long char short double float unsigned signed void size_t ptrdiff_t";m(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:a(b),types:a(x+" bool _Complex _Bool float_t double_t intptr_t intmax_t int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t uint32_t uint64_t"),blockKeywords:a("case do else for if switch while struct"),defKeywords:a("struct"),typeFirstDefinitions:!0,atoms:a("null true false"),hooks:{"#":s,"*":c},modeProps:{fold:["brace","include"]}}),m(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:a(b+" asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),types:a(x+" bool wchar_t"),blockKeywords:a("catch class do else finally for if struct switch try while"),defKeywords:a("class namespace struct enum union"),typeFirstDefinitions:!0,atoms:a("true false null"),dontIndentStatements:/^template$/,hooks:{"#":s,"*":c,u:f,U:f,L:f,R:f,0:u,1:u,2:u,3:u,4:u,5:u,6:u,7:u,8:u,9:u,token:function(e,t,r){if("variable"==r&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&d(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),m("text/x-java",{name:"clike",keywords:a("abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:a("byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:a("catch class do else finally for if switch try while"),defKeywords:a("class interface package enum @interface"),typeFirstDefinitions:!0,atoms:a("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(e){return!e.match("interface",!1)&&(e.eatWhile(/[\w\$_]/),"meta")}},modeProps:{fold:["brace","import"]}}),m("text/x-csharp",{name:"clike",keywords:a("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:a("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:a("catch class do else finally for foreach if struct switch try while"),defKeywords:a("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=h,h(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}}),m("text/x-scala",{name:"clike",keywords:a("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:a("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:a("catch class do else finally for forSome if match switch try while"),defKeywords:a("class def object package trait type val var"),atoms:a("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=g,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,r){var n=r.context
|
8 |
-
;return!("}"!=n.type||!n.align||!e.eat(">"))&&(r.context=new t(n.indented,n.column,n.type,n.info,null,n.prev),"operator")}},modeProps:{closeBrackets:{triples:'"'}}}),m("text/x-kotlin",{name:"clike",keywords:a("package as typealias class interface this super val var fun for is in This throw return break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend"),types:a("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:a("catch class do else finally for if where try while enum"),defKeywords:a("class val var object package interface fun"),atoms:a("true false null this"),hooks:{'"':function(e,t){return t.tokenize=v(e.match('""')),t.tokenize(e,t)}},modeProps:{closeBrackets:{triples:'"'}}}),m(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:a("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:a("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:a("for while do if else struct"),builtin:a("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:a("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":s},modeProps:{fold:["brace","include"]}}),m("text/x-nesc",{name:"clike",keywords:a(b+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:a(x),blockKeywords:a("case do else for if switch while struct"),atoms:a("null true false"),hooks:{"#":s},modeProps:{fold:["brace","include"]}}),m("text/x-objectivec",{name:"clike",keywords:a(b+"inline restrict _Bool _Complex _Imaginary BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),types:a(x),atoms:a("YES NO NULL NILL ON OFF true false"),hooks:{"@":function(e){return e.eatWhile(/[\w\$]/),"keyword"},"#":s,indent:function(e,t,r){if("statement"==t.type&&/^@\w/.test(r))return t.indented}},modeProps:{fold:"brace"}}),m("text/x-squirrel",{name:"clike",keywords:a("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:a(x),blockKeywords:a("case catch class else for foreach if switch try while"),defKeywords:a("function local class"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"#":s},modeProps:{fold:["brace","include"]}});var w=null;m("text/x-ceylon",{name:"clike",keywords:a("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:a("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:a("class dynamic function interface module object package value"),builtin:a("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:a("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=y(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!w||!e.match("`"))&&(t.tokenize=w,w=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,r){if(("variable"==r||"variable-3"==r)&&"."==t.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=e.split(" "),n=0;n<r.length;++n)t[r[n]]=!0;return t}function r(e,t,i){return 0==e.length?n(t):function(o,a){for(var l=e[0],s=0;s<l.length;s++)if(o.match(l[s][0]))return a.tokenize=r(e.slice(1),t),l[s][1];return a.tokenize=n(t,i),"string"}}function n(e,t){return function(r,n){return i(r,n,e,t)}}function i(e,t,n,i){if(i!==!1&&e.match("${",!1)||e.match("{$",!1))return t.tokenize=null,"string";if(i!==!1&&e.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/))return e.match("[",!1)&&(t.tokenize=r([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],n,i)),e.match(/\-\>\w/,!1)&&(t.tokenize=r([[["->",null]],[[/[\w]+/,"variable"]]],n,i)),"variable-2";for(var o=!1;!e.eol()&&(o||i===!1||!e.match("{$",!1)&&!e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!o&&e.match(n)){t.tokenize=null,t.tokStack.pop(),t.tokStack.pop();break}o="\\"==e.next()&&!o}return"string"}var o="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",a="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",l="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";e.registerHelper("hintWords","php",[o,a,l].join(" ").split(" ")),e.registerHelper("wordChars","php",/[\w$]/);var s={name:"clike",helperType:"php",keywords:t(o),blockKeywords:t("catch do else elseif for foreach if switch try while finally"),defKeywords:t("class function interface namespace trait"),atoms:t(a),builtin:t(l),multiLineStrings:!0,hooks:{$:function(e){return e.eatWhile(/[\w\$_]/),"variable-2"},"<":function(e,t){var r;if(r=e.match(/<<\s*/)){var i=e.eat(/['"]/);e.eatWhile(/[\w\.]/);var o=e.current().slice(r[0].length+(i?2:1));if(i&&e.eat(i),o)return(t.tokStack||(t.tokStack=[])).push(o,0),t.tokenize=n(o,"'"!=i),"string"}return!1},"#":function(e){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"},"/":function(e){if(e.eat("/")){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"}return!1},'"':function(e,t){return(t.tokStack||(t.tokStack=[])).push('"',0),t.tokenize=n('"'),"string"},"{":function(e,t){return t.tokStack&&t.tokStack.length&&t.tokStack[t.tokStack.length-1]++,!1},"}":function(e,t){return t.tokStack&&t.tokStack.length>0&&!--t.tokStack[t.tokStack.length-1]&&(t.tokenize=n(t.tokStack[t.tokStack.length-2])),!1}}};e.defineMode("php",function(t,r){function n(t,r){var n=r.curMode==o;if(t.sol()&&r.pending&&'"'!=r.pending&&"'"!=r.pending&&(r.pending=null),n)return n&&null==r.php.tokenize&&t.match("?>")?(r.curMode=i,r.curState=r.html,r.php.context.prev||(r.php=null),"meta"):o.token(t,r.curState);if(t.match(/^<\?\w*/))return r.curMode=o,r.php||(r.php=e.startState(o,i.indent(r.html,""))),r.curState=r.php,"meta";if('"'==r.pending||"'"==r.pending){for(;!t.eol()&&t.next()!=r.pending;);var a="string"}else if(r.pending&&t.pos<r.pending.end){t.pos=r.pending.end;var a=r.pending.style}else var a=i.token(t,r.curState);r.pending&&(r.pending=null);var l,s=t.current(),c=s.search(/<\?/);return c!=-1&&("string"==a&&(l=s.match(/[\'\"]$/))&&!/\?>/.test(s)?r.pending=l[0]:r.pending={end:t.pos,style:a},t.backUp(s.length-c)),a}var i=e.getMode(t,"text/html"),o=e.getMode(t,s);return{startState:function(){var t=e.startState(i),n=r.startOpen?e.startState(o):null;return{html:t,php:n,curMode:r.startOpen?o:i,curState:r.startOpen?n:t,pending:null}},copyState:function(t){var r,n=t.html,a=e.copyState(i,n),l=t.php,s=l&&e.copyState(o,l);return r=t.curMode==i?a:s,{html:a,php:s,curMode:t.curMode,curState:r,pending:t.pending}},token:n,indent:function(e,t){return e.curMode!=o&&/^\s*<\//.test(t)||e.curMode==o&&/^\?>/.test(t)?i.indent(e.html,t):e.curMode.indent(e.curState,t)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(e){return{state:e.curState,mode:e.curMode}}}},"htmlmixed","clike"),e.defineMIME("application/x-httpd-php","php"),e.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),e.defineMIME("text/x-php",s)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={allowUnquoted:!0,allowMissing:!0,caseFold:!0};e.defineMode("shortcode",function(e,r){function n(e,t){return"["===e.next()?"["===e.peek()?(t.tokenize=i,"comment"):/\s/.test(e.peek())?null:(C=e.eat("/")?"closeTag":"openTag",t.tokenize=o,"tag bracket"):(e.eatWhile(/[^\[]/),null)}function i(e,t){var r=function(e,t){return e.next(),t.tokenize=n,"comment"};return r.isInEscape=!0,"]"===e.next()&&"]"===e.peek()&&(t.tokenize=r),e.eatWhile(/[^\]]/),null}function o(e,t){var r=e.next();if("]"===r||"/"===r&&e.eat("]"))return t.tokenize=n,C="endTag","tag bracket";if("="===r)return C="equals",null;if("["===r){t.tokenize=n,t.state=c,t.tagName=t.tagStart=null;var i=t.tokenize(e,t);return i?i+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=a(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=\[\]\"\']*[^\s\u00a0=\[\]\"\'\/]/),"word")}function a(e){var t=function(t,r){var n=t.next();return n===e?(r.tokenize=o,"string"):/[\[\]]/.test(n)?"string error":(t.eatWhile(/[^\[\]\'\"]/),"string")};return t.isInAttribute=!0,t}function l(e,t,r){this.tagHistory=[t],e.context&&(this.tagHistory=this.tagHistory.concat(e.context.tagHistory)),this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r}function s(e){e.context&&(e.context=e.context.prev)}function c(e,t,r){return"openTag"===e?(r.tagStart=t.column(),u):"closeTag"===e?f:c}function u(e,t,r){if("word"===e){var n=t.current();return/[\[\]\/\'\"<>&]/.test(n)?S="error":(r.tagName=t.current(),S="tag"),p}return S="error",u}function f(e,t,r){if("word"===e){var n=t.current();if(r.context&&r.context.tagName===n||b.matchClosing===!1)return S="tag",d;if(r.context&&r.context.tagHistory.indexOf(n)>0){for(var i=r.context.tagHistory.indexOf(n),o=0;o<i;o++)s(r);return S="tag",d}return S="tag error",h}return S="error",h}function d(e,t,r){return"endTag"!==e?(S="error",d):(s(r),c)}function h(e,t,r){return S="error",d(e,t,r)}function p(e,t,r){if("word"===e)return S=/^[a-z0-9_\-]+$/i.test(t.current())?"attribute":"error",m;if("endTag"===e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,r.context=new l(r,n,i===r.indented),c}return S="error",p}function m(e,t,r){return"equals"===e?g:(b.allowMissing||(S="error"),p(e,t,r))}function g(e,t,r){return"string"===e?v:"word"===e&&b.allowUnquoted?(S="string",p):(S="error",p(e,t,r))}function v(e,t,r){return"string"===e?v:p(e,t,r)}var y=e.indentUnit,b={},x=t;for(var w in x)b[w]=x[w];for(var k in r)b[k]=r[k];var C,S;return n.isInText=!0,i.isInEscape=!0,{startState:function(e){var t={tokenize:n,state:c,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;C=null;var r=t.tokenize(e,t);return(r||C)&&"comment"!==r&&(S=null,t.state=t.state(C||r,e,t),S&&(r="error"===S?r+" error":S)),r},indent:function(e,t,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart===e.indented?e.stringStartCol+1:e.indented+y;if(e.tokenize!==o&&e.tokenize!==n)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return b.multilineTagIndentPastTag!==!1?e.tagStart+e.tagName.length+2:e.tagStart+y*(b.multilineTagIndentFactor||1);var a=t&&/^\[(\/)?([\w_:\.-]*)/.exec(t);if(a&&a[1])for(;i;){if(i.tagName===a[2]){i=i.prev;break}break}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+y:e.baseIndent||0},skipAttribute:function(e){e.state===g&&(e.state=p)}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("wordpresspost",function(t,r){function n(e,t){t.isInShortcode=!0;var r=l.token(e,t.shortcodeState),n=t.shortcodeState.tokenize.isInText,o=t.shortcodeState.tokenize.isInEscape;if(n)t.token=i;else if(o&&/\]/.test(e.current())){var a=e.current(),s=a.search(/\]/);e.backUp(a.length-s-1),"]"!==e.peek()&&(t.token=i)}return r}function i(e,t){t.isInShortcode=!1;var r=a.token(e,t.htmlmixedState),i=t.htmlmixedState.htmlState.tokenize.isInText;if(i&&/\[/.test(e.current())&&!t.htmlmixedState.localState&&null===r){var s=e.current(),c=s.search(/\[/);e.backUp(s.length-c),null==t.shortcodeState&&(t.shortcodeState=l.startState(a.indent(t.htmlmixedState,""))),t.token=n}else i&&/<!\-\-more|<!\-\-(noteaser|nextpage)\-\->?/.test(e.current())&&!t.htmlmixedState.localState&&"comment"===r&&(e.backUp(e.current().length),t.token=o);return r}function o(e,t){return e.match("<!--more")?"meta":e.match("-->")||e.match("<!--noteaser-->")||e.match("<!--nextpage-->")?(t.token=i,"meta"):(e.eatWhile(/[^\-\/]/),"string")}var a=e.getMode(t,{name:"htmlmixed",multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag}),l=e.getMode(t,{name:"shortcode",multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag});return{startState:function(){return{token:i,isInShortcode:!1,shortcodeState:null,htmlmixedState:a.startState()}},copyState:function(t){var r;return t.shortcodeState&&(r=e.copyState(l,t.shortcodeState)),{token:t.token,shortcodeState:r,htmlmixedState:e.copyState(a,t.htmlmixedState)}},token:function(e,t){return t.token(e,t)},indent:function(t,r){return t.isInShortcode?t.isInShortcode?l.indent(t.shortcodeState,r):e.Pass:a.indent(t.htmlmixedState,r)},innerMode:function(e){return e.isInShortcode?{state:e.shortcodeState,mode:l}:{state:e.htmlmixedState,mode:a}}}},"htmlmixed","shortcode")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],"wrap",o),e.removeLineClass(e.state.activeLines[t],"background",a),e.removeLineClass(e.state.activeLines[t],"gutter",l)}function r(e,t){if(e.length!=t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}function n(e,n){for(var i=[],s=0;s<n.length;s++){var c=n[s],u=e.getOption("styleActiveLine");if("object"==typeof u&&u.nonEmpty?c.anchor.line==c.head.line:c.empty()){var f=e.getLineHandleVisualStart(c.head.line);i[i.length-1]!=f&&i.push(f)}}r(e.state.activeLines,i)||e.operation(function(){t(e);for(var r=0;r<i.length;r++)e.addLineClass(i[r],"wrap",o),e.addLineClass(i[r],"background",a),e.addLineClass(i[r],"gutter",l);e.state.activeLines=i})}function i(e,t){n(e,t.ranges)}var o="CodeMirror-activeline",a="CodeMirror-activeline-background",l="CodeMirror-activeline-gutter";e.defineOption("styleActiveLine",!1,function(r,o,a){var l=a!=e.Init&&a;o!=l&&(l&&(r.off("beforeSelectionChange",i),t(r),delete r.state.activeLines),o&&(r.state.activeLines=[],n(r,r.listSelections()),r.on("beforeSelectionChange",i)))})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,i,o){if(this.atOccurrence=!1,this.doc=e,null==o&&"string"==typeof t&&(o=!1),i=i?e.clipPos(i):n(0,0),this.pos={from:i,to:i},"string"!=typeof t)t.global||(t=new RegExp(t.source,t.ignoreCase?"ig":"g")),this.matches=function(r,i){if(r){t.lastIndex=0;for(var o,a,l=e.getLine(i.line).slice(0,i.ch),s=0;;){t.lastIndex=s;var c=t.exec(l);if(!c)break;if(o=c,a=o.index,(s=o.index+(o[0].length||1))==l.length)break}var u=o&&o[0].length||0;u||(0==a&&0==l.length?o=void 0:a!=e.getLine(i.line).length&&u++)}else{t.lastIndex=i.ch;var l=e.getLine(i.line),o=t.exec(l),u=o&&o[0].length||0,a=o&&o.index;a+u==l.length||u||(u=1)}if(o&&u)return{from:n(i.line,a),to:n(i.line,a+u),match:o}};else{var a=t;o&&(t=t.toLowerCase());var l=o?function(e){return e.toLowerCase()}:function(e){return e},s=t.split("\n");if(1==s.length)t.length?this.matches=function(i,o){if(i){var s=e.getLine(o.line).slice(0,o.ch),c=l(s),u=c.lastIndexOf(t);if(u>-1)return u=r(s,c,u),{from:n(o.line,u),to:n(o.line,u+a.length)}}else{var s=e.getLine(o.line).slice(o.ch),c=l(s),u=c.indexOf(t);if(u>-1)return u=r(s,c,u)+o.ch,{from:n(o.line,u),to:n(o.line,u+a.length)}}}:this.matches=function(){};else{var c=a.split("\n");this.matches=function(t,r){var i=s.length-1;if(t){if(r.line-(s.length-1)<e.firstLine())return;if(l(e.getLine(r.line).slice(0,c[i].length))!=s[s.length-1])return;for(var o=n(r.line,c[i].length),a=r.line-1,u=i-1;u>=1;--u,--a)if(s[u]!=l(e.getLine(a)))return;var f=e.getLine(a),d=f.length-c[0].length;if(l(f.slice(d))!=s[0])return;return{from:n(a,d),to:o}}if(!(r.line+(s.length-1)>e.lastLine())){var f=e.getLine(r.line),d=f.length-c[0].length;if(l(f.slice(d))==s[0]){for(var h=n(r.line,d),a=r.line+1,u=1;u<i;++u,++a)if(s[u]!=l(e.getLine(a)))return;if(l(e.getLine(a).slice(0,c[i].length))==s[i])return{from:h,to:n(a,c[i].length)}}}}}}}function r(e,t,r){if(e.length==t.length)return r;for(var n=Math.min(r,e.length);;){var i=e.slice(0,n).toLowerCase().length;if(i<r)++n;else{if(!(i>r))return n;--n}}}var n=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=n(e,0);return r.pos={from:t,to:t},r.atOccurrence=!1,!1}for(var r=this,i=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,i))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!i.line)return t(0);i=n(i.line-1,this.doc.getLine(i.line-1).length)}else{var o=this.doc.lineCount();if(i.line==o-1)return t(o);i=n(i.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,r){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,r),this.pos.to=n(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,r,n){return new t(this.doc,e,r,n)}),e.defineDocExtension("getSearchCursor",function(e,r,n){return new t(this,e,r,n)}),e.defineExtension("selectMatches",function(t,r){for(var n=[],i=this.getSearchCursor(t,this.getCursor("from"),r);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)n.push({anchor:i.from(),head:i.to()});n.length&&this.setSelections(n,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var r=e.exec(t.string);if(r&&r.index==t.pos)return t.pos+=r[0].length||1,"searching";r?t.pos=r.index:t.skipToEnd()}}}function r(){
|
9 |
-
this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function n(e){return e.state.search||(e.state.search=new r)}function i(e){return"string"==typeof e&&e==e.toLowerCase()}function o(e,t,r){return e.getSearchCursor(t,r,i(t))}function a(e,t,r,n,i){e.openDialog(t,n,{value:r,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){p(e)},onKeyDown:i})}function l(e,t,r,n,i){e.openDialog?e.openDialog(t,i,{value:n,selectValueOnOpen:!0}):i(prompt(r,n))}function s(e,t,r,n){e.openConfirm?e.openConfirm(t,n):confirm(r)&&n[0]()}function c(e){return e.replace(/\\(.)/g,function(e,t){return"n"==t?"\n":"r"==t?"\r":t})}function u(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],t[2].indexOf("i")==-1?"":"i")}catch(e){}else e=c(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function f(e,r,n){r.queryText=n,r.query=u(n),e.removeOverlay(r.overlay,i(r.query)),r.overlay=t(r.query,i(r.query)),e.addOverlay(r.overlay),e.showMatchesOnScrollbar&&(r.annotate&&(r.annotate.clear(),r.annotate=null),r.annotate=e.showMatchesOnScrollbar(r.query,i(r.query)))}function d(t,r,i,o){var s=n(t);if(s.query)return h(t,r);var c=t.getSelection()||s.lastQuery;if(i&&t.openDialog){var u=null,d=function(r,n){e.e_stop(n),r&&(r!=s.queryText&&(f(t,s,r),s.posFrom=s.posTo=t.getCursor()),u&&(u.style.opacity=1),h(t,n.shiftKey,function(e,r){var n;r.line<3&&document.querySelector&&(n=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&n.getBoundingClientRect().bottom-4>t.cursorCoords(r,"window").top&&((u=n).style.opacity=.4)}))};a(t,v,c,d,function(r,i){var o=e.keyName(r),a=e.keyMap[t.getOption("keyMap")][o];a||(a=t.getOption("extraKeys")[o]),"findNext"==a||"findPrev"==a||"findPersistentNext"==a||"findPersistentPrev"==a?(e.e_stop(r),f(t,n(t),i),t.execCommand(a)):"find"!=a&&"findPersistent"!=a||(e.e_stop(r),d(i,r))}),o&&c&&(f(t,s,c),h(t,r))}else l(t,v,"Search for:",c,function(e){e&&!s.query&&t.operation(function(){f(t,s,e),s.posFrom=s.posTo=t.getCursor(),h(t,r)})})}function h(t,r,i){t.operation(function(){var a=n(t),l=o(t,a.query,r?a.posFrom:a.posTo);(l.find(r)||(l=o(t,a.query,r?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),l.find(r)))&&(t.setSelection(l.from(),l.to()),t.scrollIntoView({from:l.from(),to:l.to()},20),a.posFrom=l.from(),a.posTo=l.to(),i&&i(l.from(),l.to()))})}function p(e){e.operation(function(){var t=n(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function m(e,t,r){e.operation(function(){for(var n=o(e,t);n.findNext();)if("string"!=typeof t){var i=e.getRange(n.from(),n.to()).match(t);n.replace(r.replace(/\$(\d)/g,function(e,t){return i[t]}))}else n.replace(r)})}function g(e,t){if(!e.getOption("readOnly")){var r=e.getSelection()||n(e).lastQuery,i=t?"Replace all:":"Replace:";l(e,i+y,i,r,function(r){r&&(r=u(r),l(e,b,"Replace with:","",function(n){if(n=c(n),t)m(e,r,n);else{p(e);var i=o(e,r,e.getCursor("from")),a=function(){var t,c=i.from();!(t=i.findNext())&&(i=o(e,r),!(t=i.findNext())||c&&i.from().line==c.line&&i.from().ch==c.ch)||(e.setSelection(i.from(),i.to()),e.scrollIntoView({from:i.from(),to:i.to()}),s(e,x,"Replace?",[function(){l(t)},a,function(){m(e,r,n)}]))},l=function(e){i.replace("string"==typeof r?n:n.replace(/\$(\d)/g,function(t,r){return e[r]})),a()};a()}}))})}}var v='Search: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',y=' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',b='With: <input type="text" style="width: 10em" class="CodeMirror-search-field"/>',x="Replace? <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>";e.commands.find=function(e){p(e),d(e)},e.commands.findPersistent=function(e){p(e),d(e,!1,!0)},e.commands.findPersistentNext=function(e){d(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){d(e,!0,!0,!0)},e.commands.findNext=d,e.commands.findPrev=function(e){d(e,!0)},e.commands.clearSearch=p,e.commands.replace=g,e.commands.replaceAll=function(e){g(e,!0)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,r){var n,i=e.getWrapperElement();return n=i.appendChild(document.createElement("div")),n.className=r?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof t?n.innerHTML=t:n.appendChild(t),n}function r(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",function(n,i,o){function a(e){if("string"==typeof e)f.value=e;else{if(c)return;c=!0,s.parentNode.removeChild(s),u.focus(),o.onClose&&o.onClose(s)}}o||(o={}),r(this,null);var l,s=t(this,n,o.bottom),c=!1,u=this,f=s.getElementsByTagName("input")[0];return f?(f.focus(),o.value&&(f.value=o.value,o.selectValueOnOpen!==!1&&f.select()),o.onInput&&e.on(f,"input",function(e){o.onInput(e,f.value,a)}),o.onKeyUp&&e.on(f,"keyup",function(e){o.onKeyUp(e,f.value,a)}),e.on(f,"keydown",function(t){o&&o.onKeyDown&&o.onKeyDown(t,f.value,a)||((27==t.keyCode||o.closeOnEnter!==!1&&13==t.keyCode)&&(f.blur(),e.e_stop(t),a()),13==t.keyCode&&i(f.value,t))}),o.closeOnBlur!==!1&&e.on(f,"blur",a)):(l=s.getElementsByTagName("button")[0])&&(e.on(l,"click",function(){a(),u.focus()}),o.closeOnBlur!==!1&&e.on(l,"blur",a),l.focus()),a}),e.defineExtension("openConfirm",function(n,i,o){function a(){c||(c=!0,l.parentNode.removeChild(l),u.focus())}r(this,null);var l=t(this,n,o&&o.bottom),s=l.getElementsByTagName("button"),c=!1,u=this,f=1;s[0].focus();for(var d=0;d<s.length;++d){var h=s[d];!function(t){e.on(h,"click",function(r){e.e_preventDefault(r),a(),t&&t(u)})}(i[d]),e.on(h,"blur",function(){--f,setTimeout(function(){f<=0&&a()},200)}),e.on(h,"focus",function(){++f})}}),e.defineExtension("openNotification",function(n,i){function o(){s||(s=!0,clearTimeout(a),l.parentNode.removeChild(l))}r(this,o);var a,l=t(this,n,i&&i.bottom),s=!1,c=i&&void 0!==i.duration?i.duration:5e3;return e.on(l,"click",function(t){e.e_preventDefault(t),o()}),c&&(a=setTimeout(o,c)),o})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,n){function i(t){var r=e.wheelEventPixels(t)["horizontal"==o.orientation?"x":"y"],n=o.pos;o.moveTo(o.pos+r),o.pos!=n&&e.e_preventDefault(t)}this.orientation=r,this.scroll=n,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+r,this.inner=this.node.appendChild(document.createElement("div"));var o=this;e.on(this.inner,"mousedown",function(t){function r(){e.off(document,"mousemove",n),e.off(document,"mouseup",r)}function n(e){if(1!=e.which)return r();o.moveTo(l+(e[i]-a)*(o.total/o.size))}if(1==t.which){e.e_preventDefault(t);var i="horizontal"==o.orientation?"pageX":"pageY",a=t[i],l=o.pos;e.on(document,"mousemove",n),e.on(document,"mouseup",r)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var r,n=o.inner.getBoundingClientRect();r="horizontal"==o.orientation?t.clientX<n.left?-1:t.clientX>n.right?1:0:t.clientY<n.top?-1:t.clientY>n.bottom?1:0,o.moveTo(o.pos+r*o.screen)}),e.on(this.node,"mousewheel",i),e.on(this.node,"DOMMouseScroll",i)}function r(e,r,n){this.addClass=e,this.horiz=new t(e,"horizontal",n),r(this.horiz.node),this.vert=new t(e,"vertical",n),r(this.vert.node),this.width=null}t.prototype.setPos=function(e,t){return e<0&&(e=0),e>this.total-this.screen&&(e=this.total-this.screen),!(!t&&e==this.pos)&&(this.pos=e,this.inner.style["horizontal"==this.orientation?"left":"top"]=e*(this.size/this.total)+"px",!0)},t.prototype.moveTo=function(e){this.setPos(e)&&this.scroll(e,this.orientation)};t.prototype.update=function(e,t,r){var n=this.screen!=t||this.total!=e||this.size!=r;n&&(this.screen=t,this.total=e,this.size=r);var i=this.screen*(this.size/this.total);i<10&&(this.size-=10-i,i=10),this.inner.style["horizontal"==this.orientation?"width":"height"]=i+"px",this.setPos(this.pos,n)},r.prototype.update=function(e){if(null==this.width){var t=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;t&&(this.width=parseInt(t.height))}var r=this.width||0,n=e.scrollWidth>e.clientWidth+1,i=e.scrollHeight>e.clientHeight+1;return this.vert.node.style.display=i?"block":"none",this.horiz.node.style.display=n?"block":"none",i&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(n?r:0)),this.vert.node.style.bottom=n?r+"px":"0"),n&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(i?r:0)-e.barLeft),this.horiz.node.style.right=i?r+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:i?r:0,bottom:n?r:0}},r.prototype.setScrollTop=function(e){this.vert.setPos(e)},r.prototype.setScrollLeft=function(e){this.horiz.setPos(e)},r.prototype.clear=function(){var e=this.horiz.node.parentNode;e.removeChild(this.horiz.node),e.removeChild(this.vert.node)},e.scrollbarModel.simple=function(e,t){return new r("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new r("CodeMirror-overlayscroll",e,t)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){var t=e.search(o);return t==-1?0:t}function r(e,t,r){return/\bstring\b/.test(e.getTokenTypeAt(a(t.line,0)))&&!/^[\'\"\`]/.test(r)}function n(e,t){var r=e.getMode();return r.useInnerComments!==!1&&r.innerMode?e.getModeAt(t):r}var i={},o=/[^\s\u00a0]/,a=e.Pos;e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension("toggleComment",function(e){e||(e=i);for(var t=this,r=1/0,n=this.listSelections(),o=null,l=n.length-1;l>=0;l--){var s=n[l].from(),c=n[l].to();s.line>=r||(c.line>=r&&(c=a(r,0)),r=s.line,null==o?t.uncomment(s,c,e)?o="un":(t.lineComment(s,c,e),o="line"):"un"==o?t.uncomment(s,c,e):t.lineComment(s,c,e))}}),e.defineExtension("lineComment",function(e,l,s){s||(s=i);var c=this,u=n(c,e),f=c.getLine(e.line);if(null!=f&&!r(c,e,f)){var d=s.lineComment||u.lineComment;if(!d)return void((s.blockCommentStart||u.blockCommentStart)&&(s.fullLines=!0,c.blockComment(e,l,s)));var h=Math.min(0!=l.ch||l.line==e.line?l.line+1:l.line,c.lastLine()+1),p=null==s.padding?" ":s.padding,m=s.commentBlankLines||e.line==l.line;c.operation(function(){if(s.indent){for(var r=null,n=e.line;n<h;++n){var i=c.getLine(n),l=i.slice(0,t(i));(null==r||r.length>l.length)&&(r=l)}for(var n=e.line;n<h;++n){var i=c.getLine(n),u=r.length;(m||o.test(i))&&(i.slice(0,u)!=r&&(u=t(i)),c.replaceRange(r+d+p,a(n,0),a(n,u)))}}else for(var n=e.line;n<h;++n)(m||o.test(c.getLine(n)))&&c.replaceRange(d+p,a(n,0))})}}),e.defineExtension("blockComment",function(e,t,r){r||(r=i);var l=this,s=n(l,e),c=r.blockCommentStart||s.blockCommentStart,u=r.blockCommentEnd||s.blockCommentEnd;if(!c||!u)return void((r.lineComment||s.lineComment)&&0!=r.fullLines&&l.lineComment(e,t,r));if(!/\bcomment\b/.test(l.getTokenTypeAt(a(e.line,0)))){var f=Math.min(t.line,l.lastLine());f!=e.line&&0==t.ch&&o.test(l.getLine(f))&&--f;var d=null==r.padding?" ":r.padding;e.line>f||l.operation(function(){if(0!=r.fullLines){var n=o.test(l.getLine(f));l.replaceRange(d+u,a(f)),l.replaceRange(c+d,a(e.line,0));var i=r.blockCommentLead||s.blockCommentLead;if(null!=i)for(var h=e.line+1;h<=f;++h)(h!=f||n)&&l.replaceRange(i+d,a(h,0))}else l.replaceRange(u,t),l.replaceRange(c,e)})}}),e.defineExtension("uncomment",function(e,t,r){r||(r=i);var l,s=this,c=n(s,e),u=Math.min(0!=t.ch||t.line==e.line?t.line:t.line-1,s.lastLine()),f=Math.min(e.line,u),d=r.lineComment||c.lineComment,h=[],p=null==r.padding?" ":r.padding;e:if(d){for(var m=f;m<=u;++m){var g=s.getLine(m),v=g.indexOf(d);if(v>-1&&!/comment/.test(s.getTokenTypeAt(a(m,v+1)))&&(v=-1),v==-1&&o.test(g))break e;if(v>-1&&o.test(g.slice(0,v)))break e;h.push(g)}if(s.operation(function(){for(var e=f;e<=u;++e){var t=h[e-f],r=t.indexOf(d),n=r+d.length;r<0||(t.slice(n,n+p.length)==p&&(n+=p.length),l=!0,s.replaceRange("",a(e,r),a(e,n)))}}),l)return!0}var y=r.blockCommentStart||c.blockCommentStart,b=r.blockCommentEnd||c.blockCommentEnd;if(!y||!b)return!1;var x=r.blockCommentLead||c.blockCommentLead,w=s.getLine(f),k=w.indexOf(y);if(k==-1)return!1;var C=u==f?w:s.getLine(u),S=C.indexOf(b,u==f?k+y.length:0);S==-1&&f!=u&&(C=s.getLine(--u),S=C.indexOf(b));var _=a(f,k+1),M=a(u,S+1);if(S==-1||!/comment/.test(s.getTokenTypeAt(_))||!/comment/.test(s.getTokenTypeAt(M))||s.getRange(_,M,"\n").indexOf(b)>-1)return!1;var L=w.lastIndexOf(y,e.ch),T=L==-1?-1:w.slice(0,e.ch).indexOf(b,L+y.length);if(L!=-1&&T!=-1&&T+b.length!=e.ch)return!1;T=C.indexOf(b,t.ch);var A=C.slice(t.ch).lastIndexOf(y,T-t.ch);return L=T==-1||A==-1?-1:t.ch+A,(T==-1||L==-1||L==t.ch)&&(s.operation(function(){s.replaceRange("",a(u,S-(p&&C.slice(S-p.length,S)==p?p.length:0)),a(u,S+b.length));var e=k+y.length;if(p&&w.slice(e,e+p.length)==p&&(e+=p.length),s.replaceRange("",a(f,k),a(f,e)),x)for(var t=f+1;t<=u;++t){var r=s.getLine(t),n=r.indexOf(x);if(n!=-1&&!o.test(r.slice(0,n))){var i=n+x.length;p&&r.slice(i,i+p.length)==p&&(i+=p.length),s.replaceRange("",a(t,n),a(t,i))}}}),!0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,i,o,a){function l(e){var r=s(t,i);if(!r||r.to.line-r.from.line<c)return null;for(var n=t.findMarksAt(r.from),o=0;o<n.length;++o)if(n[o].__isFold&&"fold"!==a){if(!e)return null;r.cleared=!0,n[o].clear()}return r}if(o&&o.call){var s=o;o=null}else var s=n(t,o,"rangeFinder");"number"==typeof i&&(i=e.Pos(i,0));var c=n(t,o,"minFoldSize"),u=l(!0);if(n(t,o,"scanUp"))for(;!u&&i.line>t.firstLine();)i=e.Pos(i.line-1,0),u=l(!1);if(u&&!u.cleared&&"unfold"!==a){var f=r(t,o);e.on(f,"mousedown",function(t){d.clear(),e.e_preventDefault(t)});var d=t.markText(u.from,u.to,{replacedWith:f,clearOnEnter:n(t,o,"clearOnEnter"),__isFold:!0});d.on("clear",function(r,n){e.signal(t,"unfold",t,r,n)}),e.signal(t,"fold",t,u.from,u.to)}}function r(e,t){var r=n(e,t,"widget");if("string"==typeof r){var i=document.createTextNode(r);r=document.createElement("span"),r.appendChild(i),r.className="CodeMirror-foldmarker"}return r}function n(e,t,r){if(t&&void 0!==t[r])return t[r];var n=e.options.foldOptions;return n&&void 0!==n[r]?n[r]:i[r]}e.newFoldFunction=function(e,r){return function(n,i){t(n,i,{rangeFinder:e,widget:r})}},e.defineExtension("foldCode",function(e,r,n){t(this,e,r,n)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),r=0;r<t.length;++r)if(t[r].__isFold)return!0}),e.commands.toggleFold=function(e){e.foldCode(e.getCursor())},e.commands.fold=function(e){e.foldCode(e.getCursor(),null,"fold")},e.commands.unfold=function(e){e.foldCode(e.getCursor(),null,"unfold")},e.commands.foldAll=function(t){t.operation(function(){for(var r=t.firstLine(),n=t.lastLine();r<=n;r++)t.foldCode(e.Pos(r,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var r=t.firstLine(),n=t.lastLine();r<=n;r++)t.foldCode(e.Pos(r,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,r){for(var n=0;n<e.length;++n){var i=e[n](t,r);if(i)return i}}}),e.registerHelper("fold","auto",function(e,t){for(var r=e.getHelpers(t,"fold"),n=0;n<r.length;n++){var i=r[n](e,t);if(i)return i}});var i={rangeFinder:e.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1,clearOnEnter:!0};e.defineOption("foldOptions",null),e.defineExtension("foldOption",function(e,t){return n(this,e,t)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options=e,this.from=this.to=0}function r(e){return e===!0&&(e={}),null==e.gutter&&(e.gutter="CodeMirror-foldgutter"),null==e.indicatorOpen&&(e.indicatorOpen="CodeMirror-foldgutter-open"),null==e.indicatorFolded&&(e.indicatorFolded="CodeMirror-foldgutter-folded"),e}function n(e,t){for(var r=e.findMarks(f(t,0),f(t+1,0)),n=0;n<r.length;++n)if(r[n].__isFold&&r[n].find().from.line==t)return r[n]}function i(e){if("string"==typeof e){var t=document.createElement("div");return t.className=e+" CodeMirror-guttermarker-subtle",t}return e.cloneNode(!0)}function o(e,t,r){var o=e.state.foldGutter.options,a=t,l=e.foldOption(o,"minFoldSize"),s=e.foldOption(o,"rangeFinder");e.eachLine(t,r,function(t){var r=null;if(n(e,a))r=i(o.indicatorFolded);else{var c=f(a,0),u=s&&s(e,c);u&&u.to.line-u.from.line>=l&&(r=i(o.indicatorOpen))}e.setGutterMarker(t,o.gutter,r),++a})}function a(e){var t=e.getViewport(),r=e.state.foldGutter;r&&(e.operation(function(){o(e,t.from,t.to)}),r.from=t.from,r.to=t.to)}function l(e,t,r){var i=e.state.foldGutter;if(i){var o=i.options;if(r==o.gutter){var a=n(e,t);a?a.clear():e.foldCode(f(t,0),o.rangeFinder)}}}function s(e){var t=e.state.foldGutter;if(t){var r=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},r.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var r=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var r=e.getViewport();t.from==t.to||r.from-t.to>20||t.from-r.to>20?a(e):e.operation(function(){r.from<t.from&&(o(e,r.from,t.from),t.from=r.from),r.to>t.to&&(o(e,t.to,r.to),t.to=r.to)})},r.updateViewportTimeSpan||400)}}function u(e,t){var r=e.state.foldGutter;if(r){var n=t.line;n>=r.from&&n<r.to&&o(e,n,n+1)}}e.defineOption("foldGutter",!1,function(n,i,o){o&&o!=e.Init&&(n.clearGutter(n.state.foldGutter.options.gutter),n.state.foldGutter=null,n.off("gutterClick",l),n.off("change",s),n.off("viewportChange",c),n.off("fold",u),n.off("unfold",u),n.off("swapDoc",s)),i&&(n.state.foldGutter=new t(r(i)),a(n),n.on("gutterClick",l),n.on("change",s),n.on("viewportChange",c),n.on("fold",u),n.on("unfold",u),n.on("swapDoc",s))});var f=e.Pos}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function r(e,t,r,n){this.line=t,this.ch=r,this.cm=e,this.text=e.getLine(t),this.min=n?Math.max(n.from,e.firstLine()):e.firstLine(),this.max=n?Math.min(n.to-1,e.lastLine()):e.lastLine()}function n(e,t){var r=e.cm.getTokenTypeAt(d(e.line,t));return r&&/\btag\b/.test(r)}function i(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function o(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(t==-1){if(i(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),o=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function l(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(t==-1){if(o(e))continue;return}if(n(e,t+1)){p.lastIndex=t,e.ch=t;var r=p.exec(e.text);if(r&&r.index==t)return r}else e.ch=t}}function s(e){for(;;){p.lastIndex=e.ch;var t=p.exec(e.text);if(!t){if(i(e))continue;return}{if(n(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(t==-1){if(o(e))continue;return}{if(n(e,t+1)){var r=e.text.lastIndexOf("/",t),i=r>-1&&!/\S/.test(e.text.slice(r+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t}}}function u(e,t){for(var r=[];;){var n,i=s(e),o=e.line,l=e.ch-(i?i[0].length:0);if(!i||!(n=a(e)))return;if("selfClose"!=n)if(i[1]){for(var c=r.length-1;c>=0;--c)if(r[c]==i[2]){r.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(o,l),to:d(e.line,e.ch)}}else r.push(i[2])}}function f(e,t){for(var r=[];;){var n=c(e);if(!n)return;if("selfClose"!=n){var i=e.line,o=e.ch,a=l(e);if(!a)return;if(a[1])r.push(a[2]);else{for(var s=r.length-1;s>=0;--s)if(r[s]==a[2]){r.length=s;break}if(s<0&&(!t||t==a[2]))return{tag:a[2],from:d(e.line,e.ch),to:d(i,o)}}}else l(e)}}var d=e.Pos,h="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",p=new RegExp("<(/?)(["+h+"]["+h+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,t){for(var n=new r(e,t.line,0);;){var i,o=s(n);if(!o||n.line!=t.line||!(i=a(n)))return;if(!o[1]&&"selfClose"!=i){var l=d(n.line,n.ch),c=u(n,o[2]);return c&&{from:l,to:c.from}}}}),e.findMatchingTag=function(e,n,i){var o=new r(e,n.line,n.ch,i);if(o.text.indexOf(">")!=-1||o.text.indexOf("<")!=-1){var s=a(o),c=s&&d(o.line,o.ch),h=s&&l(o);if(s&&h&&!(t(o,n)>0)){var p={from:d(o.line,o.ch),to:c,tag:h[2]};return"selfClose"==s?{open:p,close:null,at:"open"}:h[1]?{open:f(o,h[2]),close:p,at:"close"}:(o=new r(e,c.line,c.ch,i),{open:p,close:u(o,h[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,n){for(var i=new r(e,t.line,t.ch,n);;){var o=f(i);if(!o)break;var a=new r(e,t.line,t.ch,n),l=u(a,o.tag);if(l)return{open:o,close:l}}},e.scanForClosingTag=function(e,t,n,i){return u(new r(e,t.line,t.ch,i?{from:0,to:i}:null),n)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r){var n=t.getLine(r),i=n.search(/\S/);return i==-1||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(r,i+1)))?-1:e.countColumn(n,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",function(r,n){var i=t(r,n.line);if(!(i<0)){for(var o=null,a=n.line+1,l=r.lastLine();a<=l;++a){var s=t(r,a);if(s==-1);else{if(!(s>i))break;o=a}}return o?{from:e.Pos(n.line,r.getLine(n.line).length),to:e.Pos(o,r.getLine(o).length)}:void 0}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,n,i){var o=e.getLineHandle(t.line),s=t.ch-1,c=s>=0&&l[o.text.charAt(s)]||l[o.text.charAt(++s)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(n&&u>0!=(s==t.ch))return null;var f=e.getTokenTypeAt(a(t.line,s+1)),d=r(e,a(t.line,s+(u>0?1:0)),u,f||null,i);return null==d?null:{from:a(t.line,s),to:d&&d.pos,match:d&&d.ch==c.charAt(0),forward:u>0}}function r(e,t,r,n,i){for(var o=i&&i.maxScanLineLength||1e4,s=i&&i.maxScanLines||1e3,c=[],u=i&&i.bracketRegex?i.bracketRegex:/[(){}[\]]/,f=r>0?Math.min(t.line+s,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-s),d=t.line;d!=f;d+=r){var h=e.getLine(d);if(h){var p=r>0?0:h.length-1,m=r>0?h.length:-1;if(!(h.length>o))for(d==t.line&&(p=t.ch-(r<0?1:0));p!=m;p+=r){var g=h.charAt(p);if(u.test(g)&&(void 0===n||e.getTokenTypeAt(a(d,p+1))==n)){var v=l[g];if(">"==v.charAt(1)==r>0)c.push(g);else{if(!c.length)return{pos:a(d,p),ch:g};c.pop()}}}}}return d-r!=(r>0?e.lastLine():e.firstLine())&&null}function n(e,r,n){for(var i=e.state.matchBrackets.maxHighlightLineLength||1e3,l=[],s=e.listSelections(),c=0;c<s.length;c++){var u=s[c].empty()&&t(e,s[c].head,!1,n);if(u&&e.getLine(u.from.line).length<=i){var f=u.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";l.push(e.markText(u.from,a(u.from.line,u.from.ch+1),{className:f})),u.to&&e.getLine(u.to.line).length<=i&&l.push(e.markText(u.to,a(u.to.line,u.to.ch+1),{className:f}))}}if(l.length){o&&e.state.focused&&e.focus();var d=function(){e.operation(function(){for(var e=0;e<l.length;e++)l[e].clear()})};if(!r)return d;setTimeout(d,800)}}function i(e){e.operation(function(){s&&(s(),s=null),s=n(e,!1,e.state.matchBrackets)})}var o=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),a=e.Pos,l={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},s=null;e.defineOption("matchBrackets",!1,function(t,r,n){n&&n!=e.Init&&(t.off("cursorActivity",i),s&&(s(),s=null)),r&&(t.state.matchBrackets="object"==typeof r?r:{},t.on("cursorActivity",i))}),e.defineExtension("matchBrackets",function(){n(this,!0)}),e.defineExtension("findMatchingBracket",function(e,r,n){return t(this,e,r,n)}),e.defineExtension("scanForBracket",function(e,t,n,i){return r(this,e,t,n,i)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function r(r){r.state.failedTagMatch=!1,r.operation(function(){if(t(r),!r.somethingSelected()){var n=r.getCursor(),i=r.getViewport();i.from=Math.min(i.from,n.line),i.to=Math.max(n.line+1,i.to);var o=e.findMatchingTag(r,n,i);if(o){if(r.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(r.state.tagHit=r.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var l="close"==o.at?o.open:o.close;l?r.state.tagOther=r.markText(l.from,l.to,{className:"CodeMirror-matchingtag"}):r.state.failedTagMatch=!0}}})}function n(e){e.state.failedTagMatch&&r(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",r),i.off("viewportChange",n),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",r),i.on("viewportChange",n),r(i))}),e.commands.toMatchingTag=function(t){var r=e.findMatchingTag(t,t.getCursor());if(r){var n="close"==r.at?r.open:r.close;n&&t.extendSelection(n.to,n.from)}}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options={};for(var t in f)this.options[t]=(e&&e.hasOwnProperty(t)?e:f)[t];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function r(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&i(e,t)}function n(e){var t=e.state.matchHighlighter;t.active||(t.active=!0,i(e,t))}function i(e,t){clearTimeout(t.timeout),t.timeout=setTimeout(function(){l(e)},t.options.delay)}function o(e,t,r,n){var i=e.state.matchHighlighter;if(e.addOverlay(i.overlay=u(t,r,n)),i.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=r?new RegExp("\\b"+t+"\\b"):t;i.matchesonscroll=e.showMatchesOnScrollbar(o,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function a(e){var t=e.state.matchHighlighter;t.overlay&&(e.removeOverlay(t.overlay),t.overlay=null,t.matchesonscroll&&(t.matchesonscroll.clear(),t.matchesonscroll=null))}function l(e){e.operation(function(){var t=e.state.matchHighlighter;if(a(e),!e.somethingSelected()&&t.options.showToken){for(var r=t.options.showToken===!0?/[\w$]/:t.options.showToken,n=e.getCursor(),i=e.getLine(n.line),l=n.ch,c=l;l&&r.test(i.charAt(l-1));)--l;for(;c<i.length&&r.test(i.charAt(c));)++c;return void(l<c&&o(e,i.slice(l,c),r,t.options.style))}var u=e.getCursor("from"),f=e.getCursor("to");if(u.line==f.line&&(!t.options.wordsOnly||s(e,u,f))){var d=e.getRange(u,f);t.options.trim&&(d=d.replace(/^\s+|\s+$/g,"")),d.length>=t.options.minChars&&o(e,d,!1,t.options.style)}})}function s(e,t,r){if(null!==e.getRange(t,r).match(/^\w+$/)){if(t.ch>0){var n={line:t.line,ch:t.ch-1},i=e.getRange(n,t);if(null===i.match(/\W/))return!1}if(r.ch<e.getLine(t.line).length){var n={line:r.line,ch:r.ch+1},i=e.getRange(r,n);if(null===i.match(/\W/))return!1}return!0}return!1}function c(e,t){return!(e.start&&t.test(e.string.charAt(e.start-1))||e.pos!=e.string.length&&t.test(e.string.charAt(e.pos)))}function u(e,t,r){return{token:function(n){if(n.match(e)&&(!t||c(n,t)))return r;n.next(),n.skipTo(e.charAt(0))||n.skipToEnd()}}}var f={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};e.defineOption("highlightSelectionMatches",!1,function(i,o,s){if(s&&s!=e.Init&&(a(i),clearTimeout(i.state.matchHighlighter.timeout),i.state.matchHighlighter=null,i.off("cursorActivity",r),i.off("focus",n)),o){var c=i.state.matchHighlighter=new t(o);i.hasFocus()?(c.active=!0,l(i)):i.on("focus",n),i.on("cursorActivity",r)}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){function t(t){if(t.getOption("disableInput"))return e.Pass;for(var r=t.listSelections(),n=[],s=0;s<r.length;s++){if(!r[s].empty())return e.Pass;var c=r[s].head,u=t.getTokenAt(c),f=e.innerMode(t.getMode(),u.state),d=f.state;if("xml"!=f.mode.name||!d.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==f.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&a,g="object"==typeof h&&h.indentTags||p&&l,v=d.tagName;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==d.type||u.string.indexOf("/")==u.string.length-1||m&&i(m,y)>-1||o(t,v,c,d,!0))return e.Pass;var b=g&&i(g,y)>-1;n[s]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var s=r.length-1;s>=0;s--){var x=n[s];t.replaceRange(x.text,r[s].head,r[s].anchor,"+insert");var w=t.listSelections().slice(0);w[s]={head:x.newPos,anchor:x.newPos},t.setSelections(w),x.indent&&(t.indentLine(x.newPos.line,null,!0),t.indentLine(x.newPos.line+1,null,!0))}}function r(t,r){for(var n=t.listSelections(),i=[],a=r?"/":"</",l=0;l<n.length;l++){if(!n[l].empty())return e.Pass;var s=n[l].head,c=t.getTokenAt(s),u=e.innerMode(t.getMode(),c.state),f=u.state;if(r&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=s.ch-1))return e.Pass;var d;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)d=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;d=a+"style"}else{if(!f.context||!f.context.tagName||o(t,f.context.tagName,s,f))return e.Pass;d=a+f.context.tagName}">"!=t.getLine(s.line).charAt(c.end)&&(d+=">"),i[l]=d}t.replaceSelections(i),n=t.listSelections();for(var l=0;l<n.length;l++)(l==n.length-1||n[l].head.line<n[l+1].head.line)&&t.indentLine(n[l].head.line)}function n(t){return t.getOption("disableInput")?e.Pass:r(t,!0)}function i(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;++r)if(e[r]==t)return r;return-1}function o(t,r,n,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,n.line+500),l=e.scanForClosingTag(t,n,null,a);if(!l||l.tag!=r)return!1;for(var s=i.context,c=o?1:0;s&&s.tagName==r;s=s.prev)++c;n=l.to;for(var u=1;u<c;u++){var f=e.scanForClosingTag(t,n,null,a);if(!f||f.tag!=r)return!1;n=f.to}return!0}e.defineOption("autoCloseTags",!1,function(r,i,o){if(o!=e.Init&&o&&r.removeKeyMap("autoCloseTags"),i){var a={name:"autoCloseTags"};("object"!=typeof i||i.whenClosing)&&(a["'/'"]=function(e){return n(e)}),("object"!=typeof i||i.whenOpening)&&(a["'>'"]=function(e){return t(e)}),r.addKeyMap(a)}})
|
10 |
-
;var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],l=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return r(e)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t){return"pairs"==t&&"string"==typeof e?e:"object"==typeof e&&null!=e[t]?e[t]:f[t]}function r(e){var t=e.state.closeBrackets;return!t||t.override?t:e.getModeAt(e.getCursor()).closeBrackets||t}function n(n){var i=r(n);if(!i||n.getOption("disableInput"))return e.Pass;for(var o=t(i,"pairs"),a=n.listSelections(),l=0;l<a.length;l++){if(!a[l].empty())return e.Pass;var c=s(n,a[l].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}for(var l=a.length-1;l>=0;l--){var u=a[l].head;n.replaceRange("",d(u.line,u.ch-1),d(u.line,u.ch+1),"+delete")}}function i(n){var i=r(n),o=i&&t(i,"explode");if(!o||n.getOption("disableInput"))return e.Pass;for(var a=n.listSelections(),l=0;l<a.length;l++){if(!a[l].empty())return e.Pass;var c=s(n,a[l].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}n.operation(function(){n.replaceSelection("\n\n",null),n.execCommand("goCharLeft"),a=n.listSelections();for(var e=0;e<a.length;e++){var t=a[e].head.line;n.indentLine(t,null,!0),n.indentLine(t+1,null,!0)}})}function o(t){var r=e.cmpPos(t.anchor,t.head)>0;return{anchor:new d(t.anchor.line,t.anchor.ch+(r?-1:1)),head:new d(t.head.line,t.head.ch+(r?1:-1))}}function a(n,i){var a=r(n);if(!a||n.getOption("disableInput"))return e.Pass;var s=t(a,"pairs"),f=s.indexOf(i);if(f==-1)return e.Pass;for(var h,p=t(a,"triples"),m=s.charAt(f+1)==i,g=n.listSelections(),v=f%2==0,y=0;y<g.length;y++){var b,x=g[y],w=x.head,k=n.getRange(w,d(w.line,w.ch+1));if(v&&!x.empty())b="surround";else if(!m&&v||k!=i)if(m&&w.ch>1&&p.indexOf(i)>=0&&n.getRange(d(w.line,w.ch-2),w)==i+i&&(w.ch<=2||n.getRange(d(w.line,w.ch-3),d(w.line,w.ch-2))!=i))b="addFour";else if(m){if(e.isWordChar(k)||!c(n,w,i))return e.Pass;b="both"}else{if(!v||n.getLine(w.line).length!=w.ch&&!l(k,s)&&!/\s/.test(k))return e.Pass;b="both"}else b=m&&u(n,w)?"both":p.indexOf(i)>=0&&n.getRange(w,d(w.line,w.ch+3))==i+i+i?"skipThree":"skip";if(h){if(h!=b)return e.Pass}else h=b}var C=f%2?s.charAt(f-1):i,S=f%2?i:s.charAt(f+1);n.operation(function(){if("skip"==h)n.execCommand("goCharRight");else if("skipThree"==h)for(var e=0;e<3;e++)n.execCommand("goCharRight");else if("surround"==h){for(var t=n.getSelections(),e=0;e<t.length;e++)t[e]=C+t[e]+S;n.replaceSelections(t,"around"),t=n.listSelections().slice();for(var e=0;e<t.length;e++)t[e]=o(t[e]);n.setSelections(t)}else"both"==h?(n.replaceSelection(C+S,null),n.triggerElectric(C+S),n.execCommand("goCharLeft")):"addFour"==h&&(n.replaceSelection(C+C+C+C,"before"),n.execCommand("goCharRight"))})}function l(e,t){var r=t.lastIndexOf(e);return r>-1&&r%2==1}function s(e,t){var r=e.getRange(d(t.line,t.ch-1),d(t.line,t.ch+1));return 2==r.length?r:null}function c(t,r,n){var i=t.getLine(r.line),o=t.getTokenAt(r);if(/\bstring2?\b/.test(o.type)||u(t,r))return!1;var a=new e.StringStream(i.slice(0,r.ch)+n+i.slice(r.ch),4);for(a.pos=a.start=o.start;;){var l=t.getMode().token(a,o.state);if(a.pos>=r.ch+1)return/\bstring2?\b/.test(l);a.start=a.pos}}function u(e,t){var r=e.getTokenAt(d(t.line,t.ch+1));return/\bstring/.test(r.type)&&r.start==t.ch}var f={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},d=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,r,n){n&&n!=e.Init&&(t.removeKeyMap(p),t.state.closeBrackets=null),r&&(t.state.closeBrackets=r,t.addKeyMap(p))});for(var h=f.pairs+"`",p={Backspace:n,Enter:i},m=0;m<h.length;m++)p["'"+h.charAt(m)+"'"]=function(e){return function(t){return a(t,e)}}(h.charAt(m))}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/edit/matchbrackets")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,n){if(n<0&&0==r.ch)return t.clipPos(h(r.line-1));var i=t.getLine(r.line);if(n>0&&r.ch>=i.length)return t.clipPos(h(r.line+1,0));for(var o,a="start",l=r.ch,s=n<0?0:i.length,c=0;l!=s;l+=n,c++){var u=i.charAt(n<0?l-1:l),f="_"!=u&&e.isWordChar(u)?"w":"o";if("w"==f&&u.toUpperCase()==u&&(f="W"),"start"==a)"o"!=f&&(a="in",o=f);else if("in"==a&&o!=f){if("w"==o&&"W"==f&&n<0&&l--,"W"==o&&"w"==f&&n>0){o="w";continue}break}}return h(r.line,l)}function r(e,r){e.extendSelectionsBy(function(n){return e.display.shift||e.doc.extend||n.empty()?t(e.doc,n.head,r):r<0?n.from():n.to()})}function n(t,r){if(t.isReadOnly())return e.Pass;t.operation(function(){for(var e=t.listSelections().length,n=[],i=-1,o=0;o<e;o++){var a=t.listSelections()[o].head;if(!(a.line<=i)){var l=h(a.line+(r?0:1),0);t.replaceRange("\n",l,null,"+insertLine"),t.indentLine(l.line,null,!0),n.push({head:l,anchor:l}),i=a.line+1}}t.setSelections(n)}),t.execCommand("indentAuto")}function i(t,r){for(var n=r.ch,i=n,o=t.getLine(r.line);n&&e.isWordChar(o.charAt(n-1));)--n;for(;i<o.length&&e.isWordChar(o.charAt(i));)++i;return{from:h(r.line,n),to:h(r.line,i),word:o.slice(n,i)}}function o(e,t,r){for(var n=0;n<e.length;n++)if(e[n].from()==t&&e[n].to()==r)return!0;return!1}function a(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){var i=t[n],o=i.head,a=e.scanForBracket(o,-1);if(!a)return!1;for(;;){var l=e.scanForBracket(o,1);if(!l)return!1;if(l.ch==y.charAt(y.indexOf(a.ch)+1)){r.push({anchor:h(a.pos.line,a.pos.ch+1),head:l.pos});break}o=h(l.pos.line,l.pos.ch+1)}}return e.setSelections(r),!0}function l(t,r){if(t.isReadOnly())return e.Pass;for(var n,i=t.listSelections(),o=[],a=0;a<i.length;a++){var l=i[a];if(!l.empty()){for(var s=l.from().line,c=l.to().line;a<i.length-1&&i[a+1].from().line==c;)c=i[++a].to().line;i[a].to().ch||c--,o.push(s,c)}}o.length?n=!0:o.push(t.firstLine(),t.lastLine()),t.operation(function(){for(var e=[],i=0;i<o.length;i+=2){var a=o[i],l=o[i+1],s=h(a,0),c=h(l),u=t.getRange(s,c,!1);r?u.sort():u.sort(function(e,t){var r=e.toUpperCase(),n=t.toUpperCase();return r!=n&&(e=r,t=n),e<t?-1:e==t?0:1}),t.replaceRange(u,s,c),n&&e.push({anchor:s,head:h(l+1,0)})}n&&t.setSelections(e,0)})}function s(t,r){t.operation(function(){for(var n=t.listSelections(),o=[],a=[],l=0;l<n.length;l++){var s=n[l];s.empty()?(o.push(l),a.push("")):a.push(r(t.getRange(s.from(),s.to())))}t.replaceSelections(a,"around","case");for(var c,l=o.length-1;l>=0;l--){var s=n[o[l]];if(!(c&&e.cmpPos(s.head,c)>0)){var u=i(t,s.head);c=u.from,t.replaceRange(r(u.word),u.from,u.to)}}})}function c(t){var r=t.getCursor("from"),n=t.getCursor("to");if(0==e.cmpPos(r,n)){var o=i(t,r);if(!o.word)return;r=o.from,n=o.to}return{from:r,to:n,query:t.getRange(r,n),word:o}}function u(e,t){var r=c(e);if(r){var n=r.query,i=e.getSearchCursor(n,t?r.to:r.from);(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):(i=e.getSearchCursor(n,t?h(e.firstLine(),0):e.clipPos(h(e.lastLine()))),(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):r.word&&e.setSelection(r.from,r.to))}}var f=e.keyMap.sublime={fallthrough:"default"},d=e.commands,h=e.Pos,p=e.keyMap.default==e.keyMap.macDefault,m=p?"Cmd-":"Ctrl-",g=p?"Ctrl-":"Alt-";d[f[g+"Left"]="goSubwordLeft"]=function(e){r(e,-1)},d[f[g+"Right"]="goSubwordRight"]=function(e){r(e,1)},p&&(f["Cmd-Left"]="goLineStartSmart");var v=p?"Ctrl-Alt-":"Ctrl-";d[f[v+"Up"]="scrollLineUp"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var r=e.lineAtHeight(t.top+t.clientHeight,"local");e.getCursor().line>=r&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},d[f[v+"Down"]="scrollLineDown"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var r=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=r&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},d[f["Shift-"+m+"L"]="splitSelectionByLine"]=function(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)for(var i=t[n].from(),o=t[n].to(),a=i.line;a<=o.line;++a)o.line>i.line&&a==o.line&&0==o.ch||r.push({anchor:a==i.line?i:h(a,0),head:a==o.line?o:h(a)});e.setSelections(r,0)},f["Shift-Tab"]="indentLess",d[f.Esc="singleSelectionTop"]=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},d[f[m+"L"]="selectLine"]=function(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){var i=t[n];r.push({anchor:h(i.from().line,0),head:h(i.to().line+1,0)})}e.setSelections(r)},f["Shift-Ctrl-K"]="deleteLine",d[f[m+"Enter"]="insertLineAfter"]=function(e){return n(e,!1)},d[f["Shift-"+m+"Enter"]="insertLineBefore"]=function(e){return n(e,!0)},d[f[m+"D"]="selectNextOccurrence"]=function(t){var r=t.getCursor("from"),n=t.getCursor("to"),a=t.state.sublimeFindFullWord==t.doc.sel;if(0==e.cmpPos(r,n)){var l=i(t,r);if(!l.word)return;t.setSelection(l.from,l.to),a=!0}else{var s=t.getRange(r,n),c=a?new RegExp("\\b"+s+"\\b"):s,u=t.getSearchCursor(c,n),f=u.findNext();if(f||(u=t.getSearchCursor(c,h(t.firstLine(),0)),f=u.findNext()),!f||o(t.listSelections(),u.from(),u.to()))return e.Pass;t.addSelection(u.from(),u.to())}a&&(t.state.sublimeFindFullWord=t.doc.sel)};var y="(){}[]";d[f["Shift-"+m+"Space"]="selectScope"]=function(e){a(e)||e.execCommand("selectAll")},d[f["Shift-"+m+"M"]="selectBetweenBrackets"]=function(t){if(!a(t))return e.Pass},d[f[m+"M"]="goToBracket"]=function(t){t.extendSelectionsBy(function(r){var n=t.scanForBracket(r.head,1);if(n&&0!=e.cmpPos(n.pos,r.head))return n.pos;var i=t.scanForBracket(r.head,-1);return i&&h(i.pos.line,i.pos.ch+1)||r.head})};var b=p?"Cmd-Ctrl-":"Shift-Ctrl-";d[f[b+"Up"]="swapLineUp"]=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),n=[],i=t.firstLine()-1,o=[],a=0;a<r.length;a++){var l=r[a],s=l.from().line-1,c=l.to().line;o.push({anchor:h(l.anchor.line-1,l.anchor.ch),head:h(l.head.line-1,l.head.ch)}),0!=l.to().ch||l.empty()||--c,s>i?n.push(s,c):n.length&&(n[n.length-1]=c),i=c}t.operation(function(){for(var e=0;e<n.length;e+=2){var r=n[e],i=n[e+1],a=t.getLine(r);t.replaceRange("",h(r,0),h(r+1,0),"+swapLine"),i>t.lastLine()?t.replaceRange("\n"+a,h(t.lastLine()),null,"+swapLine"):t.replaceRange(a+"\n",h(i,0),null,"+swapLine")}t.setSelections(o),t.scrollIntoView()})},d[f[b+"Down"]="swapLineDown"]=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),n=[],i=t.lastLine()+1,o=r.length-1;o>=0;o--){var a=r[o],l=a.to().line+1,s=a.from().line;0!=a.to().ch||a.empty()||l--,l<i?n.push(l,s):n.length&&(n[n.length-1]=s),i=s}t.operation(function(){for(var e=n.length-2;e>=0;e-=2){var r=n[e],i=n[e+1],o=t.getLine(r);r==t.lastLine()?t.replaceRange("",h(r-1),h(r),"+swapLine"):t.replaceRange("",h(r,0),h(r+1,0),"+swapLine"),t.replaceRange(o+"\n",h(i,0),null,"+swapLine")}t.scrollIntoView()})},d[f[m+"/"]="toggleCommentIndented"]=function(e){e.toggleComment({indent:!0})},d[f[m+"J"]="joinLines"]=function(e){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++){for(var i=t[n],o=i.from(),a=o.line,l=i.to().line;n<t.length-1&&t[n+1].from().line==l;)l=t[++n].to().line;r.push({start:a,end:l,anchor:!i.empty()&&o})}e.operation(function(){for(var t=0,n=[],i=0;i<r.length;i++){for(var o,a=r[i],l=a.anchor&&h(a.anchor.line-t,a.anchor.ch),s=a.start;s<=a.end;s++){var c=s-t;s==a.end&&(o=h(c,e.getLine(c).length+1)),c<e.lastLine()&&(e.replaceRange(" ",h(c),h(c+1,/^\s*/.exec(e.getLine(c+1))[0].length)),++t)}n.push({anchor:l||o,head:o})}e.setSelections(n,0)})},d[f["Shift-"+m+"D"]="duplicateLine"]=function(e){e.operation(function(){for(var t=e.listSelections().length,r=0;r<t;r++){var n=e.listSelections()[r];n.empty()?e.replaceRange(e.getLine(n.head.line)+"\n",h(n.head.line,0)):e.replaceRange(e.getRange(n.from(),n.to()),n.from())}e.scrollIntoView()})},p||(f[m+"T"]="transposeChars"),d[f.F9="sortLines"]=function(e){l(e,!0)},d[f[m+"F9"]="sortLinesInsensitive"]=function(e){l(e,!1)},d[f.F2="nextBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){var r=t.shift(),n=r.find();if(n)return t.push(r),e.setSelection(n.from,n.to)}},d[f["Shift-F2"]="prevBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){t.unshift(t.pop());var r=t[t.length-1].find();if(r)return e.setSelection(r.from,r.to);t.pop()}},d[f[m+"F2"]="toggleBookmark"]=function(e){for(var t=e.listSelections(),r=e.state.sublimeBookmarks||(e.state.sublimeBookmarks=[]),n=0;n<t.length;n++){for(var i=t[n].from(),o=t[n].to(),a=e.findMarks(i,o),l=0;l<a.length;l++)if(a[l].sublimeBookmark){a[l].clear();for(var s=0;s<r.length;s++)r[s]==a[l]&&r.splice(s--,1);break}l==a.length&&r.push(e.markText(i,o,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},d[f["Shift-"+m+"F2"]="clearBookmarks"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(var r=0;r<t.length;r++)t[r].clear();t.length=0},d[f["Alt-F2"]="selectBookmarks"]=function(e){var t=e.state.sublimeBookmarks,r=[];if(t)for(var n=0;n<t.length;n++){var i=t[n].find();i?r.push({anchor:i.from,head:i.to}):t.splice(n--,0)}r.length&&e.setSelections(r,0)},f["Alt-Q"]="wrapLines";var x=m+"K ";f[x+m+"Backspace"]="delLineLeft",d[f.Backspace="smartBackspace"]=function(t){if(t.somethingSelected())return e.Pass;t.operation(function(){for(var r=t.listSelections(),n=t.getOption("indentUnit"),i=r.length-1;i>=0;i--){var o=r[i].head,a=t.getRange({line:o.line,ch:0},o),l=e.countColumn(a,null,t.getOption("tabSize")),s=t.findPosH(o,-1,"char",!1);if(a&&!/\S/.test(a)&&l%n==0){var c=new h(o.line,e.findColumn(a,l-n,n));c.ch!=o.ch&&(s=c)}t.replaceRange("",s,o,"+delete")}})},d[f[x+m+"K"]="delLineRight"]=function(e){e.operation(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange("",t[r].anchor,h(t[r].to().line),"+delete");e.scrollIntoView()})},d[f[x+m+"U"]="upcaseAtCursor"]=function(e){s(e,function(e){return e.toUpperCase()})},d[f[x+m+"L"]="downcaseAtCursor"]=function(e){s(e,function(e){return e.toLowerCase()})},d[f[x+m+"Space"]="setSublimeMark"]=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},d[f[x+m+"A"]="selectToSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},d[f[x+m+"W"]="deleteToSublimeMark"]=function(t){var r=t.state.sublimeMark&&t.state.sublimeMark.find();if(r){var n=t.getCursor(),i=r;if(e.cmpPos(n,i)>0){var o=i;i=n,n=o}t.state.sublimeKilled=t.getRange(n,i),t.replaceRange("",n,i)}},d[f[x+m+"X"]="swapWithSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},d[f[x+m+"Y"]="sublimeYank"]=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},f[x+m+"G"]="clearBookmarks",d[f[x+m+"C"]="showInCenter"]=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)};var w=p?"Ctrl-Shift-":"Ctrl-Alt-";d[f[w+"Up"]="selectLinesUpward"]=function(e){e.operation(function(){for(var t=e.listSelections(),r=0;r<t.length;r++){var n=t[r];n.head.line>e.firstLine()&&e.addSelection(h(n.head.line-1,n.head.ch))}})},d[f[w+"Down"]="selectLinesDownward"]=function(e){e.operation(function(){for(var t=e.listSelections(),r=0;r<t.length;r++){var n=t[r];n.head.line<e.lastLine()&&e.addSelection(h(n.head.line+1,n.head.ch))}})},d[f[m+"F3"]="findUnder"]=function(e){u(e,!0)},d[f["Shift-"+m+"F3"]="findUnderPrevious"]=function(e){u(e,!1)},d[f["Alt-F3"]="findAllUnder"]=function(e){var t=c(e);if(t){for(var r=e.getSearchCursor(t.query),n=[],i=-1;r.findNext();)n.push({anchor:r.from(),head:r.to()}),r.from().line<=t.from.line&&r.from().ch<=t.from.ch&&i++;e.setSelections(n,i)}},f["Shift-"+m+"["]="fold",f["Shift-"+m+"]"]="unfold",f[x+m+"0"]=f[x+m+"J"]="unfoldAll",f[m+"I"]="findIncremental",f["Shift-"+m+"I"]="findIncrementalReverse",f[m+"H"]="replace",f.F3="findNext",f["Shift-F3"]="findPrev",e.normalizeKeyMap(f)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line==t.line&&e.ch==t.ch}function r(e){P.push(e),P.length>50&&P.shift()}function n(e){if(!P.length)return r(e);P[P.length-1]+=e}function i(e){return P[P.length-(e?Math.min(e,1):1)]||""}function o(){return P.length>1&&P.pop(),i()}function a(e,i,o,a,l){null==l&&(l=e.getRange(i,o)),a&&R&&R.cm==e&&t(i,R.pos)&&e.isClean(R.gen)?n(l):r(l),e.replaceRange("",i,o,"+delete"),R=a?{cm:e,pos:i,gen:e.changeGeneration()}:null}function l(e,t,r){return e.findPosH(t,r,"char",!0)}function s(e,t,r){return e.findPosH(t,r,"word",!0)}function c(e,t,r){return e.findPosV(t,r,"line",e.doc.sel.goalColumn)}function u(e,t,r){return e.findPosV(t,r,"page",e.doc.sel.goalColumn)}function f(e,t,r){for(var n=t.line,i=e.getLine(n),o=/\S/.test(r<0?i.slice(0,t.ch):i.slice(t.ch)),a=e.firstLine(),l=e.lastLine();;){if((n+=r)<a||n>l)return e.clipPos(N(n-r,r<0?0:null));i=e.getLine(n);if(/\S/.test(i))o=!0;else if(o)return N(n,0)}}function d(e,t,r){for(var n=t.line,i=t.ch,o=e.getLine(t.line),a=!1;;){var l=o.charAt(i+(r<0?-1:0));if(l){if(a&&/[!?.]/.test(l))return N(n,i+(r>0?1:0));a||(a=/\w/.test(l)),i+=r}else{if(n==(r<0?e.firstLine():e.lastLine()))return N(n,i);if(o=e.getLine(n+r),!/\S/.test(o))return N(n,i);n+=r,i=r<0?o.length:0}}}function h(e,r,n){var i;if(e.findMatchingBracket&&(i=e.findMatchingBracket(r,!0))&&i.match&&(i.forward?1:-1)==n)return n>0?N(i.to.line,i.to.ch+1):i.to;for(var o=!0;;o=!1){var a=e.getTokenAt(r),l=N(r.line,n<0?a.start:a.end);if(!(o&&n>0&&a.end==r.ch)&&/\w/.test(a.string))return l;var s=e.findPosH(l,n,"char");if(t(l,s))return r;r=s}}function p(e,t){var r=e.state.emacsPrefix;return r?(k(e),"-"==r?-1:Number(r)):t?null:1}function m(e){var t="string"==typeof e?function(t){t.execCommand(e)}:e;return function(e){var r=p(e);t(e);for(var n=1;n<r;++n)t(e)}}function g(e,r,n,i){var o=p(e);o<0&&(i=-i,o=-o);for(var a=0;a<o;++a){var l=n(e,r,i);if(t(l,r))break;r=l}return r}function v(e,t){var r=function(r){r.extendSelection(g(r,r.getCursor(),e,t))};return r.motion=!0,r}function y(e,t,r){for(var n,i=e.listSelections(),o=i.length;o--;)n=i[o].head,a(e,n,g(e,n,t,r),!0)}function b(e){if(e.somethingSelected()){for(var t,r=e.listSelections(),n=r.length;n--;)t=r[n],a(e,t.anchor,t.head);return!0}}function x(e,t){if(e.state.emacsPrefix)return void("-"!=t&&(e.state.emacsPrefix+=t));e.state.emacsPrefix=t,e.on("keyHandled",w),e.on("inputRead",C)}function w(e,t){e.state.emacsPrefixMap||B.hasOwnProperty(t)||k(e)}function k(e){e.state.emacsPrefix=null,e.off("keyHandled",w),e.off("inputRead",C)}function C(e,t){var r=p(e);if(r>1&&"+input"==t.origin){for(var n=t.text.join("\n"),i="",o=1;o<r;++o)i+=n;e.replaceSelection(i)}}function S(e){e.state.emacsPrefixMap=!0,e.addKeyMap(D),e.on("keyHandled",_),e.on("inputRead",_)}function _(e,t){("string"!=typeof t||!/^\d$/.test(t)&&"Ctrl-U"!=t)&&(e.removeKeyMap(D),e.state.emacsPrefixMap=!1,e.off("keyHandled",_),e.off("inputRead",_))}function M(e){e.setCursor(e.getCursor()),e.setExtending(!e.getExtending()),e.on("change",function(){e.setExtending(!1)})}function L(e){e.setExtending(!1),e.setCursor(e.getCursor())}function T(e,t,r){e.openDialog?e.openDialog(t+': <input type="text" style="width: 10em"/>',r,{bottom:!0}):r(prompt(t,""))}function A(e,t){var r=e.getCursor(),n=e.findPosH(r,1,"word");e.replaceRange(t(e.getRange(r,n)),r,n),e.setCursor(n)}function O(e){for(var t=e.getCursor(),r=t.line,n=t.ch,i=[];r>=e.firstLine();){for(var o=e.getLine(r),a=null==n?o.length:n;a>0;){var n=o.charAt(--a);if(")"==n)i.push("(");else if("]"==n)i.push("[");else if("}"==n)i.push("{");else if(/[\(\{\[]/.test(n)&&(!i.length||i.pop()!=n))return e.extendSelection(N(r,a))}--r,n=null}}function E(e){e.execCommand("clearSearch"),L(e)}function I(e){D[e]=function(t){x(t,e)},z["Ctrl-"+e]=function(t){x(t,e)},B["Ctrl-"+e]=!0}var N=e.Pos,P=[],R=null,B={"Alt-G":!0,"Ctrl-X":!0,"Ctrl-Q":!0,"Ctrl-U":!0};e.emacs={kill:a,killRegion:b,repeated:m};for(var z=e.keyMap.emacs=e.normalizeKeyMap({"Ctrl-W":function(e){a(e,e.getCursor("start"),e.getCursor("end"))},"Ctrl-K":m(function(e){var t=e.getCursor(),r=e.clipPos(N(t.line)),n=e.getRange(t,r);/\S/.test(n)||(n+="\n",r=N(t.line+1,0)),a(e,t,r,!0,n)}),"Alt-W":function(e){r(e.getSelection()),L(e)},"Ctrl-Y":function(e){var t=e.getCursor();e.replaceRange(i(p(e)),t,t,"paste"),e.setSelection(t,e.getCursor())},"Alt-Y":function(e){e.replaceSelection(o(),"around","paste")},"Ctrl-Space":M,"Ctrl-Shift-2":M,"Ctrl-F":v(l,1),"Ctrl-B":v(l,-1),Right:v(l,1),Left:v(l,-1),"Ctrl-D":function(e){y(e,l,1)},Delete:function(e){b(e)||y(e,l,1)},"Ctrl-H":function(e){y(e,l,-1)},Backspace:function(e){b(e)||y(e,l,-1)},"Alt-F":v(s,1),"Alt-B":v(s,-1),"Alt-D":function(e){y(e,s,1)},"Alt-Backspace":function(e){y(e,s,-1)},"Ctrl-N":v(c,1),"Ctrl-P":v(c,-1),Down:v(c,1),Up:v(c,-1),"Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":v(u,-1),"Ctrl-V":v(u,1),PageUp:v(u,-1),PageDown:v(u,1),"Ctrl-Up":v(f,-1),"Ctrl-Down":v(f,1),"Alt-A":v(d,-1),"Alt-E":v(d,1),"Alt-K":function(e){y(e,d,1)},"Ctrl-Alt-K":function(e){y(e,h,1)},"Ctrl-Alt-Backspace":function(e){y(e,h,-1)},"Ctrl-Alt-F":v(h,1),"Ctrl-Alt-B":v(h,-1),"Shift-Ctrl-Alt-2":function(e){var t=e.getCursor();e.setSelection(g(e,t,h,1),t)},"Ctrl-Alt-T":function(e){var t=h(e,e.getCursor(),-1),r=h(e,t,1),n=h(e,r,1),i=h(e,n,-1);e.replaceRange(e.getRange(i,n)+e.getRange(r,i)+e.getRange(t,r),t,n)},"Ctrl-Alt-U":m(O),"Alt-Space":function(e){for(var t=e.getCursor(),r=t.ch,n=t.ch,i=e.getLine(t.line);r&&/\s/.test(i.charAt(r-1));)--r;for(;n<i.length&&/\s/.test(i.charAt(n));)++n;e.replaceRange(" ",N(t.line,r),N(t.line,n))},"Ctrl-O":m(function(e){e.replaceSelection("\n","start")}),"Ctrl-T":m(function(e){e.execCommand("transposeChars")}),"Alt-C":m(function(e){A(e,function(e){var t=e.search(/\w/);return t==-1?e:e.slice(0,t)+e.charAt(t).toUpperCase()+e.slice(t+1).toLowerCase()})}),"Alt-U":m(function(e){A(e,function(e){return e.toUpperCase()})}),"Alt-L":m(function(e){A(e,function(e){return e.toLowerCase()})}),"Alt-;":"toggleComment","Ctrl-/":m("undo"),"Shift-Ctrl--":m("undo"),"Ctrl-Z":m("undo"),"Cmd-Z":m("undo"),"Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findNext","Ctrl-R":"findPrev","Ctrl-G":E,"Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":m(function(e){e.replaceSelection("\n","end")}),Tab:"indentAuto","Alt-G G":function(e){var t=p(e,!0);if(null!=t&&t>0)return e.setCursor(t-1);T(e,"Goto line",function(t){var r;t&&!isNaN(r=Number(t))&&r==(0|r)&&r>0&&e.setCursor(r-1)})},"Ctrl-X Tab":function(e){e.indentSelection(p(e,!0)||e.getOption("indentUnit"))},"Ctrl-X Ctrl-X":function(e){e.setSelection(e.getCursor("head"),e.getCursor("anchor"))},"Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X U":m("undo"),"Ctrl-X K":"close","Ctrl-X Delete":function(e){a(e,e.getCursor(),d(e,e.getCursor(),1),!0)},"Ctrl-X H":"selectAll","Ctrl-Q Tab":m("insertTab"),"Ctrl-U":S}),D={"Ctrl-G":k},W=0;W<10;++W)I(String(W));I("-")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";var t=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"<Ins>",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},
|
11 |
-
context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"<C-q>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"<C-t>",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"<C-d>",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],r=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],n=e.Pos;e.Vim=function(){function i(t){t.setOption("disableInput",!0),t.setOption("showCursorWhenSelecting",!1),e.signal(t,"vim-mode-change",{mode:"normal"}),t.on("cursorActivity",tt),C(t),e.on(t.getInputField(),"paste",u(t))}function o(t){t.setOption("disableInput",!1),t.off("cursorActivity",tt),e.off(t.getInputField(),"paste",u(t)),t.state.vim=null}function a(t,r){this==e.keyMap.vim&&e.rmClass(t.getWrapperElement(),"cm-fat-cursor"),r&&r.attach==l||o(t,!1)}function l(t,r){this==e.keyMap.vim&&e.addClass(t.getWrapperElement(),"cm-fat-cursor"),r&&r.attach==l||i(t)}function s(t,r){if(r){if(this[t])return this[t];var n=c(t);if(!n)return!1;var i=e.Vim.findKey(r,n);return"function"==typeof i&&e.signal(r,"vim-keypress",n),i}}function c(e){if("'"==e.charAt(0))return e.charAt(1);var t=e.split(/-(?!$)/),r=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&"Shift"==t[0]&&1==r.length)return!1;for(var n=!1,i=0;i<t.length;i++){var o=t[i];o in st?t[i]=st[o]:n=!0,o in ct&&(t[i]=ct[o])}return!!n&&(g(r)&&(t[t.length-1]=r.toLowerCase()),"<"+t.join("-")+">")}function u(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(z(e.getCursor(),0,1)),Lt.enterInsertMode(e,{},t))}),t.onPasteFn}function f(e,t){for(var r=[],n=e;n<e+t;n++)r.push(String.fromCharCode(n));return r}function d(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function h(e){return/^[a-z]$/.test(e)}function p(e){return"()[]{}".indexOf(e)!=-1}function m(e){return ut.test(e)}function g(e){return/^[A-Z]$/.test(e)}function v(e){return/^\s*$/.test(e)}function y(e,t){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1}function b(e,t,r,n,i){if(void 0===t&&!i)throw Error("defaultValue is required unless callback is provided");if(r||(r="string"),yt[e]={type:r,defaultValue:t,callback:i},n)for(var o=0;o<n.length;o++)yt[n[o]]=yt[e];t&&x(e,t)}function x(e,t,r,n){var i=yt[e];n=n||{};var o=n.scope;if(!i)throw Error("Unknown option: "+e);if("boolean"==i.type){if(t&&t!==!0)throw Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}i.callback?("local"!==o&&i.callback(t,void 0),"global"!==o&&r&&i.callback(t,r)):("local"!==o&&(i.value="boolean"==i.type?!!t:t),"global"!==o&&r&&(r.state.vim.options[e]={value:t}))}function w(e,t,r){var n=yt[e];r=r||{};var i=r.scope;if(!n)throw Error("Unknown option: "+e);{if(!n.callback){var o="global"!==i&&t&&t.state.vim.options[e];return(o||"local"!==i&&n||{}).value}var o=t&&n.callback(void 0,t);if("global"!==i&&void 0!==o)return o;if("local"!==i)return n.callback()}}function k(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=xt()}function C(e){return e.state.vim||(e.state.vim={inputState:new _,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function S(){wt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:bt(),macroModeState:new k,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new A({}),searchHistoryController:new O({}),exCommandHistoryController:new O({})};for(var e in yt){var t=yt[e];t.value=t.defaultValue}}function _(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function M(t,r){t.state.vim.inputState=new _,e.signal(t,"vim-command-done",r)}function L(e,t,r){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!r}function T(e,t){var r=wt.registerController.registers[e];if(!e||1!=e.length)throw Error("Register name must be 1 character");if(r[e])throw Error("Register already defined "+e);r[e]=t,vt.push(e)}function A(e){this.registers=e,this.unnamedRegister=e['"']=new L,e["."]=new L,e[":"]=new L,e["/"]=new L}function O(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function E(e,t){_t[e]=t}function I(e,t){for(var r=[],n=0;n<t;n++)r.push(e);return r}function N(e,t){Mt[e]=t}function P(e,t){Lt[e]=t}function R(e,t,r){var i=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),o=X(e,i)-1;o=r?o+1:o;var a=Math.min(Math.max(0,t.ch),o);return n(i,a)}function B(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function z(e,t,r){return"object"==typeof t&&(r=t.ch,t=t.line),n(e.line+t,e.ch+r)}function D(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function W(e,t,r,n){for(var i,o=[],a=[],l=0;l<t.length;l++){var s=t[l];"insert"==r&&"insert"!=s.context||s.context&&s.context!=r||n.operator&&"action"==s.type||!(i=q(e,s.keys))||("partial"==i&&o.push(s),"full"==i&&a.push(s))}return{partial:o.length&&o,full:a.length&&a}}function q(e,t){if("<character>"==t.slice(-11)){var r=t.length-11,n=e.slice(0,r),i=t.slice(0,r);return n==i&&e.length>r?"full":0==i.indexOf(n)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function F(e){var t=/^.*(<[\w\-]+>)$/.exec(e),r=t?t[1]:e.slice(-1);if(r.length>1)switch(r){case"<CR>":r="\n";break;case"<Space>":r=" "}return r}function H(e,t,r){return function(){for(var n=0;n<r;n++)t(e)}}function j(e){return n(e.line,e.ch)}function K(e,t){return e.ch==t.ch&&e.line==t.line}function U(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function V(e,t){return arguments.length>2&&(t=V.apply(void 0,Array.prototype.slice.call(arguments,1))),U(e,t)?e:t}function $(e,t){return arguments.length>2&&(t=$.apply(void 0,Array.prototype.slice.call(arguments,1))),U(e,t)?t:e}function G(e,t,r){var n=U(e,t),i=U(t,r);return n&&i}function X(e,t){return e.getLine(t).length}function Y(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Q(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function J(e,t,r){var i=X(e,t),o=new Array(r-i+1).join(" ");e.setCursor(n(t,i)),e.replaceRange(o,e.getCursor())}function Z(e,t){var r=[],i=e.listSelections(),o=j(e.clipPos(t)),a=!K(t,o),l=e.getCursor("head"),s=te(i,l),c=K(i[s].head,i[s].anchor),u=i.length-1,f=u-s>s?u:0,d=i[f].anchor,h=Math.min(d.line,o.line),p=Math.max(d.line,o.line),m=d.ch,g=o.ch,v=i[f].head.ch-m,y=g-m;v>0&&y<=0?(m++,a||g--):v<0&&y>=0?(m--,c||g++):v<0&&y==-1&&(m--,g++);for(var b=h;b<=p;b++){var x={anchor:new n(b,m),head:new n(b,g)};r.push(x)}return s=o.line==p?r.length-1:0,e.setSelections(r),t.ch=g,d.ch=m,d}function ee(e,t,r){for(var n=[],i=0;i<r;i++){var o=z(t,i,0);n.push({anchor:o,head:o})}e.setSelections(n,0)}function te(e,t,r){for(var n=0;n<e.length;n++){var i="head"!=r&&K(e[n].anchor,t),o="anchor"!=r&&K(e[n].head,t);if(i||o)return n}return-1}function re(e,t){var r=t.lastSelection;return t.visualMode?function(){var t=e.listSelections(),r=t[0],n=t[t.length-1];return[U(r.anchor,r.head)?r.anchor:r.head,U(n.anchor,n.head)?n.head:n.anchor]}():function(){var t=e.getCursor(),i=e.getCursor(),o=r.visualBlock;if(o){var a=o.width,l=o.height;i=n(t.line+l,t.ch+a);for(var s=[],c=t.line;c<i.line;c++){var u=n(c,t.ch),f=n(c,i.ch),d={anchor:u,head:f};s.push(d)}e.setSelections(s)}else{var h=r.anchorMark.find(),p=r.headMark.find(),m=p.line-h.line,g=p.ch-h.ch;i={line:i.line+m,ch:m?i.ch:g+i.ch},r.visualLine&&(t=n(t.line,0),i=n(i.line,X(e,i.line))),e.setSelection(t,i)}return[t,i]}()}function ne(e,t){var r=t.sel.anchor,n=t.sel.head;t.lastPastedText&&(n=e.posFromIndex(e.indexFromPos(r)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(r),headMark:e.setBookmark(n),anchor:j(r),head:j(n),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function ie(e,t,r){var i,o=e.state.vim.sel,a=o.head,l=o.anchor;return U(r,t)&&(i=r,r=t,t=i),U(a,l)?(a=V(t,a),l=$(l,r)):(l=V(t,l),a=$(a,r),a=z(a,0,-1),a.ch==-1&&a.line!=e.firstLine()&&(a=n(a.line-1,X(e,a.line-1)))),[l,a]}function oe(e,t,r){var n=e.state.vim;t=t||n.sel;var r=r||n.visualLine?"line":n.visualBlock?"block":"char",i=ae(e,t,r);e.setSelections(i.ranges,i.primary),rt(e)}function ae(e,t,r,i){var o=j(t.head),a=j(t.anchor);if("char"==r){var l=i||U(t.head,t.anchor)?0:1,s=U(t.head,t.anchor)?1:0;return o=z(t.head,0,l),a=z(t.anchor,0,s),{ranges:[{anchor:a,head:o}],primary:0}}if("line"==r){if(U(t.head,t.anchor))o.ch=0,a.ch=X(e,a.line);else{a.ch=0;var c=e.lastLine();o.line>c&&(o.line=c),o.ch=X(e,o.line)}return{ranges:[{anchor:a,head:o}],primary:0}}if("block"==r){for(var u=Math.min(a.line,o.line),f=Math.min(a.ch,o.ch),d=Math.max(a.line,o.line),h=Math.max(a.ch,o.ch)+1,p=d-u+1,m=o.line==u?0:p-1,g=[],v=0;v<p;v++)g.push({anchor:n(u+v,f),head:n(u+v,h)});return{ranges:g,primary:m}}}function le(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=V(t,e.getCursor("anchor"))),t}function se(t,r){var n=t.state.vim;r!==!1&&t.setCursor(R(t,n.sel.head)),ne(t,n),n.visualMode=!1,n.visualLine=!1,n.visualBlock=!1,e.signal(t,"vim-mode-change",{mode:"normal"}),n.fakeCursor&&n.fakeCursor.clear()}function ce(e,t,r){var n=e.getRange(t,r);if(/\n\s*$/.test(n)){var i=n.split("\n");i.pop();for(var o,o=i.pop();i.length>0&&o&&v(o);o=i.pop())r.line--,r.ch=0;o?(r.line--,r.ch=X(e,r.line)):r.ch=0}}function ue(e,t,r){t.ch=0,r.ch=0,r.line++}function fe(e){if(!e)return 0;var t=e.search(/\S/);return t==-1?e.length:t}function de(e,t,r,i,o){for(var a=le(e),l=e.getLine(a.line),s=a.ch,c=o?ft[0]:dt[0];!c(l.charAt(s));)if(++s>=l.length)return null;i?c=dt[0]:(c=ft[0])(l.charAt(s))||(c=ft[1]);for(var u=s,f=s;c(l.charAt(u))&&u<l.length;)u++;for(;c(l.charAt(f))&&f>=0;)f--;if(f++,t){for(var d=u;/\s/.test(l.charAt(u))&&u<l.length;)u++;if(d==u){for(var h=f;/\s/.test(l.charAt(f-1))&&f>0;)f--;f||(f=h)}}return{start:n(a.line,f),end:n(a.line,u)}}function he(e,t,r){K(t,r)||wt.jumpList.add(e,t,r)}function pe(e,t){wt.lastCharacterSearch.increment=e,wt.lastCharacterSearch.forward=t.forward,wt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function me(e,t,r,i){var o=j(e.getCursor()),a=r?1:-1,l=r?e.lineCount():-1,s=o.ch,c=o.line,u=e.getLine(c),f={lineText:u,nextCh:u.charAt(s),lastCh:null,index:s,symb:i,reverseSymb:(r?{")":"(","}":"{"}:{"(":")","{":"}"})[i],forward:r,depth:0,curMoveThrough:!1},d=Tt[i];if(!d)return o;var h=At[d].init,p=At[d].isComplete;for(h&&h(f);c!==l&&t;){if(f.index+=a,f.nextCh=f.lineText.charAt(f.index),!f.nextCh){if(c+=a,f.lineText=e.getLine(c)||"",a>0)f.index=0;else{var m=f.lineText.length;f.index=m>0?m-1:0}f.nextCh=f.lineText.charAt(f.index)}p(f)&&(o.line=c,o.ch=f.index,t--)}return f.nextCh||f.curMoveThrough?n(c,f.index):o}function ge(e,t,r,n,i){var o=t.line,a=t.ch,l=e.getLine(o),s=r?1:-1,c=n?dt:ft;if(i&&""==l){if(o+=s,l=e.getLine(o),!d(e,o))return null;a=r?0:l.length}for(;;){if(i&&""==l)return{from:0,to:0,line:o};for(var u=s>0?l.length:-1,f=u,h=u;a!=u;){for(var p=!1,m=0;m<c.length&&!p;++m)if(c[m](l.charAt(a))){for(f=a;a!=u&&c[m](l.charAt(a));)a+=s;if(h=a,p=f!=h,f==t.ch&&o==t.line&&h==f+s)continue;return{from:Math.min(f,h+1),to:Math.max(f,h),line:o}}p||(a+=s)}if(o+=s,!d(e,o))return null;l=e.getLine(o),a=s>0?0:l.length}}function ve(e,t,r,i,o,a){var l=j(t),s=[];(i&&!o||!i&&o)&&r++;for(var c=!(i&&o),u=0;u<r;u++){var f=ge(e,t,i,a,c);if(!f){var d=X(e,e.lastLine());s.push(i?{line:e.lastLine(),from:d,to:d}:{line:0,from:0,to:0});break}s.push(f),t=n(f.line,i?f.to-1:f.from)}var h=s.length!=r,p=s[0],m=s.pop();return i&&!o?(h||p.from==l.ch&&p.line==l.line||(m=s.pop()),n(m.line,m.from)):i&&o?n(m.line,m.to-1):!i&&o?(h||p.to==l.ch&&p.line==l.line||(m=s.pop()),n(m.line,m.to)):n(m.line,m.from)}function ye(e,t,r,i){for(var o,a=e.getCursor(),l=a.ch,s=0;s<t;s++){if((o=we(l,e.getLine(a.line),i,r,!0))==-1)return null;l=o}return n(e.getCursor().line,o)}function be(e,t){var r=e.getCursor().line;return R(e,n(r,t-1))}function xe(e,t,r,n){y(r,gt)&&(t.marks[r]&&t.marks[r].clear(),t.marks[r]=e.setBookmark(n))}function we(e,t,r,n,i){var o;return n?(o=t.indexOf(r,e+1))==-1||i||(o-=1):(o=t.lastIndexOf(r,e-1))==-1||i||(o+=1),o}function ke(e,t,r,i,o){function a(t){return!e.getLine(t)}function l(e,t,r){return r?a(e)!=a(e+t):!a(e)&&a(e+t)}var s,c,u=t.line,f=e.firstLine(),d=e.lastLine(),h=u;if(i){for(;f<=h&&h<=d&&r>0;)l(h,i)&&r--,h+=i;return new n(h,0)}var p=e.state.vim;if(p.visualLine&&l(u,1,!0)){var m=p.sel.anchor;l(m.line,-1,!0)&&(o&&m.line==u||(u+=1))}var g=a(u);for(h=u;h<=d&&r;h++)l(h,1,!0)&&(o&&a(h)==g||r--);for(c=new n(h,0),h>d&&!g?g=!0:o=!1,h=u;h>f&&(o&&a(h)!=g&&h!=u||!l(h,-1,!0));h--);return s=new n(h,0),{start:s,end:c}}function Ce(e,t,r,i){var o,a,l=t,s={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[r],c={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[r],u=e.getLine(l.line).charAt(l.ch),f=u===c?1:0;if(o=e.scanForBracket(n(l.line,l.ch+f),-1,null,{bracketRegex:s}),a=e.scanForBracket(n(l.line,l.ch+f),1,null,{bracketRegex:s}),!o||!a)return{start:l,end:l};if(o=o.pos,a=a.pos,o.line==a.line&&o.ch>a.ch||o.line>a.line){var d=o;o=a,a=d}return i?a.ch+=1:o.ch+=1,{start:o,end:a}}function Se(e,t,r,i){var o,a,l,s,c=j(t),u=e.getLine(c.line),f=u.split(""),d=f.indexOf(r);if(c.ch<d?c.ch=d:d<c.ch&&f[c.ch]==r&&(a=c.ch,--c.ch),f[c.ch]!=r||a)for(l=c.ch;l>-1&&!o;l--)f[l]==r&&(o=l+1);else o=c.ch+1;if(o&&!a)for(l=o,s=f.length;l<s&&!a;l++)f[l]==r&&(a=l);return o&&a?(i&&(--o,++a),{start:n(c.line,o),end:n(c.line,a)}):{start:c,end:c}}function _e(){}function Me(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new _e)}function Le(e,t,r,n,i){e.openDialog?e.openDialog(t,n,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1}):n(prompt(r,""))}function Te(e){var t=Ae(e)||[];if(!t.length)return[];var r=[];if(0===t[0]){for(var n=0;n<t.length;n++)"number"==typeof t[n]&&r.push(e.substring(t[n]+1,t[n+1]));return r}}function Ae(e){for(var t=!1,r=[],n=0;n<e.length;n++){var i=e.charAt(n);t||"/"!=i||r.push(n),t=!t&&"\\"==i}return r}function Oe(e){for(var t="|(){",r="}",n=!1,i=[],o=-1;o<e.length;o++){var a=e.charAt(o)||"",l=e.charAt(o+1)||"",s=l&&t.indexOf(l)!=-1;n?("\\"===a&&s||i.push(a),n=!1):"\\"===a?(n=!0,l&&r.indexOf(l)!=-1&&(s=!0),s&&"\\"!==l||i.push(a)):(i.push(a),s&&"\\"!==l&&i.push("\\"))}return i.join("")}function Ee(e){for(var t=!1,r=[],n=-1;n<e.length;n++){var i=e.charAt(n)||"",o=e.charAt(n+1)||"";Ot[i+o]?(r.push(Ot[i+o]),n++):t?(r.push(i),t=!1):"\\"===i?(t=!0,m(o)||"$"===o?r.push("$"):"/"!==o&&"\\"!==o&&r.push("\\")):("$"===i&&r.push("$"),r.push(i),"/"===o&&r.push("\\"))}return r.join("")}function Ie(t){for(var r=new e.StringStream(t),n=[];!r.eol();){for(;r.peek()&&"\\"!=r.peek();)n.push(r.next());var i=!1;for(var o in Et)if(r.match(o,!0)){i=!0,n.push(Et[o]);break}i||n.push(r.next())}return n.join("")}function Ne(e,t,r){if(wt.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var n,i,o=Ae(e);if(o.length){n=e.substring(0,o[0]);i=e.substring(o[0]).indexOf("i")!=-1}else n=e;return n?(w("pcre")||(n=Oe(n)),r&&(t=/^[^A-Z]*$/.test(n)),new RegExp(n,t||i?"i":void 0)):null}function Pe(e,t){e.openNotification?e.openNotification('<span style="color: red">'+t+"</span>",{bottom:!0,duration:5e3}):alert(t)}function Re(e,t){var r='<span style="font-family: monospace; white-space: pre">'+(e||"")+'<input type="text"></span>';return t&&(r+=' <span style="color: #888">'+t+"</span>"),r}function Be(e,t){var r=(t.prefix||"")+" "+(t.desc||"");Le(e,Re(t.prefix,t.desc),r,t.onClose,t)}function ze(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var r=["global","multiline","ignoreCase","source"],n=0;n<r.length;n++){var i=r[n];if(e[i]!==t[i])return!1}return!0}return!1}function De(e,t,r,n){if(t){var i=Me(e),o=Ne(t,!!r,!!n);if(o)return qe(e,o),ze(o,i.getQuery())?o:(i.setQuery(o),o)}}function We(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(r){if(t&&!r.sol())return void r.skipToEnd();var n=r.match(e,!1);if(n)return 0==n[0].length?(r.next(),"searching"):r.sol()||(r.backUp(1),e.exec(r.next()+n[0]))?(r.match(e),"searching"):(r.next(),null);for(;!r.eol()&&(r.next(),!r.match(e,!1)););},query:e}}function qe(e,t){var r=Me(e),n=r.getOverlay();n&&t==n.query||(n&&e.removeOverlay(n),n=We(t),e.addOverlay(n),e.showMatchesOnScrollbar&&(r.getScrollbarAnnotate()&&r.getScrollbarAnnotate().clear(),r.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),r.setOverlay(n))}function Fe(e,t,r,i){return void 0===i&&(i=1),e.operation(function(){for(var o=e.getCursor(),a=e.getSearchCursor(r,o),l=0;l<i;l++){var s=a.find(t);if(0==l&&s&&K(a.from(),o)&&(s=a.find(t)),!s&&(a=e.getSearchCursor(r,t?n(e.lastLine()):n(e.firstLine(),0)),!a.find(t)))return}return a.from()})}function He(e){var t=Me(e);e.removeOverlay(Me(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function je(e,t,r){return"number"!=typeof e&&(e=e.line),t instanceof Array?y(e,t):r?e>=t&&e<=r:e==t}function Ke(e){var t=e.getScrollInfo(),r=e.coordsChar({left:0,top:6+t.top},"local"),n=t.clientHeight-10+t.top,i=e.coordsChar({left:0,top:n},"local");return{top:r.line,bottom:i.line}}function Ue(e,t,r){if("'"==r){var n=e.doc.history.done,i=n[n.length-2];return i&&i.ranges&&i.ranges[0].head}var o=t.marks[r];return o&&o.find()}function Ve(t,r,n,i,o,a,l,s,c){function u(){t.operation(function(){for(;!m;)f(),d();h()})}function f(){var e=t.getRange(a.from(),a.to()),r=e.replace(l,s);a.replace(r)}function d(){for(;a.findNext()&&je(a.from(),i,o);)if(n||!g||a.from().line!=g.line)return t.scrollIntoView(a.from(),30),t.setSelection(a.from(),a.to()),g=a.from(),void(m=!1);m=!0}function h(e){if(e&&e(),t.focus(),g){t.setCursor(g);var r=t.state.vim;r.exMode=!1,r.lastHPos=r.lastHSPos=g.ch}c&&c()}function p(r,n,i){switch(e.e_stop(r),e.keyName(r)){case"Y":f(),d();break;case"N":d();break;case"A":var o=c;c=void 0,t.operation(u),c=o;break;case"L":f();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":h(i)}return m&&h(i),!0}t.state.vim.exMode=!0;var m=!1,g=a.from();return d(),m?void Pe(t,"No matches for "+l.source):r?void Be(t,{prefix:"replace with <strong>"+s+"</strong> (y/n/a/q/l)",onKeyDown:p}):(u(),void(c&&c()))}function $e(t){var r=t.state.vim,n=wt.macroModeState,i=wt.registerController.getRegister("."),o=n.isPlaying,a=n.lastInsertModeChanges,l=[];if(!o){for(var s=a.inVisualBlock?r.lastSelection.visualBlock.height:1,c=a.changes,l=[],u=0;u<c.length;)l.push(c[u]),c[u]instanceof it?u++:u+=s;a.changes=l,t.off("change",et),e.off(t.getInputField(),"keydown",ot)}!o&&r.insertModeRepeat>1&&(at(t,r,r.insertModeRepeat-1,!0),r.lastEditInputState.repeatOverride=r.insertModeRepeat),delete r.insertModeRepeat,r.insertMode=!1,t.setCursor(t.getCursor().line,t.getCursor().ch-1),t.setOption("keyMap","vim"),t.setOption("disableInput",!0),t.toggleOverwrite(!1),i.setText(a.changes.join("")),e.signal(t,"vim-mode-change",{mode:"normal"}),n.isRecording&&Je(n)}function Ge(e){t.unshift(e)}function Xe(e,t,r,n,i){var o={keys:e,type:t};o[t]=r,o[t+"Args"]=n;for(var a in i)o[a]=i[a];Ge(o)}function Ye(t,r,n,i){var o=wt.registerController.getRegister(i);if(":"==i)return o.keyBuffer[0]&&Rt.processCommand(t,o.keyBuffer[0]),void(n.isPlaying=!1);var a=o.keyBuffer,l=0;n.isPlaying=!0,n.replaySearchQueries=o.searchQueries.slice(0);for(var s=0;s<a.length;s++)for(var c,u,f=a[s];f;)if(c=/<\w+-.+?>|<\w+>|./.exec(f),u=c[0],f=f.substring(c.index+u.length),e.Vim.handleKey(t,u,"macro"),r.insertMode){var d=o.insertModeChanges[l++].changes;wt.macroModeState.lastInsertModeChanges.changes=d,lt(t,d,1),$e(t)}n.isPlaying=!1}function Qe(e,t){if(!e.isPlaying){var r=e.latestRegister,n=wt.registerController.getRegister(r);n&&n.pushText(t)}}function Je(e){if(!e.isPlaying){var t=e.latestRegister,r=wt.registerController.getRegister(t);r&&r.pushInsertModeChanges&&r.pushInsertModeChanges(e.lastInsertModeChanges)}}function Ze(e,t){if(!e.isPlaying){var r=e.latestRegister,n=wt.registerController.getRegister(r);n&&n.pushSearchQuery&&n.pushSearchQuery(t)}}function et(e,t){var r=wt.macroModeState,n=r.lastInsertModeChanges;if(!r.isPlaying)for(;t;){if(n.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var i=t.text.join("\n");n.maybeReset&&(n.changes=[],n.maybeReset=!1),n.changes.push(i)}t=t.next}}function tt(e){var t=e.state.vim;if(t.insertMode){var r=wt.macroModeState;if(r.isPlaying)return;var n=r.lastInsertModeChanges;n.expectCursorActivityForChange?n.expectCursorActivityForChange=!1:n.maybeReset=!0}else e.curOp.isVimOp||nt(e,t);t.visualMode&&rt(e)}function rt(e){var t=e.state.vim,r=R(e,j(t.sel.head)),n=z(r,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(r,n,{className:"cm-animate-fat-cursor"})}function nt(t,r){var n=t.getCursor("anchor"),i=t.getCursor("head");if(r.visualMode&&!t.somethingSelected()?se(t,!1):r.visualMode||r.insertMode||!t.somethingSelected()||(r.visualMode=!0,r.visualLine=!1,e.signal(t,"vim-mode-change",{mode:"visual"})),r.visualMode){var o=U(i,n)?0:-1,a=U(i,n)?-1:0;i=z(i,0,o),n=z(n,0,a),r.sel={anchor:n,head:i},xe(t,r,"<",V(i,n)),xe(t,r,">",$(i,n))}else r.insertMode||(r.lastHPos=t.getCursor().ch)}function it(e){this.keyName=e}function ot(t){function r(){return i.maybeReset&&(i.changes=[],i.maybeReset=!1),i.changes.push(new it(o)),!0}var n=wt.macroModeState,i=n.lastInsertModeChanges,o=e.keyName(t);o&&(o.indexOf("Delete")==-1&&o.indexOf("Backspace")==-1||e.lookupKey(o,"vim-insert",r))}function at(e,t,r,n){function i(){l?St.processAction(e,t,t.lastEditActionCommand):St.evalInput(e,t)}function o(r){if(a.lastInsertModeChanges.changes.length>0){r=t.lastEditActionCommand?r:1;var n=a.lastInsertModeChanges;lt(e,n.changes,r)}}var a=wt.macroModeState;a.isPlaying=!0;var l=!!t.lastEditActionCommand,s=t.inputState;if(t.inputState=t.lastEditInputState,l&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<r;c++)i(),o(1);else n||i(),o(r);t.inputState=s,t.insertMode&&!n&&$e(e),a.isPlaying=!1}function lt(t,r,n){function i(r){return"string"==typeof r?e.commands[r](t):r(t),!0}var o=t.getCursor("head"),a=wt.macroModeState.lastInsertModeChanges.inVisualBlock;if(a){var l=t.state.vim,s=l.lastSelection,c=D(s.anchor,s.head);ee(t,o,c.line+1),n=t.listSelections().length,t.setCursor(o)}for(var u=0;u<n;u++){a&&t.setCursor(z(o,u,0));for(var f=0;f<r.length;f++){var d=r[f];if(d instanceof it)e.lookupKey(d.keyName,"vim-insert",i);else{var h=t.getCursor();t.replaceRange(d,h,h)}}}a&&t.setCursor(z(o,0,1))}e.defineOption("vimMode",!1,function(t,r,n){r&&"vim"!=t.getOption("keyMap")?t.setOption("keyMap","vim"):!r&&n!=e.Init&&/^vim/.test(t.getOption("keyMap"))&&t.setOption("keyMap","default")});var st={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},ct={Enter:"CR",Backspace:"BS",Delete:"Del",Insert:"Ins"},ut=/[\d]/,ft=[e.isWordChar,function(t){return t&&!e.isWordChar(t)&&!/\s/.test(t)}],dt=[function(e){return/\S/.test(e)}],ht=f(65,26),pt=f(97,26),mt=f(48,10),gt=[].concat(ht,pt,mt,["<",">"]),vt=[].concat(ht,pt,mt,["-",'"',".",":","/"]),yt={};b("filetype",void 0,"string",["ft"],function(e,t){if(void 0!==t){if(void 0===e){var r=t.getOption("mode");return"null"==r?"":r}var r=""==e?"null":e;t.setOption("mode",r)}});var bt=function(){function e(e,t,l){function s(t){var i=++n%r,o=a[i];o&&o.clear(),a[i]=e.setBookmark(t)}var c=n%r,u=a[c];if(u){var f=u.find();f&&!K(f,t)&&s(t)}else s(t);s(l),i=n,(o=n-r+1)<0&&(o=0)}function t(e,t){n+=t,n>i?n=i:n<o&&(n=o);var l=a[(r+n)%r];if(l&&!l.find()){var s,c=t>0?1:-1,u=e.getCursor();do{if(n+=c,(l=a[(r+n)%r])&&(s=l.find())&&!K(u,s))break}while(n<i&&n>o)}return l}var r=100,n=-1,i=0,o=0,a=new Array(r);return{cachedCursor:void 0,add:e,move:t}},xt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};k.prototype={exitMacroRecordMode:function(){var e=wt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var r=wt.registerController.getRegister(t);r&&(r.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}};var wt,kt,Ct={buildKeyMap:function(){},getRegisterController:function(){return wt.registerController},resetVimGlobalState_:S,getVimGlobalState_:function(){return wt},maybeInitVimState_:C,suppressErrorLogging:!1,InsertModeKey:it,map:function(e,t,r){Rt.map(e,t,r)},unmap:function(e,t){Rt.unmap(e,t)},setOption:x,getOption:w,defineOption:b,defineEx:function(e,t,r){if(t){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered')}else t=e;Pt[e]=r,Rt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,r){var n=this.findKey(e,t,r);if("function"==typeof n)return n()},findKey:function(r,n,i){function o(){var e=wt.macroModeState;if(e.isRecording){if("q"==n)return e.exitMacroRecordMode(),M(r),!0;"mapping"!=i&&Qe(e,n)}}function a(){if("<Esc>"==n)return M(r),c.visualMode?se(r):c.insertMode&&$e(r),!0}function l(t){for(var i;t;)i=/<\w+-.+?>|<\w+>|./.exec(t),n=i[0],t=t.substring(i.index+n.length),e.Vim.handleKey(r,n,"mapping")}var s,c=C(r);return s=c.insertMode?function(){if(a())return!0;for(var e=c.inputState.keyBuffer=c.inputState.keyBuffer+n,i=1==n.length,o=St.matchCommand(e,t,c.inputState,"insert");e.length>1&&"full"!=o.type;){var e=c.inputState.keyBuffer=e.slice(1),l=St.matchCommand(e,t,c.inputState,"insert");"none"!=l.type&&(o=l)}if("none"==o.type)return M(r),!1;if("partial"==o.type)return kt&&window.clearTimeout(kt),kt=window.setTimeout(function(){c.insertMode&&c.inputState.keyBuffer&&M(r)},w("insertModeEscKeysTimeout")),!i;if(kt&&window.clearTimeout(kt),i){for(var s=r.listSelections(),u=0;u<s.length;u++){var f=s[u].head;r.replaceRange("",z(f,0,-(e.length-1)),f,"+input")}wt.macroModeState.lastInsertModeChanges.changes.pop()}return M(r),o.command}():function(){if(o()||a())return!0;var e=c.inputState.keyBuffer=c.inputState.keyBuffer+n;if(/^[1-9]\d*$/.test(e))return!0;var i=/^(\d*)(.*)$/.exec(e);if(!i)return M(r),!1;var l=c.visualMode?"visual":"normal",s=St.matchCommand(i[2]||i[1],t,c.inputState,l);if("none"==s.type)return M(r),!1;if("partial"==s.type)return!0;c.inputState.keyBuffer="";var i=/^(\d*)(.*)$/.exec(e);return i[1]&&"0"!=i[1]&&c.inputState.pushRepeatDigit(i[1]),s.command}(),s===!1?void 0:s===!0?function(){return!0}:function(){return r.operation(function(){r.curOp.isVimOp=!0;try{"keyToKey"==s.type?l(s.toKeys):St.processCommand(r,c,s)}catch(t){throw r.state.vim=void 0,C(r),e.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Rt.processCommand(e,t)},defineMotion:E,defineAction:P,defineOperator:N,mapCommand:Xe,_mapCommand:Ge,defineRegister:T,exitVisualMode:se,exitInsertMode:$e};_.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},_.prototype.getRepeat=function(){var e=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10))),e},L.prototype={setText:function(e,t,r){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!r},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(xt(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},A.prototype={pushText:function(e,t,r,n,i){n&&"\n"==r.charAt(0)&&(r=r.slice(1)+"\n"),n&&"\n"!==r.charAt(r.length-1)&&(r+="\n");var o=this.isValidRegister(e)?this.getRegister(e):null;if(!o){switch(t){case"yank":
|
12 |
-
this.registers[0]=new L(r,n,i);break;case"delete":case"change":r.indexOf("\n")==-1?this.registers["-"]=new L(r,n):(this.shiftNumericRegisters_(),this.registers[1]=new L(r,n))}return void this.unnamedRegister.setText(r,n,i)}g(e)?o.pushText(r,n):o.setText(r,n,i),this.unnamedRegister.setText(o.toString(),n)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new L),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&y(e,vt)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},O.prototype={nextMatch:function(e,t){var r=this.historyBuffer,n=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var i=this.iterator+n;t?i>=0:i<r.length;i+=n)for(var o=r[i],a=0;a<=o.length;a++)if(this.initialPrefix==o.substring(0,a))return this.iterator=i,o;return i>=r.length?(this.iterator=r.length,this.initialPrefix):i<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var St={matchCommand:function(e,t,r,n){var i=W(e,t,n,r);if(!i.full&&!i.partial)return{type:"none"};if(!i.full&&i.partial)return{type:"partial"};for(var o,a=0;a<i.full.length;a++){var l=i.full[a];o||(o=l)}return"<character>"==o.keys.slice(-11)&&(r.selectedCharacter=F(e)),{type:"full",command:o}},processCommand:function(e,t,r){switch(t.inputState.repeatOverride=r.repeatOverride,r.type){case"motion":this.processMotion(e,t,r);break;case"operator":this.processOperator(e,t,r);break;case"operatorMotion":this.processOperatorMotion(e,t,r);break;case"action":this.processAction(e,t,r);break;case"search":this.processSearch(e,t,r);break;case"ex":case"keyToEx":this.processEx(e,t,r)}},processMotion:function(e,t,r){t.inputState.motion=r.motion,t.inputState.motionArgs=B(r.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,r){var n=t.inputState;if(n.operator){if(n.operator==r.operator)return n.motion="expandToLine",n.motionArgs={linewise:!0},void this.evalInput(e,t);M(e)}n.operator=r.operator,n.operatorArgs=B(r.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,r){var n=t.visualMode,i=B(r.operatorMotionArgs);i&&n&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,r),n||this.processMotion(e,t,r)},processAction:function(e,t,r){var n=t.inputState,i=n.getRepeat(),o=!!i,a=B(r.actionArgs)||{};n.selectedCharacter&&(a.selectedCharacter=n.selectedCharacter),r.operator&&this.processOperator(e,t,r),r.motion&&this.processMotion(e,t,r),(r.motion||r.operator)&&this.evalInput(e,t),a.repeat=i||1,a.repeatIsExplicit=o,a.registerName=n.registerName,M(e),t.lastMotion=null,r.isEdit&&this.recordLastEdit(t,n,r),Lt[r.action](e,a,t)},processSearch:function(t,r,n){function i(e,i,o){wt.searchHistoryController.pushInput(e),wt.searchHistoryController.reset();try{De(t,e,i,o)}catch(r){return Pe(t,"Invalid regex: "+e),void M(t)}St.processMotion(t,r,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}function o(e){t.scrollTo(d.left,d.top),i(e,!0,!0);var r=wt.macroModeState;r.isRecording&&Ze(r,e)}function a(r,n,i){var o,a,l=e.keyName(r);"Up"==l||"Down"==l?(o="Up"==l,a=r.target?r.target.selectionEnd:0,n=wt.searchHistoryController.nextMatch(n,o)||"",i(n),a&&r.target&&(r.target.selectionEnd=r.target.selectionStart=Math.min(a,r.target.value.length))):"Left"!=l&&"Right"!=l&&"Ctrl"!=l&&"Alt"!=l&&"Shift"!=l&&wt.searchHistoryController.reset();var c;try{c=De(t,n,!0,!0)}catch(e){}c?t.scrollIntoView(Fe(t,!s,c),30):(He(t),t.scrollTo(d.left,d.top))}function l(r,n,i){var o=e.keyName(r);"Esc"==o||"Ctrl-C"==o||"Ctrl-["==o||"Backspace"==o&&""==n?(wt.searchHistoryController.pushInput(n),wt.searchHistoryController.reset(),De(t,f),He(t),t.scrollTo(d.left,d.top),e.e_stop(r),M(t),i(),t.focus()):"Up"==o||"Down"==o?e.e_stop(r):"Ctrl-U"==o&&(e.e_stop(r),i(""))}if(t.getSearchCursor){var s=n.searchArgs.forward,c=n.searchArgs.wholeWordOnly;Me(t).setReversed(!s);var u=s?"/":"?",f=Me(t).getQuery(),d=t.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var h=wt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();i(p,!0,!1)}else Be(t,{onClose:o,prefix:u,desc:It,onKeyUp:a,onKeyDown:l});break;case"wordUnderCursor":var m=de(t,!1,!0,!1,!0),g=!0;if(m||(m=de(t,!1,!0,!1,!1),g=!1),!m)return;var p=t.getLine(m.start.line).substring(m.start.ch,m.end.ch);p=g&&c?"\\b"+p+"\\b":Q(p),wt.jumpList.cachedCursor=t.getCursor(),t.setCursor(m.start),i(p,!0,!1)}}},processEx:function(t,r,n){function i(e){wt.exCommandHistoryController.pushInput(e),wt.exCommandHistoryController.reset(),Rt.processCommand(t,e)}function o(r,n,i){var o,a,l=e.keyName(r);("Esc"==l||"Ctrl-C"==l||"Ctrl-["==l||"Backspace"==l&&""==n)&&(wt.exCommandHistoryController.pushInput(n),wt.exCommandHistoryController.reset(),e.e_stop(r),M(t),i(),t.focus()),"Up"==l||"Down"==l?(e.e_stop(r),o="Up"==l,a=r.target?r.target.selectionEnd:0,n=wt.exCommandHistoryController.nextMatch(n,o)||"",i(n),a&&r.target&&(r.target.selectionEnd=r.target.selectionStart=Math.min(a,r.target.value.length))):"Ctrl-U"==l?(e.e_stop(r),i("")):"Left"!=l&&"Right"!=l&&"Ctrl"!=l&&"Alt"!=l&&"Shift"!=l&&wt.exCommandHistoryController.reset()}"keyToEx"==n.type?Rt.processCommand(t,n.exArgs.input):r.visualMode?Be(t,{onClose:i,prefix:":",value:"'<,'>",onKeyDown:o}):Be(t,{onClose:i,prefix:":",onKeyDown:o})},evalInput:function(e,t){var r,i,o,a=t.inputState,l=a.motion,s=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},f=a.registerName,d=t.sel,h=j(t.visualMode?R(e,d.head):e.getCursor("head")),p=j(t.visualMode?R(e,d.anchor):e.getCursor("anchor")),m=j(h),g=j(p);if(c&&this.recordLastEdit(t,a),o=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat(),o>0&&s.explicitRepeat?s.repeatIsExplicit=!0:(s.noRepeat||!s.explicitRepeat&&0===o)&&(o=1,s.repeatIsExplicit=!1),a.selectedCharacter&&(s.selectedCharacter=u.selectedCharacter=a.selectedCharacter),s.repeat=o,M(e),l){var v=_t[l](e,h,s,t);if(t.lastMotion=_t[l],!v)return;if(s.toJumplist){var y=wt.jumpList,b=y.cachedCursor;b?(he(e,b,v),delete y.cachedCursor):he(e,h,v)}v instanceof Array?(i=v[0],r=v[1]):r=v,r||(r=j(h)),t.visualMode?(t.visualBlock&&r.ch===1/0||(r=R(e,r,t.visualBlock)),i&&(i=R(e,i,!0)),i=i||g,d.anchor=i,d.head=r,oe(e),xe(e,t,"<",U(i,r)?i:r),xe(e,t,">",U(i,r)?r:i)):c||(r=R(e,r),e.setCursor(r.line,r.ch))}if(c){if(u.lastSel){i=g;var x=u.lastSel,w=Math.abs(x.head.line-x.anchor.line),k=Math.abs(x.head.ch-x.anchor.ch);r=x.visualLine?n(g.line+w,g.ch):x.visualBlock?n(g.line+w,g.ch+k):x.head.line==x.anchor.line?n(g.line,g.ch+k):n(g.line+w,g.ch),t.visualMode=!0,t.visualLine=x.visualLine,t.visualBlock=x.visualBlock,d=t.sel={anchor:i,head:r},oe(e)}else t.visualMode&&(u.lastSel={anchor:j(d.anchor),head:j(d.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var C,S,_,L,T;if(t.visualMode){if(C=V(d.head,d.anchor),S=$(d.head,d.anchor),_=t.visualLine||u.linewise,L=t.visualBlock?"block":_?"line":"char",T=ae(e,{anchor:C,head:S},L),_){var A=T.ranges;if("block"==L)for(var O=0;O<A.length;O++)A[O].head.ch=X(e,A[O].head.line);else"line"==L&&(A[0].head=n(A[0].head.line+1,0))}}else{if(C=j(i||g),S=j(r||m),U(S,C)){var E=C;C=S,S=E}_=s.linewise||u.linewise,_?ue(e,C,S):s.forward&&ce(e,C,S),L="char";T=ae(e,{anchor:C,head:S},L,!s.inclusive||_)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=o,u.registerName=f,u.linewise=_;var I=Mt[c](e,u,T.ranges,g,r);t.visualMode&&se(e,null!=I),I&&e.setCursor(I)}},recordLastEdit:function(e,t,r){var n=wt.macroModeState;n.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=r,n.lastInsertModeChanges.changes=[],n.lastInsertModeChanges.expectCursorActivityForChange=!1)}},_t={moveToTopLine:function(e,t,r){var i=Ke(e).top+r.repeat-1;return n(i,fe(e.getLine(i)))},moveToMiddleLine:function(e){var t=Ke(e),r=Math.floor(.5*(t.top+t.bottom));return n(r,fe(e.getLine(r)))},moveToBottomLine:function(e,t,r){var i=Ke(e).bottom-r.repeat+1;return n(i,fe(e.getLine(i)))},expandToLine:function(e,t,r){return n(t.line+r.repeat-1,1/0)},findNext:function(e,t,r){var n=Me(e),i=n.getQuery();if(i){var o=!r.forward;return o=n.isReversed()?!o:o,qe(e,i),Fe(e,o,i,r.repeat)}},goToMark:function(e,t,r,n){var i=Ue(e,n,r.selectedCharacter);return i?r.linewise?{line:i.line,ch:fe(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,r,i){if(i.visualBlock&&r.sameLine){var o=i.sel;return[R(e,n(o.anchor.line,o.head.ch)),R(e,n(o.head.line,o.anchor.ch))]}return[i.sel.head,i.sel.anchor]},jumpToMark:function(e,t,r,i){for(var o=t,a=0;a<r.repeat;a++){var l=o;for(var s in i.marks)if(h(s)){var c=i.marks[s].find(),u=r.forward?U(c,l):U(l,c);if(!(u||r.linewise&&c.line==l.line)){var f=K(l,o),d=r.forward?G(l,c,o):G(o,c,l);(f||d)&&(o=c)}}}return r.linewise&&(o=n(o.line,fe(e.getLine(o.line)))),o},moveByCharacters:function(e,t,r){var i=t,o=r.repeat,a=r.forward?i.ch+o:i.ch-o;return n(i.line,a)},moveByLines:function(e,t,r,i){var o=t,a=o.ch;switch(i.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:a=i.lastHPos;break;default:i.lastHPos=a}var l=r.repeat+(r.repeatOffset||0),s=r.forward?o.line+l:o.line-l,c=e.firstLine(),u=e.lastLine();return s<c&&o.line==c?this.moveToStartOfLine(e,t,r,i):s>u&&o.line==u?this.moveToEol(e,t,r,i):(r.toFirstChar&&(a=fe(e.getLine(s)),i.lastHPos=a),i.lastHSPos=e.charCoords(n(s,a),"div").left,n(s,a))},moveByDisplayLines:function(e,t,r,i){var o=t;switch(i.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:i.lastHSPos=e.charCoords(o,"div").left}var a=r.repeat,l=e.findPosV(o,r.forward?a:-a,"line",i.lastHSPos);if(l.hitSide)if(r.forward)var s=e.charCoords(l,"div"),c={top:s.top+8,left:i.lastHSPos},l=e.coordsChar(c,"div");else{var u=e.charCoords(n(e.firstLine(),0),"div");u.left=i.lastHSPos,l=e.coordsChar(u,"div")}return i.lastHPos=l.ch,l},moveByPage:function(e,t,r){var n=t,i=r.repeat;return e.findPosV(n,r.forward?i:-i,"page")},moveByParagraph:function(e,t,r){var n=r.forward?1:-1;return ke(e,t,r.repeat,n)},moveByScroll:function(e,t,r,n){var i=e.getScrollInfo(),o=null,a=r.repeat;a||(a=i.clientHeight/(2*e.defaultTextHeight()));var l=e.charCoords(t,"local");r.repeat=a;var o=_t.moveByDisplayLines(e,t,r,n);if(!o)return null;var s=e.charCoords(o,"local");return e.scrollTo(null,i.top+s.top-l.top),o},moveByWords:function(e,t,r){return ve(e,t,r.repeat,!!r.forward,!!r.wordEnd,!!r.bigWord)},moveTillCharacter:function(e,t,r){var n=r.repeat,i=ye(e,n,r.forward,r.selectedCharacter),o=r.forward?-1:1;return pe(o,r),i?(i.ch+=o,i):null},moveToCharacter:function(e,t,r){var n=r.repeat;return pe(0,r),ye(e,n,r.forward,r.selectedCharacter)||t},moveToSymbol:function(e,t,r){return me(e,r.repeat,r.forward,r.selectedCharacter)||t},moveToColumn:function(e,t,r,n){var i=r.repeat;return n.lastHPos=i-1,n.lastHSPos=e.charCoords(t,"div").left,be(e,i)},moveToEol:function(e,t,r,i){var o=t;i.lastHPos=1/0;var a=n(o.line+r.repeat-1,1/0),l=e.clipPos(a);return l.ch--,i.lastHSPos=e.charCoords(l,"div").left,a},moveToFirstNonWhiteSpaceCharacter:function(e,t){var r=t;return n(r.line,fe(e.getLine(r.line)))},moveToMatchedSymbol:function(e,t){var r,i=t,o=i.line,a=i.ch,l=e.getLine(o);do{if((r=l.charAt(a++))&&p(r)){var s=e.getTokenTypeAt(n(o,a));if("string"!==s&&"comment"!==s)break}}while(r);if(r){return e.findMatchingBracket(n(o,a)).to}return i},moveToStartOfLine:function(e,t){return n(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,r){var i=r.forward?e.lastLine():e.firstLine();return r.repeatIsExplicit&&(i=r.repeat-e.getOption("firstLineNumber")),n(i,fe(e.getLine(i)))},textObjectManipulation:function(e,t,r,n){var i={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},o={"'":!0,'"':!0},a=r.selectedCharacter;"b"==a?a="(":"B"==a&&(a="{");var l,s=!r.textObjectInner;if(i[a])l=Ce(e,t,a,s);else if(o[a])l=Se(e,t,a,s);else if("W"===a)l=de(e,s,!0,!0);else if("w"===a)l=de(e,s,!0,!1);else{if("p"!==a)return null;if(l=ke(e,t,r.repeat,0,s),r.linewise=!0,n.visualMode)n.visualLine||(n.visualLine=!0);else{var c=n.inputState.operatorArgs;c&&(c.linewise=!0),l.end.line--}}return e.state.vim.visualMode?ie(e,l.start,l.end):[l.start,l.end]},repeatLastCharacterSearch:function(e,t,r){var n=wt.lastCharacterSearch,i=r.repeat,o=r.forward===n.forward,a=(n.increment?1:0)*(o?-1:1);e.moveH(-a,"char"),r.inclusive=!!o;var l=ye(e,i,o,n.selectedCharacter);return l?(l.ch+=a,l):(e.moveH(a,"char"),t)}},Mt={change:function(t,r,i){var o,a,l=t.state.vim;if(wt.macroModeState.lastInsertModeChanges.inVisualBlock=l.visualBlock,l.visualMode){a=t.getSelection();var s=I("",i.length);t.replaceSelections(s),o=V(i[0].head,i[0].anchor)}else{var c=i[0].anchor,u=i[0].head;a=t.getRange(c,u);var f=l.lastEditInputState||{};if("moveByWords"==f.motion&&!v(a)){var d=/\s+$/.exec(a);d&&f.motionArgs&&f.motionArgs.forward&&(u=z(u,0,-d[0].length),a=a.slice(0,-d[0].length))}var h=new n(c.line-1,Number.MAX_VALUE),p=t.firstLine()==t.lastLine();u.line>t.lastLine()&&r.linewise&&!p?t.replaceRange("",h,u):t.replaceRange("",c,u),r.linewise&&(p||(t.setCursor(h),e.commands.newlineAndIndent(t)),c.ch=Number.MAX_VALUE),o=c}wt.registerController.pushText(r.registerName,"change",a,r.linewise,i.length>1),Lt.enterInsertMode(t,{head:o},t.state.vim)},delete:function(e,t,r){var i,o,a=e.state.vim;if(a.visualBlock){o=e.getSelection();var l=I("",r.length);e.replaceSelections(l),i=r[0].anchor}else{var s=r[0].anchor,c=r[0].head;t.linewise&&c.line!=e.firstLine()&&s.line==e.lastLine()&&s.line==c.line-1&&(s.line==e.firstLine()?s.ch=0:s=n(s.line-1,X(e,s.line-1))),o=e.getRange(s,c),e.replaceRange("",s,c),i=s,t.linewise&&(i=_t.moveToFirstNonWhiteSpaceCharacter(e,s))}return wt.registerController.pushText(t.registerName,"delete",o,t.linewise,a.visualBlock),R(e,i)},indent:function(e,t,r){var n=e.state.vim,i=r[0].anchor.line,o=n.visualBlock?r[r.length-1].anchor.line:r[0].head.line,a=n.visualMode?t.repeat:1;t.linewise&&o--;for(var l=i;l<=o;l++)for(var s=0;s<a;s++)e.indentLine(l,t.indentRight);return _t.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},changeCase:function(e,t,r,n,i){for(var o=e.getSelections(),a=[],l=t.toLower,s=0;s<o.length;s++){var c=o[s],u="";if(l===!0)u=c.toLowerCase();else if(l===!1)u=c.toUpperCase();else for(var f=0;f<c.length;f++){var d=c.charAt(f);u+=g(d)?d.toLowerCase():d.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&r[0].anchor.line+1==r[0].head.line?_t.moveToFirstNonWhiteSpaceCharacter(e,n):t.linewise?n:V(r[0].anchor,r[0].head)},yank:function(e,t,r,n){var i=e.state.vim,o=e.getSelection(),a=i.visualMode?V(i.sel.anchor,i.sel.head,r[0].head,r[0].anchor):n;return wt.registerController.pushText(t.registerName,"yank",o,t.linewise,i.visualBlock),a}},Lt={jumpListWalk:function(e,t,r){if(!r.visualMode){var n=t.repeat,i=t.forward,o=wt.jumpList,a=o.move(e,i?n:-n),l=a?a.find():void 0;l=l?l:e.getCursor(),e.setCursor(l)}},scroll:function(e,t,r){if(!r.visualMode){var n=t.repeat||1,i=e.defaultTextHeight(),o=e.getScrollInfo().top,a=i*n,l=t.forward?o+a:o-a,s=j(e.getCursor()),c=e.charCoords(s,"local");if(t.forward)l>c.top?(s.line+=(l-c.top)/i,s.line=Math.ceil(s.line),e.setCursor(s),c=e.charCoords(s,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,l);else{var u=l+e.getScrollInfo().clientHeight;u<c.bottom?(s.line-=(c.bottom-u)/i,s.line=Math.floor(s.line),e.setCursor(s),c=e.charCoords(s,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,l)}}},scrollToCursor:function(e,t){var r=e.getCursor().line,i=e.charCoords(n(r,0),"local"),o=e.getScrollInfo().clientHeight,a=i.top,l=i.bottom-a;switch(t.position){case"center":a=a-o/2+l;break;case"bottom":a=a-o+l}e.scrollTo(null,a)},replayMacro:function(e,t,r){var n=t.selectedCharacter,i=t.repeat,o=wt.macroModeState;for("@"==n&&(n=o.latestRegister);i--;)Ye(e,r,o,n)},enterMacroRecordMode:function(e,t){var r=wt.macroModeState,n=t.selectedCharacter;r.enterMacroRecordMode(e,n)},toggleOverwrite:function(t){t.state.overwrite?(t.toggleOverwrite(!1),t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})):(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(t,r,i){if(!t.getOption("readOnly")){i.insertMode=!0,i.insertModeRepeat=r&&r.repeat||1;var o=r?r.insertAt:null,a=i.sel,l=r.head||t.getCursor("head"),s=t.listSelections().length;if("eol"==o)l=n(l.line,X(t,l.line));else if("charAfter"==o)l=z(l,0,1);else if("firstNonBlank"==o)l=_t.moveToFirstNonWhiteSpaceCharacter(t,l);else if("startOfSelectedArea"==o)i.visualBlock?(l=n(Math.min(a.head.line,a.anchor.line),Math.min(a.head.ch,a.anchor.ch)),s=Math.abs(a.head.line-a.anchor.line)+1):l=a.head.line<a.anchor.line?a.head:n(a.anchor.line,0);else if("endOfSelectedArea"==o)i.visualBlock?(l=n(Math.min(a.head.line,a.anchor.line),Math.max(a.head.ch+1,a.anchor.ch)),s=Math.abs(a.head.line-a.anchor.line)+1):l=a.head.line>=a.anchor.line?z(a.head,0,1):n(a.anchor.line,0);else if("inplace"==o&&i.visualMode)return;t.setOption("disableInput",!1),r&&r.replace?(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"})):(t.toggleOverwrite(!1),t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})),wt.macroModeState.isPlaying||(t.on("change",et),e.on(t.getInputField(),"keydown",ot)),i.visualMode&&se(t),ee(t,l,s)}},toggleVisualMode:function(t,r,i){var o,a=r.repeat,l=t.getCursor();i.visualMode?i.visualLine^r.linewise||i.visualBlock^r.blockwise?(i.visualLine=!!r.linewise,i.visualBlock=!!r.blockwise,e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t)):se(t):(i.visualMode=!0,i.visualLine=!!r.linewise,i.visualBlock=!!r.blockwise,o=R(t,n(l.line,l.ch+a-1),!0),i.sel={anchor:l,head:o},e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t),xe(t,i,"<",V(l,o)),xe(t,i,">",$(l,o)))},reselectLastSelection:function(t,r,n){var i=n.lastSelection;if(n.visualMode&&ne(t,n),i){var o=i.anchorMark.find(),a=i.headMark.find();if(!o||!a)return;n.sel={anchor:o,head:a},n.visualMode=!0,n.visualLine=i.visualLine,n.visualBlock=i.visualBlock,oe(t),xe(t,n,"<",V(o,a)),xe(t,n,">",$(o,a)),e.signal(t,"vim-mode-change",{mode:"visual",subMode:n.visualLine?"linewise":n.visualBlock?"blockwise":""})}},joinLines:function(e,t,r){var i,o;if(r.visualMode){if(i=e.getCursor("anchor"),o=e.getCursor("head"),U(o,i)){var a=o;o=i,i=a}o.ch=X(e,o.line)-1}else{var l=Math.max(t.repeat,2);i=e.getCursor(),o=R(e,n(i.line+l-1,1/0))}for(var s=0,c=i.line;c<o.line;c++){s=X(e,i.line);var a=n(i.line+1,X(e,i.line+1)),u=e.getRange(i,a);u=u.replace(/\n\s*/g," "),e.replaceRange(u,i,a)}var f=n(i.line,s);r.visualMode&&se(e,!1),e.setCursor(f)},newLineAndEnterInsertMode:function(t,r,i){i.insertMode=!0;var o=j(t.getCursor());if(o.line!==t.firstLine()||r.after){o.line=r.after?o.line:o.line-1,o.ch=X(t,o.line),t.setCursor(o);(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t)}else t.replaceRange("\n",n(t.firstLine(),0)),t.setCursor(t.firstLine(),0);this.enterInsertMode(t,{repeat:r.repeat},i)},paste:function(e,t,r){var i=j(e.getCursor()),o=wt.registerController.getRegister(t.registerName),a=o.toString();if(a){if(t.matchIndent){var l=e.getOption("tabSize"),s=function(e){var t=e.split("\t").length-1,r=e.split(" ").length-1;return t*l+1*r},c=e.getLine(e.getCursor().line),u=s(c.match(/^\s*/)[0]),f=a.replace(/\n$/,""),d=a!==f,h=s(a.match(/^\s*/)[0]),a=f.replace(/^\s*/gm,function(t){var r=u+(s(t)-h);if(r<0)return"";if(e.getOption("indentWithTabs")){var n=Math.floor(r/l);return Array(n+1).join("\t")}return Array(r+1).join(" ")});a+=d?"\n":""}if(t.repeat>1)var a=Array(t.repeat+1).join(a);var p=o.linewise,m=o.blockwise;if(p)r.visualMode?a=r.visualLine?a.slice(0,-1):"\n"+a.slice(0,a.length-1)+"\n":t.after?(a="\n"+a.slice(0,a.length-1),i.ch=X(e,i.line)):i.ch=0;else{if(m){a=a.split("\n");for(var g=0;g<a.length;g++)a[g]=""==a[g]?" ":a[g]}i.ch+=t.after?1:0}var v,y;if(r.visualMode){r.lastPastedText=a;var b,x=re(e,r),w=x[0],k=x[1],C=e.getSelection(),S=e.listSelections(),_=new Array(S.length).join("1").split("1");r.lastSelection&&(b=r.lastSelection.headMark.find()),wt.registerController.unnamedRegister.setText(C),m?(e.replaceSelections(_),k=n(w.line+a.length-1,w.ch),e.setCursor(w),Z(e,k),e.replaceSelections(a),v=w):r.visualBlock?(e.replaceSelections(_),e.setCursor(w),e.replaceRange(a,w,w),v=w):(e.replaceRange(a,w,k),v=e.posFromIndex(e.indexFromPos(w)+a.length-1)),b&&(r.lastSelection.headMark=e.setBookmark(b)),p&&(v.ch=0)}else if(m){e.setCursor(i);for(var g=0;g<a.length;g++){var M=i.line+g;M>e.lastLine()&&e.replaceRange("\n",n(M,0));var L=X(e,M);L<i.ch&&J(e,M,i.ch)}e.setCursor(i),Z(e,n(i.line+a.length-1,i.ch)),e.replaceSelections(a),v=i}else e.replaceRange(a,i),p&&t.after?v=n(i.line+1,fe(e.getLine(i.line+1))):p&&!t.after?v=n(i.line,fe(e.getLine(i.line))):!p&&t.after?(y=e.indexFromPos(i),v=e.posFromIndex(y+a.length-1)):(y=e.indexFromPos(i),v=e.posFromIndex(y+a.length));r.visualMode&&se(e,!1),e.setCursor(v)}},undo:function(t,r){t.operation(function(){H(t,e.commands.undo,r.repeat)(),t.setCursor(t.getCursor("anchor"))})},redo:function(t,r){H(t,e.commands.redo,r.repeat)()},setRegister:function(e,t,r){r.inputState.registerName=t.selectedCharacter},setMark:function(e,t,r){xe(e,r,t.selectedCharacter,e.getCursor())},replace:function(t,r,i){var o,a,l=r.selectedCharacter,s=t.getCursor(),c=t.listSelections();if(i.visualMode)s=t.getCursor("start"),a=t.getCursor("end");else{var u=t.getLine(s.line);o=s.ch+r.repeat,o>u.length&&(o=u.length),a=n(s.line,o)}if("\n"==l)i.visualMode||t.replaceRange("",s,a),(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t);else{var f=t.getRange(s,a);if(f=f.replace(/[^\n]/g,l),i.visualBlock){var d=new Array(t.getOption("tabSize")+1).join(" ");f=t.getSelection(),f=f.replace(/\t/g,d).replace(/[^\n]/g,l).split("\n"),t.replaceSelections(f)}else t.replaceRange(f,s,a);i.visualMode?(s=U(c[0].anchor,c[0].head)?c[0].anchor:c[0].head,t.setCursor(s),se(t,!1)):t.setCursor(z(a,0,-1))}},incrementNumberToken:function(e,t){for(var r,i,o,a,l,s=e.getCursor(),c=e.getLine(s.line),u=/-?\d+/g;null!==(r=u.exec(c))&&(l=r[0],i=r.index,o=i+l.length,!(s.ch<o)););if((t.backtrack||!(o<=s.ch))&&l){var f=t.increase?1:-1,d=parseInt(l)+f*t.repeat,h=n(s.line,i),p=n(s.line,o);a=d.toString(),e.replaceRange(a,h,p),e.setCursor(n(s.line,i+a.length-1))}},repeatLastEdit:function(e,t,r){if(r.lastEditInputState){var n=t.repeat;n&&t.repeatIsExplicit?r.lastEditInputState.repeatOverride=n:n=r.lastEditInputState.repeatOverride||n,at(e,r,n,!1)}},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:$e},Tt={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},At={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(++e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};b("pcre",!0,"boolean"),_e.prototype={getQuery:function(){return wt.query},setQuery:function(e){wt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return wt.isReversed},setReversed:function(e){wt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Ot={"\\n":"\n","\\r":"\r","\\t":"\t"},Et={"\\/":"/","\\\\":"\\","\\n":"\n","\\r":"\r","\\t":"\t"},It="(Javascript regexp)",Nt=function(){this.buildCommandMap_()};Nt.prototype={processCommand:function(e,t,r){var n=this;e.operation(function(){e.curOp.isVimOp=!0,n._processCommand(e,t,r)})},_processCommand:function(t,r,n){var i=t.state.vim,o=wt.registerController.getRegister(":"),a=o.toString();i.visualMode&&se(t);var l=new e.StringStream(r);o.setText(r);var s=n||{};s.input=r;try{this.parseInput_(t,l,s)}catch(e){throw Pe(t,e),e}var c,u;if(s.commandName){if(c=this.matchCommand_(s.commandName)){if(u=c.name,c.excludeFromCommandHistory&&o.setText(a),this.parseCommandArgs_(l,s,c),"exToKey"==c.type){for(var f=0;f<c.toKeys.length;f++)e.Vim.handleKey(t,c.toKeys[f],"mapping");return}if("exToEx"==c.type)return void this.processCommand(t,c.toInput)}}else void 0!==s.line&&(u="move");if(!u)return void Pe(t,'Not an editor command ":'+r+'"');try{Pt[u](t,s),c&&c.possiblyAsync||!s.callback||s.callback()}catch(e){throw Pe(t,e),e}},parseInput_:function(e,t,r){t.eatWhile(":"),t.eat("%")?(r.line=e.firstLine(),r.lineEnd=e.lastLine()):(r.line=this.parseLineSpec_(e,t),void 0!==r.line&&t.eat(",")&&(r.lineEnd=this.parseLineSpec_(e,t)));var n=t.match(/^(\w+)/);return r.commandName=n?n[1]:t.match(/.*/)[0],r},parseLineSpec_:function(e,t){var r=t.match(/^(\d+)/);if(r)return parseInt(r[1],10)-1;switch(t.next()){case".":return e.getCursor().line;case"$":return e.lastLine();case"'":var n=t.next(),i=Ue(e,e.state.vim,n);if(!i)throw new Error("Mark not set");return i.line;default:return void t.backUp(1)}},parseCommandArgs_:function(e,t,r){if(!e.eol()){t.argString=e.match(/.*/)[0];var n=r.argDelimiter||/\s+/,i=Y(t.argString).split(n);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var r=e.substring(0,t);if(this.commandMap_[r]){var n=this.commandMap_[r];if(0===n.name.indexOf(e))return n}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<r.length;e++){var t=r[e],n=t.shortName||t.name;this.commandMap_[n]=t}},map:function(e,r,n){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var i=e.substring(1);":"!=r&&":"==r.charAt(0)?this.commandMap_[i]={name:i,type:"exToEx",toInput:r.substring(1),user:!0}:this.commandMap_[i]={name:i,type:"exToKey",toKeys:r,user:!0}}else if(":"!=r&&":"==r.charAt(0)){var o={keys:e,type:"keyToEx",exArgs:{input:r.substring(1)}};n&&(o.context=n),t.unshift(o)}else{var o={keys:e,type:"keyToKey",toKeys:r};n&&(o.context=n),t.unshift(o)}},unmap:function(e,r){if(":"!=e&&":"==e.charAt(0)){if(r)throw Error("Mode not supported for ex mappings");var n=e.substring(1);if(this.commandMap_[n]&&this.commandMap_[n].user)return void delete this.commandMap_[n]}else for(var i=e,o=0;o<t.length;o++)if(i==t[o].keys&&t[o].context===r)return void t.splice(o,1);throw Error("No such mapping.")}};var Pt={colorscheme:function(e,t){if(!t.args||t.args.length<1)return void Pe(e,e.getOption("theme"));e.setOption("theme",t.args[0])},map:function(e,t,r){var n=t.args;if(!n||n.length<2)return void(e&&Pe(e,"Invalid mapping: "+t.input));Rt.map(n[0],n[1],r)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,r){var n=t.args;if(!n||n.length<1)return void(e&&Pe(e,"No such mapping: "+t.input));Rt.unmap(n[0],r)},move:function(e,t){St.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var r=t.args,n=t.setCfg||{};if(!r||r.length<1)return void(e&&Pe(e,"Invalid mapping: "+t.input));var i=r[0].split("="),o=i[0],a=i[1],l=!1;if("?"==o.charAt(o.length-1)){if(a)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),l=!0}void 0===a&&"no"==o.substring(0,2)&&(o=o.substring(2),a=!1);var s=yt[o]&&"boolean"==yt[o].type;if(s&&void 0==a&&(a=!0),!s&&void 0===a||l){var c=w(o,e,n);c===!0||c===!1?Pe(e," "+(c?"":"no")+o):Pe(e," "+o+"="+c)}else x(o,a,e,n)},setlocal:function(e,t){t.setCfg={scope:"local"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:"global"},this.set(e,t)},registers:function(e,t){var r=t.args,n=wt.registerController.registers,i="----------Registers----------<br><br>";if(r){var o;r=r.join("");for(var a=0;a<r.length;a++)if(o=r.charAt(a),wt.registerController.isValidRegister(o)){var l=n[o]||new L;i+='"'+o+" "+l.toString()+"<br>"}}else for(var o in n){var s=n[o].toString();s.length&&(i+='"'+o+" "+s+"<br>")}Pe(e,i)},sort:function(t,r){function i(e,t){if(a){var r;r=e,e=t,t=r}l&&(e=e.toLowerCase(),t=t.toLowerCase());var n=c&&v.exec(e),i=c&&v.exec(t);return n?(n=parseInt((n[1]+n[2]).toLowerCase(),y),i=parseInt((i[1]+i[2]).toLowerCase(),y),n-i):e<t?-1:1}function o(e,t){if(a){var r;r=e,e=t,t=r}return l&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}var a,l,s,c,u,f=function(){if(r.argString){var t=new e.StringStream(r.argString);if(t.eat("!")&&(a=!0),t.eol())return;if(!t.eatSpace())return"Invalid arguments";var n=t.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!n&&!t.eol())return"Invalid arguments";if(n[1]){l=n[1].indexOf("i")!=-1,s=n[1].indexOf("u")!=-1;var i=n[1].indexOf("d")!=-1||n[1].indexOf("n")!=-1&&1,o=n[1].indexOf("x")!=-1&&1,f=n[1].indexOf("o")!=-1&&1;if(i+o+f>1)return"Invalid arguments";c=i&&"decimal"||o&&"hex"||f&&"octal"}n[2]&&(u=new RegExp(n[2].substr(1,n[2].length-2),l?"i":""))}}();if(f)return void Pe(t,f+": "+r.argString);var d=r.line||t.firstLine(),h=r.lineEnd||r.line||t.lastLine();if(d!=h){var p=n(d,0),m=n(h,X(t,h)),g=t.getRange(p,m).split("\n"),v=u?u:"decimal"==c?/(-?)([\d]+)/:"hex"==c?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==c?/([0-7]+)/:null,y="decimal"==c?10:"hex"==c?16:"octal"==c?8:null,b=[],x=[];if(c||u)for(var w=0;w<g.length;w++){var k=u?g[w].match(u):null;k&&""!=k[0]?b.push(k):!u&&v.exec(g[w])?b.push(g[w]):x.push(g[w])}else x=g;if(b.sort(u?o:i),u)for(var w=0;w<b.length;w++)b[w]=b[w].input;else c||x.sort(i);if(g=a?b.concat(x):x.concat(b),s){var C,S=g;g=[];for(var w=0;w<S.length;w++)S[w]!=C&&g.push(S[w]),C=S[w]}t.replaceRange(g.join("\n"),p,m)}},global:function(e,t){var r=t.argString;if(!r)return void Pe(e,"Regular Expression missing from global");var n,i=void 0!==t.line?t.line:e.firstLine(),o=t.lineEnd||t.line||e.lastLine(),a=Te(r),l=r;if(a.length&&(l=a[0],n=a.slice(1,a.length).join("/")),l)try{De(e,l,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+l)}for(var s=Me(e).getQuery(),c=[],u="",f=i;f<=o;f++){s.test(e.getLine(f))&&(c.push(f+1),u+=e.getLine(f)+"<br>")}if(!n)return void Pe(e,u);var d=0,h=function(){if(d<c.length){var t=c[d]+n;Rt.processCommand(e,t,{callback:h})}d++};h()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var r,i,o,a,l=t.argString,s=l?Te(l):[],c="",u=!1,f=!1;if(s.length)r=s[0],c=s[1],void 0!==c&&(c=w("pcre")?Ie(c):Ee(c),wt.lastSubstituteReplacePart=c),i=s[2]?s[2].split(" "):[];else if(l&&l.length)return void Pe(e,"Substitutions should be of the form :s/pattern/replace/");if(i&&(o=i[0],a=parseInt(i[1]),o&&(o.indexOf("c")!=-1&&(u=!0,o.replace("c","")),o.indexOf("g")!=-1&&(f=!0,o.replace("g","")),r=r+"/"+o)),r)try{De(e,r,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+r)}if(void 0===(c=c||wt.lastSubstituteReplacePart))return void Pe(e,"No previous substitute regular expression");var d=Me(e),h=d.getQuery(),p=void 0!==t.line?t.line:e.getCursor().line,m=t.lineEnd||p;p==e.firstLine()&&m==e.lastLine()&&(m=1/0),a&&(p=m,m=p+a-1);var g=R(e,n(p,0)),v=e.getSearchCursor(h,g);Ve(e,u,f,p,m,v,h,c,t.callback)},redo:e.commands.redo,undo:e.commands.undo,write:function(t){
|
13 |
-
e.commands.save?e.commands.save(t):t.save&&t.save()},nohlsearch:function(e){He(e)},yank:function(e){var t=j(e.getCursor()),r=t.line,n=e.getLine(r);wt.registerController.pushText("0","yank",n,!0,!0)},delmarks:function(t,r){if(!r.argString||!Y(r.argString))return void Pe(t,"Argument required");for(var n=t.state.vim,i=new e.StringStream(Y(r.argString));!i.eol();){i.eatSpace();var o=i.pos;if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+r.argString.substring(o));var a=i.next();if(i.match("-",!0)){if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+r.argString.substring(o));var l=a,s=i.next();if(!(h(l)&&h(s)||g(l)&&g(s)))return void Pe(t,"Invalid argument: "+l+"-");var c=l.charCodeAt(0),u=s.charCodeAt(0);if(c>=u)return void Pe(t,"Invalid argument: "+r.argString.substring(o));for(var f=0;f<=u-c;f++){var d=String.fromCharCode(c+f);delete n.marks[d]}}else delete n.marks[a]}}},Rt=new Nt;return e.keyMap.vim={attach:l,detach:a,call:s},b("insertModeEscKeysTimeout",200,"number"),e.keyMap["vim-insert"]={fallthrough:["default"],attach:l,detach:a,call:s},e.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:l,detach:a,call:s},S(),Ct}()}),console.log(window.heshOptions),function(e,t,r,n,i){"use strict";function o(){te.theme=i.theme,te.lineNumbers=!!i.lineNumbers,te.foldGutter=!!i.foldGutter,te.gutters=te.foldGutter?["CodeMirror-linenumbers","CodeMirror-foldgutter"]:[],te.tabSize=te.indentUnit=+i.tabSize,te.lineWrapping=!!i.lineWrapping,te.matchBrackets=!!i.matchBrackets,te.autoCloseTags=!!i.autoCloseTags,te.autoCloseBrackets=!!i.autoCloseBrackets,te.highlightSelectionMatches=!!i.highlightSelectionMatches,te.matchTags=!!i.matchTags&&{bothTags:!0},te.scrollbarStyle=i.scrollbarStyle?"overlay":null,te.keyMap=i.keyMap,te.autofocus=e.getElementById("title")&&!!e.getElementById("title").value&&e.getElementById("title").value.length>0}function a(e){var r=!1;return function(){var n=this,i=arguments;r||(e.apply(n,i),r=!0,t.requestAnimationFrame(function(){t.requestAnimationFrame(function(){r=!1})}))}}function l(){for(var e=-1;e<U.children.length;e++){var t=e<0?K:U.children[e];null!=t&&(t.style.position="",t.style.top="",t.style.left="",t.style.right="",t.style.width="")}}function s(){for(var t=$.getBoundingClientRect(),r=-1;r<U.children.length;r++){var n=r<0?K:U.children[r];null!=n&&(n.style.position="fixed",n.style.top=t.bottom+"px",n.style.right=e.documentElement.getBoundingClientRect().width-t.right+"px",n.id.match(/toggle/gi)||(n.style.left=t.left+"px",n.style.width="auto"))}}function c(){for(var e=$.getBoundingClientRect(),t=H.getWrapperElement().getBoundingClientRect(),r=-1;r<U.children.length;r++){var n=r<0?K:U.children[r];null!=n&&(n.style.position="absolute",n.style.top=(t.top-e.bottom)*-1+"px",n.style.left="",n.style.right="",n.style.width="")}}function u(e){f();var t=ee.settingsPosition();if(t!==ee.previousSettingsPosition||e&&"resize"===e.type)switch(_(),t){case"top":l();break;case"middle":s();break;case"bottom":c();break;case"normal":case"none":}}function f(){if(V){var r=V.getBoundingClientRect().top,n=e.getElementById("post-status-info").getBoundingClientRect().top,i=n-r,o=t.innerHeight-r;V.style.maxHeight=Math.min(i,o)-6+"px",ne&&(V.style.height=V.style.maxHeight)}}function d(){V.style.maxHeight="",ne&&(V.style.height="")}function h(){Z&&(Z.addEventListener("change",p),p())}function p(){ee.isFullHeight()?(H.setOption("viewportMargin",1/0),H.on("change",_),t.addEventListener("scroll",re),t.addEventListener("resize",re),t.addEventListener("resize",ae),H.getWrapperElement().style.height="auto",u(),L(),t.setTimeout(function(){f(),_()},100)):(H.setOption("viewportMargin",te.viewportMargin),H.off("change",_),t.removeEventListener("scroll",re),t.removeEventListener("resize",re),t.removeEventListener("resize",ae),H.getWrapperElement().style.marginTop="",d(),l(),M())}function m(e){for(var t=0;t<e.length;t++){var r=e[t];if(r.addedNodes[0]&&r.addedNodes[0].classList.contains("CodeMirror-dialog")){K=r.addedNodes[0];for(var n=K.getElementsByTagName("button"),i=0;i<n.length;i++){n[i].classList="button button-small"}}else K=void 0}}function g(){H.getWrapperElement().appendChild(U),U.style.display="block",U.querySelector(".CodeMirror-settings__toggle").addEventListener("click",v),U.querySelector(".CodeMirror-settings__toggle-advanced").addEventListener("click",v),new MutationObserver(m).observe(H.getWrapperElement(),{childList:!0});for(var e=U.querySelectorAll(".CodeMirror-settings__option"),t=0;t<e.length;t++){var r=e[t];r.addEventListener("change",k),r.addEventListener("change",x)}}function v(e){y(e.target.id.match(/advanced/gi)?U.classList.contains("open-advanced")?"open":"advanced":U.classList.contains("open")?"closed":"open")}function y(e){switch(e){case"open":U.classList.add("open"),U.classList.remove("open-advanced"),U.classList.remove("closed");break;case"advanced":U.classList.add("open"),U.classList.add("open-advanced"),U.classList.remove("closed");break;default:U.classList.remove("open"),U.classList.remove("open-advanced"),U.classList.add("closed")}}function b(){ee.charWidth=H.defaultCharWidth()*(i.fontSize/13)}function x(e){var t=+e.target.value;switch(t=isNaN(t)?e.target.value:t,"checkbox"===e.target.type&&(t=e.target.checked),e.target.id){case"fontSize":i.fontSize=t,j.style.fontSize=t+"px",b(),H.refresh();break;case"lineHeight":i.lineHeight=t,j.style.lineHeight=t+"em",H.refresh();break;case"matchTags":i.matchTags=t,H.setOption("matchTags",t?{bothTags:!0}:null);break;case"scrollbarStyle":i.scrollbarStyle=t,H.setOption("scrollbarStyle",t?"overlay":null);break;case"foldGutter":H.setOption("gutters",t?["CodeMirror-linenumbers","CodeMirror-foldgutter"]:[]);case"tabSize":H.setOption("indentUnit",t);default:i[e.target.id]=t,H.setOption(e.target.id,t)}switch(e.target.id){case"lineNumbers":t&&i.foldGutter&&H.setOption("gutters",["CodeMirror-linenumbers","CodeMirror-foldgutter"])}}function w(e,t){j.style.fontSize=e+"px",i.fontSize=e,j.style.lineHeight=t+"em",i.lineHeight=t,b(),H.refresh()}function k(){var e=n("#CodeMirror-settings__form").serializeArray();n.post(i.ajaxUrl,e,function(e){})}function C(){$.insertAdjacentHTML("afterbegin",'<button type="button" id="cm_content_fullscreen" class="ed_button qt-dfw" title="Full Screen"></button>'),e.getElementById("cm_content_fullscreen").onclick=S}function S(e){e=e===!0,ee.isFullHeight()?ie.classList.remove(oe):(ie.classList.contains(oe)||e?ie.classList.remove(oe):ie.classList.add(oe),H.focus())}function _(){H.save(),H.getTextArea().style.height=H.getWrapperElement().getBoundingClientRect().height+"px"}function M(){H.getWrapperElement().style.height=H.getTextArea().style.height}function L(){H.getWrapperElement().style.marginTop=$.offsetHeight+"px"}function T(){e.getElementById("content-resize-handle").addEventListener("mousedown",function(){e.addEventListener("mousemove",M)}),e.addEventListener("mouseup",function(){e.removeEventListener("mousemove",M)})}function A(){function t(e){l=r+(e.pageY-o),H.getWrapperElement().style.height=Math.max(n,l)+"px"}var r=500,n=200;H.getWrapperElement().style.height=r+"px";var i=e.createElement("div");i.className="hesh-content-resize-handle",i.id="content-resize-handle",H.getWrapperElement().appendChild(i);var o,a=!1,l=r;e.getElementById("content-resize-handle").addEventListener("mousedown",function(r){o=r.pageY,a=!0,e.addEventListener("mousemove",t),r.preventDefault()}),e.addEventListener("mouseup",function(){a=!1,r=Math.max(n,l),e.removeEventListener("mousemove",t),H.refresh()})}function O(){var t=e.querySelector(".fileedit-sub .alignleft"),r=t.textContent.match(/\.[a-z\d]{2,}/gi),n=r[r.length-1].match(/[a-z]*/gi)[1],i={php:"php",css:"css",xml:"xml",html:"htmlmixed",js:"javascript",json:"javascript"};te.mode=i[n]}function E(t){var r="; "+e.cookie,n=r.split("; "+t+"=");if(2===n.length)return n.pop().split(";").shift()}function I(){var e=(E("hesh_plugin_selection_state")||"0,0,0,0,0,0,0").split(",");J===e[0]&&(H.doc.setSelection({line:+e[1],ch:+e[2]},{line:+e[3],ch:+e[4]},{scroll:!1}),H.scrollTo(+e[5],+e[6]))}function N(){var t=H.doc.listSelections()[0],r=H.getScrollInfo();e.cookie="hesh_plugin_selection_state="+J+","+t.anchor.line+","+t.anchor.ch+","+t.head.line+","+t.head.ch+","+r.left+","+r.top}function P(){var t=".CodeMirror pre > * { text-indent: 0px; }",n=e.head||e.getElementsByTagName("head")[0],i=e.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(e.createTextNode(t)),n.appendChild(i);H.on("renderLine",function(e,t,n){var i=r.countColumn(t.text,null,e.getOption("tabSize"))*ee.charWidth;n.style.textIndent="-"+i+"px",n.style.paddingLeft=4+i+"px"}),H.refresh()}function R(){var e,t,r,n=H.doc.listSelections()[0];e=t=r=0,H.doc.eachLine(function(i){r<=n.head.line-1&&(e+=i.text.length+1),r<=n.anchor.line-1&&(t+=i.text.length+1),r++}),e+=n.head.ch,t+=n.anchor.ch,H.getTextArea().setSelectionRange(Math.min(t,e),Math.max(t,e)),H.getTextArea().focus(),B()}function B(){var e=H.getTextArea().value.length,r=t.setInterval(function(){e!==H.getTextArea().value.length&&(t.clearInterval(r),z())},10),n=function(){t.clearInterval(r),H.off("focus",n)};H.on("focus",n)}function z(){var e=H.getTextArea().selectionStart,r=H.getTextArea().selectionEnd,n=H.getScrollInfo(),i={top:t.pageYOffset,left:t.pageXOffset};H.doc.setValue(H.getTextArea().value),H.focus();for(var o=0,a=0,l=0,s=e,c=r,u=H.getLineHandle(l).text.length+1;u<=s&&u<=c;)l++,u<=s&&(s-=u,o=l),u<=c&&(c-=u,a=l),u=H.getLineHandle(l).text.length+1;H.doc.setSelection({line:o,ch:s},{line:a,ch:c},{scroll:!1}),t.scrollTo(i.left,i.top),H.scrollTo(n.left,n.top),H.save()}function D(){var e=t.send_to_editor,r=function(r){ee.isActive()&&"content"===t.wpActiveEditor?(H.replaceSelection(r),H.save()):e(r)};t.send_to_editor=r}function W(){ee.isActive()||(o(),ee.isThemeOrPlugin&&O(),H=r.fromTextArea(G,te),j=H.getWrapperElement().querySelector(".CodeMirror-code"),G.classList.add("CodeMirror-mirrored"),H.on("change",function(){H.save()}),I(),H.on("cursorActivity",le),H.on("scroll",le),ee.isThemeOrPlugin?(A(),Q=e.getElementById("submit")):($.addEventListener("mousedown",R),D(),T(),h(),C()),g(),w(+i.fontSize,+i.lineHeight),P())}function q(){ee.isActive()&&(y("closed"),H.toTextArea())}function F(){ee.isThemeOrPlugin?W():ee.isVisualEnabled?(X.addEventListener("click",function(){t.setTimeout(W,0)}),Y.addEventListener("click",q),ee.isVisualActive()||W()):(W(),e.body.className+=" visual-editor-is-disabled")}var H,j,K,U=e.getElementById("CodeMirror-settings"),V=e.getElementById("CodeMirror-settings__form"),$=e.getElementById("ed_toolbar"),G=e.getElementById("content")||e.getElementById("newcontent"),X=e.getElementById("content-html"),Y=e.getElementById("content-tmce"),Q=e.getElementById("save-post")||e.getElementById("publish"),J=null!=e.getElementById("post_ID")?e.getElementById("post_ID").value:0,Z=e.getElementById("editor-expand-toggle"),ee={isVisualEnabled:null!=e.getElementById("content-tmce"),isThemeOrPlugin:null!=e.getElementById("newcontent"),isActive:function(){return null!=e.getElementsByClassName("CodeMirror")[0]},isVisualActive:function(){return null!=e.getElementsByClassName("tmce-active")[0]},isFullHeight:function(){return!!Z&&Z.checked},previousSettingsPosition:"none",settingsPosition:function(){var e,r=this;return e=$?"absolute"===$.style.position?"0px"===$.style.top?"top":"bottom":"fixed"===$.style.position?"middle":"normal":"none",t.setTimeout(function(){r.previousSettingsPosition=e},0),e},charWidth:0},te={mode:"wordpresspost",tabMode:"indent",indentWithTabs:!0,enterMode:"keep",styleActiveLine:!0,electricChars:!1,showCursorWhenSelecting:!0,viewportMargin:10,extraKeys:{F11:function(){S()},Esc:function(){S(!0)},"Ctrl-S":function(){Q.click()},"Cmd-S":function(){Q.click()}}},re=a(u),ne=!!navigator.userAgent.match(/Trident/gi),ie=e.getElementById("wp-content-editor-container"),oe="heshFullscreen",ae=a(L),le=a(N);"complete"!==e.readyState?t.addEventListener?t.addEventListener("load",F,!1):t.attachEvent&&t.attachEvent("onload",F):F()}(document,window,window.CodeMirror,window.jQuery,window.heshOptions);
|
1 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function n(e,n){return t(e).appendChild(n)}function r(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,n,i){var o=r(e,t,n,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function s(t,n){var r=t.className;e(n).test(r)||(t.className+=(r?" ":"")+n)}function l(t,n){for(var r=t.split(" "),i=0;i<r.length;i++)r[i]&&!e(r[i]).test(n)&&(n+=" "+r[i]);return n}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,n){t||(t={});for(var r in e)!e.hasOwnProperty(r)||n===!1&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function f(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/))==-1&&(t=e.length);for(var o=r||0,a=i||0;;){var s=e.indexOf("\t",o);if(s<0||s>=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}function d(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}function h(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("\t",r);o==-1&&(o=e.length);var a=o-r;if(o==e.length||i+a>=t)return r+Math.min(a,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}}function p(e){for(;Wa.length<=e;)Wa.push(m(Wa)+" ");return Wa[e]}function m(e){return e[e.length-1]}function g(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function v(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}function y(){}function b(e,t){var n;return Object.create?n=Object.create(e):(y.prototype=e,n=new y),t&&u(t,n),n}function x(e){return/\w/.test(e)||e>""&&(e.toUpperCase()!=e.toLowerCase()||qa.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&x(e))||t.test(e):x(e)}function k(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function C(e){return e.charCodeAt(0)>=768&&Ha.test(e)}function S(e,t,n){for(;(n<0?t>0:t<e.length)&&C(e.charAt(t));)t+=n;return t}function _(e,t,n){for(;;){if(Math.abs(t-n)<=1)return e(t)?t:n;var r=Math.floor((t+n)/2);e(r)?n=r:t=r}}function M(e,t,n){var o=this;this.input=n,o.scrollbarFiller=r("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=r("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=r("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=r("div",null,"CodeMirror-cursors"),o.measure=r("div",null,"CodeMirror-measure"),o.lineMeasure=r("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=r("div",[a],null,"position: relative"),o.sizer=r("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=r("div",null,null,"position: absolute; height: "+Ra+"px; width: 1px;"),o.gutters=r("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=r("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=r("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),fa&&da<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),ha||sa&&ka||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function L(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function T(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function A(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function O(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function E(e){if(null==e.parent)return null;for(var t=e.parent,n=d(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function N(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var a=0;a<e.lines.length;++a){var s=e.lines[a],l=s.height;if(t<l)break;t-=l}return n+a}function I(e,t){return t>=e.first&&t<e.first+e.size}function P(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function R(e,t,n){if(void 0===n&&(n=null),!(this instanceof R))return new R(e,t,n);this.line=e,this.ch=t,this.sticky=n}function B(e,t){return e.line-t.line||e.ch-t.ch}function z(e,t){return e.sticky==t.sticky&&0==B(e,t)}function D(e){return R(e.line,e.ch)}function F(e,t){return B(e,t)<0?t:e}function W(e,t){return B(e,t)<0?e:t}function q(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function H(e,t){if(t.line<e.first)return R(e.first,0);var n=e.first+e.size-1;return t.line>n?R(n,L(e,n).text.length):j(t,L(e,t.line).text.length)}function j(e,t){var n=e.ch;return null==n||n>t?R(e.line,t):n<0?R(e.line,0):e}function K(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=H(e,t[r]);return n}function U(){ja=!0}function V(){Ka=!0}function $(e,t,n){this.marker=e,this.from=t,this.to=n}function G(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function X(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function Y(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Q(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(s||o.from==t&&"bookmark"==a.type&&(!n||!o.marker.insertLeft)){var l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push(new $(a,o.from,l?null:o.to))}}return r}function J(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(s||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push(new $(a,l?null:o.from-t,null==o.to?null:o.to-t))}}return r}function Z(e,t){if(t.full)return null;var n=I(e,t.from.line)&&L(e,t.from.line).markedSpans,r=I(e,t.to.line)&&L(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,a=0==B(t.from,t.to),s=Q(n,i,a),l=J(r,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(s)for(var f=0;f<s.length;++f){var d=s[f];if(null==d.to){var h=G(l,d.marker);h?c&&(d.to=null==h.to?null:h.to+u):d.to=i}}if(l)for(var p=0;p<l.length;++p){var g=l[p];if(null!=g.to&&(g.to+=u),null==g.from){var v=G(s,g.marker);v||(g.from=u,c&&(s||(s=[])).push(g))}else g.from+=u,c&&(s||(s=[])).push(g)}s&&(s=ee(s)),l&&l!=s&&(l=ee(l));var y=[s];if(!c){var b,x=t.text.length-2;if(x>0&&s)for(var w=0;w<s.length;++w)null==s[w].to&&(b||(b=[])).push(new $(s[w].marker,null,null));for(var k=0;k<x;++k)y.push(b);y.push(l)}return y}function ee(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&n.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function te(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&d(r,n)!=-1||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var a=r[o],s=a.find(0),l=0;l<i.length;++l){var c=i[l];if(!(B(c.to,s.from)<0||B(c.from,s.to)>0)){var u=[l,1],f=B(c.from,s.from),h=B(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function ne(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function re(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function ae(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=B(r.from,i.from)||ie(e)-ie(t);if(o)return-o;var a=B(r.to,i.to)||oe(e)-oe(t);return a?a:t.id-e.id}function se(e,t){var n,r=Ka&&e.markedSpans;if(r)for(var i=void 0,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!n||ae(n,i.marker)<0)&&(n=i.marker);return n}function le(e){return se(e,!0)}function ce(e){return se(e,!1)}function ue(e,t,n,r,i){var o=L(e,t),a=Ka&&o.markedSpans;if(a)for(var s=0;s<a.length;++s){var l=a[s];if(l.marker.collapsed){var c=l.marker.find(0),u=B(c.from,n)||ie(l.marker)-ie(i),f=B(c.to,r)||oe(l.marker)-oe(i);if(!(u>=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?B(c.to,n)>=0:B(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?B(c.from,r)<=0:B(c.from,r)<0)))return!0}}}function fe(e){for(var t;t=le(e);)e=t.find(-1,!0).line;return e}function de(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function he(e){for(var t,n;t=ce(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function pe(e,t){var n=L(e,t),r=fe(n);return n==r?t:E(r)}function me(e,t){if(t>e.lastLine())return t;var n,r=L(e,t);if(!ge(e,r))return t;for(;n=ce(r);)r=n.find(1,!0).line;return E(r)+1}function ge(e,t){var n=Ka&&t.markedSpans;if(n)for(var r=void 0,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&ve(e,t,r))return!0}}function ve(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return ve(e,r.line,G(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&ve(e,t,i))return!0}function ye(e){e=fe(e);for(var t=0,n=e.parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;n=o,o=n.parent)for(var a=0;a<o.children.length;++a){var s=o.children[a];if(s==n)break;t+=s.height}return t}function be(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=le(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=ce(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,r=o.to.line,n+=r.text.length-o.to.ch}return n}function xe(e){var t=e.display,n=e.doc;t.maxLine=L(n,n.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var n=be(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function we(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<n&&a.to>t||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr"),i=!0)}i||r(t,n,"ltr")}function ke(e,t,n){var r;Ua=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:Ua=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:Ua=i)}return null!=r?r:Ua}function Ce(e,t){var n=e.order;return null==n&&(n=e.order=Va(e.text,t)),n}function Se(e,t,n){var r=S(e.text,t+n,n);return r<0||r>e.text.length?null:r}function _e(e,t,n){var r=Se(e,t.ch,n);return null==r?null:new R(t.line,r,n<0?"after":"before")}function Me(e,t,n,r,i){if(e){var o=Ce(n,t.doc.direction);if(o){var a,s=i<0?m(o):o[0],l=i<0==(1==s.level),c=l?"after":"before";if(s.level>0){var u=Qt(t,n);a=i<0?n.text.length-1:0;var f=Jt(t,u,a).top;a=_(function(e){return Jt(t,u,e).top==f},i<0==(1==s.level)?s.from:s.to-1,a),"before"==c&&(a=Se(n,a,1))}else a=i<0?s.to:s.from;return new R(r,a,c)}}return new R(r,i<0?n.text.length:0,i<0?"before":"after")}function Le(e,t,n,r){var i=Ce(t,e.doc.direction);if(!i)return _e(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ke(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from<n.ch))return _e(t,n,r);var s,l=function(e,n){return Se(t,e instanceof R?e.ch:e,n)},c=function(n){return e.options.lineWrapping?(s=s||Qt(e,t),vn(e,t,s,n)):{begin:0,end:t.text.length}},u=c("before"==n.sticky?l(n,-1):n.ch);if("rtl"==e.doc.direction||1==a.level){var f=1==a.level==r<0,d=l(n,f?1:-1);if(null!=d&&(f?d<=a.to&&d<=u.end:d>=a.from&&d>=u.begin)){var h=f?"before":"after";return new R(n.line,d,h)}}var p=function(e,t,r){for(var o=function(e,t){return t?new R(n.line,l(e,1),"before"):new R(n.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],s=t>0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c<a.to)return o(c,s);if(c=s?a.from:l(a.to,-1),r.begin<=c&&c<r.end)return o(c,s)}},m=p(o+r,r,u);if(m)return m;var g=r>0?u.end:l(u.begin,-1);return null==g||r>0&&g==t.text.length||!(m=p(r>0?0:i.length-1,r,c(g)))?null:m}function Te(e,t){return e._handlers&&e._handlers[t]||$a}function Ae(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers,i=r&&r[t];if(i){var o=d(i,n);o>-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Oe(e,t){var n=Te(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function Ee(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Oe(e,n||t.type,e,t),ze(t)||t.codemirrorIgnore}function Ne(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)d(n,t[r])==-1&&n.push(t[r])}function Ie(e,t){return Te(e,t).length>0}function Pe(e){e.prototype.on=function(e,t){Ga(this,e,t)},e.prototype.off=function(e,t){Ae(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ze(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){Re(e),Be(e)}function Fe(e){return e.target||e.srcElement}function We(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Ca&&e.ctrlKey&&1==t&&(t=3),t}function qe(e){if(null==Ia){var t=r("span","");n(e,r("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ia=t.offsetWidth<=1&&t.offsetHeight>2&&!(fa&&da<8))}var i=Ia?r("span",""):r("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function He(e){if(null!=Pa)return Pa;var r=n(e,document.createTextNode("AخA")),i=La(r,0,1).getBoundingClientRect(),o=La(r,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(Pa=o.right-i.right<3)}function je(e){if(null!=Za)return Za;var t=n(e,r("span","x")),i=t.getBoundingClientRect(),o=La(t,0,1).getBoundingClientRect();return Za=Math.abs(i.left-o.left)>1}function Ke(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),es[e]=t}function Ue(e,t){ts[e]=t}function Ve(e){if("string"==typeof e&&ts.hasOwnProperty(e))e=ts[e];else if(e&&"string"==typeof e.name&&ts.hasOwnProperty(e.name)){var t=ts[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ve("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ve("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function $e(e,t){t=Ve(t);var n=es[t.name];if(!n)return $e(e,"text/plain");var r=n(e,t);if(ns.hasOwnProperty(t.name)){var i=ns[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}function Ge(e,t){u(t,ns.hasOwnProperty(e)?ns[e]:ns[e]={})}function Xe(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Ye(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Qe(e,t,n){return!e.startState||e.startState(t,n)}function Je(e,t,n,r){var i=[e.state.modeGen],o={};at(e,t.text,e.doc.mode,n,function(e,t){return i.push(e,t)},o,r);for(var a=n.state,s=0;s<e.state.overlays.length;++s)!function(r){var a=e.state.overlays[r],s=1,l=0;n.state=!0,at(e,t.text,a.mode,n,function(e,t){for(var n=s;l<e;){var r=i[s];r>e&&i.splice(s,1,e,i[s+1],r),s+=2,l=Math.min(e,r)}if(t)if(a.opaque)i.splice(n,s-n,e,"overlay "+t),s=n+2;else for(;n<s;n+=2){var o=i[n+1];i[n+1]=(o?o+" ":"")+"overlay "+t}},o)}(s);return n.state=a,{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ze(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=et(e,E(t)),i=t.text.length>e.options.maxHighlightLength&&Xe(e.doc.mode,r.state),o=Je(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function et(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new os(r,!0,t);var o=st(e,t,n),a=o>r.first&&L(r,o-1).stateAfter,s=a?os.fromSaved(r,a,o):new os(r,Qe(r.mode),o);return r.iter(o,t,function(n){tt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&r<i.viewTo?s.save():null,s.nextLine()}),n&&(r.modeFrontier=s.line),s}function tt(e,t,n,r){var i=e.doc.mode,o=new rs(t,e.options.tabSize,n);for(o.start=o.pos=r||0,""==t&&nt(i,n.state);!o.eol();)rt(i,o,n.state),o.start=o.pos}function nt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var n=Ye(e,t);return n.mode.blankLine?n.mode.blankLine(n.state):void 0}}function rt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Ye(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function it(e,t,n,r){var i,o=e.doc,a=o.mode;t=H(o,t);var s,l=L(o,t.line),c=et(e,t.line,n),u=new rs(l.text,e.options.tabSize,c);for(r&&(s=[]);(r||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=rt(a,u,c.state),r&&s.push(new as(u,i,Xe(o.mode,c.state)));return r?s:new as(u,i,c.state)}function ot(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?"bgClass":"textClass";null==t[r]?t[r]=n[2]:new RegExp("(?:^|s)"+n[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+n[2])}return e}function at(e,t,n,r,i,o,a){var s=n.flattenSpans;null==s&&(s=e.options.flattenSpans);var l,c=0,u=null,f=new rs(t,e.options.tabSize,r),d=e.options.addModeClass&&[null];for(""==t&&ot(nt(n,r.state),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(s=!1,a&&tt(e,t,r,f.pos),f.pos=t.length,l=null):l=ot(rt(n,f,r.state,d),o),d){var h=d[0].name;h&&(l="m-"+(l?h+" "+l:h))}if(!s||u!=l){for(;c<f.start;)c=Math.min(f.start,c+5e3),i(c,u);u=l}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}function st(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var l=L(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof is?c.lookAhead:0)<=o.modeFrontier))return s;var u=f(l.text,null,e.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function lt(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;r>n;r--){var i=L(e,r).stateAfter;if(i&&(!(i instanceof is)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}}function ct(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),ne(e),re(e,n);var i=r?r(e):1;i!=e.height&&O(e,i)}function ut(e){e.parent=null,ne(e)}function ft(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?us:cs;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function dt(e,t){var n=i("span",null,null,ha?"padding-right: .1px":null),r={pre:i("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(fa||ha)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,s=void 0;r.pos=0,r.addToken=pt,He(e.display.measure)&&(s=Ce(a,e.doc.direction))&&(r.addToken=gt(r.addToken,s)),r.map=[];yt(a,r,Ze(e,a,t!=e.display.externalMeasured&&E(a))),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=l(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=l(a.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(qe(e.display.measure))),0==o?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(ha){var c=r.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Oe(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=l(r.pre.className,r.textClass||"")),r}function ht(e){var t=r("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function pt(e,t,n,i,o,a,s){if(t){var l,c=e.splitSpaces?mt(t,e.trailingSpace):t,u=e.cm.state.specialChars,f=!1;if(u.test(t)){l=document.createDocumentFragment();for(var d=0;;){u.lastIndex=d;var h=u.exec(t),m=h?h.index-d:t.length-d;if(m){var g=document.createTextNode(c.slice(d,d+m));fa&&da<9?l.appendChild(r("span",[g])):l.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;d+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=l.appendChild(r("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?(v=l.appendChild(r("span","\r"==h[0]?"␍":"","cm-invalidchar")),v.setAttribute("cm-text",h[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(h[0]),v.setAttribute("cm-text",h[0]),fa&&da<9?l.appendChild(r("span",[v])):l.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,l=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,l),fa&&da<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),n||i||o||f||s){var x=n||"";i&&(x+=i),o&&(x+=o);var w=r("span",[l],x,s);return a&&(w.title=a),e.content.appendChild(w)}e.content.appendChild(l)}}function mt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),r+=o,n=" "==o}return r}function gt(e,t){return function(n,r,i,o,a,s,l){i=i?i+" cm-force-border":"cm-force-border";for(var c=n.pos,u=c+r.length;;){for(var f=void 0,d=0;d<t.length&&(f=t[d],!(f.to>c&&f.from<=c));d++);if(f.to>=u)return e(n,r,i,o,a,s,l);e(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function vt(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function yt(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,l,c,u,f,d,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){l=c=u=f=s="",d=null,v=1/0;for(var y=[],b=void 0,x=0;x<r.length;++x){var w=r[x],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?y.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(l+=" "+k.className),k.css&&(s=(s?s+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(b||(b=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!d||ae(d.marker,k)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!d||d.from==p)for(var S=0;S<y.length;++S)vt(t,0,y[S]);if(d&&(d.from||0)==p){if(vt(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(p>=h)break;for(var _=Math.min(h,v);;){if(g){var M=p+g.length;if(!d){var L=M>_?g.slice(0,_-p):g;t.addToken(t,L,a?a+l:l,u,p+L.length==v?c:"",f,s)}if(M>=_){g=g.slice(_-p),p=_;break}p=M,u=""}g=i.slice(o,o=n[m++]),a=ft(n[m++],t.cm.options)}}else for(var T=1;T<n.length;T+=2)t.addToken(t,i.slice(o,o=n[T]),ft(n[T+1],t.cm.options))}function bt(e,t,n){this.line=t,this.rest=he(t),this.size=this.rest?E(m(this.rest))-n+1:1,this.node=this.text=null,this.hidden=ge(e,t)}function xt(e,t,n){for(var r,i=[],o=t;o<n;o=r){var a=new bt(e.doc,L(e.doc,o),o);r=o+a.size,i.push(a)}return i}function wt(e){fs?fs.ops.push(e):e.ownsGroup=fs={ops:[e],delayedCallbacks:[]}}function kt(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}function Ct(e,t){var n=e.ownsGroup;if(n)try{kt(n)}finally{fs=null,t(n)}}function St(e,t){var n=Te(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);fs?r=fs.delayedCallbacks:ds?r=ds:(r=ds=[],setTimeout(_t,0));for(var o=0;o<n.length;++o)!function(e){r.push(function(){return n[e].apply(null,i)})}(o)}}function _t(){var e=ds;ds=null;for(var t=0;t<e.length;++t)e[t]()}function Mt(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?Ot(e,t):"gutter"==o?Nt(e,t,n,r):"class"==o?Et(e,t):"widget"==o&&It(e,t,r)}t.changes=null}function Lt(e){return e.node==e.text&&(e.node=r("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),fa&&da<8&&(e.node.style.zIndex=2)),e.node}function Tt(e,t){var n=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(n&&(n+=" CodeMirror-linebackground"),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var i=Lt(t);t.background=i.insertBefore(r("div",null,n),i.firstChild),e.display.input.setUneditable(t.background)}}function At(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):dt(e,t)}function Ot(e,t){var n=t.text.className,r=At(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,Et(e,t)):n&&(t.text.className=n)}function Et(e,t){Tt(e,t),t.line.wrapClass?Lt(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var n=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=n||""}function Nt(e,t,n,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Lt(t);t.gutterBackground=r("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var s=Lt(t),l=t.gutter=r("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(l),s.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=l.appendChild(r("div",P(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],f=a.hasOwnProperty(u)&&a[u];f&&l.appendChild(r("div",[f],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function It(e,t,n){t.alignable&&(t.alignable=null);for(var r=t.node.firstChild,i=void 0;r;r=i)i=r.nextSibling,"CodeMirror-linewidget"==r.className&&t.node.removeChild(r);Rt(e,t,n)}function Pt(e,t,n,r){var i=At(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Et(e,t),Nt(e,t,n,r),Rt(e,t,r),t.node}function Rt(e,t,n){if(Bt(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)Bt(e,t.rest[r],t,n,!1)}function Bt(e,t,n,i,o){if(t.widgets)for(var a=Lt(n),s=0,l=t.widgets;s<l.length;++s){var c=l[s],u=r("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),zt(c,u,n,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,n.gutter||n.text):a.appendChild(u),St(c,"redraw")}}function zt(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function Dt(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),n(t.display.measure,r("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Ft(e,t){for(var n=Fe(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&"true"==n.getAttribute("cm-ignore-events")||n.parentNode==e.sizer&&n!=e.mover)return!0}function Wt(e){return e.lineSpace.offsetTop}function qt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ht(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=n(e.measure,r("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function jt(e){return Ra-e.display.nativeBarWidth}function Kt(e){return e.display.scroller.clientWidth-jt(e)-e.display.barWidth}function Ut(e){return e.display.scroller.clientHeight-jt(e)-e.display.barHeight}function Vt(e,t,n){var r=e.options.lineWrapping,i=r&&Kt(e);if(!t.measure.heights||r&&t.measure.width!=i){var o=t.measure.heights=[];if(r){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),s=0;s<a.length-1;s++){var l=a[s],c=a[s+1];Math.abs(l.bottom-c.bottom)>2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function $t(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(E(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Gt(e,t){t=fe(t);var r=E(t),i=e.display.externalMeasured=new bt(e.doc,t,r);i.lineN=r;var o=i.built=dt(e,i);return i.text=o.pre,
|
2 |
+
n(e.display.lineMeasure,o.pre),i}function Xt(e,t,n,r){return Jt(e,Qt(e,t),n,r)}function Yt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Mn(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function Qt(e,t){var n=E(t),r=Yt(e,n);r&&!r.text?r=null:r&&r.changes&&(Mt(e,r,n,wn(e)),e.curOp.forceUpdate=!0),r||(r=Gt(e,t));var i=$t(r,t,n);return{line:t,view:r,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Jt(e,t,n,r,i){t.before&&(n=-1);var o,a=n+(r||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Vt(e,t.view,t.rect),t.hasHeights=!0),o=tn(e,t,n,r),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function Zt(e,t,n){for(var r,i,o,a,s,l,c=0;c<e.length;c+=3)if(s=e[c],l=e[c+1],t<s?(i=0,o=1,a="left"):t<l?(i=t-s,o=i+1):(c==e.length-3||t==l&&e[c+3]>t)&&(o=l-s,i=o-1,t>=l&&(a="right")),null!=i){if(r=e[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)r=e[2+(c+=3)],a="right";break}return{node:r,start:i,end:o,collapse:a,coverStart:s,coverEnd:l}}function en(e,t){var n=hs;if("left"==t)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;i>=0&&(n=e[i]).left==n.right;i--);return n}function tn(e,t,n,r){var i,o=Zt(t.map,n,r),a=o.node,s=o.start,l=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;s&&C(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+l<o.coverEnd&&C(t.line.text.charAt(o.coverStart+l));)++l;if(i=fa&&da<9&&0==s&&l==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():en(La(a,s,l).getClientRects(),r),i.left||i.right||0==s)break;l=s,s-=1,c="right"}fa&&da<11&&(i=nn(e.display.measure,i))}else{s>0&&(c=r="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==r?f.length-1:0]:a.getBoundingClientRect()}if(fa&&da<9&&!s&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+xn(e.display),top:d.top,bottom:d.bottom}:hs}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p),x}function nn(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!je(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}function rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function on(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var n=0;n<e.display.view.length;n++)rn(e.display.view[n])}function an(e){on(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function sn(){return ma&&wa?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ln(){return ma&&wa?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function cn(e,t,n,r,i){if(!i&&t.widgets)for(var o=0;o<t.widgets.length;++o)if(t.widgets[o].above){var a=Dt(t.widgets[o]);n.top+=a,n.bottom+=a}if("line"==r)return n;r||(r="local");var s=ye(t);if("local"==r?s+=Wt(e.display):s-=e.display.viewOffset,"page"==r||"window"==r){var l=e.display.lineSpace.getBoundingClientRect();s+=l.top+("window"==r?0:ln());var c=l.left+("window"==r?0:sn());n.left+=c,n.right+=c}return n.top+=s,n.bottom+=s,n}function un(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=sn(),i-=ln();else if("local"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:r-a.left,top:i-a.top}}function fn(e,t,n,r,i){return r||(r=L(e.doc,t.line)),cn(e,r,Xt(e,r,t.ch,i),n)}function dn(e,t,n,r,i,o){function a(t,a){var s=Jt(e,i,t,a?"right":"left",o);return a?s.left=s.right:s.right=s.left,cn(e,r,s,n)}function s(e,t,n){var r=l[t],i=r.level%2!=0;return a(n?e-1:e,i!=n)}r=r||L(e.doc,t.line),i||(i=Qt(e,r));var l=Ce(r,e.doc.direction),c=t.ch,u=t.sticky;if(c>=r.text.length?(c=r.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return a("before"==u?c-1:c,"before"==u);var f=ke(l,c,u),d=Ua,h=s(c,f,"before"==u);return null!=d&&(h.other=s(c,d,"before"!=u)),h}function hn(e,t){var n=0;t=H(e.doc,t),e.options.lineWrapping||(n=xn(e.display)*t.ch);var r=L(e.doc,t.line),i=ye(r)+Wt(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function pn(e,t,n,r,i){var o=R(e,t,n);return o.xRel=i,r&&(o.outside=!0),o}function mn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return pn(r.first,0,null,!0,-1);var i=N(r,n),o=r.first+r.size-1;if(i>o)return pn(r.first+r.size-1,L(r,o).text.length,null,!0,1);t<0&&(t=0);for(var a=L(r,i);;){var s=yn(e,a,i,t,n),l=ce(a),c=l&&l.find(0,!0);if(!l||!(s.ch>c.from.ch||s.ch==c.from.ch&&s.xRel>0))return s;i=E(a=c.to.line)}}function gn(e,t,n,r){var i=function(r){return cn(e,t,Jt(e,n,r),"line")},o=t.text.length,a=_(function(e){return i(e-1).bottom<=r},o,0);return o=_(function(e){return i(e).top>r},a,o),{begin:a,end:o}}function vn(e,t,n,r){return gn(e,t,n,cn(e,t,Jt(e,n,r),"line").top)}function yn(e,t,n,r,i){i-=ye(t);var o,a=0,s=t.text.length,l=Qt(e,t);if(Ce(t,e.doc.direction)){if(e.options.lineWrapping){var c;c=gn(e,t,l,i),a=c.begin,s=c.end}o=new R(n,Math.floor(a+(s-a)/2));var u,f,d=dn(e,o,"line",t,l).left,h=d<r?1:-1,p=d-r,m=Math.ceil((s-a)/4);e:do{u=p,f=o;for(var g=0;g<m;++g){var v=o;if(null==(o=Le(e,t,o,h))||o.ch<a||s<=("before"==o.sticky?o.ch-1:o.ch)){o=v;break e}}if(p=dn(e,o,"line",t,l).left-r,m>1){var y=Math.abs(p-u)/m;m=Math.min(m,Math.ceil(Math.abs(p)/y)),h=p<0?1:-1}}while(0!=p&&(m>1||h<0!=p<0&&Math.abs(p)<=Math.abs(u)));if(Math.abs(p)>Math.abs(u)){if(p<0==u<0)throw new Error("Broke out of infinite loop in coordsCharInner");o=f}}else{var b=_(function(n){var o=cn(e,t,Jt(e,l,n),"line");return o.top>i?(s=Math.min(n,s),!0):!(o.bottom<=i)&&(o.left>r||!(o.right<r)&&r-o.left<o.right-r)},a,s);b=S(t.text,b,1),o=new R(n,b,b==s?"before":"after")}var x=dn(e,o,"line",t,l);return(i<x.top||x.bottom<i)&&(o.outside=!0),o.xRel=r<x.left?-1:r>x.right?1:0,o}function bn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==ls){ls=r("pre");for(var i=0;i<49;++i)ls.appendChild(document.createTextNode("x")),ls.appendChild(r("br"));ls.appendChild(document.createTextNode("x"))}n(e.measure,ls);var o=ls.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function xn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=r("span","xxxxxxxxxx"),i=r("pre",[t]);n(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function wn(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)n[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[a]]=o.clientWidth;return{fixedPos:kn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function kn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Cn(e){var t=bn(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/xn(e.display)-3);return function(i){if(ge(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function Sn(e){var t=e.doc,n=Cn(e);t.iter(function(e){var t=n(e);t!=e.height&&O(e,t)})}function _n(e,t,n,r){var i=e.display;if(!n&&"true"==Fe(t).getAttribute("cm-not-content"))return null;var o,a,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,a=t.clientY-s.top}catch(e){return null}var l,c=mn(e,o,a);if(r&&1==c.xRel&&(l=L(e.doc,c.line).text).length==c.ch){var u=f(l,l.length,e.options.tabSize)-l.length;c=R(c.line,Math.max(0,Math.round((o-Ht(e.display).left)/xn(e.display))-u))}return c}function Mn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function Ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Tn(e,t){for(var n=e.doc,r={},i=r.cursors=document.createDocumentFragment(),o=r.selection=document.createDocumentFragment(),a=0;a<n.sel.ranges.length;a++)if(t!==!1||a!=n.sel.primIndex){var s=n.sel.ranges[a];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var l=s.empty();(l||e.options.showCursorWhenSelecting)&&An(e,s.head,i),l||On(e,s,o)}}return r}function An(e,t,n){var i=dn(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=n.appendChild(r("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=n.appendChild(r("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function On(e,t,n){function i(e,t,n,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),l.appendChild(r("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?f-e:n)+"px;\n height: "+(i-t)+"px"))}function o(t,n,r){function o(n,r){return fn(e,R(t,n),"div",c,r)}var a,l,c=L(s,t),d=c.text.length;return we(Ce(c,s.direction),n||0,null==r?d:r,function(e,t,s){var c,h,p,m=o(e,"left");if(e==t)c=m,h=p=m.left;else{if(c=o(t-1,"right"),"rtl"==s){var g=m;m=c,c=g}h=m.left,p=c.right}null==n&&0==e&&(h=u),c.top-m.top>3&&(i(h,m.top,null,m.bottom),h=u,m.bottom<c.top&&i(h,m.bottom,null,c.top)),null==r&&t==d&&(p=f),(!a||m.top<a.top||m.top==a.top&&m.left<a.left)&&(a=m),(!l||c.bottom>l.bottom||c.bottom==l.bottom&&c.right>l.right)&&(l=c),h<u+1&&(h=u),i(h,c.top,p-h,c.bottom)}),{start:a,end:l}}var a=e.display,s=e.doc,l=document.createDocumentFragment(),c=Ht(e.display),u=c.left,f=Math.max(a.sizerWidth,Kt(e)-a.sizer.offsetLeft)-c.right,d=t.from(),h=t.to();if(d.line==h.line)o(d.line,d.ch,h.ch);else{var p=L(s,d.line),m=L(s,h.line),g=fe(p)==fe(m),v=o(d.line,d.ch,g?p.text.length+1:null).end,y=o(h.line,g?0:null,h.ch).start;g&&(v.top<y.top-2?(i(v.right,v.top,null,v.bottom),i(u,y.top,y.left,y.bottom)):i(v.right,v.top,y.left-v.right,v.bottom)),v.bottom<y.top&&i(u,v.bottom,null,y.top)}n.appendChild(l)}function En(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Nn(e){e.state.focused||(e.display.input.focus(),Pn(e))}function In(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Rn(e))},100)}function Pn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Oe(e,"focus",e,t),e.state.focused=!0,s(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),ha&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),En(e))}function Rn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Oe(e,"blur",e,t),e.state.focused=!1,Oa(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Bn(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i=t.view[r],o=void 0;if(!i.hidden){if(fa&&da<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-n,n=a}else{var s=i.node.getBoundingClientRect();o=s.bottom-s.top}var l=i.line.height-o;if(o<2&&(o=bn(t)),(l>.005||l<-.005)&&(O(i.line,o),zn(i.line),i.rest))for(var c=0;c<i.rest.length;c++)zn(i.rest[c])}}}function zn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Dn(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-Wt(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=N(t,r),a=N(t,i);if(n&&n.ensure){var s=n.ensure.from.line,l=n.ensure.to.line;s<o?(o=s,a=N(t,ye(L(t,s))+e.wrapper.clientHeight)):Math.min(l,t.lastLine())>=a&&(o=N(t,ye(L(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function Fn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=kn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;a<n.length;a++)if(!n[a].hidden){e.options.fixedGutter&&(n[a].gutter&&(n[a].gutter.style.left=o),n[a].gutterBackground&&(n[a].gutterBackground.style.left=o));var s=n[a].alignable;if(s)for(var l=0;l<s.length;l++)s[l].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+"px")}}function Wn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=P(e.options,t.first+t.size-1),i=e.display;if(n.length!=i.lineNumChars){var o=i.measure.appendChild(r("div",[r("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,s=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-s)+1,i.lineNumWidth=i.lineNumInnerWidth+s,i.lineNumChars=i.lineNumInnerWidth?n.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Er(e),!0}return!1}function qn(e,t){if(!Ee(e,"scrollCursorIntoView")){var n=e.display,i=n.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!ba){var a=r("div","",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Wt(e.display))+"px;\n height: "+(t.bottom-t.top+jt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}function Hn(e,t,n,r){null==r&&(r=0);var i;e.options.lineWrapping||t!=n||(t=t.ch?R(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,n="before"==t.sticky?R(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=dn(e,t),l=n&&n!=t?dn(e,n):s;i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r};var c=Kn(e,i),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(Qn(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(Zn(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function jn(e,t){var n=Kn(e,t);null!=n.scrollTop&&Qn(e,n.scrollTop),null!=n.scrollLeft&&Zn(e,n.scrollLeft)}function Kn(e,t){var n=e.display,r=bn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Ut(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+qt(n),l=t.top<r,c=t.bottom>s-r;if(t.top<i)a.scrollTop=l?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,d=Kt(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.left<f?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>d+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function Un(e,t){null!=t&&(Xn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Vn(e){Xn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function $n(e,t,n){null==t&&null==n||Xn(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Gn(e,t){Xn(e),e.curOp.scrollToPos=t}function Xn(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;Yn(e,hn(e,t.from),hn(e,t.to),t.margin)}}function Yn(e,t,n,r){var i=Kn(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});$n(e,i.scrollLeft,i.scrollTop)}function Qn(e,t){Math.abs(e.doc.scrollTop-t)<2||(sa||Ar(e,{top:t}),Jn(e,t,!0),sa&&Ar(e),kr(e,100))}function Jn(e,t,n){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Zn(e,t,n,r){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,Fn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function er(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+qt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+jt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function tr(e,t){t||(t=er(e));var n=e.display.barWidth,r=e.display.barHeight;nr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Bn(e),nr(e,er(e)),n=e.display.barWidth,r=e.display.barHeight}function nr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function rr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Oa(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new gs[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Ga(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?Zn(e,t):Qn(e,t)},e),e.display.scrollbars.addClass&&s(e.display.wrapper,e.display.scrollbars.addClass)}function ir(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++vs},wt(e.curOp)}function or(e){Ct(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;ar(e)})}function ar(e){for(var t=e.ops,n=0;n<t.length;n++)sr(t[n]);for(var r=0;r<t.length;r++)lr(t[r]);for(var i=0;i<t.length;i++)cr(t[i]);for(var o=0;o<t.length;o++)ur(t[o]);for(var a=0;a<t.length;a++)fr(t[a])}function sr(e){var t=e.cm,n=t.display;Sr(t),e.updateMaxLine&&xe(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ys(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function lr(e){e.updatedDisplay=e.mustUpdate&&Lr(e.cm,e.update)}function cr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Bn(t),e.barMeasure=er(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Xt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+jt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Kt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function ur(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&Zn(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==a()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&tr(t,e.barMeasure),e.updatedDisplay&&Nr(t,e.barMeasure),e.selectionChanged&&En(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&Nn(e.cm)}function fr(e){var t=e.cm,n=t.display,r=t.doc;if(e.updatedDisplay&&Tr(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null!=e.scrollTop&&Jn(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Zn(t,e.scrollLeft,!0,!0),e.scrollToPos){qn(t,Hn(t,H(r,e.scrollToPos.from),H(r,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||Oe(i[a],"hide");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&Oe(o[s],"unhide");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Oe(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function dr(e,t){if(e.curOp)return t();ir(e);try{return t()}finally{or(e)}}function hr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);ir(e);try{return t.apply(e,arguments)}finally{or(e)}}}function pr(e){return function(){if(this.curOp)return e.apply(this,arguments);ir(this);try{return e.apply(this,arguments)}finally{or(this)}}}function mr(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);ir(t);try{return e.apply(this,arguments)}finally{or(t)}}}function gr(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ka&&pe(e.doc,t)<i.viewTo&&yr(e);else if(n<=i.viewFrom)Ka&&me(e.doc,n+r)>i.viewFrom?yr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)yr(e);else if(t<=i.viewFrom){var o=br(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):yr(e)}else if(n>=i.viewTo){var a=br(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):yr(e)}else{var s=br(e,t,t,-1),l=br(e,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(xt(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):yr(e)}var c=i.externalMeasured;c&&(n<c.lineN?c.lineN+=r:t<c.lineN+c.size&&(i.externalMeasured=null))}function vr(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[Mn(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);d(a,n)==-1&&a.push(n)}}}function yr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function br(e,t,n,r){var i,o=Mn(e,t),a=e.display.view;if(!Ka||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,l=0;l<o;l++)s+=a[l].size;if(s!=t){if(r>0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;pe(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function xr(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=xt(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=xt(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(Mn(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(xt(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,Mn(e,n)))),r.viewTo=n}function wr(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function kr(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Cr,e))}function Cr(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=et(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Xe(t.mode,r.state):null,l=Je(e,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!f&&d<a.length;++d)f=a[d]!=o.styles[d];f&&i.push(r.line),o.stateAfter=r.save(),r.nextLine()}else o.text.length<=e.options.maxHighlightLength&&tt(e,o.text,r),o.stateAfter=r.line%5==0?r.save():null,r.nextLine();if(+new Date>n)return kr(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&dr(e,function(){for(var t=0;t<i.length;t++)vr(e,i[t],"text")})}}function Sr(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=jt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=jt(e)+"px",t.scrollbarsClipped=!0)}function _r(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&o(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}function Mr(e){if(e&&e.activeElt&&e.activeElt!=a()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}function Lr(e,n){var r=e.display,i=e.doc;if(n.editorIsHidden)return yr(e),!1;if(!n.force&&n.visible.from>=r.viewFrom&&n.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==wr(e))return!1;Wn(e)&&(yr(e),n.dims=wn(e));var o=i.first+i.size,a=Math.max(n.visible.from-e.options.viewportMargin,i.first),s=Math.min(o,n.visible.to+e.options.viewportMargin);r.viewFrom<a&&a-r.viewFrom<20&&(a=Math.max(i.first,r.viewFrom)),r.viewTo>s&&r.viewTo-s<20&&(s=Math.min(o,r.viewTo)),Ka&&(a=pe(e.doc,a),s=me(e.doc,s));var l=a!=r.viewFrom||s!=r.viewTo||r.lastWrapHeight!=n.wrapperHeight||r.lastWrapWidth!=n.wrapperWidth;xr(e,a,s),r.viewOffset=ye(L(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var c=wr(e);if(!l&&0==c&&!n.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var u=_r(e);return c>4&&(r.lineDiv.style.display="none"),Or(e,r.updateLineNumbers,n.dims),c>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,Mr(u),t(r.cursorDiv),t(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,l&&(r.lastWrapHeight=n.wrapperHeight,r.lastWrapWidth=n.wrapperWidth,kr(e,400)),r.updateLineNumbers=null,!0}function Tr(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Kt(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+qt(e.display)-Ut(e),n.top)}),t.visible=Dn(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Lr(e,t);r=!1){Bn(e);var i=er(e);Ln(e),tr(e,i),Nr(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Ar(e,t){var n=new ys(e,t);if(Lr(e,n)){Bn(e),Tr(e,n);var r=er(e);Ln(e),tr(e,r),Nr(e,r),n.finish()}}function Or(e,n,r){function i(t){var n=t.nextSibling;return ha&&Ca&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var o=e.display,a=e.options.lineNumbers,s=o.lineDiv,l=s.firstChild,c=o.view,u=o.viewFrom,f=0;f<c.length;f++){var h=c[f];if(h.hidden);else if(h.node&&h.node.parentNode==s){for(;l!=h.node;)l=i(l);var p=a&&null!=n&&n<=u&&h.lineNumber;h.changes&&(d(h.changes,"gutter")>-1&&(p=!1),Mt(e,h,u,r)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(P(e.options,u)))),l=h.node.nextSibling}else{var m=Pt(e,h,u,r);s.insertBefore(m,l)}u+=h.size}for(;l;)l=i(l)}function Er(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Nr(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+jt(e)+"px"}function Ir(e){var n=e.display.gutters,i=e.options.gutters;t(n);for(var o=0;o<i.length;++o){var a=i[o],s=n.appendChild(r("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=s,s.style.width=(e.display.lineNumWidth||1)+"px")}n.style.display=o?"":"none",Er(e)}function Pr(e){var t=d(e.gutters,"CodeMirror-linenumbers");t==-1&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function Rr(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function Br(e){var t=Rr(e);return t.x*=xs,t.y*=xs,t}function zr(e,t){var n=Rr(t),r=n.x,i=n.y,o=e.display,a=o.scroller,s=a.scrollWidth>a.clientWidth,l=a.scrollHeight>a.clientHeight;if(r&&s||i&&l){if(i&&Ca&&ha)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(r&&!sa&&!ga&&null!=xs)return i&&l&&Qn(e,Math.max(0,a.scrollTop+i*xs)),Zn(e,Math.max(0,a.scrollLeft+r*xs)),(!i||i&&l)&&Re(t),void(o.wheelStartX=null);if(i&&null!=xs){var d=i*xs,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;d<0?h=Math.max(0,h+d-50):p=Math.min(e.doc.height,p+d+50),Ar(e,{top:h,bottom:p})}bs<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(xs=(xs*bs+n)/(bs+1),++bs)}},200)):(o.wheelDX+=r,o.wheelDY+=i))}}function Dr(e,t){var n=e[t];e.sort(function(e,t){return B(e.from(),t.from())}),t=d(e,n);for(var r=1;r<e.length;r++){var i=e[r],o=e[r-1];if(B(o.to(),i.from())>=0){var a=W(o.from(),i.from()),s=F(o.to(),i.to()),l=o.empty()?i.from()==i.head:o.from()==o.head;r<=t&&--t,e.splice(--r,2,new ks(l?s:a,l?a:s))}}return new ws(e,t)}function Fr(e,t){return new ws([new ks(e,t||e)],0)}function Wr(e){return e.text?R(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function qr(e,t){if(B(e,t.from)<0)return e;if(B(e,t.to)<=0)return Wr(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Wr(t).ch-t.to.ch),R(n,r)}function Hr(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r]
|
3 |
+
;n.push(new ks(qr(i.anchor,t),qr(i.head,t)))}return Dr(n,e.sel.primIndex)}function jr(e,t,n){return e.line==t.line?R(n.line,e.ch-t.ch+n.ch):R(n.line+(e.line-t.line),e.ch)}function Kr(e,t,n){for(var r=[],i=R(e.first,0),o=i,a=0;a<t.length;a++){var s=t[a],l=jr(s.from,i,o),c=jr(Wr(s),i,o);if(i=s.to,o=c,"around"==n){var u=e.sel.ranges[a],f=B(u.head,u.anchor)<0;r[a]=new ks(f?c:l,f?l:c)}else r[a]=new ks(l,l)}return new ws(r,e.sel.primIndex)}function Ur(e){e.doc.mode=$e(e.options,e.doc.modeOption),Vr(e)}function Vr(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,kr(e,100),e.state.modeGen++,e.curOp&&gr(e)}function $r(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Gr(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){ct(e,n,i,r),St(e,"change",e,t)}function a(e,t){for(var n=[],o=e;o<t;++o)n.push(new ss(c[o],i(o),r));return n}var s=t.from,l=t.to,c=t.text,u=L(e,s.line),f=L(e,l.line),d=m(c),h=i(c.length-1),p=l.line-s.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if($r(e,t)){var g=a(0,c.length-1);o(f,f.text,h),p&&e.remove(s.line,p),g.length&&e.insert(s.line,g)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,s.ch)+d+u.text.slice(l.ch),h);else{var v=a(1,c.length-1);v.push(new ss(d+u.text.slice(l.ch),h,r)),o(u,u.text.slice(0,s.ch)+c[0],i(0)),e.insert(s.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,s.ch)+c[0]+f.text.slice(l.ch),i(0)),e.remove(s.line+1,p);else{o(u,u.text.slice(0,s.ch)+c[0],i(0)),o(f,d+f.text.slice(l.ch),h);var y=a(1,c.length-1);p>1&&e.remove(s.line+1,p-1),e.insert(s.line+1,y)}St(e,"change",e,t)}function Xr(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var s=e.linked[a];if(s.doc!=i){var l=o&&s.sharedHist;n&&!l||(t(s.doc,l),r(s.doc,e,l))}}}r(e,null,!0)}function Yr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Sn(e),Ur(e),Qr(e),e.options.lineWrapping||xe(e),e.options.mode=t.modeOption,gr(e)}function Qr(e){("rtl"==e.doc.direction?s:Oa)(e.display.lineDiv,"CodeMirror-rtl")}function Jr(e){dr(e,function(){Qr(e),gr(e)})}function Zr(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ei(e,t){var n={from:D(t.from),to:Wr(t),text:T(e,t.from,t.to)};return si(e,n,t.from.line,t.to.line+1),Xr(e,function(e){return si(e,n,t.from.line,t.to.line+1)},!0),n}function ti(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function ni(e,t){return t?(ti(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}function ri(e,t,n,r){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=ni(i,i.lastOp==r)))a=m(o.changes),0==B(t.from,t.to)&&0==B(t.from,a.to)?a.to=Wr(t):o.changes.push(ei(e,t));else{var l=m(i.done);for(l&&l.ranges||ai(e.sel,i.done),o={changes:[ei(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||Oe(e,"historyAdded")}function ii(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function oi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||ii(e,o,m(i.done),t))?i.done[i.done.length-1]=t:ai(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&r.clearRedo!==!1&&ti(i.undone)}function ai(e,t){var n=m(t);n&&n.ranges&&n.equals(e)||t.push(e)}function si(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function li(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function ci(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=[],i=0;i<t.text.length;++i)r.push(li(n[i]));return r}function ui(e,t){var n=ci(e,t),r=Z(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],a=r[i];if(o&&a)e:for(var s=0;s<a.length;++s){for(var l=a[s],c=0;c<o.length;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else a&&(n[i]=a)}return n}function fi(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?ws.prototype.deepCopy.call(o):o);else{var a=o.changes,s=[];r.push({changes:s});for(var l=0;l<a.length;++l){var c=a[l],u=void 0;if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&d(t,Number(u[1]))>-1&&(m(s)[f]=c[f],delete c[f])}}}return r}function di(e,t,n,r){if(r){var i=e.anchor;if(n){var o=B(t,i)<0;o!=B(n,i)<0?(i=t,t=n):o!=B(t,n)<0&&(t=n)}return new ks(i,t)}return new ks(n||t,t)}function hi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),bi(e,new ws([di(e.sel.primary(),t,n,i)],0),r)}function pi(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=di(e.sel.ranges[o],t[o],null,i);bi(e,Dr(r,e.sel.primIndex),n)}function mi(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,bi(e,Dr(i,e.sel.primIndex),r)}function gi(e,t,n,r){bi(e,Fr(t,n),r)}function vi(e,t,n){var r={ranges:t.ranges,update:function(t){var n=this;this.ranges=[];for(var r=0;r<t.length;r++)n.ranges[r]=new ks(H(e,t[r].anchor),H(e,t[r].head))},origin:n&&n.origin};return Oe(e,"beforeSelectionChange",e,r),e.cm&&Oe(e.cm,"beforeSelectionChange",e.cm,r),r.ranges!=t.ranges?Dr(r.ranges,r.ranges.length-1):t}function yi(e,t,n){var r=e.history.done,i=m(r);i&&i.ranges?(r[r.length-1]=t,xi(e,t,n)):bi(e,t,n)}function bi(e,t,n){xi(e,t,n),oi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function xi(e,t,n){(Ie(e,"beforeSelectionChange")||e.cm&&Ie(e.cm,"beforeSelectionChange"))&&(t=vi(e,t,n)),wi(e,Ci(e,t,n&&n.bias||(B(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),n&&n.scroll===!1||!e.cm||Vn(e.cm)}function wi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ne(e.cm)),St(e,"cursorActivity",e))}function ki(e){wi(e,Ci(e,e.sel,null,!1))}function Ci(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],l=_i(e,a.anchor,s&&s.anchor,n,r),c=_i(e,a.head,s&&s.head,n,r);(i||l!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ks(l,c))}return i?Dr(i,t.primIndex):t}function Si(e,t,n,r,i){var o=L(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var s=o.markedSpans[a],l=s.marker;if((null==s.from||(l.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(l.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(Oe(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var c=l.find(r<0?1:-1),u=void 0;if((r<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Mi(e,c,-r,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=B(c,n))&&(r<0?u<0:u>0))return Si(e,c,t,r,i)}var f=l.find(r<0?-1:1);return(r<0?l.inclusiveLeft:l.inclusiveRight)&&(f=Mi(e,f,r,f.line==t.line?o:null)),f?Si(e,f,t,r,i):null}}return t}function _i(e,t,n,r,i){var o=r||1,a=Si(e,t,n,o,i)||!i&&Si(e,t,n,o,!0)||Si(e,t,n,-o,i)||!i&&Si(e,t,n,-o,!0);return a?a:(e.cantEdit=!0,R(e.first,0))}function Mi(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?H(e,R(t.line-1)):null:n>0&&t.ch==(r||L(e,t.line)).text.length?t.line<e.first+e.size-1?R(t.line+1,0):null:new R(t.line,t.ch+n)}function Li(e){e.setSelection(R(e.firstLine(),0),R(e.lastLine()),za)}function Ti(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return r.canceled=!0}};return n&&(r.update=function(t,n,i,o){t&&(r.from=H(e,t)),n&&(r.to=H(e,n)),i&&(r.text=i),void 0!==o&&(r.origin=o)}),Oe(e,"beforeChange",e,r),e.cm&&Oe(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Ai(e,t,n){if(e.cm){if(!e.cm.curOp)return hr(e.cm,Ai)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Ie(e,"beforeChange")||e.cm&&Ie(e.cm,"beforeChange"))||(t=Ti(e,t,!0))){var r=ja&&!n&&te(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)Oi(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else Oi(e,t)}}function Oi(e,t){if(1!=t.text.length||""!=t.text[0]||0!=B(t.from,t.to)){var n=Hr(e,t);ri(e,t,n,e.cm?e.cm.curOp.id:NaN),Ii(e,t,n,Z(e,t));var r=[];Xr(e,function(e,n){n||d(r,e.history)!=-1||(Di(e.history,t),r.push(e.history)),Ii(e,t,null,Z(e,t))})}}function Ei(e,t,n){if(!e.cm||!e.cm.state.suppressEdits||n){for(var r,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,s="undo"==t?i.undone:i.done,l=0;l<a.length&&(r=a[l],n?!r.ranges||r.equals(e.sel):r.ranges);l++);if(l!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;r=a.pop(),r.ranges;){if(ai(r,s),n&&!r.equals(e.sel))return void bi(e,r,{clearRedo:!1});o=r}var c=[];ai(o,s),s.push({changes:c,generation:i.generation}),i.generation=r.generation||++i.maxGeneration;for(var u=Ie(e,"beforeChange")||e.cm&&Ie(e.cm,"beforeChange"),f=r.changes.length-1;f>=0;--f){var h=function(n){var i=r.changes[n];if(i.origin=t,u&&!Ti(e,i,!1))return a.length=0,{};c.push(ei(e,i));var o=n?Hr(e,i):m(a);Ii(e,i,o,ui(e,i)),!n&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Wr(i)});var s=[];Xr(e,function(e,t){t||d(s,e.history)!=-1||(Di(e.history,i),s.push(e.history)),Ii(e,i,null,ui(e,i))})}(f);if(h)return h.v}}}}function Ni(e,t){if(0!=t&&(e.first+=t,e.sel=new ws(g(e.sel.ranges,function(e){return new ks(R(e.anchor.line+t,e.anchor.ch),R(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){gr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)vr(e.cm,r,"gutter")}}function Ii(e,t,n,r){if(e.cm&&!e.cm.curOp)return hr(e.cm,Ii)(e,t,n,r);if(t.to.line<e.first)return void Ni(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Ni(e,i),t={from:R(e.first,0),to:R(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:R(o,L(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),n||(n=Hr(e,t)),e.cm?Pi(e.cm,t,r):Gr(e,t,r),xi(e,n,za)}}function Pi(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=E(fe(L(r,o.line))),r.iter(l,a.line+1,function(e){if(e==i.maxLine)return s=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ne(e),Gr(r,t,n,Cn(e)),e.options.lineWrapping||(r.iter(l,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),lt(r,o.line),kr(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?gr(e):o.line!=a.line||1!=t.text.length||$r(e.doc,t)?gr(e,o.line,a.line+1,c):vr(e,o.line,"text");var u=Ie(e,"changes"),f=Ie(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&St(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}function Ri(e,t,n,r,i){if(r||(r=n),B(r,n)<0){var o=r;r=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),Ai(e,{from:n,to:r,text:t,origin:i})}function Bi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function zi(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var s=0;s<o.ranges.length;s++)Bi(o.ranges[s].anchor,t,n,r),Bi(o.ranges[s].head,t,n,r)}else{for(var l=0;l<o.changes.length;++l){var c=o.changes[l];if(n<c.from.line)c.from=R(c.from.line+r,c.from.ch),c.to=R(c.to.line+r,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Di(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;zi(e.done,n,r,i),zi(e.undone,n,r,i)}function Fi(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=L(e,q(e,t)):i=E(t),null==i?null:(r(o,i)&&e.cm&&vr(e.cm,i,n),o)}function Wi(e){var t=this;this.lines=e,this.parent=null;for(var n=0,r=0;r<e.length;++r)e[r].parent=t,n+=e[r].height;this.height=n}function qi(e){var t=this;this.children=e;for(var n=0,r=0,i=0;i<e.length;++i){var o=e[i];n+=o.chunkSize(),r+=o.height,o.parent=t}this.size=n,this.height=r,this.parent=null}function Hi(e,t,n){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Un(e,n)}function ji(e,t,n,r){var i=new Cs(e,n,r),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Fi(e,t,"widget",function(t){var n=t.widgets||(t.widgets=[]);if(null==i.insertAt?n.push(i):n.splice(Math.min(n.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ge(e,t)){var r=ye(t)<e.scrollTop;O(t,t.height+Dt(i)),r&&Un(o,i.height),o.curOp.forceUpdate=!0}return!0}),St(o,"lineWidgetAdded",o,i,"number"==typeof t?t:E(t)),i}function Ki(e,t,n,r,o){if(r&&r.shared)return Ui(e,t,n,r,o);if(e.cm&&!e.cm.curOp)return hr(e.cm,Ki)(e,t,n,r,o);var a=new _s(e,o),s=B(t,n);if(r&&u(r,a,!1),s>0||0==s&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ue(e,t.line,t,n,a)||t.line!=n.line&&ue(e,n.line,t,n,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");V()}a.addToHistory&&ri(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,c=t.line,f=e.cm;if(e.iter(c,n.line+1,function(e){f&&a.collapsed&&!f.options.lineWrapping&&fe(e)==f.display.maxLine&&(l=!0),a.collapsed&&c!=t.line&&O(e,0),Y(e,new $(a,c==t.line?t.ch:null,c==n.line?n.ch:null)),++c}),a.collapsed&&e.iter(t.line,n.line+1,function(t){ge(e,t)&&O(t,0)}),a.clearOnEnter&&Ga(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(U(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Ss,a.atomic=!0),f){if(l&&(f.curOp.updateMaxLine=!0),a.collapsed)gr(f,t.line,n.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var d=t.line;d<=n.line;d++)vr(f,d,"text");a.atomic&&ki(f.doc),St(f,"markerAdded",f,a)}return a}function Ui(e,t,n,r,i){r=u(r),r.shared=!1;var o=[Ki(e,t,n,r,i)],a=o[0],s=r.widgetNode;return Xr(e,function(e){s&&(r.widgetNode=s.cloneNode(!0)),o.push(Ki(e,H(e,t),H(e,n),r,i));for(var l=0;l<e.linked.length;++l)if(e.linked[l].isParent)return;a=m(o)}),new Ms(o,a)}function Vi(e){return e.findMarks(R(e.first,0),e.clipPos(R(e.lastLine())),function(e){return e.parent})}function $i(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(B(o,a)){var s=Ki(e,o,a,r.primary,r.primary.type);r.markers.push(s),s.parent=r}}}function Gi(e){for(var t=0;t<e.length;t++)!function(t){var n=e[t],r=[n.primary.doc];Xr(n.primary.doc,function(e){return r.push(e)});for(var i=0;i<n.markers.length;i++){var o=n.markers[i];d(r,o.doc)==-1&&(o.parent=null,n.markers.splice(i--,1))}}(t)}function Xi(e){var t=this;if(Ji(t),!Ee(t,e)&&!Ft(t.display,e)){Re(e),fa&&(As=+new Date);var n=_n(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),a=0,s=0;s<i;++s)!function(e,r){if(!t.options.allowDropFileTypes||d(t.options.allowDropFileTypes,e.type)!=-1){var s=new FileReader;s.onload=hr(t,function(){var e=s.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[r]=e,++a==i){n=H(t.doc,n);var l={from:n,to:n,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Ai(t.doc,l),yi(t.doc,Fr(n,Wr(l)))}}),s.readAsText(e)}}(r[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var l=e.dataTransfer.getData("Text");if(l){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),xi(t.doc,Fr(n,n)),c)for(var u=0;u<c.length;++u)Ri(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(l,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Yi(e,t){if(fa&&(!e.state.draggingText||+new Date-As<100))return void De(t);if(!Ee(e,t)&&!Ft(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!va)){var n=r("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ga&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),ga&&n.parentNode.removeChild(n)}}function Qi(e,t){var i=_n(e,t);if(i){var o=document.createDocumentFragment();An(e,i,o),e.display.dragCursor||(e.display.dragCursor=r("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),n(e.display.dragCursor,o)}}function Ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Zi(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}function eo(){Os||(to(),Os=!0)}function to(){var e;Ga(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Zi(no)},100))}),Ga(window,"blur",function(){return Zi(Rn)})}function no(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function ro(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var n,r,i,o,a=0;a<t.length-1;a++){var s=t[a];if(/^(cmd|meta|m)$/i.test(s))o=!0;else if(/^a(lt)?$/i.test(s))n=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error("Unrecognized modifier name: "+s);i=!0}}return n&&(e="Alt-"+e),r&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function io(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if("..."==r){delete e[n];continue}for(var i=g(n.split(" "),ro),o=0;o<i.length;o++){var a=void 0,s=void 0;o==i.length-1?(s=i.join(" "),a=r):(s=i.slice(0,o+1).join(" "),a="...");var l=t[s];if(l){if(l!=a)throw new Error("Inconsistent bindings for "+s)}else t[s]=a}delete e[n]}for(var c in t)e[c]=t[c];return e}function oo(e,t,n,r){t=co(t);var i=t.call?t.call(e,r):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&n(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return oo(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var a=oo(e,t.fallthrough[o],n,r);if(a)return a}}}function ao(e){var t="string"==typeof e?e:Es[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function so(e,t,n){var r=e;return t.altKey&&"Alt"!=r&&(e="Alt-"+e),(Ta?t.metaKey:t.ctrlKey)&&"Ctrl"!=r&&(e="Ctrl-"+e),(Ta?t.ctrlKey:t.metaKey)&&"Cmd"!=r&&(e="Cmd-"+e),!n&&t.shiftKey&&"Shift"!=r&&(e="Shift-"+e),e}function lo(e,t){if(ga&&34==e.keyCode&&e.char)return!1;var n=Es[e.keyCode];return null!=n&&!e.altGraphKey&&so(n,e,t)}function co(e){return"string"==typeof e?Rs[e]:e}function uo(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&B(o.from,m(r).to)<=0;){var a=r.pop();if(B(a.from,o.from)<0){o.from=a.from;break}}r.push(o)}dr(e,function(){for(var t=r.length-1;t>=0;t--)Ri(e.doc,"",r[t].from,r[t].to,"+delete");Vn(e)})}function fo(e,t){var n=L(e.doc,t),r=fe(n);return r!=n&&(t=E(r)),Me(!0,e,r,t,1)}function ho(e,t){var n=L(e.doc,t),r=de(n);return r!=n&&(t=E(r)),Me(!0,e,n,t,-1)}function po(e,t){var n=fo(e,t.line),r=L(e.doc,n.line),i=Ce(r,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,r.text.search(/\S/)),a=t.line==n.line&&t.ch<=o&&t.ch;return R(n.line,a?0:o,n.sticky)}return n}function mo(e,t,n){if("string"==typeof t&&!(t=Bs[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=Ba}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}function go(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=oo(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&oo(t,e.options.extraKeys,n,e)||oo(t,e.options.keyMap,n,e)}function vo(e,t,n,r){var i=e.state.keySeq;if(i){if(ao(t))return"handled";zs.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=go(e,t,r);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&St(e,"keyHandled",e,t,n),"handled"!=o&&"multi"!=o||(Re(n),En(e)),i&&!o&&/\'$/.test(t)?(Re(n),!0):!!o}function yo(e,t){var n=lo(t,!0);return!!n&&(t.shiftKey&&!e.state.keySeq?vo(e,"Shift-"+n,t,function(t){return mo(e,t,!0)})||vo(e,n,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return mo(e,t)}):vo(e,n,t,function(t){return mo(e,t)}))}function bo(e,t,n){return vo(e,"'"+n+"'",t,function(t){return mo(e,t,!0)})}function xo(e){var t=this;if(t.curOp.focus=a(),!Ee(t,e)){fa&&da<11&&27==e.keyCode&&(e.returnValue=!1);var n=e.keyCode;t.display.shift=16==n||e.shiftKey;var r=yo(t,e);ga&&(Ds=r?n:null,!r&&88==n&&!Ja&&(Ca?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=n||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||wo(t)}}function wo(e){function t(e){18!=e.keyCode&&e.altKey||(Oa(n,"CodeMirror-crosshair"),Ae(document,"keyup",t),Ae(document,"mouseover",t))}var n=e.display.lineDiv;s(n,"CodeMirror-crosshair"),Ga(document,"keyup",t),Ga(document,"mouseover",t)}function ko(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ee(this,e)}function Co(e){var t=this;if(!(Ft(t.display,e)||Ee(t,e)||e.ctrlKey&&!e.altKey||Ca&&e.metaKey)){var n=e.keyCode,r=e.charCode;if(ga&&n==Ds)return Ds=null,void Re(e);if(!ga||e.which&&!(e.which<10)||!yo(t,e)){var i=String.fromCharCode(null==r?n:r);"\b"!=i&&(bo(t,e,i)||t.display.input.onKeyPress(e))}}}function So(e,t){var n=+new Date;return qs&&qs.compare(n,e,t)?(Ws=qs=null,"triple"):Ws&&Ws.compare(n,e,t)?(qs=new Fs(n,e,t),Ws=null,"double"):(Ws=new Fs(n,e,t),qs=null,"single")}function _o(e){var t=this,n=t.display;if(!(Ee(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=e.shiftKey,Ft(n,e))return void(ha||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100)));if(!Io(t,e)){var r=_n(t,e),i=We(e),o=r?So(r,i):"single";window.focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),r&&Mo(t,i,r,o,e)||(1==i?r?To(t,r,o,e):Fe(e)==n.scroller&&Re(e):2==i?(r&&hi(t.doc,r),setTimeout(function(){return n.input.focus()},20)):3==i&&(Aa?Po(t,e):In(t)))}}}function Mo(e,t,n,r,i){var o="Click";return"double"==r?o="Double"+o:"triple"==r&&(o="Triple"+o),o=(1==t?"Left":2==t?"Middle":"Right")+o,vo(e,so(o,i),i,function(t){if("string"==typeof t&&(t=Bs[t]),!t)return!1;var r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r=t(e,n)!=Ba}finally{e.state.suppressEdits=!1}return r})}function Lo(e,t,n){var r=e.getOption("configureMouse"),i=r?r(e,t,n):{};if(null==i.unit){var o=Sa?n.shiftKey&&n.metaKey:n.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),null==i.addNew&&(i.addNew=Ca?n.metaKey:n.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Ca?n.altKey:n.ctrlKey)),i}function To(e,t,n,r){fa?setTimeout(c(Nn,e),0):e.curOp.focus=a();var i,o=Lo(e,n,r),s=e.doc.sel;e.options.dragDrop&&Xa&&!e.isReadOnly()&&"single"==n&&(i=s.contains(t))>-1&&(B((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(B(i.to(),t)>0||t.xRel<0)?Ao(e,r,t,o):Eo(e,r,t,o)}function Ao(e,t,n,r){var i=e.display,o=!1,a=hr(e,function(t){ha&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ae(document,"mouseup",a),Ae(document,"mousemove",s),Ae(i.scroller,"dragstart",l),Ae(i.scroller,"drop",a),o||(Re(t),r.addNew||hi(e.doc,n,null,null,r.extend),ha||fa&&9==da?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),s=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},l=function(){return o=!0};ha&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),Ga(document,"mouseup",a),Ga(document,"mousemove",s),Ga(i.scroller,"dragstart",l),Ga(i.scroller,"drop",a),In(e),setTimeout(function(){return i.input.focus()},20)}function Oo(e,t,n){if("char"==n)return new ks(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new ks(R(t.line,0),H(e.doc,R(t.line+1,0)));var r=n(e,t);return new ks(r.from,r.to)}function Eo(e,t,n,r){function i(t){if(0!=B(v,t))if(v=t,"rectangle"==r.unit){for(var i=[],o=e.options.tabSize,a=f(L(c,n.line).text,n.ch,o),s=f(L(c,t.line).text,t.ch,o),l=Math.min(a,s),m=Math.max(a,s),g=Math.min(n.line,t.line),y=Math.min(e.lastLine(),Math.max(n.line,t.line));g<=y;g++){var b=L(c,g).text,x=h(b,l,o);l==m?i.push(new ks(R(g,x),R(g,x))):b.length>x&&i.push(new ks(R(g,x),R(g,h(b,m,o))))}i.length||i.push(new ks(n,n)),bi(c,Dr(p.ranges.slice(0,d).concat(i),d),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w,k=u,C=Oo(e,t,r.unit),S=k.anchor;B(C.anchor,S)>0?(w=C.head,S=W(k.from(),C.anchor)):(w=C.anchor,S=F(k.to(),C.head));var _=p.ranges.slice(0);_[d]=new ks(H(c,S),w),bi(c,Dr(_,d),Da)}}function o(t){var n=++b,s=_n(e,t,!0,"rectangle"==r.unit);if(s)if(0!=B(s,v)){e.curOp.focus=a(),i(s);var u=Dn(l,c);(s.line>=u.to||s.line<u.from)&&setTimeout(hr(e,function(){b==n&&o(t)}),150)}else{var f=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;f&&setTimeout(hr(e,function(){b==n&&(l.scroller.scrollTop+=f,o(t))}),50)}}function s(t){e.state.selectingText=!1,b=1/0,Re(t),l.input.focus(),Ae(document,"mousemove",x),Ae(document,"mouseup",w),c.history.lastSelOrigin=null}var l=e.display,c=e.doc;Re(t);var u,d,p=c.sel,m=p.ranges;if(r.addNew&&!r.extend?(d=c.sel.contains(n),u=d>-1?m[d]:new ks(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==r.unit)r.addNew||(u=new ks(n,n)),n=_n(e,t,!0,!0),d=-1;else{var g=Oo(e,n,r.unit);u=r.extend?di(u,g.anchor,g.head,r.extend):g}r.addNew?d==-1?(d=m.length,bi(c,Dr(m.concat([u]),d),{scroll:!1,origin:"*mouse"})):m.length>1&&m[d].empty()&&"char"==r.unit&&!r.extend?(bi(c,Dr(m.slice(0,d).concat(m.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):mi(c,d,u,Da):(d=0,bi(c,new ws([u],0),Da),p=c.sel);var v=n,y=l.wrapper.getBoundingClientRect(),b=0,x=hr(e,function(e){We(e)?o(e):s(e)}),w=hr(e,s);e.state.selectingText=w,Ga(document,"mousemove",x),Ga(document,"mouseup",w)}function No(e,t,n,r){var i,o;try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Re(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!Ie(e,n))return ze(t);o-=s.top-a.viewOffset;for(var l=0;l<e.options.gutters.length;++l){var c=a.gutters.childNodes[l];if(c&&c.getBoundingClientRect().right>=i){return Oe(e,n,e,N(e.doc,o),e.options.gutters[l],t),ze(t)}}}function Io(e,t){return No(e,t,"gutterClick",!0)}function Po(e,t){Ft(e.display,t)||Ro(e,t)||Ee(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Ro(e,t){return!!Ie(e,"gutterContextMenu")&&No(e,t,"gutterContextMenu",!1)}function Bo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),an(e)}function zo(e){Ir(e),gr(e),Fn(e)}function Do(e,t,n){if(!t!=!(n&&n!=Hs)){var r=e.display.dragFunctions,i=t?Ga:Ae;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Fo(e){e.options.lineWrapping?(s(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Oa(e.display.wrapper,"CodeMirror-wrap"),xe(e)),Sn(e),gr(e),an(e),setTimeout(function(){return tr(e)},100)}function Wo(e,t){var n=this;if(!(this instanceof Wo))return new Wo(e,t);this.options=t=t?u(t):{},u(js,t,!1),Pr(t);var r=t.value;"string"==typeof r&&(r=new Ts(r,t.mode,null,t.lineSeparator,t.direction)),this.doc=r;var i=new Wo.inputStyles[t.inputStyle](this),o=this.display=new M(e,r,i);o.wrapper.CodeMirror=this,Ir(this),Bo(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),rr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Na,keySeq:null,specialChars:null},t.autofocus&&!ka&&o.input.focus(),fa&&da<11&&setTimeout(function(){return n.display.input.reset(!0)},20),qo(this),eo(),ir(this),this.curOp.forceUpdate=!0,Yr(this,r),t.autofocus&&!ka||this.hasFocus()?setTimeout(c(Pn,this),20):Rn(this);for(var a in Ks)Ks.hasOwnProperty(a)&&Ks[a](n,t[a],Hs);Wn(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Us.length;++s)Us[s](n);or(this),ha&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function qo(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function n(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}var i=e.display;Ga(i.scroller,"mousedown",hr(e,_o)),fa&&da<11?Ga(i.scroller,"dblclick",hr(e,function(t){if(!Ee(e,t)){var n=_n(e,t);if(n&&!Io(e,t)&&!Ft(e.display,t)){Re(t);var r=e.findWordAt(n);hi(e.doc,r.anchor,r.head)}}})):Ga(i.scroller,"dblclick",function(t){return Ee(e,t)||Re(t)}),Aa||Ga(i.scroller,"contextmenu",function(t){return Po(e,t)});var o,a={end:0};Ga(i.scroller,"touchstart",function(t){if(!Ee(e,t)&&!n(t)){i.input.ensurePolled(),clearTimeout(o);var r=+new Date;i.activeTouch={start:r,moved:!1,prev:r-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Ga(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Ga(i.scroller,"touchend",function(n){var o=i.activeTouch;if(o&&!Ft(i,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,s=e.coordsChar(i.activeTouch,"page");a=!o.prev||r(o,o.prev)?new ks(s,s):!o.prev.prev||r(o,o.prev.prev)?e.findWordAt(s):new ks(R(s.line,0),H(e.doc,R(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Re(n)}t()}),Ga(i.scroller,"touchcancel",t),Ga(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Qn(e,i.scroller.scrollTop),Zn(e,i.scroller.scrollLeft,!0),Oe(e,"scroll",e))}),Ga(i.scroller,"mousewheel",function(t){return zr(e,t)}),Ga(i.scroller,"DOMMouseScroll",function(t){return zr(e,t)}),Ga(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ee(e,t)||De(t)},over:function(t){Ee(e,t)||(Qi(e,t),De(t))},start:function(t){return Yi(e,t)},drop:hr(e,Xi),leave:function(t){Ee(e,t)||Ji(e)}};var s=i.input.getField();Ga(s,"keyup",function(t){return ko.call(e,t)}),Ga(s,"keydown",hr(e,xo)),Ga(s,"keypress",hr(e,Co)),Ga(s,"focus",function(t){return Pn(e,t)}),Ga(s,"blur",function(t){return Rn(e,t)})}function Ho(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=et(e,t).state:n="prev");var a=e.options.tabSize,s=L(o,t),l=f(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==Ba||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?f(L(o,t-1).text,null,a):0:"add"==n?c=l+e.options.indentUnit:"subtract"==n?c=l-e.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,d+="\t";if(h<c&&(d+=p(c-h)),
|
4 |
+
d!=u)return Ri(o,d,R(t,0),R(t,u.length),"+input"),s.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=R(t,u.length);mi(o,g,new ks(y,y));break}}}function jo(e){Vs=e}function Ko(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var a=e.state.pasteIncoming||"paste"==i,s=Ya(t),l=null;if(a&&r.ranges.length>1)if(Vs&&Vs.text.join("\n")==t){if(r.ranges.length%Vs.text.length==0){l=[];for(var c=0;c<Vs.text.length;c++)l.push(o.splitLines(Vs.text[c]))}}else s.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(l=g(s,function(e){return[e]}));for(var u,f=r.ranges.length-1;f>=0;f--){var d=r.ranges[f],h=d.from(),p=d.to();d.empty()&&(n&&n>0?h=R(h.line,h.ch-n):e.state.overwrite&&!a?p=R(p.line,Math.min(L(o,p.line).text.length,p.ch+m(s).length)):Vs&&Vs.lineWise&&Vs.text.join("\n")==t&&(h=p=R(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:l?l[f%l.length]:s,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Ai(e.doc,v),St(e,"inputRead",e,v)}t&&!a&&Vo(e,t),Vn(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Uo(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||dr(t,function(){return Ko(t,n,0,null,"paste")}),!0}function Vo(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){a=Ho(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(L(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ho(e,i.head.line,"smart"));a&&St(e,"electricInput",e,i.head.line)}}}function $o(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:R(i,0),head:R(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function Go(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Xo(){var e=r("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=r("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return ha?e.style.width="1000px":e.setAttribute("wrap","off"),xa&&(e.style.border="1px solid black"),Go(e),t}function Yo(e,t,n,r,i){function o(){var r=t.line+n;return!(r<e.first||r>=e.first+e.size)&&(t=new R(r,t.ch,t.sticky),c=L(e,r))}function a(r){var a;if(null==(a=i?Le(e.cm,c,t,n):_e(c,t,n))){if(r||!o())return!1;t=Me(i,e.cm,c,t.line,n)}else t=a;return!0}var s=t,l=n,c=L(e,t.line);if("char"==r)a();else if("column"==r)a(!0);else if("word"==r||"group"==r)for(var u=null,f="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(n<0)||a(!h);h=!1){var p=c.text.charAt(t.ch)||"\n",m=w(p,d)?"w":f&&"\n"==p?"n":!f||/\s/.test(p)?null:"p";if(!f||h||m||(m="s"),u&&u!=m){n<0&&(n=1,a(),t.sticky="after");break}if(m&&(u=m),n>0&&!a(!h))break}var g=_i(e,t,s,l,!0);return z(s,g)&&(g.hitSide=!0),g}function Qo(e,t,n,r){var i,o=e.doc,a=t.left;if("page"==r){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(s-.5*bn(e.display),3);i=(n>0?t.bottom:t.top)+n*l}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(var c;c=mn(e,a,i),c.outside;){if(n<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*n}return c}function Jo(e,t){var n=Yt(e,t.line);if(!n||n.hidden)return null;var r=L(e.doc,t.line),i=$t(n,r,t.line),o=Ce(r,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var s=Zt(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Zo(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function ea(e,t){return t&&(e.bad=!0),e}function ta(e,t,n,r,i){function o(e){return function(t){return t.id==e}}function a(){u&&(c+=f,u=!1)}function s(e){e&&(a(),c+=e)}function l(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void s(n||t.textContent.replace(/\u200b/g,""));var c,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(R(r,0),R(i+1,0),o(+d));return void(h.length&&(c=h[0].find(0))&&s(T(e.doc,c.from,c.to).join(f)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&a();for(var m=0;m<t.childNodes.length;m++)l(t.childNodes[m]);p&&(u=!0)}else 3==t.nodeType&&s(t.nodeValue)}for(var c="",u=!1,f=e.doc.lineSeparator();l(t),t!=n;)t=t.nextSibling;return c}function na(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return ea(e.clipPos(R(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return ra(o,t,n)}}function ra(e,t,n){function r(t,n,r){for(var i=-1;i<(f?f.length:0);i++)for(var o=i<0?u.map:f[i],a=0;a<o.length;a+=3){var s=o[a+2];if(s==t||s==n){var l=E(i<0?e.line:e.rest[i]),c=o[a]+r;return(r<0||s!=t)&&(c=o[a+(r?1:0)]),R(l,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return ea(R(E(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[n],n=0,!t)){var s=e.rest?m(e.rest):e.line;return ea(R(E(s),s.text.length),a)}var l=3==t.nodeType?t:null,c=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,n&&(n=l.nodeValue.length));c.parentNode!=i;)c=c.parentNode;var u=e.measure,f=u.maps,d=r(l,c,n);if(d)return ea(d,a);for(var h=c.nextSibling,p=l?l.nodeValue.length-n:0;h;h=h.nextSibling){if(d=r(h,h.firstChild,0))return ea(R(d.line,d.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=n;g;g=g.previousSibling){if(d=r(g,g.firstChild,-1))return ea(R(d.line,d.ch+v),a);v+=g.textContent.length}}function ia(e,t){function n(){e.value=l.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=a();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}var i;if(e.form&&(Ga(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var s=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=s}}catch(e){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Ae(e.form,"submit",n),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var l=Wo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return l}var oa=navigator.userAgent,aa=navigator.platform,sa=/gecko\/\d/i.test(oa),la=/MSIE \d/.test(oa),ca=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(oa),ua=/Edge\/(\d+)/.exec(oa),fa=la||ca||ua,da=fa&&(la?document.documentMode||6:+(ua||ca)[1]),ha=!ua&&/WebKit\//.test(oa),pa=ha&&/Qt\/\d+\.\d+/.test(oa),ma=!ua&&/Chrome\//.test(oa),ga=/Opera\//.test(oa),va=/Apple Computer/.test(navigator.vendor),ya=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(oa),ba=/PhantomJS/.test(oa),xa=!ua&&/AppleWebKit/.test(oa)&&/Mobile\/\w+/.test(oa),wa=/Android/.test(oa),ka=xa||wa||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(oa),Ca=xa||/Mac/.test(aa),Sa=/\bCrOS\b/.test(oa),_a=/win/i.test(aa),Ma=ga&&oa.match(/Version\/(\d*\.\d*)/);Ma&&(Ma=Number(Ma[1])),Ma&&Ma>=15&&(ga=!1,ha=!0);var La,Ta=Ca&&(pa||ga&&(null==Ma||Ma<12.11)),Aa=sa||fa&&da>=9,Oa=function(t,n){var r=t.className,i=e(n).exec(r);if(i){var o=r.slice(i.index+i[0].length);t.className=r.slice(0,i.index)+(o?i[1]+o:"")}};La=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",t),r};var Ea=function(e){e.select()};xa?Ea=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:fa&&(Ea=function(e){try{e.select()}catch(e){}});var Na=function(){this.id=null};Na.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Ia,Pa,Ra=30,Ba={toString:function(){return"CodeMirror.Pass"}},za={scroll:!1},Da={origin:"*mouse"},Fa={origin:"+move"},Wa=[""],qa=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ha=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,ja=!1,Ka=!1,Ua=null,Va=function(){function e(e){return e<=247?n.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?r.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,s=/[Lb1n]/,l=/[1n]/;return function(n,r){var c="ltr"==r?"L":"R";if(0==n.length||"ltr"==r&&!i.test(n))return!1;for(var u=n.length,f=[],d=0;d<u;++d)f.push(e(n.charCodeAt(d)));for(var h=0,p=c;h<u;++h){var g=f[h];"m"==g?f[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=f[v];"1"==b&&"r"==y?f[v]="n":a.test(b)&&(y=b,"r"==b&&(f[v]="R"))}for(var x=1,w=f[0];x<u-1;++x){var k=f[x];"+"==k&&"1"==w&&"1"==f[x+1]?f[x]="1":","!=k||w!=f[x+1]||"1"!=w&&"n"!=w||(f[x]=w),w=k}for(var C=0;C<u;++C){var S=f[C];if(","==S)f[C]="N";else if("%"==S){var _=void 0;for(_=C+1;_<u&&"%"==f[_];++_);for(var M=C&&"!"==f[C-1]||_<u&&"1"==f[_]?"1":"N",L=C;L<_;++L)f[L]=M;C=_-1}}for(var T=0,A=c;T<u;++T){var O=f[T];"L"==A&&"1"==O?f[T]="L":a.test(O)&&(A=O)}for(var E=0;E<u;++E)if(o.test(f[E])){var N=void 0;for(N=E+1;N<u&&o.test(f[N]);++N);for(var I="L"==(E?f[E-1]:c),P="L"==(N<u?f[N]:c),R=I==P?I?"L":"R":c,B=E;B<N;++B)f[B]=R;E=N-1}for(var z,D=[],F=0;F<u;)if(s.test(f[F])){var W=F;for(++F;F<u&&s.test(f[F]);++F);D.push(new t(0,W,F))}else{var q=F,H=D.length;for(++F;F<u&&"L"!=f[F];++F);for(var j=q;j<F;)if(l.test(f[j])){q<j&&D.splice(H,0,new t(1,q,j));var K=j;for(++j;j<F&&l.test(f[j]);++j);D.splice(H,0,new t(2,K,j)),q=j}else++j;q<F&&D.splice(H,0,new t(1,q,F))}return 1==D[0].level&&(z=n.match(/^\s+/))&&(D[0].from=z[0].length,D.unshift(new t(0,0,z[0].length))),1==m(D).level&&(z=n.match(/\s+$/))&&(m(D).to-=z[0].length,D.push(new t(0,u-z[0].length,u))),"rtl"==r?D.reverse():D}}(),$a=[],Ga=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={});r[t]=(r[t]||$a).concat(n)}},Xa=function(){if(fa&&da<9)return!1;var e=r("div");return"draggable"in e||"dragDrop"in e}(),Ya=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);i==-1&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");a!=-1?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Qa=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ja=function(){var e=r("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Za=null,es={},ts={},ns={},rs=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};rs.prototype.eol=function(){return this.pos>=this.string.length},rs.prototype.sol=function(){return this.pos==this.lineStart},rs.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},rs.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},rs.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},rs.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},rs.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},rs.prototype.skipToEnd=function(){this.pos=this.string.length},rs.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},rs.prototype.backUp=function(e){this.pos-=e},rs.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},rs.prototype.indentation=function(){return f(this.string,null,this.tabSize)-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},rs.prototype.match=function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return t!==!1&&(this.pos+=e.length),!0},rs.prototype.current=function(){return this.string.slice(this.start,this.pos)},rs.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},rs.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)};var is=function(e,t){this.state=e,this.lookAhead=t},os=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0};os.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},os.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},os.fromSaved=function(e,t,n){return t instanceof is?new os(e,Xe(e.mode,t.state),n,t.lookAhead):new os(e,Xe(e.mode,t),n)},os.prototype.save=function(e){var t=e!==!1?Xe(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new is(t,this.maxLookAhead):t};var as=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n},ss=function(e,t,n){this.text=e,re(this,t),this.height=n?n(this):1};ss.prototype.lineNo=function(){return E(this)},Pe(ss);var ls,cs={},us={},fs=null,ds=null,hs={left:0,right:0,top:0,bottom:0},ps=function(e,t,n){this.cm=n;var i=this.vert=r("div",[r("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=r("div",[r("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Ga(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Ga(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,fa&&da<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};ps.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},ps.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},ps.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},ps.prototype.zeroWidthHack=function(){var e=Ca&&!ya?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Na,this.disableVert=new Na},ps.prototype.enableZeroWidthBar=function(e,t,n){function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},ps.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ms=function(){};ms.prototype.update=function(){return{bottom:0,right:0}},ms.prototype.setScrollLeft=function(){},ms.prototype.setScrollTop=function(){},ms.prototype.clear=function(){};var gs={native:ps,null:ms},vs=0,ys=function(e,t,n){var r=e.display;this.viewport=t,this.visible=Dn(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=Kt(e),this.force=n,this.dims=wn(e),this.events=[]};ys.prototype.signal=function(e,t){Ie(e,t)&&this.events.push(arguments)},ys.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Oe.apply(null,e.events[t])};var bs=0,xs=null;fa?xs=-.53:sa?xs=15:ma?xs=-.7:va&&(xs=-1/3);var ws=function(e,t){this.ranges=e,this.primIndex=t};ws.prototype.primary=function(){return this.ranges[this.primIndex]},ws.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var n=0;n<this.ranges.length;n++){var r=t.ranges[n],i=e.ranges[n];if(!z(r.anchor,i.anchor)||!z(r.head,i.head))return!1}return!0},ws.prototype.deepCopy=function(){for(var e=this,t=[],n=0;n<this.ranges.length;n++)t[n]=new ks(D(e.ranges[n].anchor),D(e.ranges[n].head));return new ws(t,this.primIndex)},ws.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},ws.prototype.contains=function(e,t){var n=this;t||(t=e);for(var r=0;r<this.ranges.length;r++){var i=n.ranges[r];if(B(t,i.from())>=0&&B(e,i.to())<=0)return r}return-1};var ks=function(e,t){this.anchor=e,this.head=t};ks.prototype.from=function(){return W(this.anchor,this.head)},ks.prototype.to=function(){return F(this.anchor,this.head)},ks.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Wi.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,r=e,i=e+t;r<i;++r){var o=n.lines[r];n.height-=o.height,ut(o),St(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){var r=this;this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=r},iterN:function(e,t,n){for(var r=this,i=e+t;e<i;++e)if(n(r.lines[e]))return!0}},qi.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){var n=this;this.size-=t;for(var r=0;r<this.children.length;++r){var i=n.children[r],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e),s=i.height;if(i.removeInner(e,a),n.height-=s-i.height,o==a&&(n.children.splice(r--,1),i.parent=null),0==(t-=a))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Wi))){var l=[];this.collapse(l),this.children=[new Wi(l)],this.children[0].parent=this}},collapse:function(e){for(var t=this,n=0;n<this.children.length;++n)t.children[n].collapse(e)},insertInner:function(e,t,n){var r=this;this.size+=t.length,this.height+=n;for(var i=0;i<this.children.length;++i){var o=r.children[i],a=o.chunkSize();if(e<=a){if(o.insertInner(e,t,n),o.lines&&o.lines.length>50){for(var s=o.lines.length%25+25,l=s;l<o.lines.length;){var c=new Wi(o.lines.slice(l,l+=25));o.height-=c.height,r.children.splice(++i,0,c),c.parent=r}o.lines=o.lines.slice(0,s),r.maybeSpill()}break}e-=a}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new qi(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=d(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new qi(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=this,i=0;i<this.children.length;++i){var o=r.children[i],a=o.chunkSize();if(e<a){var s=Math.min(t,a-e);if(o.iterN(e,s,n))return!0;if(0==(t-=s))break;e=0}else e-=a}}};var Cs=function(e,t,n){var r=this;if(n)for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);this.doc=e,this.node=t};Cs.prototype.clear=function(){var e=this,t=this.doc.cm,n=this.line.widgets,r=this.line,i=E(r);if(null!=i&&n){for(var o=0;o<n.length;++o)n[o]==e&&n.splice(o--,1);n.length||(r.widgets=null);var a=Dt(this);O(r,Math.max(0,r.height-a)),t&&(dr(t,function(){Hi(t,r,-a),vr(t,i,"widget")}),St(t,"lineWidgetCleared",t,this,i))}},Cs.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=Dt(this)-t;i&&(O(r,r.height+i),n&&dr(n,function(){n.curOp.forceUpdate=!0,Hi(n,r,i),St(n,"lineWidgetChanged",n,e,E(r))}))},Pe(Cs);var Ss=0,_s=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++Ss};_s.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,n=t&&!t.curOp;if(n&&ir(t),Ie(this,"clear")){var r=this.find();r&&St(this,"clear",r.from,r.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var s=e.lines[a],l=G(s.markedSpans,e);t&&!e.collapsed?vr(t,E(s),"text"):t&&(null!=l.to&&(o=E(s)),null!=l.from&&(i=E(s))),s.markedSpans=X(s.markedSpans,l),null==l.from&&e.collapsed&&!ge(e.doc,s)&&t&&O(s,bn(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=fe(e.lines[c]),f=be(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&gr(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&ki(t.doc)),t&&St(t,"markerCleared",t,this,i,o),n&&or(t),this.parent&&this.parent.clear()}},_s.prototype.find=function(e,t){var n=this;null==e&&"bookmark"==this.type&&(e=1);for(var r,i,o=0;o<this.lines.length;++o){var a=n.lines[o],s=G(a.markedSpans,n);if(null!=s.from&&(r=R(t?a:E(a),s.from),e==-1))return r;if(null!=s.to&&(i=R(t?a:E(a),s.to),1==e))return i}return r&&{from:r,to:i}},_s.prototype.changed=function(){var e=this,t=this.find(-1,!0),n=this,r=this.doc.cm;t&&r&&dr(r,function(){var i=t.line,o=E(t.line),a=Yt(r,o);if(a&&(rn(a),r.curOp.selectionChanged=r.curOp.forceUpdate=!0),r.curOp.updateMaxLine=!0,!ge(n.doc,i)&&null!=n.height){var s=n.height;n.height=null;var l=Dt(n)-s;l&&O(i,i.height+l)}St(r,"markerChanged",r,e)})},_s.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&d(t.maybeHiddenMarkers,this)!=-1||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},_s.prototype.detachLine=function(e){if(this.lines.splice(d(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Pe(_s);var Ms=function(e,t){var n=this;this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=n};Ms.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();St(this,"clear")}},Ms.prototype.find=function(e,t){return this.primary.find(e,t)},Pe(Ms);var Ls=0,Ts=function(e,t,n,r,i){if(!(this instanceof Ts))return new Ts(e,t,n,r,i);null==n&&(n=0),qi.call(this,[new Wi([new ss("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=n;var o=R(n,0);this.sel=Fr(o),this.history=new Zr(null),this.id=++Ls,this.modeOption=t,this.lineSep=r,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Gr(this,{from:o,to:o,text:e}),bi(this,Fr(o),za)};Ts.prototype=b(qi.prototype,{constructor:Ts,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=A(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:mr(function(e){var t=R(this.first,0),n=this.first+this.size-1;Ai(this,{from:t,to:R(n,L(this,n).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&$n(this.cm,0,0),bi(this,Fr(t),za)}),replaceRange:function(e,t,n,r){t=H(this,t),n=n?H(this,n):t,Ri(this,e,t,n,r)},getRange:function(e,t,n){var r=T(this,H(this,e),H(this,t));return n===!1?r:r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(I(this,e))return L(this,e)},getLineNumber:function(e){return E(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=L(this,e)),fe(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return H(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||e===!1?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:mr(function(e,t,n){gi(this,H(this,"number"==typeof e?R(e,t||0):e),null,n)}),setSelection:mr(function(e,t,n){gi(this,H(this,e),H(this,t||e),n)}),extendSelection:mr(function(e,t,n){hi(this,H(this,e),t&&H(this,t),n)}),extendSelections:mr(function(e,t){pi(this,K(this,e),t)}),extendSelectionsBy:mr(function(e,t){pi(this,K(this,g(this.sel.ranges,e)),t)}),setSelections:mr(function(e,t,n){var r=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new ks(H(r,e[o].anchor),H(r,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),bi(this,Dr(i,t),n)}}),addSelection:mr(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new ks(H(this,e),H(this,t||e))),bi(this,Dr(r,r.length-1),n)}),getSelection:function(e){for(var t,n=this,r=this.sel.ranges,i=0;i<r.length;i++){var o=T(n,r[i].from(),r[i].to());t=t?t.concat(o):o}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,n=[],r=this.sel.ranges,i=0;i<r.length;i++){var o=T(t,r[i].from(),r[i].to());e!==!1&&(o=o.join(e||t.lineSeparator())),n[i]=o}return n},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||"+input")},replaceSelections:mr(function(e,t,n){for(var r=this,i=[],o=this.sel,a=0;a<o.ranges.length;a++){var s=o.ranges[a];i[a]={from:s.from(),to:s.to(),text:r.splitLines(e[a]),origin:n}}for(var l=t&&"end"!=t&&Kr(this,i,t),c=i.length-1;c>=0;c--)Ai(r,i[c]);l?yi(this,l):this.cm&&Vn(this.cm)}),undo:mr(function(){Ei(this,"undo")}),redo:mr(function(){Ei(this,"redo")}),undoSelection:mr(function(){Ei(this,"undo",!0)}),redoSelection:mr(function(){Ei(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new Zr(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:fi(this.history.done),undone:fi(this.history.undone)}},setHistory:function(e){var t=this.history=new Zr(this.history.maxGeneration);t.done=fi(e.done.slice(0),null,!0),t.undone=fi(e.undone.slice(0),null,!0)},setGutterMarker:mr(function(e,t,n){return Fi(this,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&k(r)&&(e.gutterMarkers=null),!0})}),clearGutter:mr(function(e){var t=this;this.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&Fi(t,n,"gutter",function(){return n.gutterMarkers[e]=null,k(n.gutterMarkers)&&(n.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!I(this,e))return null;if(t=e,!(e=L(this,e)))return null}else if(null==(t=E(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:mr(function(t,n,r){return Fi(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass";if(t[i]){if(e(r).test(t[i]))return!1;t[i]+=" "+r}else t[i]=r;return!0})}),removeLineClass:mr(function(t,n,r){return Fi(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==r)t[i]=null;else{var a=o.match(e(r));if(!a)return!1;var s=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&s!=o.length?" ":"")+o.slice(s)||null}return!0})}),addLineWidget:mr(function(e,t,n){return ji(this,e,t,n)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return Ki(this,H(this,e),H(this,t),n,n&&n.type||"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,
|
5 |
+
handleMouseEvents:t&&t.handleMouseEvents};return e=H(this,e),Ki(this,e,e,n,"bookmark")},findMarksAt:function(e){e=H(this,e);var t=[],n=L(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=H(this,e),t=H(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var s=0;s<a.length;s++){var l=a[s];null!=l.to&&i==e.line&&e.ch>=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+r;if(o>e)return t=e,!0;e-=o,++n}),H(this,R(n,t))},indexFromPos:function(e){e=H(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Ts(A(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new Ts(A(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],$i(r,Vi(this)),r},unlinkDoc:function(e){var t=this;if(e instanceof Wo&&(e=e.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=t.linked[n];if(r.doc==e){t.linked.splice(n,1),e.unlinkDoc(t),Gi(Vi(t));break}}if(e.history==this.history){var i=[e.id];Xr(e,function(e){return i.push(e.id)},!0),e.history=new Zr(null),e.history.done=fi(this.history.done,i),e.history.undone=fi(this.history.undone,i)}},iterLinkedDocs:function(e){Xr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Ya(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:mr(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Jr(this.cm))})}),Ts.prototype.eachLine=Ts.prototype.iter;for(var As=0,Os=!1,Es={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Ns=0;Ns<10;Ns++)Es[Ns+48]=Es[Ns+96]=String(Ns);for(var Is=65;Is<=90;Is++)Es[Is]=String.fromCharCode(Is);for(var Ps=1;Ps<=12;Ps++)Es[Ps+111]=Es[Ps+63235]="F"+Ps;var Rs={};Rs.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Rs.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Rs.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Rs.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Rs.default=Ca?Rs.macDefault:Rs.pcDefault;var Bs={selectAll:Li,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),za)},killLine:function(e){return uo(e,function(t){if(t.empty()){var n=L(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:R(t.head.line+1,0)}:{from:t.head,to:R(t.head.line,n)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return uo(e,function(t){return{from:R(t.from().line,0),to:H(e.doc,R(t.to().line+1,0))}})},delLineLeft:function(e){return uo(e,function(e){return{from:R(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return uo(e,function(t){var n=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:n},"div"),to:t.from()}})},delWrappedLineRight:function(e){return uo(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div");return{from:t.from(),to:r}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(R(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(R(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return fo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return po(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ho(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div")},Fa)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:n},"div")},Fa)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return r.ch<e.getLine(r.line).search(/\S/)?po(e,t.head):r},Fa)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),a=f(e.getLine(o.line),o.ch,r);t.push(p(r-a%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return dr(e,function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)if(t[r].empty()){var i=t[r].head,o=L(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new R(i.line,i.ch-1)),i.ch>0)i=new R(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),R(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=L(e.doc,i.line-1).text;a&&(i=new R(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),R(i.line-1,a.length-1),i,"+transpose"))}n.push(new ks(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return dr(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r<t.length;r++)e.indentLine(t[r].from().line,null,!0);Vn(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},zs=new Na,Ds=null,Fs=function(e,t,n){this.time=e,this.pos=t,this.button=n};Fs.prototype.compare=function(e,t,n){return this.time+400>e&&0==B(t,this.pos)&&n==this.button};var Ws,qs,Hs={toString:function(){return"CodeMirror.Init"}},js={},Ks={};Wo.defaults=js,Wo.optionHandlers=Ks;var Us=[];Wo.defineInitHook=function(e){return Us.push(e)};var Vs=null,$s=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Na,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};$s.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())jo({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=$o(i);jo({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,za),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var n=Vs.text.join("\n");if(e.clipboardData.setData("Text",n),e.clipboardData.getData("Text")==n)return void e.preventDefault()}var a=Xo(),s=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),s.value=Vs.text.join("\n");var l=document.activeElement;Ea(s),setTimeout(function(){i.display.lineSpace.removeChild(a),l.focus(),l==o&&r.showPrimarySelection()},50)}}var n=this,r=this,i=r.cm,o=r.div=e.lineDiv;Go(o,i.options.spellcheck),Ga(o,"paste",function(e){Ee(i,e)||Uo(e,i)||da<=11&&setTimeout(hr(i,function(){return n.updateFromDOM()}),20)}),Ga(o,"compositionstart",function(e){n.composing={data:e.data,done:!1}}),Ga(o,"compositionupdate",function(e){n.composing||(n.composing={data:e.data,done:!1})}),Ga(o,"compositionend",function(e){n.composing&&(e.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),Ga(o,"touchstart",function(){return r.forceCompositionEnd()}),Ga(o,"input",function(){n.composing||n.readFromDOMSoon()}),Ga(o,"copy",t),Ga(o,"cut",t)},$s.prototype.prepareSelection=function(){var e=Tn(this.cm,!1);return e.focus=this.cm.state.focused,e},$s.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},$s.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line<t.display.viewFrom)return void e.removeAllRanges();var o=na(t,e.anchorNode,e.anchorOffset),a=na(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=B(W(o,a),r)||0!=B(F(o,a),i)){var s=t.display.view,l=r.line>=t.display.viewFrom&&Jo(t,r)||{node:s[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Jo(t,i);if(!c){var u=s[s.length-1].measure,f=u.maps?u.maps[u.maps.length-1]:u.map;c={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(!l||!c)return void e.removeAllRanges();var d,h=e.rangeCount&&e.getRangeAt(0);try{d=La(l.node,l.offset,c.offset,c.node)}catch(e){}d&&(!sa&&t.state.focused?(e.collapse(l.node,l.offset),d.collapsed||(e.removeAllRanges(),e.addRange(d))):(e.removeAllRanges(),e.addRange(d)),h&&null==e.anchorNode?e.addRange(h):sa&&this.startGracePeriod()),this.rememberSelection()}},$s.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},$s.prototype.showMultipleSelections=function(e){n(this.cm.display.cursorDiv,e.cursors),n(this.cm.display.selectionDiv,e.selection)},$s.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},$s.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},$s.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},$s.prototype.blur=function(){this.div.blur()},$s.prototype.getField=function(){return this.div},$s.prototype.supportsTouch=function(){return!0},$s.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():dr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},$s.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},$s.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(wa&&ma&&this.cm.options.gutters.length&&Zo(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var n=na(t,e.anchorNode,e.anchorOffset),r=na(t,e.focusNode,e.focusOffset);n&&r&&dr(t,function(){bi(t.doc,Fr(n,r),za),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)})}}},$s.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,n=e.doc.sel.primary(),r=n.from(),i=n.to();if(0==r.ch&&r.line>e.firstLine()&&(r=R(r.line-1,L(e.doc,r.line-1).length)),i.ch==L(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=R(i.line+1,0)),r.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,s;r.line==t.viewFrom||0==(o=Mn(e,r.line))?(a=E(t.view[0].line),s=t.view[0].node):(a=E(t.view[o].line),s=t.view[o-1].node.nextSibling);var l,c,u=Mn(e,i.line);if(u==t.view.length-1?(l=t.viewTo-1,c=t.lineDiv.lastChild):(l=E(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!s)return!1;for(var f=e.doc.splitLines(ta(e,s,c,a,l)),d=T(e.doc,R(a,0),R(l,L(e.doc,l).text.length));f.length>1&&d.length>1;)if(m(f)==m(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),a++}for(var h=0,p=0,g=f[0],v=d[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(f),x=m(d),w=Math.min(b.length-(1==f.length?h:0),x.length-(1==d.length?h:0));p<w&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)++p;if(1==f.length&&1==d.length&&a==r.line)for(;h&&h>r.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)h--,p++;f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var k=R(a,h),C=R(l,d.length?m(d).length-p:0);return f.length>1||f[0]||B(k,C)?(Ri(e.doc,f,k,C,"+input"),!0):void 0},$s.prototype.ensurePolled=function(){this.forceCompositionEnd()},$s.prototype.reset=function(){this.forceCompositionEnd()},$s.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},$s.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},$s.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||dr(this.cm,function(){return gr(e.cm)})},$s.prototype.setUneditable=function(e){e.contentEditable="false"},$s.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||hr(this.cm,Ko)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},$s.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},$s.prototype.onContextMenu=function(){},$s.prototype.resetPosition=function(){},$s.prototype.needsContentAttribute=!0;var Gs=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Na,this.hasSelection=!1,this.composing=null};Gs.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())jo({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=$o(i);jo({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,za):(r.prevInput="",a.value=t.text.join("\n"),Ea(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var n=this,r=this,i=this.cm,o=this.wrapper=Xo(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),xa&&(a.style.width="0px"),Ga(a,"input",function(){fa&&da>=9&&n.hasSelection&&(n.hasSelection=null),r.poll()}),Ga(a,"paste",function(e){Ee(i,e)||Uo(e,i)||(i.state.pasteIncoming=!0,r.fastPoll())}),Ga(a,"cut",t),Ga(a,"copy",t),Ga(e.scroller,"paste",function(t){Ft(e,t)||Ee(i,t)||(i.state.pasteIncoming=!0,r.focus())}),Ga(e.lineSpace,"selectstart",function(t){Ft(e,t)||Re(t)}),Ga(a,"compositionstart",function(){var e=i.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Ga(a,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},Gs.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Tn(e);if(e.options.moveInputWithCursor){var i=dn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Gs.prototype.showSelection=function(e){var t=this.cm,r=t.display;n(r.cursorDiv,e.cursors),n(r.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Gs.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&Ea(this.textarea),fa&&da>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",fa&&da>=9&&(this.hasSelection=null))}},Gs.prototype.getField=function(){return this.textarea},Gs.prototype.supportsTouch=function(){return!1},Gs.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!ka||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Gs.prototype.blur=function(){this.textarea.blur()},Gs.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Gs.prototype.receivedFocus=function(){this.slowPoll()},Gs.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Gs.prototype.fastPoll=function(){function e(){n.poll()||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},Gs.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Qa(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(fa&&da>=9&&this.hasSelection===i||Ca&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r=""),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,s=Math.min(r.length,i.length);a<s&&r.charCodeAt(a)==i.charCodeAt(a);)++a;return dr(t,function(){Ko(t,i.slice(a),r.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Gs.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Gs.prototype.onKeyPress=function(){fa&&da>=9&&(this.hasSelection=null),this.fastPoll()},Gs.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t=""+(e?a.value:"");a.value="⇚",a.value=t,r.prevInput=e?"":"",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function n(){if(r.contextMenuPending=!1,r.wrapper.style.cssText=u,a.style.cssText=c,fa&&da<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=a.selectionStart){(!fa||fa&&da<9)&&t();var e=0,n=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&""==r.prevInput?hr(i,Li)(i):e++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var r=this,i=r.cm,o=i.display,a=r.textarea,s=_n(i,e),l=o.scroller.scrollTop;if(s&&!ga){i.options.resetSelectionOnContextMenu&&i.doc.sel.contains(s)==-1&&hr(i,bi)(i.doc,Fr(s),za);var c=a.style.cssText,u=r.wrapper.style.cssText;r.wrapper.style.cssText="position: absolute";var f=r.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-f.top-5)+"px; left: "+(e.clientX-f.left-5)+"px;\n z-index: 1000; background: "+(fa?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(ha&&(d=window.scrollY),o.input.focus(),ha&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=r.prevInput=" "),r.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),fa&&da>=9&&t(),Aa){De(e);var h=function(){Ae(window,"mouseup",h),setTimeout(n,20)};Ga(window,"mouseup",h)}else setTimeout(n,50)}},Gs.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Gs.prototype.setUneditable=function(){},Gs.prototype.needsContentAttribute=!1,function(e){function t(t,r,i,o){e.defaults[t]=r,i&&(n[t]=o?function(e,t,n){n!=Hs&&i(e,t,n)}:i)}var n=e.optionHandlers;e.defineOption=t,e.Init=Hs,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Ur(e)},!0),t("indentUnit",2,Ur,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Vr(e),an(e),gr(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(o==-1)break;i=o+t.length,n.push(R(r,o))}r++});for(var i=n.length-1;i>=0;i--)Ri(e.doc,t,n[i],R(n[i].line,n[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Hs&&e.refresh()}),t("specialCharPlaceholder",ht,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",ka?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!_a),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){Bo(e),zo(e)},!0),t("keyMap","default",function(e,t,n){var r=co(t),i=n!=Hs&&co(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Fo,!0),t("gutters",[],function(e){Pr(e.options),zo(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?kn(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return tr(e)},!0),t("scrollbarStyle","native",function(e){rr(e),tr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pr(e.options),zo(e)},!0),t("firstLineNumber",1,zo,!0),t("lineNumberFormatter",function(e){return e},zo,!0),t("showCursorWhenSelecting",!1,Ln,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Rn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,Do),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Ln,!0),t("singleCursorHeightPerLine",!0,Ln,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Vr,!0),t("addModeClass",!1,Vr,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Vr,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Wo),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&hr(this,t[e])(this,n,i),Oe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](co(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:pr(function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");v(this.state.overlays,{mode:r,modeSpec:t,opaque:n&&n.opaque,priority:n&&n.priority||0},function(e){return e.priority}),this.state.modeGen++,gr(this)}),removeOverlay:pr(function(e){for(var t=this,n=this.state.overlays,r=0;r<n.length;++r){var i=n[r].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return n.splice(r,1),t.state.modeGen++,void gr(t)}}),indentLine:pr(function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),I(this.doc,e)&&Ho(this,e,t,n)}),indentSelection:pr(function(e){for(var t=this,n=this.doc.sel.ranges,r=-1,i=0;i<n.length;i++){var o=n[i];if(o.empty())o.head.line>r&&(Ho(t,o.head.line,e,!0),r=o.head.line,i==t.doc.sel.primIndex&&Vn(t));else{var a=o.from(),s=o.to(),l=Math.max(r,a.line);r=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var c=l;c<r;++c)Ho(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&n.length==u.length&&u[i].from().ch>0&&mi(t.doc,i,new ks(a,u[i].to()),za)}}}),getTokenAt:function(e,t){return it(this,e,t)},getLineTokens:function(e,t){return it(this,R(e),t,!0)},getTokenTypeAt:function(e){e=H(this.doc,e);var t,n=Ze(this,L(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]<o)){t=n[2*a+2];break}r=a+1}}var s=t?t.indexOf("overlay "):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=this,i=[];if(!n.hasOwnProperty(t))return i;var o=n[t],a=this.getModeAt(e);if("string"==typeof a[t])o[a[t]]&&i.push(o[a[t]]);else if(a[t])for(var s=0;s<a[t].length;s++){var l=o[a[t][s]];l&&i.push(l)}else a.helperType&&o[a.helperType]?i.push(o[a.helperType]):o[a.name]&&i.push(o[a.name]);for(var c=0;c<o._global.length;c++){var u=o._global[c];u.pred(a,r)&&d(i,u.val)==-1&&i.push(u.val)}return i},getStateAfter:function(e,t){var n=this.doc;return e=q(n,null==e?n.first+n.size-1:e),et(this,e+1,t).state},cursorCoords:function(e,t){var n,r=this.doc.sel.primary();return n=null==e?r.head:"object"==typeof e?H(this.doc,e):e?r.from():r.to(),dn(this,n,t||"page")},charCoords:function(e,t){return fn(this,H(this.doc,e),t||"page")},coordsChar:function(e,t){return e=un(this,e,t||"page"),mn(this,e.left,e.top)},lineAtHeight:function(e,t){return e=un(this,{top:e,left:0},t||"page").top,N(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),r=L(this.doc,e)}else r=e;return cn(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-ye(r):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=dn(this,H(this.doc,e));var a=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&jn(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:pr(xo),triggerOnKeyPress:pr(Co),triggerOnKeyUp:ko,triggerOnMouseDown:pr(_o),execCommand:function(e){if(Bs.hasOwnProperty(e))return Bs[e].call(null,this)},triggerElectric:pr(function(e){Vo(this,e)}),findPosH:function(e,t,n,r){var i=this,o=1;t<0&&(o=-1,t=-t);for(var a=H(this.doc,e),s=0;s<t&&(a=Yo(i.doc,a,o,n,r),!a.hitSide);++s);return a},moveH:pr(function(e,t){var n=this;this.extendSelectionsBy(function(r){return n.display.shift||n.doc.extend||r.empty()?Yo(n.doc,r.head,e,t,n.options.rtlMoveVisually):e<0?r.from():r.to()},Fa)}),
|
6 |
+
deleteH:pr(function(e,t){var n=this.doc.sel,r=this.doc;n.somethingSelected()?r.replaceSelection("",null,"+delete"):uo(this,function(n){var i=Yo(r,n.head,e,t,!1);return e<0?{from:i,to:n.head}:{from:n.head,to:i}})}),findPosV:function(e,t,n,r){var i=this,o=1,a=r;t<0&&(o=-1,t=-t);for(var s=H(this.doc,e),l=0;l<t;++l){var c=dn(i,s,"div");if(null==a?a=c.left:c.left=a,s=Qo(i,c,o,n),s.hitSide)break}return s},moveV:pr(function(e,t){var n=this,r=this.doc,i=[],o=!this.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var s=dn(n,a.head,"div");null!=a.goalColumn&&(s.left=a.goalColumn),i.push(s.left);var l=Qo(n,s,e,t);return"page"==t&&a==r.sel.primary()&&Un(n,fn(n,l,"div").top-s.top),l},Fa),i.length)for(var a=0;a<r.sel.ranges.length;a++)r.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,n=L(t,e.line).text,r=e.ch,i=e.ch;if(n){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=n.length||!r?++i:--r;for(var a=n.charAt(r),s=w(a,o)?function(e){return w(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};r>0&&s(n.charAt(r-1));)--r;for(;i<n.length&&s(n.charAt(i));)++i}return new ks(R(e.line,r),R(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?s(this.display.cursorDiv,"CodeMirror-overwrite"):Oa(this.display.cursorDiv,"CodeMirror-overwrite"),Oe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:pr(function(e,t){$n(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-jt(this)-this.display.barHeight,width:e.scrollWidth-jt(this)-this.display.barWidth,clientHeight:Ut(this),clientWidth:Kt(this)}},scrollIntoView:pr(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:R(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?Gn(this,e):Yn(this,e.from,e.to,e.margin)}),setSize:pr(function(e,t){var n=this,r=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=r(e)),null!=t&&(this.display.wrapper.style.height=r(t)),this.options.lineWrapping&&on(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){vr(n,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Oe(this,"refresh",this)}),operation:function(e){return dr(this,e)},startOperation:function(){return ir(this)},endOperation:function(){return or(this)},refresh:pr(function(){var e=this.display.cachedTextHeight;gr(this),this.curOp.forceUpdate=!0,an(this),$n(this,this.doc.scrollLeft,this.doc.scrollTop),Er(this),(null==e||Math.abs(e-bn(this.display))>.5)&&Sn(this),Oe(this,"refresh",this)}),swapDoc:pr(function(e){var t=this.doc;return t.cm=null,Yr(this,e),an(this),this.display.input.reset(),$n(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,St(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Pe(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Wo);var Xs="iter insert remove copy getEditor constructor".split(" ");for(var Ys in Ts.prototype)Ts.prototype.hasOwnProperty(Ys)&&d(Xs,Ys)<0&&(Wo.prototype[Ys]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ts.prototype[Ys]));return Pe(Ts),Wo.inputStyles={textarea:Gs,contenteditable:$s},Wo.defineMode=function(e){Wo.defaults.mode||"null"==e||(Wo.defaults.mode=e),Ke.apply(this,arguments)},Wo.defineMIME=Ue,Wo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Wo.defineMIME("text/plain","null"),Wo.defineExtension=function(e,t){Wo.prototype[e]=t},Wo.defineDocExtension=function(e,t){Ts.prototype[e]=t},Wo.fromTextArea=ia,function(e){e.off=Ae,e.on=Ga,e.wheelEventPixels=Br,e.Doc=Ts,e.splitLines=Ya,e.countColumn=f,e.findColumn=h,e.isWordChar=x,e.Pass=Ba,e.signal=Oe,e.Line=ss,e.changeEnd=Wr,e.scrollbarModel=gs,e.Pos=R,e.cmpPos=B,e.modes=es,e.mimeModes=ts,e.resolveMode=Ve,e.getMode=$e,e.modeExtensions=ns,e.extendMode=Ge,e.copyState=Xe,e.startState=Qe,e.innerMode=Ye,e.commands=Bs,e.keyMap=Rs,e.keyName=lo,e.isModifierKey=ao,e.lookupKey=oo,e.normalizeKeyMap=io,e.StringStream=rs,e.SharedTextMarker=Ms,e.TextMarker=_s,e.LineWidget=Cs,e.e_preventDefault=Re,e.e_stopPropagation=Be,e.e_stop=De,e.addClass=s,e.contains=o,e.rmClass=Oa,e.keyNames=Es}(Wo),Wo.version="5.29.0",Wo}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(r,i){function o(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();if("<"==r)return e.eat("!")?e.eat("[")?e.match("CDATA[")?n(l("atom","]]>")):null:e.match("--")?n(l("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=l("meta","?>"),"meta"):(M=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==r){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=o,M=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return M="equals",null;if("<"==n){t.tokenize=o,t.state=h,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=s(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function s(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function l(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=o;break}n.next()}return e}}function c(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=c(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=o;break}return n.tokenize=c(e-1),n.tokenize(t,n)}}return"meta"}}function u(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(C.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function d(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!C.contextGrabbers.hasOwnProperty(n)||!C.contextGrabbers[n].hasOwnProperty(t))return;f(e)}}function h(e,t,n){return"openTag"==e?(n.tagStart=t.column(),p):"closeTag"==e?m:h}function p(e,t,n){return"word"==e?(n.tagName=t.current(),L="tag",y):(L="error",p)}function m(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&C.implicitlyClosed.hasOwnProperty(n.context.tagName)&&f(n),n.context&&n.context.tagName==r||C.matchClosing===!1?(L="tag",g):(L="tag error",v)}return L="error",v}function g(e,t,n){return"endTag"!=e?(L="error",g):(f(n),h)}function v(e,t,n){return L="error",g(e,t,n)}function y(e,t,n){if("word"==e)return L="attribute",b;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||C.autoSelfClosers.hasOwnProperty(r)?d(n,r):(d(n,r),n.context=new u(n,r,i==n.indented)),h}return L="error",y}function b(e,t,n){return"equals"==e?x:(C.allowMissing||(L="error"),y(e,t,n))}function x(e,t,n){return"string"==e?w:"word"==e&&C.allowUnquoted?(L="string",y):(L="error",y(e,t,n))}function w(e,t,n){return"string"==e?w:y(e,t,n)}var k=r.indentUnit,C={},S=i.htmlMode?t:n;for(var _ in S)C[_]=S[_];for(var _ in i)C[_]=i[_];var M,L;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;M=null;var n=t.tokenize(e,t);return(n||M)&&"comment"!=n&&(L=null,t.state=t.state(M||n,e,t),L&&(n="error"==L?n+" error":L)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return C.multilineTagIndentPastTag!==!1?t.tagStart+t.tagName.length+2:t.tagStart+k*(C.multilineTagIndentFactor||1);if(C.alignCDATA&&/<!\[CDATA\[/.test(n))return 0;var s=n&&/^<(\/)?([\w_:\.-]*)/.exec(n);if(s&&s[1])for(;i;){if(i.tagName==s[2]){i=i.prev;break}if(!C.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(s)for(;i;){var l=C.contextGrabbers[i.tagName];if(!l||!l.hasOwnProperty(s[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:C.htmlMode?"html":"xml",helperType:C.htmlMode?"html":"xml",skipAttribute:function(e){e.state==x&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,n){function r(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}function i(e,t,n){return Me=e,Le=n,t}function o(e,t){var n=e.next();if('"'==n||"'"==n)return t.tokenize=a(n),t.tokenize(e,t);if("."==n&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return i("number","number");if("."==n&&e.match(".."))return i("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return i(n);if("="==n&&e.eat(">"))return i("=>","operator");if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if("0"==n&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),i("number","number");if("0"==n&&e.eat(/b/i))return e.eatWhile(/[01]/i),i("number","number");if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==n)return e.eat("*")?(t.tokenize=s,s(e,t)):e.eat("/")?(e.skipToEnd(),i("comment","comment")):_e(e,t,1)?(r(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),i("regexp","string-2")):(e.eatWhile(Re),i("operator","operator",e.current()));if("`"==n)return t.tokenize=l,l(e,t);if("#"==n)return e.skipToEnd(),i("error","error");if(Re.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||e.eatWhile(Re),i("operator","operator",e.current());if(Ie.test(n)){e.eatWhile(Ie);var o=e.current();if("."!=t.lastType){if(Pe.propertyIsEnumerable(o)){var c=Pe[o];return i(c.type,c.style,o)}if("async"==o&&e.match(/^\s*[\(\w]/,!1))return i("async","keyword",o)}return i("variable","variable",o)}}function a(e){return function(t,n){var r,a=!1;if(Oe&&"@"==t.peek()&&t.match(Be))return n.tokenize=o,i("jsonld-keyword","meta");for(;null!=(r=t.next())&&(r!=e||a);)a=!a&&"\\"==r;return a||(n.tokenize=o),i("string","string")}}function s(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=o;break}r="*"==n}return i("comment","comment")}function l(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=o;break}r=!r&&"\\"==n}return i("quasi","string-2",e.current())}function c(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(Ne){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l=ze.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(Ie.test(s))o=!0;else{if(/["'\/]/.test(s))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function u(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function f(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(var n=r.vars;n;n=n.next)if(n.name==t)return!0}function d(e,t,n,r,i){var o=e.cc;for(Fe.state=e,Fe.stream=i,Fe.marked=null,Fe.cc=o,Fe.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():Ee?k:w)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Fe.marked?Fe.marked:"variable"==n&&f(e,r)?"variable-2":t}}}function h(){for(var e=arguments.length-1;e>=0;e--)Fe.cc.push(arguments[e])}function p(){return h.apply(null,arguments),!0}function m(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var r=Fe.state;if(Fe.marked="def",r.context){if(t(r.localVars))return;r.localVars={name:e,next:r.localVars}}else{if(t(r.globalVars))return;n.globalVars&&(r.globalVars={name:e,next:r.globalVars})}}function g(){Fe.state.context={prev:Fe.state.context,vars:Fe.state.localVars},Fe.state.localVars=We}function v(){Fe.state.localVars=Fe.state.context.vars,Fe.state.context=Fe.state.context.prev}function y(e,t){var n=function(){var n=Fe.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new u(r,Fe.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function b(){var e=Fe.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function x(e){function t(n){return n==e?p():";"==e?h():p(t)}return t}function w(e,t){return"var"==e?p(y("vardef",t.length),J,x(";"),b):"keyword a"==e?p(y("form"),S,w,b):"keyword b"==e?p(y("form"),w,b):"{"==e?p(y("}"),K,b):";"==e?p():"if"==e?("else"==Fe.state.lexical.info&&Fe.state.cc[Fe.state.cc.length-1]==b&&Fe.state.cc.pop()(),p(y("form"),S,w,b,re)):"function"==e?p(ce):"for"==e?p(y("form"),ie,w,b):"variable"==e?Ne&&"type"==t?(Fe.marked="keyword",p(V,x("operator"),V,x(";"))):Ne&&"declare"==t?(Fe.marked="keyword",p(w)):p(y("stat"),z):"switch"==e?p(y("form"),S,x("{"),y("}","switch"),K,b,b):"case"==e?p(k,x(":")):"default"==e?p(x(":")):"catch"==e?p(y("form"),g,x("("),ue,x(")"),w,b,v):"class"==e?p(y("form"),de,b):"export"==e?p(y("stat"),ge,b):"import"==e?p(y("stat"),ye,b):"module"==e?p(y("form"),Z,x("{"),y("}"),K,b,b):"async"==e?p(w):"@"==t?p(k,w):h(y("stat"),k,x(";"),b)}function k(e){return _(e,!1)}function C(e){return _(e,!0)}function S(e){return"("!=e?h():p(y(")"),k,x(")"),b)}function _(e,t){if(Fe.state.fatArrowAt==Fe.stream.start){var n=t?I:N;if("("==e)return p(g,y(")"),H(Z,")"),b,x("=>"),n,v);if("variable"==e)return h(g,Z,x("=>"),n,v)}var r=t?A:T;return De.hasOwnProperty(e)?p(r):"function"==e?p(ce,r):"class"==e?p(y("form"),fe,b):"keyword c"==e||"async"==e?p(t?L:M):"("==e?p(y(")"),M,x(")"),b,r):"operator"==e||"spread"==e?p(t?C:k):"["==e?p(y("]"),Ce,b,r):"{"==e?j(F,"}",null,r):"quasi"==e?h(O,r):"new"==e?p(P(t)):p()}function M(e){return e.match(/[;\}\)\],]/)?h():h(k)}function L(e){return e.match(/[;\}\)\],]/)?h():h(C)}function T(e,t){return","==e?p(k):A(e,t,!1)}function A(e,t,n){var r=0==n?T:A,i=0==n?k:C;return"=>"==e?p(g,n?I:N,v):"operator"==e?/\+\+|--/.test(t)||Ne&&"!"==t?p(r):"?"==t?p(k,x(":"),i):p(i):"quasi"==e?h(O,r):";"!=e?"("==e?j(C,")","call",r):"."==e?p(D,r):"["==e?p(y("]"),M,x("]"),b,r):Ne&&"as"==t?(Fe.marked="keyword",p(V,r)):void 0:void 0}function O(e,t){return"quasi"!=e?h():"${"!=t.slice(t.length-2)?p(O):p(k,E)}function E(e){if("}"==e)return Fe.marked="string-2",Fe.state.tokenize=l,p(O)}function N(e){return c(Fe.stream,Fe.state),h("{"==e?w:k)}function I(e){return c(Fe.stream,Fe.state),h("{"==e?w:C)}function P(e){return function(t){return"."==t?p(e?B:R):"variable"==t&&Ne?p(Q,e?A:T):h(e?C:k)}}function R(e,t){if("target"==t)return Fe.marked="keyword",p(T)}function B(e,t){if("target"==t)return Fe.marked="keyword",p(A)}function z(e){return":"==e?p(b,w):h(T,x(";"),b)}function D(e){if("variable"==e)return Fe.marked="property",p()}function F(e,t){return"async"==e?(Fe.marked="property",p(F)):"variable"==e||"keyword"==Fe.style?(Fe.marked="property",p("get"==t||"set"==t?W:q)):"number"==e||"string"==e?(Fe.marked=Oe?"property":Fe.style+" property",p(q)):"jsonld-keyword"==e?p(q):"modifier"==e?p(F):"["==e?p(k,x("]"),q):"spread"==e?p(k,q):":"==e?h(q):void 0}function W(e){return"variable"!=e?h(q):(Fe.marked="property",p(ce))}function q(e){return":"==e?p(C):"("==e?h(ce):void 0}function H(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=Fe.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),p(function(n,r){return n==t||r==t?h():h(e)},r)}return i==t||o==t?p():p(x(t))}return function(n,i){return n==t||i==t?p():h(e,r)}}function j(e,t,n){for(var r=3;r<arguments.length;r++)Fe.cc.push(arguments[r]);return p(y(t,n),H(e,t),b)}function K(e){return"}"==e?p():h(w,K)}function U(e,t){if(Ne){if(":"==e)return p(V);if("?"==t)return p(U)}}function V(e,t){return"variable"==e?"keyof"==t?(Fe.marked="keyword",p(V)):(Fe.marked="type",p(Y)):"string"==e||"number"==e||"atom"==e?p(Y):"["==e?p(y("]"),H(V,"]",","),b,Y):"{"==e?p(y("}"),H(G,"}",",;"),b,Y):"("==e?p(H(X,")"),$):void 0}function $(e){if("=>"==e)return p(V)}function G(e,t){return"variable"==e||"keyword"==Fe.style?(Fe.marked="property",p(G)):"?"==t?p(G):":"==e?p(V):"["==e?p(k,U,x("]"),G):void 0}function X(e){return"variable"==e?p(X):":"==e?p(V):void 0}function Y(e,t){return"<"==t?p(y(">"),H(V,">"),b,Y):"|"==t||"."==e?p(V):"["==e?p(x("]"),Y):"extends"==t?p(V):void 0}function Q(e,t){if("<"==t)return p(y(">"),H(V,">"),b,Y)}function J(){return h(Z,U,te,ne)}function Z(e,t){return"modifier"==e?p(Z):"variable"==e?(m(t),p()):"spread"==e?p(Z):"["==e?j(Z,"]"):"{"==e?j(ee,"}"):void 0}function ee(e,t){return"variable"!=e||Fe.stream.match(/^\s*:/,!1)?("variable"==e&&(Fe.marked="property"),"spread"==e?p(Z):"}"==e?h():p(x(":"),Z,te)):(m(t),p(te))}function te(e,t){if("="==t)return p(C)}function ne(e){if(","==e)return p(J)}function re(e,t){if("keyword b"==e&&"else"==t)return p(y("form","else"),w,b)}function ie(e){if("("==e)return p(y(")"),oe,x(")"),b)}function oe(e){return"var"==e?p(J,x(";"),se):";"==e?p(se):"variable"==e?p(ae):h(k,x(";"),se)}function ae(e,t){return"in"==t||"of"==t?(Fe.marked="keyword",p(k)):p(T,se)}function se(e,t){return";"==e?p(le):"in"==t||"of"==t?(Fe.marked="keyword",p(k)):h(k,x(";"),le)}function le(e){")"!=e&&p(k)}function ce(e,t){return"*"==t?(Fe.marked="keyword",p(ce)):"variable"==e?(m(t),p(ce)):"("==e?p(g,y(")"),H(ue,")"),b,U,w,v):Ne&&"<"==t?p(y(">"),H(V,">"),b,ce):void 0}function ue(e){return"spread"==e||"modifier"==e?p(ue):h(Z,U,te)}function fe(e,t){return"variable"==e?de(e,t):he(e,t)}function de(e,t){if("variable"==e)return m(t),p(he)}function he(e,t){return"<"==t?p(y(">"),H(V,">"),b,he):"extends"==t||"implements"==t||Ne&&","==e?p(Ne?V:k,he):"{"==e?p(y("}"),pe,b):void 0}function pe(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&Fe.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(Fe.marked="keyword",p(pe)):"variable"==e?(Fe.marked="property",p(Ne?me:ce,pe)):"["==e?p(k,x("]"),Ne?me:ce,pe):"*"==t?(Fe.marked="keyword",p(pe)):";"==e?p(pe):"}"==e?p():"@"==t?p(k,pe):void 0}function me(e,t){return"?"==t?p(me):":"==e?p(V,te):"="==t?p(C):h(ce)}function ge(e,t){return"*"==t?(Fe.marked="keyword",p(ke,x(";"))):"default"==t?(Fe.marked="keyword",p(k,x(";"))):"{"==e?p(H(ve,"}"),ke,x(";")):h(w)}function ve(e,t){return"as"==t?(Fe.marked="keyword",p(x("variable"))):"variable"==e?h(C,ve):void 0}function ye(e){return"string"==e?p():h(be,xe,ke)}function be(e,t){return"{"==e?j(be,"}"):("variable"==e&&m(t),"*"==t&&(Fe.marked="keyword"),p(we))}function xe(e){if(","==e)return p(be,xe)}function we(e,t){if("as"==t)return Fe.marked="keyword",p(be)}function ke(e,t){if("from"==t)return Fe.marked="keyword",p(k)}function Ce(e){return"]"==e?p():h(H(C,"]"))}function Se(e,t){return"operator"==e.lastType||","==e.lastType||Re.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function _e(e,t,n){return t.tokenize==o&&/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}var Me,Le,Te=t.indentUnit,Ae=n.statementIndent,Oe=n.jsonld,Ee=n.json||Oe,Ne=n.typescript,Ie=n.wordCharacters||/[\w$\xa1-\uffff]/,Pe=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:e("new"),delete:r,throw:r,debugger:r,var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r};if(Ne){var s={type:"variable",style:"type"},l={interface:e("class"),implements:r,namespace:r,module:e("module"),enum:e("module"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),readonly:e("modifier"),string:s,number:s,boolean:s,any:s};for(var c in l)a[c]=l[c]}return a}(),Re=/[+\-*&%=<>!?|~^@]/,Be=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,ze="([{}])",De={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Fe={state:null,column:null,marked:null,cc:null},We={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(e){var t={tokenize:o,lastType:"sof",cc:[],lexical:new u((e||0)-Te,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),c(e,t)),t.tokenize!=s&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==Me?n:(t.lastType="operator"!=Me||"++"!=Le&&"--"!=Le?Me:"incdec",d(t,n,Me,Le,e))},indent:function(t,r){if(t.tokenize==s)return e.Pass;if(t.tokenize!=o)return 0;var i,a=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==b)l=l.prev;else if(u!=re)break}for(;("stat"==l.type||"form"==l.type)&&("}"==a||(i=t.cc[t.cc.length-1])&&(i==T||i==A)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;Ae&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,d=a==f;return"vardef"==f?l.indented+("operator"==t.lastType||","==t.lastType?l.info+1:0):"form"==f&&"{"==a?l.indented:"form"==f?l.indented+Te:"stat"==f?l.indented+(Se(t,r)?Ae||Te:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Te):l.indented+(/^(?:case|default)\b/.test(r)?Te:2*Te)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ee?null:"/*",blockCommentEnd:Ee?null:"*/",lineComment:Ee?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ee?"json":"javascript",jsonldMode:Oe,jsonMode:Ee,expressionAllowed:_e,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=k&&t!=C||e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},n=0;n<e.length;++n)t[e[n].toLowerCase()]=!0;return t}function n(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.defineMode("css",function(t,n){function r(e,t){return p=t,e}function i(e,t){var n=e.next();if(v[n]){var i=v[n](e,t);if(i!==!1)return i}return"@"==n?(e.eatWhile(/[\w\\\-]/),r("def",e.current())):"="==n||("~"==n||"|"==n)&&e.eat("=")?r(null,"compare"):'"'==n||"'"==n?(t.tokenize=o(n),t.tokenize(e,t)):"#"==n?(e.eatWhile(/[\w\\\-]/),r("atom","hash")):"!"==n?(e.match(/^\s*\w*/),r("keyword","important")):/\d/.test(n)||"."==n&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),r("number","unit")):"-"!==n?/[,+>*\/]/.test(n)?r(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?r("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?r(null,n):"u"==n&&e.match(/rl(-prefix)?\(/)||"d"==n&&e.match("omain(")||"r"==n&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,r("property","word")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),r("property","word")):r(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),r("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?r("variable-2","variable-definition"):r("variable-2","variable")):e.match(/^\w+-/)?r("meta","meta"):void 0}function o(e){return function(t,n){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(n.tokenize=null),r("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),r(null,"(")}function s(e,t,n){this.type=e,this.indent=t,this.prev=n}function l(e,t,n,r){return e.context=new s(n,t.indentation()+(r===!1?0:g),e.context),n}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function u(e,t,n){return E[n.context.type](e,t,n)}function f(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return u(e,t,n)}function d(e){var t=e.current().toLowerCase();m=L.hasOwnProperty(t)?"atom":M.hasOwnProperty(t)?"keyword":"variable"}var h=n.inline;n.propertyKeywords||(n=e.resolveMode("text/css"));var p,m,g=t.indentUnit,v=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},k=n.propertyKeywords||{},C=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},_=n.counterDescriptors||{},M=n.colorKeywords||{},L=n.valueKeywords||{},T=n.allowNested,A=n.lineComment,O=n.supportsAtComponent===!0,E={};return E.top=function(e,t,n){if("{"==e)return l(n,t,"block");if("}"==e&&n.context.prev)return c(n);if(O&&/@component/.test(e))return l(n,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return l(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return l(n,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(n,t,"at");if("hash"==e)m="builtin";else if("word"==e)m="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(n,t,"interpolation");if(":"==e)return"pseudo";if(T&&"("==e)return l(n,t,"parens")}return n.context.type},E.block=function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return k.hasOwnProperty(r)?(m="property","maybeprop"):C.hasOwnProperty(r)?(m="string-2","maybeprop"):T?(m=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(m+=" error","maybeprop")}return"meta"==e?"block":T||"hash"!=e&&"qualifier"!=e?E.top(e,t,n):(m="error","block")},E.maybeprop=function(e,t,n){return":"==e?l(n,t,"prop"):u(e,t,n)},E.prop=function(e,t,n){if(";"==e)return c(n);if("{"==e&&T)return l(n,t,"propBlock");if("}"==e||"{"==e)return f(e,t,n);if("("==e)return l(n,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return l(n,t,"interpolation")}else m+=" error";return"prop"},E.propBlock=function(e,t,n){return"}"==e?c(n):"word"==e?(m="property","maybeprop"):n.context.type},E.parens=function(e,t,n){return"{"==e||"}"==e?f(e,t,n):")"==e?c(n):"("==e?l(n,t,"parens"):"interpolation"==e?l(n,t,"interpolation"):("word"==e&&d(t),"parens")},E.pseudo=function(e,t,n){return"meta"==e?"pseudo":"word"==e?(m="variable-3",n.context.type):u(e,t,n)},E.documentTypes=function(e,t,n){return"word"==e&&y.hasOwnProperty(t.current())?(m="tag",n.context.type):E.atBlock(e,t,n)},E.atBlock=function(e,t,n){if("("==e)return l(n,t,"atBlock_parens");if("}"==e||";"==e)return f(e,t,n);if("{"==e)return c(n)&&l(n,t,T?"block":"top");if("interpolation"==e)return l(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();m="only"==r||"not"==r||"and"==r||"or"==r?"keyword":b.hasOwnProperty(r)?"attribute":x.hasOwnProperty(r)?"property":w.hasOwnProperty(r)?"keyword":k.hasOwnProperty(r)?"property":C.hasOwnProperty(r)?"string-2":L.hasOwnProperty(r)?"atom":M.hasOwnProperty(r)?"keyword":"error"}return n.context.type},E.atComponentBlock=function(e,t,n){return"}"==e?f(e,t,n):"{"==e?c(n)&&l(n,t,T?"block":"top",!1):("word"==e&&(m="error"),n.context.type)},E.atBlock_parens=function(e,t,n){return")"==e?c(n):"{"==e||"}"==e?f(e,t,n,2):E.atBlock(e,t,n)},E.restricted_atBlock_before=function(e,t,n){return"{"==e?l(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(m="variable","restricted_atBlock_before"):u(e,t,n)},E.restricted_atBlock=function(e,t,n){return"}"==e?(n.stateArg=null,c(n)):"word"==e?(m="@font-face"==n.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!_.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(e,t,n){return"word"==e?(m="variable","keyframes"):"{"==e?l(n,t,"top"):u(e,t,n)},E.at=function(e,t,n){return";"==e?c(n):"{"==e||"}"==e?f(e,t,n):("word"==e?m="tag":"hash"==e&&(m="builtin"),"at")},E.interpolation=function(e,t,n){return"}"==e?c(n):"{"==e||";"==e?f(e,t,n):("word"==e?m="variable":"variable"!=e&&"("!=e&&")"!=e&&(m="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:h?"block":"top",stateArg:null,context:new s(h?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||i)(e,t);return n&&"object"==typeof n&&(p=n[1],n=n[0]),m=n,"comment"!=p&&(t.state=E[t.state](p,e,t)),m},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),
|
7 |
+
n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-g)):(n=n.prev,i=n.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:A,fold:"brace"}});var r=["domain","regexp","url","url-prefix"],i=t(r),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),s=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],l=t(s),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),f=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolat
|
|
|
|
|
|
|
|
|
|
|
|