mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	Compare commits
	
		
			32 Commits
		
	
	
		
			v0.55.1
			...
			v0.56.0-be
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e22af42cd0 | ||
|  | 70c9292413 | ||
|  | b9c22fcbc8 | ||
|  | 4012ec7498 | ||
|  | 7d6d466284 | ||
|  | 36842f4a58 | ||
|  | dc62cf4805 | ||
|  | ed8acc7ee3 | ||
|  | 4116fe0a20 | ||
|  | a4e99662cb | ||
|  | c6d4eb486e | ||
|  | c2308b7a5d | ||
|  | 3e07c08043 | ||
|  | 5a3c50d9fb | ||
|  | 3e4a9f63fa | ||
|  | 6d4ef4ee3d | ||
|  | 20ff5627d8 | ||
|  | 1d26fd6bf0 | ||
|  | a9c0daa51a | ||
|  | e3b2bbdca5 | ||
|  | d905f7cc26 | ||
|  | fe3f24cdb0 | ||
|  | 971c709e87 | ||
|  | 7f78937543 | ||
|  | 41dac2bd1b | ||
|  | 85bf2a5706 | ||
|  | ce7937a3a3 | ||
|  | 7bb9d33245 | ||
|  | 1be89c094b | ||
|  | 73ad557784 | ||
|  | 9f744153e3 | ||
|  | 0c196ae3a5 | 
							
								
								
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,17 +1,14 @@ | ||||
| version: '2.1' | ||||
| services: | ||||
|   trilium: | ||||
|     build: | ||||
|       context: . | ||||
|     image: zadam/trilium | ||||
|     restart: always | ||||
|     environment: | ||||
|       - TRILIUM_DATA_DIR=/data | ||||
|       - TRILIUM_DATA_DIR=/home/node/trilium-data | ||||
|     ports: | ||||
|       - "8080:8080" | ||||
|     volumes: | ||||
|       - trilium:/data | ||||
|       - trilium:/home/node/trilium-data | ||||
|  | ||||
| volumes: | ||||
|   trilium: | ||||
|  | ||||
|   | ||||
| @@ -5,9 +5,9 @@ | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * CKEditor 5 (v33.0.0) content styles. | ||||
|  * Generated on Fri, 11 Mar 2022 14:34:26 GMT. | ||||
|  * For more information, check out https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/content-styles.html | ||||
|  * CKEditor 5 (v35.2.1) content styles. | ||||
|  * Generated on Fri, 14 Oct 2022 09:47:42 GMT. | ||||
|  * For more information, check out https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/content-styles.html | ||||
|  */ | ||||
|  | ||||
| :root { | ||||
| @@ -34,6 +34,21 @@ | ||||
|     padding: .15em; | ||||
|     border-radius: 2px; | ||||
| } | ||||
| /* ckeditor5-block-quote/theme/blockquote.css */ | ||||
| .ck-content blockquote { | ||||
|     overflow: hidden; | ||||
|     padding-right: 1.5em; | ||||
|     padding-left: 1.5em; | ||||
|     margin-left: 0; | ||||
|     margin-right: 0; | ||||
|     font-style: italic; | ||||
|     border-left: solid 5px hsl(0, 0%, 80%); | ||||
| } | ||||
| /* ckeditor5-block-quote/theme/blockquote.css */ | ||||
| .ck-content[dir="rtl"] blockquote { | ||||
|     border-left: 0; | ||||
|     border-right: solid 5px hsl(0, 0%, 80%); | ||||
| } | ||||
| /* ckeditor5-font/theme/fontsize.css */ | ||||
| .ck-content .text-tiny { | ||||
|     font-size: .7em; | ||||
| @@ -50,21 +65,6 @@ | ||||
| .ck-content .text-huge { | ||||
|     font-size: 1.8em; | ||||
| } | ||||
| /* ckeditor5-block-quote/theme/blockquote.css */ | ||||
| .ck-content blockquote { | ||||
|     overflow: hidden; | ||||
|     padding-right: 1.5em; | ||||
|     padding-left: 1.5em; | ||||
|     margin-left: 0; | ||||
|     margin-right: 0; | ||||
|     font-style: italic; | ||||
|     border-left: solid 5px hsl(0, 0%, 80%); | ||||
| } | ||||
| /* ckeditor5-block-quote/theme/blockquote.css */ | ||||
| .ck-content[dir="rtl"] blockquote { | ||||
|     border-left: 0; | ||||
|     border-right: solid 5px hsl(0, 0%, 80%); | ||||
| } | ||||
| /* ckeditor5-highlight/theme/highlight.css */ | ||||
| .ck-content .marker-yellow { | ||||
|     background-color: var(--ck-highlight-marker-yellow); | ||||
| @@ -139,6 +139,20 @@ | ||||
|     font-size: .75em; | ||||
|     outline-offset: -1px; | ||||
| } | ||||
| /* ckeditor5-image/theme/imageresize.css */ | ||||
| .ck-content .image.image_resized { | ||||
|     max-width: 100%; | ||||
|     display: block; | ||||
|     box-sizing: border-box; | ||||
| } | ||||
| /* ckeditor5-image/theme/imageresize.css */ | ||||
| .ck-content .image.image_resized img { | ||||
|     width: 100%; | ||||
| } | ||||
| /* ckeditor5-image/theme/imageresize.css */ | ||||
| .ck-content .image.image_resized > figcaption { | ||||
|     display: block; | ||||
| } | ||||
| /* ckeditor5-image/theme/imagestyle.css */ | ||||
| .ck-content .image-style-block-align-left, | ||||
| .ck-content .image-style-block-align-right { | ||||
| @@ -200,20 +214,6 @@ | ||||
| .ck-content .image-inline.image-style-align-right { | ||||
|     margin-left: var(--ck-inline-image-style-spacing); | ||||
| } | ||||
| /* ckeditor5-image/theme/imageresize.css */ | ||||
| .ck-content .image.image_resized { | ||||
|     max-width: 100%; | ||||
|     display: block; | ||||
|     box-sizing: border-box; | ||||
| } | ||||
| /* ckeditor5-image/theme/imageresize.css */ | ||||
| .ck-content .image.image_resized img { | ||||
|     width: 100%; | ||||
| } | ||||
| /* ckeditor5-image/theme/imageresize.css */ | ||||
| .ck-content .image.image_resized > figcaption { | ||||
|     display: block; | ||||
| } | ||||
| /* ckeditor5-language/theme/language.css */ | ||||
| .ck-content span[lang] { | ||||
|     font-style: italic; | ||||
| @@ -328,6 +328,18 @@ | ||||
|     -ms-user-select: none; | ||||
|     user-select: none; | ||||
| } | ||||
| /* ckeditor5-table/theme/tablecaption.css */ | ||||
| .ck-content .table > figcaption { | ||||
|     display: table-caption; | ||||
|     caption-side: top; | ||||
|     word-break: break-word; | ||||
|     text-align: center; | ||||
|     color: var(--ck-color-table-caption-text); | ||||
|     background-color: var(--ck-color-table-caption-background); | ||||
|     padding: .6em; | ||||
|     font-size: .75em; | ||||
|     outline-offset: -1px; | ||||
| } | ||||
| /* ckeditor5-table/theme/table.css */ | ||||
| .ck-content .table { | ||||
|     margin: 0.9em auto; | ||||
| @@ -361,17 +373,18 @@ | ||||
| .ck-content[dir="ltr"] .table th { | ||||
|     text-align: left; | ||||
| } | ||||
| /* ckeditor5-table/theme/tablecaption.css */ | ||||
| .ck-content .table > figcaption { | ||||
|     display: table-caption; | ||||
|     caption-side: top; | ||||
|     word-break: break-word; | ||||
|     text-align: center; | ||||
|     color: var(--ck-color-table-caption-text); | ||||
|     background-color: var(--ck-color-table-caption-background); | ||||
|     padding: .6em; | ||||
|     font-size: .75em; | ||||
|     outline-offset: -1px; | ||||
| /* ckeditor5-table/theme/tablecolumnresize.css */ | ||||
| .ck-content .table .ck-table-resized { | ||||
|     table-layout: fixed; | ||||
| } | ||||
| /* ckeditor5-table/theme/tablecolumnresize.css */ | ||||
| .ck-content .table table { | ||||
|     overflow: hidden; | ||||
| } | ||||
| /* ckeditor5-table/theme/tablecolumnresize.css */ | ||||
| .ck-content .table td, | ||||
| .ck-content .table th { | ||||
|     position: relative; | ||||
| } | ||||
| /* ckeditor5-code-block/theme/codeblock.css */ | ||||
| .ck-content pre { | ||||
| @@ -400,6 +413,42 @@ | ||||
|     background: hsl(0, 0%, 87%); | ||||
|     border: 0; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ol { | ||||
|     list-style-type: decimal; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ol ol { | ||||
|     list-style-type: lower-latin; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ol ol ol { | ||||
|     list-style-type: lower-roman; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ol ol ol ol { | ||||
|     list-style-type: upper-latin; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ol ol ol ol ol { | ||||
|     list-style-type: upper-roman; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ul { | ||||
|     list-style-type: circle; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ul ul { | ||||
|     list-style-type: disc; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ul ul ul { | ||||
|     list-style-type: square; | ||||
| } | ||||
| /* ckeditor5-list/theme/liststyles.css */ | ||||
| .ck-content ul ul ul ul { | ||||
|     list-style-type: square; | ||||
| } | ||||
| /* ckeditor5-mention/theme/mention.css */ | ||||
| .ck-content .mention { | ||||
|     background: var(--ck-color-mention-background); | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/ckeditor/ckeditor.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/ckeditor/ckeditor.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/addon/edit/matchtags.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/addon/edit/matchtags.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/addon/fold/xml-fold.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/addon/fold/xml-fold.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										8
									
								
								libraries/codemirror/addon/lint/lint.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								libraries/codemirror/addon/lint/lint.css
									
									
									
									
										vendored
									
									
								
							| @@ -69,3 +69,11 @@ | ||||
|   background-position: right bottom; | ||||
|   width: 100%; height: 100%; | ||||
| } | ||||
|  | ||||
| .CodeMirror-lint-line-error { | ||||
|   background-color: rgba(183, 76, 81, 0.08); | ||||
| } | ||||
|  | ||||
| .CodeMirror-lint-line-warning { | ||||
|   background-color: rgba(255, 211, 0, 0.1); | ||||
| } | ||||
|   | ||||
							
								
								
									
										70
									
								
								libraries/codemirror/addon/lint/lint.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										70
									
								
								libraries/codemirror/addon/lint/lint.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -11,6 +11,7 @@ | ||||
| })(function(CodeMirror) { | ||||
|   "use strict"; | ||||
|   var GUTTER_ID = "CodeMirror-lint-markers"; | ||||
|   var LINT_LINE_ID = "CodeMirror-lint-line-"; | ||||
|  | ||||
|   function showTooltip(cm, e, content) { | ||||
|     var tt = document.createElement("div"); | ||||
| @@ -58,29 +59,54 @@ | ||||
|     CodeMirror.on(node, "mouseout", hide); | ||||
|   } | ||||
|  | ||||
|   function LintState(cm, options, hasGutter) { | ||||
|   function LintState(cm, conf, hasGutter) { | ||||
|     this.marked = []; | ||||
|     this.options = options; | ||||
|     if (conf instanceof Function) conf = {getAnnotations: conf}; | ||||
|     if (!conf || conf === true) conf = {}; | ||||
|     this.options = {}; | ||||
|     this.linterOptions = conf.options || {}; | ||||
|     for (var prop in defaults) this.options[prop] = defaults[prop]; | ||||
|     for (var prop in conf) { | ||||
|       if (defaults.hasOwnProperty(prop)) { | ||||
|         if (conf[prop] != null) this.options[prop] = conf[prop]; | ||||
|       } else if (!conf.options) { | ||||
|         this.linterOptions[prop] = conf[prop]; | ||||
|       } | ||||
|     } | ||||
|     this.timeout = null; | ||||
|     this.hasGutter = hasGutter; | ||||
|     this.onMouseOver = function(e) { onMouseOver(cm, e); }; | ||||
|     this.waitingFor = 0 | ||||
|   } | ||||
|  | ||||
|   function parseOptions(_cm, options) { | ||||
|     if (options instanceof Function) return {getAnnotations: options}; | ||||
|     if (!options || options === true) options = {}; | ||||
|     return options; | ||||
|   var defaults = { | ||||
|     highlightLines: false, | ||||
|     tooltips: true, | ||||
|     delay: 500, | ||||
|     lintOnChange: true, | ||||
|     getAnnotations: null, | ||||
|     async: false, | ||||
|     selfContain: null, | ||||
|     formatAnnotation: null, | ||||
|     onUpdateLinting: null | ||||
|   } | ||||
|  | ||||
|   function clearMarks(cm) { | ||||
|     var state = cm.state.lint; | ||||
|     if (state.hasGutter) cm.clearGutter(GUTTER_ID); | ||||
|     if (state.options.highlightLines) clearErrorLines(cm); | ||||
|     for (var i = 0; i < state.marked.length; ++i) | ||||
|       state.marked[i].clear(); | ||||
|     state.marked.length = 0; | ||||
|   } | ||||
|  | ||||
|   function clearErrorLines(cm) { | ||||
|     cm.eachLine(function(line) { | ||||
|       var has = line.wrapClass && /\bCodeMirror-lint-line-\w+\b/.exec(line.wrapClass); | ||||
|       if (has) cm.removeLineClass(line, "wrap", has[0]); | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   function makeMarker(cm, labels, severity, multiple, tooltips) { | ||||
|     var marker = document.createElement("div"), inner = marker; | ||||
|     marker.className = "CodeMirror-lint-marker CodeMirror-lint-marker-" + severity; | ||||
| @@ -123,7 +149,7 @@ | ||||
|     return tip; | ||||
|   } | ||||
|  | ||||
|   function lintAsync(cm, getAnnotations, passOptions) { | ||||
|   function lintAsync(cm, getAnnotations) { | ||||
|     var state = cm.state.lint | ||||
|     var id = ++state.waitingFor | ||||
|     function abort() { | ||||
| @@ -136,22 +162,23 @@ | ||||
|       if (state.waitingFor != id) return | ||||
|       if (arg2 && annotations instanceof CodeMirror) annotations = arg2 | ||||
|       cm.operation(function() {updateLinting(cm, annotations)}) | ||||
|     }, passOptions, cm); | ||||
|     }, state.linterOptions, cm); | ||||
|   } | ||||
|  | ||||
|   function startLinting(cm) { | ||||
|     var state = cm.state.lint, options = state.options; | ||||
|     var state = cm.state.lint; | ||||
|     if (!state) return; | ||||
|     var options = state.options; | ||||
|     /* | ||||
|      * Passing rules in `options` property prevents JSHint (and other linters) from complaining | ||||
|      * about unrecognized rules like `onUpdateLinting`, `delay`, `lintOnChange`, etc. | ||||
|      */ | ||||
|     var passOptions = options.options || options; | ||||
|     var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint"); | ||||
|     if (!getAnnotations) return; | ||||
|     if (options.async || getAnnotations.async) { | ||||
|       lintAsync(cm, getAnnotations, passOptions) | ||||
|       lintAsync(cm, getAnnotations) | ||||
|     } else { | ||||
|       var annotations = getAnnotations(cm.getValue(), passOptions, cm); | ||||
|       var annotations = getAnnotations(cm.getValue(), state.linterOptions, cm); | ||||
|       if (!annotations) return; | ||||
|       if (annotations.then) annotations.then(function(issues) { | ||||
|         cm.operation(function() {updateLinting(cm, issues)}) | ||||
| @@ -161,8 +188,10 @@ | ||||
|   } | ||||
|  | ||||
|   function updateLinting(cm, annotationsNotSorted) { | ||||
|     var state = cm.state.lint; | ||||
|     if (!state) return; | ||||
|     var options = state.options; | ||||
|     clearMarks(cm); | ||||
|     var state = cm.state.lint, options = state.options; | ||||
|  | ||||
|     var annotations = groupByLine(annotationsNotSorted); | ||||
|  | ||||
| @@ -194,7 +223,10 @@ | ||||
|       // use original annotations[line] to show multiple messages | ||||
|       if (state.hasGutter) | ||||
|         cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, annotations[line].length > 1, | ||||
|                                                        state.options.tooltips)); | ||||
|                                                        options.tooltips)); | ||||
|  | ||||
|       if (options.highlightLines) | ||||
|         cm.addLineClass(line, "wrap", LINT_LINE_ID + maxSeverity); | ||||
|     } | ||||
|     if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm); | ||||
|   } | ||||
| @@ -203,7 +235,7 @@ | ||||
|     var state = cm.state.lint; | ||||
|     if (!state) return; | ||||
|     clearTimeout(state.timeout); | ||||
|     state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500); | ||||
|     state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay); | ||||
|   } | ||||
|  | ||||
|   function popupTooltips(cm, annotations, e) { | ||||
| @@ -243,8 +275,8 @@ | ||||
|     if (val) { | ||||
|       var gutters = cm.getOption("gutters"), hasLintGutter = false; | ||||
|       for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true; | ||||
|       var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter); | ||||
|       if (state.options.lintOnChange !== false) | ||||
|       var state = cm.state.lint = new LintState(cm, val, hasLintGutter); | ||||
|       if (state.options.lintOnChange) | ||||
|         cm.on("change", onChange); | ||||
|       if (state.options.tooltips != false && state.options.tooltips != "gutter") | ||||
|         CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver); | ||||
| @@ -254,6 +286,6 @@ | ||||
|   }); | ||||
|  | ||||
|   CodeMirror.defineExtension("performLint", function() { | ||||
|     if (this.state.lint) startLinting(this); | ||||
|     startLinting(this); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/addon/mode/loadmode.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/addon/mode/loadmode.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										3
									
								
								libraries/codemirror/addon/mode/simple.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								libraries/codemirror/addon/mode/simple.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -68,6 +68,7 @@ | ||||
|     var flags = ""; | ||||
|     if (val instanceof RegExp) { | ||||
|       if (val.ignoreCase) flags = "i"; | ||||
|       if (val.unicode) flags += "u" | ||||
|       val = val.source; | ||||
|     } else { | ||||
|       val = String(val); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Highlighting text that matches the selection | ||||
| // | ||||
|   | ||||
| @@ -60,20 +60,13 @@ | ||||
| .cm-fat-cursor div.CodeMirror-cursors { | ||||
|   z-index: 1; | ||||
| } | ||||
| .cm-fat-cursor-mark { | ||||
|   background-color: rgba(20, 255, 20, 0.5); | ||||
|   -webkit-animation: blink 1.06s steps(1) infinite; | ||||
|   -moz-animation: blink 1.06s steps(1) infinite; | ||||
|   animation: blink 1.06s steps(1) infinite; | ||||
| } | ||||
| .cm-animate-fat-cursor { | ||||
|   width: auto; | ||||
|   border: 0; | ||||
|   -webkit-animation: blink 1.06s steps(1) infinite; | ||||
|   -moz-animation: blink 1.06s steps(1) infinite; | ||||
|   animation: blink 1.06s steps(1) infinite; | ||||
|   background-color: #7e7; | ||||
| } | ||||
| .cm-fat-cursor .CodeMirror-line::selection, | ||||
| .cm-fat-cursor .CodeMirror-line > span::selection,  | ||||
| .cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; } | ||||
| .cm-fat-cursor .CodeMirror-line::-moz-selection, | ||||
| .cm-fat-cursor .CodeMirror-line > span::-moz-selection, | ||||
| .cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; } | ||||
| .cm-fat-cursor { caret-color: transparent; } | ||||
| @-moz-keyframes blink { | ||||
|   0% {} | ||||
|   50% { background-color: transparent; } | ||||
| @@ -171,6 +164,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} | ||||
|   height: 100%; | ||||
|   outline: none; /* Prevent dragging from highlighting the element */ | ||||
|   position: relative; | ||||
|   z-index: 0; | ||||
| } | ||||
| .CodeMirror-sizer { | ||||
|   position: relative; | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // This is CodeMirror (https://codemirror.net), a code editor | ||||
| // This is CodeMirror (https://codemirror.net/5), a code editor | ||||
| // implemented in JavaScript on top of the browser's DOM. | ||||
| // | ||||
| // You can find some technical background for some of the code below | ||||
| @@ -26,7 +26,8 @@ | ||||
|   var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); | ||||
|   var webkit = !edge && /WebKit\//.test(userAgent); | ||||
|   var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); | ||||
|   var chrome = !edge && /Chrome\//.test(userAgent); | ||||
|   var chrome = !edge && /Chrome\/(\d+)/.exec(userAgent); | ||||
|   var chrome_version = chrome && +chrome[1]; | ||||
|   var presto = /Opera\//.test(userAgent); | ||||
|   var safari = /Apple Computer/.test(navigator.vendor); | ||||
|   var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); | ||||
| @@ -111,15 +112,15 @@ | ||||
|     } while (child = child.parentNode) | ||||
|   } | ||||
|  | ||||
|   function activeElt() { | ||||
|   function activeElt(doc) { | ||||
|     // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. | ||||
|     // IE < 10 will throw when accessed while the page is loading or in an iframe. | ||||
|     // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. | ||||
|     var activeElement; | ||||
|     try { | ||||
|       activeElement = document.activeElement; | ||||
|       activeElement = doc.activeElement; | ||||
|     } catch(e) { | ||||
|       activeElement = document.body || null; | ||||
|       activeElement = doc.body || null; | ||||
|     } | ||||
|     while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) | ||||
|       { activeElement = activeElement.shadowRoot.activeElement; } | ||||
| @@ -143,6 +144,10 @@ | ||||
|   else if (ie) // Suppress mysterious IE10 errors | ||||
|     { selectInput = function(node) { try { node.select(); } catch(_e) {} }; } | ||||
|  | ||||
|   function doc(cm) { return cm.display.wrapper.ownerDocument } | ||||
|  | ||||
|   function win(cm) { return doc(cm).defaultView } | ||||
|  | ||||
|   function bind(f) { | ||||
|     var args = Array.prototype.slice.call(arguments, 1); | ||||
|     return function(){return f.apply(null, args)} | ||||
| @@ -1311,6 +1316,7 @@ | ||||
|       if (span.marker == marker) { return span } | ||||
|     } } | ||||
|   } | ||||
|  | ||||
|   // Remove a span from an array, returning undefined if no spans are | ||||
|   // left (we don't store arrays for lines without spans). | ||||
|   function removeMarkedSpan(spans, span) { | ||||
| @@ -1319,9 +1325,16 @@ | ||||
|       { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } } | ||||
|     return r | ||||
|   } | ||||
|  | ||||
|   // Add a span to a line. | ||||
|   function addMarkedSpan(line, span) { | ||||
|     line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; | ||||
|   function addMarkedSpan(line, span, op) { | ||||
|     var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet)); | ||||
|     if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) { | ||||
|       line.markedSpans.push(span); | ||||
|     } else { | ||||
|       line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; | ||||
|       if (inThisOp) { inThisOp.add(line.markedSpans); } | ||||
|     } | ||||
|     span.marker.attachLine(line); | ||||
|   } | ||||
|  | ||||
| @@ -2186,6 +2199,7 @@ | ||||
|     if (cm.options.lineNumbers || markers) { | ||||
|       var wrap$1 = ensureLineWrapped(lineView); | ||||
|       var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px")); | ||||
|       gutterWrap.setAttribute("aria-hidden", "true"); | ||||
|       cm.display.input.setUneditable(gutterWrap); | ||||
|       wrap$1.insertBefore(gutterWrap, lineView.text); | ||||
|       if (lineView.line.gutterClass) | ||||
| @@ -2342,12 +2356,14 @@ | ||||
|   function mapFromLineView(lineView, line, lineN) { | ||||
|     if (lineView.line == line) | ||||
|       { return {map: lineView.measure.map, cache: lineView.measure.cache} } | ||||
|     for (var i = 0; i < lineView.rest.length; i++) | ||||
|       { if (lineView.rest[i] == line) | ||||
|         { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } | ||||
|     for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) | ||||
|       { if (lineNo(lineView.rest[i$1]) > lineN) | ||||
|         { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } | ||||
|     if (lineView.rest) { | ||||
|       for (var i = 0; i < lineView.rest.length; i++) | ||||
|         { if (lineView.rest[i] == line) | ||||
|           { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } | ||||
|       for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) | ||||
|         { if (lineNo(lineView.rest[i$1]) > lineN) | ||||
|           { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // Render a line into the hidden node display.externalMeasured. Used | ||||
| @@ -2561,22 +2577,24 @@ | ||||
|     cm.display.lineNumChars = null; | ||||
|   } | ||||
|  | ||||
|   function pageScrollX() { | ||||
|   function pageScrollX(doc) { | ||||
|     // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 | ||||
|     // which causes page_Offset and bounding client rects to use | ||||
|     // different reference viewports and invalidate our calculations. | ||||
|     if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) } | ||||
|     return window.pageXOffset || (document.documentElement || document.body).scrollLeft | ||||
|     if (chrome && android) { return -(doc.body.getBoundingClientRect().left - parseInt(getComputedStyle(doc.body).marginLeft)) } | ||||
|     return doc.defaultView.pageXOffset || (doc.documentElement || doc.body).scrollLeft | ||||
|   } | ||||
|   function pageScrollY() { | ||||
|     if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) } | ||||
|     return window.pageYOffset || (document.documentElement || document.body).scrollTop | ||||
|   function pageScrollY(doc) { | ||||
|     if (chrome && android) { return -(doc.body.getBoundingClientRect().top - parseInt(getComputedStyle(doc.body).marginTop)) } | ||||
|     return doc.defaultView.pageYOffset || (doc.documentElement || doc.body).scrollTop | ||||
|   } | ||||
|  | ||||
|   function widgetTopHeight(lineObj) { | ||||
|     var ref = visualLine(lineObj); | ||||
|     var widgets = ref.widgets; | ||||
|     var height = 0; | ||||
|     if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) | ||||
|       { height += widgetHeight(lineObj.widgets[i]); } } } | ||||
|     if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above) | ||||
|       { height += widgetHeight(widgets[i]); } } } | ||||
|     return height | ||||
|   } | ||||
|  | ||||
| @@ -2596,8 +2614,8 @@ | ||||
|     else { yOff -= cm.display.viewOffset; } | ||||
|     if (context == "page" || context == "window") { | ||||
|       var lOff = cm.display.lineSpace.getBoundingClientRect(); | ||||
|       yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); | ||||
|       var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); | ||||
|       yOff += lOff.top + (context == "window" ? 0 : pageScrollY(doc(cm))); | ||||
|       var xOff = lOff.left + (context == "window" ? 0 : pageScrollX(doc(cm))); | ||||
|       rect.left += xOff; rect.right += xOff; | ||||
|     } | ||||
|     rect.top += yOff; rect.bottom += yOff; | ||||
| @@ -2611,8 +2629,8 @@ | ||||
|     var left = coords.left, top = coords.top; | ||||
|     // First move into "page" coordinate system | ||||
|     if (context == "page") { | ||||
|       left -= pageScrollX(); | ||||
|       top -= pageScrollY(); | ||||
|       left -= pageScrollX(doc(cm)); | ||||
|       top -= pageScrollY(doc(cm)); | ||||
|     } else if (context == "local" || !context) { | ||||
|       var localBox = cm.display.sizer.getBoundingClientRect(); | ||||
|       left += localBox.left; | ||||
| @@ -3141,13 +3159,19 @@ | ||||
|     var curFragment = result.cursors = document.createDocumentFragment(); | ||||
|     var selFragment = result.selection = document.createDocumentFragment(); | ||||
|  | ||||
|     var customCursor = cm.options.$customCursor; | ||||
|     if (customCursor) { primary = true; } | ||||
|     for (var i = 0; i < doc.sel.ranges.length; i++) { | ||||
|       if (!primary && i == doc.sel.primIndex) { continue } | ||||
|       var range = doc.sel.ranges[i]; | ||||
|       if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue } | ||||
|       var collapsed = range.empty(); | ||||
|       if (collapsed || cm.options.showCursorWhenSelecting) | ||||
|         { drawSelectionCursor(cm, range.head, curFragment); } | ||||
|       if (customCursor) { | ||||
|         var head = customCursor(cm, range); | ||||
|         if (head) { drawSelectionCursor(cm, head, curFragment); } | ||||
|       } else if (collapsed || cm.options.showCursorWhenSelecting) { | ||||
|         drawSelectionCursor(cm, range.head, curFragment); | ||||
|       } | ||||
|       if (!collapsed) | ||||
|         { drawSelectionRange(cm, range, selFragment); } | ||||
|     } | ||||
| @@ -3163,6 +3187,12 @@ | ||||
|     cursor.style.top = pos.top + "px"; | ||||
|     cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; | ||||
|  | ||||
|     if (/\bcm-fat-cursor\b/.test(cm.getWrapperElement().className)) { | ||||
|       var charPos = charCoords(cm, head, "div", null, null); | ||||
|       var width = charPos.right - charPos.left; | ||||
|       cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + "px"; | ||||
|     } | ||||
|  | ||||
|     if (pos.other) { | ||||
|       // Secondary cursor, shown when on a 'jump' in bi-directional text | ||||
|       var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); | ||||
| @@ -3335,10 +3365,14 @@ | ||||
|   function updateHeightsInViewport(cm) { | ||||
|     var display = cm.display; | ||||
|     var prevBottom = display.lineDiv.offsetTop; | ||||
|     var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top); | ||||
|     var oldHeight = display.lineDiv.getBoundingClientRect().top; | ||||
|     var mustScroll = 0; | ||||
|     for (var i = 0; i < display.view.length; i++) { | ||||
|       var cur = display.view[i], wrapping = cm.options.lineWrapping; | ||||
|       var height = (void 0), width = 0; | ||||
|       if (cur.hidden) { continue } | ||||
|       oldHeight += cur.line.height; | ||||
|       if (ie && ie_version < 8) { | ||||
|         var bot = cur.node.offsetTop + cur.node.offsetHeight; | ||||
|         height = bot - prevBottom; | ||||
| @@ -3353,6 +3387,7 @@ | ||||
|       } | ||||
|       var diff = cur.line.height - height; | ||||
|       if (diff > .005 || diff < -.005) { | ||||
|         if (oldHeight < viewTop) { mustScroll -= diff; } | ||||
|         updateLineHeight(cur.line, height); | ||||
|         updateWidgetHeight(cur.line); | ||||
|         if (cur.rest) { for (var j = 0; j < cur.rest.length; j++) | ||||
| @@ -3367,6 +3402,7 @@ | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; } | ||||
|   } | ||||
|  | ||||
|   // Read and store the height of line widgets associated with the | ||||
| @@ -3410,8 +3446,9 @@ | ||||
|     if (signalDOMEvent(cm, "scrollCursorIntoView")) { return } | ||||
|  | ||||
|     var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; | ||||
|     var doc = display.wrapper.ownerDocument; | ||||
|     if (rect.top + box.top < 0) { doScroll = true; } | ||||
|     else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; } | ||||
|     else if (rect.bottom + box.top > (doc.defaultView.innerHeight || doc.documentElement.clientHeight)) { doScroll = false; } | ||||
|     if (doScroll != null && !phantom) { | ||||
|       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;")); | ||||
|       cm.display.lineSpace.appendChild(scrollNode); | ||||
| @@ -3430,8 +3467,8 @@ | ||||
|       // Set pos and end to the cursor positions around the character pos sticks to | ||||
|       // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch | ||||
|       // If pos == Pos(_, 0, "before"), pos and end are unchanged | ||||
|       pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; | ||||
|       end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; | ||||
|       pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; | ||||
|     } | ||||
|     for (var limit = 0; limit < 5; limit++) { | ||||
|       var changed = false; | ||||
| @@ -3627,6 +3664,7 @@ | ||||
|       this.vert.firstChild.style.height = | ||||
|         Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; | ||||
|     } else { | ||||
|       this.vert.scrollTop = 0; | ||||
|       this.vert.style.display = ""; | ||||
|       this.vert.firstChild.style.height = "0"; | ||||
|     } | ||||
| @@ -3664,13 +3702,13 @@ | ||||
|   NativeScrollbars.prototype.zeroWidthHack = function () { | ||||
|     var w = mac && !mac_geMountainLion ? "12px" : "18px"; | ||||
|     this.horiz.style.height = this.vert.style.width = w; | ||||
|     this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; | ||||
|     this.horiz.style.visibility = this.vert.style.visibility = "hidden"; | ||||
|     this.disableHoriz = new Delayed; | ||||
|     this.disableVert = new Delayed; | ||||
|   }; | ||||
|  | ||||
|   NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { | ||||
|     bar.style.pointerEvents = "auto"; | ||||
|     bar.style.visibility = ""; | ||||
|     function maybeDisable() { | ||||
|       // To find out whether the scrollbar is still visible, we | ||||
|       // check whether the element under the pixel in the bottom | ||||
| @@ -3681,7 +3719,7 @@ | ||||
|       var box = bar.getBoundingClientRect(); | ||||
|       var elt = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) | ||||
|           : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); | ||||
|       if (elt != bar) { bar.style.pointerEvents = "none"; } | ||||
|       if (elt != bar) { bar.style.visibility = "hidden"; } | ||||
|       else { delay.set(1000, maybeDisable); } | ||||
|     } | ||||
|     delay.set(1000, maybeDisable); | ||||
| @@ -3782,7 +3820,8 @@ | ||||
|       scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet | ||||
|       scrollToPos: null,       // Used to scroll to a specific position | ||||
|       focus: false, | ||||
|       id: ++nextOpId           // Unique ID | ||||
|       id: ++nextOpId,          // Unique ID | ||||
|       markArrays: null         // Used by addMarkedSpan | ||||
|     }; | ||||
|     pushOperation(cm.curOp); | ||||
|   } | ||||
| @@ -3861,7 +3900,7 @@ | ||||
|       cm.display.maxLineChanged = false; | ||||
|     } | ||||
|  | ||||
|     var takeFocus = op.focus && op.focus == activeElt(); | ||||
|     var takeFocus = op.focus && op.focus == activeElt(doc(cm)); | ||||
|     if (op.preparedSelection) | ||||
|       { cm.display.input.showSelection(op.preparedSelection, takeFocus); } | ||||
|     if (op.updatedDisplay || op.startHeight != cm.doc.height) | ||||
| @@ -4038,11 +4077,11 @@ | ||||
|  | ||||
|   function selectionSnapshot(cm) { | ||||
|     if (cm.hasFocus()) { return null } | ||||
|     var active = activeElt(); | ||||
|     var active = activeElt(doc(cm)); | ||||
|     if (!active || !contains(cm.display.lineDiv, active)) { return null } | ||||
|     var result = {activeElt: active}; | ||||
|     if (window.getSelection) { | ||||
|       var sel = window.getSelection(); | ||||
|       var sel = win(cm).getSelection(); | ||||
|       if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { | ||||
|         result.anchorNode = sel.anchorNode; | ||||
|         result.anchorOffset = sel.anchorOffset; | ||||
| @@ -4054,11 +4093,12 @@ | ||||
|   } | ||||
|  | ||||
|   function restoreSelection(snapshot) { | ||||
|     if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } | ||||
|     if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt(snapshot.activeElt.ownerDocument)) { return } | ||||
|     snapshot.activeElt.focus(); | ||||
|     if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) && | ||||
|         snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { | ||||
|       var sel = window.getSelection(), range = document.createRange(); | ||||
|       var doc = snapshot.activeElt.ownerDocument; | ||||
|       var sel = doc.defaultView.getSelection(), range = doc.createRange(); | ||||
|       range.setEnd(snapshot.anchorNode, snapshot.anchorOffset); | ||||
|       range.collapse(false); | ||||
|       sel.removeAllRanges(); | ||||
| @@ -4235,6 +4275,8 @@ | ||||
|   function updateGutterSpace(display) { | ||||
|     var width = display.gutters.offsetWidth; | ||||
|     display.sizer.style.marginLeft = width + "px"; | ||||
|     // Send an event to consumers responding to changes in gutter width. | ||||
|     signalLater(display, "gutterChanged", display); | ||||
|   } | ||||
|  | ||||
|   function setDocumentHeight(cm, measure) { | ||||
| @@ -4373,6 +4415,12 @@ | ||||
|     d.scroller.setAttribute("tabIndex", "-1"); | ||||
|     // The element in which the editor lives. | ||||
|     d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); | ||||
|     // See #6982. FIXME remove when this has been fixed for a while in Chrome | ||||
|     if (chrome && chrome_version >= 105) { d.wrapper.style.clipPath = "inset(0px)"; } | ||||
|  | ||||
|     // This attribute is respected by automatic translation systems such as Google Translate, | ||||
|     // and may also be respected by tools used by human translators. | ||||
|     d.wrapper.setAttribute('translate', 'no'); | ||||
|  | ||||
|     // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) | ||||
|     if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } | ||||
| @@ -4470,7 +4518,24 @@ | ||||
|   } | ||||
|  | ||||
|   function onScrollWheel(cm, e) { | ||||
|     // On Chrome 102, viewport updates somehow stop wheel-based | ||||
|     // scrolling. Turning off pointer events during the scroll seems | ||||
|     // to avoid the issue. | ||||
|     if (chrome && chrome_version == 102) { | ||||
|       if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = "none"; } | ||||
|       else { clearTimeout(cm.display.chromeScrollHack); } | ||||
|       cm.display.chromeScrollHack = setTimeout(function () { | ||||
|         cm.display.chromeScrollHack = null; | ||||
|         cm.display.sizer.style.pointerEvents = ""; | ||||
|       }, 100); | ||||
|     } | ||||
|     var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; | ||||
|     var pixelsPerUnit = wheelPixelsPerUnit; | ||||
|     if (e.deltaMode === 0) { | ||||
|       dx = e.deltaX; | ||||
|       dy = e.deltaY; | ||||
|       pixelsPerUnit = 1; | ||||
|     } | ||||
|  | ||||
|     var display = cm.display, scroll = display.scroller; | ||||
|     // Quit if there's nothing to scroll here | ||||
| @@ -4499,10 +4564,10 @@ | ||||
|     // estimated pixels/delta value, we just handle horizontal | ||||
|     // scrolling entirely here. It'll be slightly off from native, but | ||||
|     // better than glitching out. | ||||
|     if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { | ||||
|     if (dx && !gecko && !presto && pixelsPerUnit != null) { | ||||
|       if (dy && canScrollY) | ||||
|         { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); } | ||||
|       setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit)); | ||||
|         { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); } | ||||
|       setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit)); | ||||
|       // Only prevent default scrolling if vertical scrolling is | ||||
|       // actually possible. Otherwise, it causes vertical scroll | ||||
|       // jitter on OSX trackpads when deltaX is small and deltaY | ||||
| @@ -4515,15 +4580,15 @@ | ||||
|  | ||||
|     // 'Project' the visible viewport to cover the area that is being | ||||
|     // scrolled into view (if we know enough to estimate it). | ||||
|     if (dy && wheelPixelsPerUnit != null) { | ||||
|       var pixels = dy * wheelPixelsPerUnit; | ||||
|     if (dy && pixelsPerUnit != null) { | ||||
|       var pixels = dy * pixelsPerUnit; | ||||
|       var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; | ||||
|       if (pixels < 0) { top = Math.max(0, top + pixels - 50); } | ||||
|       else { bot = Math.min(cm.doc.height, bot + pixels + 50); } | ||||
|       updateDisplaySimple(cm, {top: top, bottom: bot}); | ||||
|     } | ||||
|  | ||||
|     if (wheelSamples < 20) { | ||||
|     if (wheelSamples < 20 && e.deltaMode !== 0) { | ||||
|       if (display.wheelStartX == null) { | ||||
|         display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; | ||||
|         display.wheelDX = dx; display.wheelDY = dy; | ||||
| @@ -4782,6 +4847,7 @@ | ||||
|     estimateLineHeights(cm); | ||||
|     loadMode(cm); | ||||
|     setDirectionClass(cm); | ||||
|     cm.options.direction = doc.direction; | ||||
|     if (!cm.options.lineWrapping) { findMaxLine(cm); } | ||||
|     cm.options.mode = doc.modeOption; | ||||
|     regChange(cm); | ||||
| @@ -5146,7 +5212,7 @@ | ||||
|       var range = sel.ranges[i]; | ||||
|       var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; | ||||
|       var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); | ||||
|       var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); | ||||
|       var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear); | ||||
|       if (out || newAnchor != range.anchor || newHead != range.head) { | ||||
|         if (!out) { out = sel.ranges.slice(0, i); } | ||||
|         out[i] = new Range(newAnchor, newHead); | ||||
| @@ -5958,7 +6024,7 @@ | ||||
|       if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); } | ||||
|       addMarkedSpan(line, new MarkedSpan(marker, | ||||
|                                          curLine == from.line ? from.ch : null, | ||||
|                                          curLine == to.line ? to.ch : null)); | ||||
|                                          curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp); | ||||
|       ++curLine; | ||||
|     }); | ||||
|     // lineIsHidden depends on the presence of the spans, so needs a second pass | ||||
| @@ -6130,6 +6196,7 @@ | ||||
|     getRange: function(from, to, lineSep) { | ||||
|       var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); | ||||
|       if (lineSep === false) { return lines } | ||||
|       if (lineSep === '') { return lines.join('') } | ||||
|       return lines.join(lineSep || this.lineSeparator()) | ||||
|     }, | ||||
|  | ||||
| @@ -6684,10 +6751,9 @@ | ||||
|   // Very basic readline/emacs-style bindings, which are standard on Mac. | ||||
|   keyMap.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" | ||||
|     "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", | ||||
|     "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", | ||||
|     "Ctrl-T": "transposeChars", "Ctrl-O": "openLine" | ||||
|   }; | ||||
|   keyMap.macDefault = { | ||||
|     "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", | ||||
| @@ -7198,7 +7264,7 @@ | ||||
|   function onKeyDown(e) { | ||||
|     var cm = this; | ||||
|     if (e.target && e.target != cm.display.input.getField()) { return } | ||||
|     cm.curOp.focus = activeElt(); | ||||
|     cm.curOp.focus = activeElt(doc(cm)); | ||||
|     if (signalDOMEvent(cm, e)) { return } | ||||
|     // IE does strange things with escape. | ||||
|     if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; } | ||||
| @@ -7305,7 +7371,7 @@ | ||||
|     } | ||||
|     if (clickInGutter(cm, e)) { return } | ||||
|     var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"; | ||||
|     window.focus(); | ||||
|     win(cm).focus(); | ||||
|  | ||||
|     // #3261: make sure, that we're not starting a second selection | ||||
|     if (button == 1 && cm.state.selectingText) | ||||
| @@ -7360,7 +7426,7 @@ | ||||
|  | ||||
|   function leftButtonDown(cm, pos, repeat, event) { | ||||
|     if (ie) { setTimeout(bind(ensureFocus, cm), 0); } | ||||
|     else { cm.curOp.focus = activeElt(); } | ||||
|     else { cm.curOp.focus = activeElt(doc(cm)); } | ||||
|  | ||||
|     var behavior = configureMouse(cm, repeat, event); | ||||
|  | ||||
| @@ -7430,19 +7496,19 @@ | ||||
|   // Normal selection, as opposed to text dragging. | ||||
|   function leftButtonSelect(cm, event, start, behavior) { | ||||
|     if (ie) { delayBlurEvent(cm); } | ||||
|     var display = cm.display, doc = cm.doc; | ||||
|     var display = cm.display, doc$1 = cm.doc; | ||||
|     e_preventDefault(event); | ||||
|  | ||||
|     var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; | ||||
|     var ourRange, ourIndex, startSel = doc$1.sel, ranges = startSel.ranges; | ||||
|     if (behavior.addNew && !behavior.extend) { | ||||
|       ourIndex = doc.sel.contains(start); | ||||
|       ourIndex = doc$1.sel.contains(start); | ||||
|       if (ourIndex > -1) | ||||
|         { ourRange = ranges[ourIndex]; } | ||||
|       else | ||||
|         { ourRange = new Range(start, start); } | ||||
|     } else { | ||||
|       ourRange = doc.sel.primary(); | ||||
|       ourIndex = doc.sel.primIndex; | ||||
|       ourRange = doc$1.sel.primary(); | ||||
|       ourIndex = doc$1.sel.primIndex; | ||||
|     } | ||||
|  | ||||
|     if (behavior.unit == "rectangle") { | ||||
| @@ -7459,18 +7525,18 @@ | ||||
|  | ||||
|     if (!behavior.addNew) { | ||||
|       ourIndex = 0; | ||||
|       setSelection(doc, new Selection([ourRange], 0), sel_mouse); | ||||
|       startSel = doc.sel; | ||||
|       setSelection(doc$1, new Selection([ourRange], 0), sel_mouse); | ||||
|       startSel = doc$1.sel; | ||||
|     } else if (ourIndex == -1) { | ||||
|       ourIndex = ranges.length; | ||||
|       setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), | ||||
|       setSelection(doc$1, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), | ||||
|                    {scroll: false, origin: "*mouse"}); | ||||
|     } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { | ||||
|       setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), | ||||
|       setSelection(doc$1, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), | ||||
|                    {scroll: false, origin: "*mouse"}); | ||||
|       startSel = doc.sel; | ||||
|       startSel = doc$1.sel; | ||||
|     } else { | ||||
|       replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); | ||||
|       replaceOneSelection(doc$1, ourIndex, ourRange, sel_mouse); | ||||
|     } | ||||
|  | ||||
|     var lastPos = start; | ||||
| @@ -7480,19 +7546,19 @@ | ||||
|  | ||||
|       if (behavior.unit == "rectangle") { | ||||
|         var ranges = [], tabSize = cm.options.tabSize; | ||||
|         var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); | ||||
|         var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); | ||||
|         var startCol = countColumn(getLine(doc$1, start.line).text, start.ch, tabSize); | ||||
|         var posCol = countColumn(getLine(doc$1, pos.line).text, pos.ch, tabSize); | ||||
|         var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); | ||||
|         for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); | ||||
|              line <= end; line++) { | ||||
|           var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); | ||||
|           var text = getLine(doc$1, line).text, leftPos = findColumn(text, left, tabSize); | ||||
|           if (left == right) | ||||
|             { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); } | ||||
|           else if (text.length > leftPos) | ||||
|             { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); } | ||||
|         } | ||||
|         if (!ranges.length) { ranges.push(new Range(start, start)); } | ||||
|         setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), | ||||
|         setSelection(doc$1, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), | ||||
|                      {origin: "*mouse", scroll: false}); | ||||
|         cm.scrollIntoView(pos); | ||||
|       } else { | ||||
| @@ -7507,8 +7573,8 @@ | ||||
|           anchor = maxPos(oldRange.to(), range.head); | ||||
|         } | ||||
|         var ranges$1 = startSel.ranges.slice(0); | ||||
|         ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); | ||||
|         setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); | ||||
|         ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc$1, anchor), head)); | ||||
|         setSelection(doc$1, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); | ||||
|       } | ||||
|     } | ||||
|  | ||||
| @@ -7524,9 +7590,9 @@ | ||||
|       var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); | ||||
|       if (!cur) { return } | ||||
|       if (cmp(cur, lastPos) != 0) { | ||||
|         cm.curOp.focus = activeElt(); | ||||
|         cm.curOp.focus = activeElt(doc(cm)); | ||||
|         extendTo(cur); | ||||
|         var visible = visibleLines(display, doc); | ||||
|         var visible = visibleLines(display, doc$1); | ||||
|         if (cur.line >= visible.to || cur.line < visible.from) | ||||
|           { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); } | ||||
|       } else { | ||||
| @@ -7551,7 +7617,7 @@ | ||||
|       } | ||||
|       off(display.wrapper.ownerDocument, "mousemove", move); | ||||
|       off(display.wrapper.ownerDocument, "mouseup", up); | ||||
|       doc.history.lastSelOrigin = null; | ||||
|       doc$1.history.lastSelOrigin = null; | ||||
|     } | ||||
|  | ||||
|     var move = operation(cm, function (e) { | ||||
| @@ -7708,7 +7774,7 @@ | ||||
|       for (var i = newBreaks.length - 1; i >= 0; i--) | ||||
|         { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); } | ||||
|     }); | ||||
|     option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { | ||||
|     option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { | ||||
|       cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); | ||||
|       if (old != Init) { cm.refresh(); } | ||||
|     }); | ||||
| @@ -8151,7 +8217,7 @@ | ||||
|     var pasted = e.clipboardData && e.clipboardData.getData("Text"); | ||||
|     if (pasted) { | ||||
|       e.preventDefault(); | ||||
|       if (!cm.isReadOnly() && !cm.options.disableInput) | ||||
|       if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus()) | ||||
|         { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); } | ||||
|       return true | ||||
|     } | ||||
| @@ -8199,7 +8265,7 @@ | ||||
|   } | ||||
|  | ||||
|   function hiddenTextarea() { | ||||
|     var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"); | ||||
|     var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none"); | ||||
|     var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); | ||||
|     // The textarea is kept positioned near the cursor to prevent the | ||||
|     // fact that it'll be scrolled into view on input from scrolling | ||||
| @@ -8228,7 +8294,7 @@ | ||||
|  | ||||
|     CodeMirror.prototype = { | ||||
|       constructor: CodeMirror, | ||||
|       focus: function(){window.focus(); this.display.input.focus();}, | ||||
|       focus: function(){win(this).focus(); this.display.input.focus();}, | ||||
|  | ||||
|       setOption: function(option, value) { | ||||
|         var options = this.options, old = options[option]; | ||||
| @@ -8552,7 +8618,7 @@ | ||||
|  | ||||
|         signal(this, "overwriteToggle", this, this.state.overwrite); | ||||
|       }, | ||||
|       hasFocus: function() { return this.display.input.getField() == activeElt() }, | ||||
|       hasFocus: function() { return this.display.input.getField() == activeElt(doc(this)) }, | ||||
|       isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) }, | ||||
|  | ||||
|       scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }), | ||||
| @@ -8733,7 +8799,7 @@ | ||||
|   function findPosV(cm, pos, dir, unit) { | ||||
|     var doc = cm.doc, x = pos.left, y; | ||||
|     if (unit == "page") { | ||||
|       var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); | ||||
|       var pageSize = Math.min(cm.display.wrapper.clientHeight, win(cm).innerHeight || doc(cm).documentElement.clientHeight); | ||||
|       var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); | ||||
|       y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; | ||||
|  | ||||
| @@ -8833,7 +8899,7 @@ | ||||
|       var kludge = hiddenTextarea(), te = kludge.firstChild; | ||||
|       cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); | ||||
|       te.value = lastCopied.text.join("\n"); | ||||
|       var hadFocus = document.activeElement; | ||||
|       var hadFocus = activeElt(div.ownerDocument); | ||||
|       selectInput(te); | ||||
|       setTimeout(function () { | ||||
|         cm.display.lineSpace.removeChild(kludge); | ||||
| @@ -8856,7 +8922,7 @@ | ||||
|  | ||||
|   ContentEditableInput.prototype.prepareSelection = function () { | ||||
|     var result = prepareSelection(this.cm, false); | ||||
|     result.focus = document.activeElement == this.div; | ||||
|     result.focus = activeElt(this.div.ownerDocument) == this.div; | ||||
|     return result | ||||
|   }; | ||||
|  | ||||
| @@ -8952,7 +9018,7 @@ | ||||
|  | ||||
|   ContentEditableInput.prototype.focus = function () { | ||||
|     if (this.cm.options.readOnly != "nocursor") { | ||||
|       if (!this.selectionInEditor() || document.activeElement != this.div) | ||||
|       if (!this.selectionInEditor() || activeElt(this.div.ownerDocument) != this.div) | ||||
|         { this.showSelection(this.prepareSelection(), true); } | ||||
|       this.div.focus(); | ||||
|     } | ||||
| @@ -8963,9 +9029,11 @@ | ||||
|   ContentEditableInput.prototype.supportsTouch = function () { return true }; | ||||
|  | ||||
|   ContentEditableInput.prototype.receivedFocus = function () { | ||||
|       var this$1 = this; | ||||
|  | ||||
|     var input = this; | ||||
|     if (this.selectionInEditor()) | ||||
|       { this.pollSelection(); } | ||||
|       { setTimeout(function () { return this$1.pollSelection(); }, 20); } | ||||
|     else | ||||
|       { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); } | ||||
|  | ||||
| @@ -9302,6 +9370,7 @@ | ||||
|     // Used to work around IE issue with selection being forgotten when focus moves away from textarea | ||||
|     this.hasSelection = false; | ||||
|     this.composing = null; | ||||
|     this.resetting = false; | ||||
|   }; | ||||
|  | ||||
|   TextareaInput.prototype.init = function (display) { | ||||
| @@ -9434,8 +9503,9 @@ | ||||
|   // Reset the input to correspond to the selection (or to be empty, | ||||
|   // when not typing and nothing is selected) | ||||
|   TextareaInput.prototype.reset = function (typing) { | ||||
|     if (this.contextMenuPending || this.composing) { return } | ||||
|     if (this.contextMenuPending || this.composing && typing) { return } | ||||
|     var cm = this.cm; | ||||
|     this.resetting = true; | ||||
|     if (cm.somethingSelected()) { | ||||
|       this.prevInput = ""; | ||||
|       var content = cm.getSelection(); | ||||
| @@ -9446,6 +9516,7 @@ | ||||
|       this.prevInput = this.textarea.value = ""; | ||||
|       if (ie && ie_version >= 9) { this.hasSelection = null; } | ||||
|     } | ||||
|     this.resetting = false; | ||||
|   }; | ||||
|  | ||||
|   TextareaInput.prototype.getField = function () { return this.textarea }; | ||||
| @@ -9453,7 +9524,7 @@ | ||||
|   TextareaInput.prototype.supportsTouch = function () { return false }; | ||||
|  | ||||
|   TextareaInput.prototype.focus = function () { | ||||
|     if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { | ||||
|     if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt(this.textarea.ownerDocument) != this.textarea)) { | ||||
|       try { this.textarea.focus(); } | ||||
|       catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM | ||||
|     } | ||||
| @@ -9507,7 +9578,7 @@ | ||||
|     // possible when it is clear that nothing happened. hasSelection | ||||
|     // will be the case when there is a lot of text in the textarea, | ||||
|     // in which case reading its value would be expensive. | ||||
|     if (this.contextMenuPending || !cm.state.focused || | ||||
|     if (this.contextMenuPending || this.resetting || !cm.state.focused || | ||||
|         (hasSelection(input) && !prevInput && !this.composing) || | ||||
|         cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) | ||||
|       { return false } | ||||
| @@ -9576,9 +9647,9 @@ | ||||
|     input.wrapper.style.cssText = "position: static"; | ||||
|     te.style.cssText = "position: absolute; width: 30px; height: 30px;\n      top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n      z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; | ||||
|     var oldScrollY; | ||||
|     if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712) | ||||
|     if (webkit) { oldScrollY = te.ownerDocument.defaultView.scrollY; } // Work around Chrome issue (#2712) | ||||
|     display.input.focus(); | ||||
|     if (webkit) { window.scrollTo(null, oldScrollY); } | ||||
|     if (webkit) { te.ownerDocument.defaultView.scrollTo(null, oldScrollY); } | ||||
|     display.input.reset(); | ||||
|     // Adds "Select all" to context menu in FF | ||||
|     if (!cm.somethingSelected()) { te.value = input.prevInput = " "; } | ||||
| @@ -9660,7 +9731,7 @@ | ||||
|     // Set autofocus to true if this textarea is focused, or if it has | ||||
|     // autofocus and no other element is focused. | ||||
|     if (options.autofocus == null) { | ||||
|       var hasFocus = activeElt(); | ||||
|       var hasFocus = activeElt(textarea.ownerDocument); | ||||
|       options.autofocus = hasFocus == textarea || | ||||
|         textarea.getAttribute("autofocus") != null && hasFocus == document.body; | ||||
|     } | ||||
| @@ -9794,7 +9865,7 @@ | ||||
|  | ||||
|   addLegacyProps(CodeMirror); | ||||
|  | ||||
|   CodeMirror.version = "5.60.0"; | ||||
|   CodeMirror.version = "5.65.9"; | ||||
|  | ||||
|   return CodeMirror; | ||||
|  | ||||
|   | ||||
							
								
								
									
										394
									
								
								libraries/codemirror/keymap/vim.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										394
									
								
								libraries/codemirror/keymap/vim.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,14 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| (function(mod) { | ||||
|     if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|       mod(require("../lib/codemirror"), require("../addon/search/searchcursor"), require("../addon/dialog/dialog"), require("../addon/edit/matchbrackets.js")); | ||||
|     else if (typeof define == "function" && define.amd) // AMD | ||||
|       define(["../lib/codemirror", "../addon/search/searchcursor", "../addon/dialog/dialog", "../addon/edit/matchbrackets"], mod); | ||||
|     else // Plain browser env | ||||
|       mod(CodeMirror); | ||||
|   })(function(CodeMirror) { | ||||
|     'use strict'; | ||||
|   // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /** | ||||
|  * Supported keybindings: | ||||
| @@ -34,15 +43,7 @@ | ||||
|  *  9. Ex command implementations. | ||||
|  */ | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|     mod(require("../lib/codemirror"), require("../addon/search/searchcursor"), require("../addon/dialog/dialog"), require("../addon/edit/matchbrackets.js")); | ||||
|   else if (typeof define == "function" && define.amd) // AMD | ||||
|     define(["../lib/codemirror", "../addon/search/searchcursor", "../addon/dialog/dialog", "../addon/edit/matchbrackets"], mod); | ||||
|   else // Plain browser env | ||||
|     mod(CodeMirror); | ||||
| })(function(CodeMirror) { | ||||
|   'use strict'; | ||||
| function initVim$1(CodeMirror) { | ||||
|  | ||||
|   var Pos = CodeMirror.Pos; | ||||
|  | ||||
| @@ -87,6 +88,8 @@ | ||||
|     { 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: '<C-Esc>', type: 'keyToKey', toKeys: '<Esc>' }, // ipad keyboard sends C-Esc instead of C-[ | ||||
|     { keys: '<C-Esc>', 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' }, | ||||
| @@ -225,8 +228,8 @@ | ||||
|     { 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: 'zb', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }}, | ||||
|     { keys: 'z-', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, | ||||
|     { keys: '.', type: 'action', action: 'repeatLastEdit' }, | ||||
|     { keys: '<C-a>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: true, backtrack: false}}, | ||||
|     { keys: '<C-x>', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: false, backtrack: false}}, | ||||
| @@ -276,7 +279,6 @@ | ||||
|     { name: 'global', shortName: 'g' } | ||||
|   ]; | ||||
|  | ||||
|   var Vim = function() { | ||||
|     function enterVimMode(cm) { | ||||
|       cm.setOption('disableInput', true); | ||||
|       cm.setOption('showCursorWhenSelecting', false); | ||||
| @@ -642,8 +644,8 @@ | ||||
|           register.clear(); | ||||
|           this.latestRegister = registerName; | ||||
|           if (cm.openDialog) { | ||||
|             this.onRecordingDone = cm.openDialog( | ||||
|                 document.createTextNode('(recording)['+registerName+']'), null, {bottom:true}); | ||||
|             var template = dom('span', {class: 'cm-vim-message'}, 'recording @' + registerName); | ||||
|             this.onRecordingDone = cm.openDialog(template, null, {bottom:true}); | ||||
|           } | ||||
|           this.isRecording = true; | ||||
|         } | ||||
| @@ -716,7 +718,8 @@ | ||||
|     } | ||||
|  | ||||
|     var lastInsertModeKeyTimer; | ||||
|     var vimApi= { | ||||
|     var vimApi = { | ||||
|       enterVimMode: enterVimMode, | ||||
|       buildKeyMap: function() { | ||||
|         // TODO: Convert keymap into dictionary format for fast lookup. | ||||
|       }, | ||||
| @@ -838,6 +841,8 @@ | ||||
|           return command(); | ||||
|         } | ||||
|       }, | ||||
|       multiSelectHandleKey: multiSelectHandleKey, | ||||
|  | ||||
|       /** | ||||
|        * This is the outermost function called by CodeMirror, after keys have | ||||
|        * been mapped to their Vim equivalents. | ||||
| @@ -865,13 +870,17 @@ | ||||
|         } | ||||
|         function handleEsc() { | ||||
|           if (key == '<Esc>') { | ||||
|             // Clear input state and get back to normal mode. | ||||
|             clearInputState(cm); | ||||
|             if (vim.visualMode) { | ||||
|               // Get back to normal mode. | ||||
|               exitVisualMode(cm); | ||||
|             } else if (vim.insertMode) { | ||||
|               // Get back to normal mode. | ||||
|               exitInsertMode(cm); | ||||
|             } else { | ||||
|               // We're already in normal mode. Let '<Esc>' be handled normally. | ||||
|               return; | ||||
|             } | ||||
|             clearInputState(cm); | ||||
|             return true; | ||||
|           } | ||||
|         } | ||||
| @@ -939,9 +948,10 @@ | ||||
|           var match = commandDispatcher.matchCommand(mainKey, defaultKeymap, vim.inputState, context); | ||||
|           if (match.type == 'none') { clearInputState(cm); return false; } | ||||
|           else if (match.type == 'partial') { return true; } | ||||
|           else if (match.type == 'clear') { clearInputState(cm); return true; } | ||||
|  | ||||
|           vim.inputState.keyBuffer = ''; | ||||
|           var keysMatcher = /^(\d*)(.*)$/.exec(keys); | ||||
|           keysMatcher = /^(\d*)(.*)$/.exec(keys); | ||||
|           if (keysMatcher[1] && keysMatcher[1] != '0') { | ||||
|             vim.inputState.pushRepeatDigit(keysMatcher[1]); | ||||
|           } | ||||
| @@ -1243,7 +1253,7 @@ | ||||
|         } | ||||
|         if (bestMatch.keys.slice(-11) == '<character>') { | ||||
|           var character = lastChar(keys); | ||||
|           if (!character) return {type: 'none'}; | ||||
|           if (!character || character.length > 1) return {type: 'clear'}; | ||||
|           inputState.selectedCharacter = character; | ||||
|         } | ||||
|         return {type: 'full', command: bestMatch}; | ||||
| @@ -1270,8 +1280,6 @@ | ||||
|           case 'keyToEx': | ||||
|             this.processEx(cm, vim, command); | ||||
|             break; | ||||
|           default: | ||||
|             break; | ||||
|         } | ||||
|       }, | ||||
|       processMotion: function(cm, vim, command) { | ||||
| @@ -1487,6 +1495,7 @@ | ||||
|           vimGlobalState.exCommandHistoryController.pushInput(input); | ||||
|           vimGlobalState.exCommandHistoryController.reset(); | ||||
|           exCommandDispatcher.processCommand(cm, input); | ||||
|           clearInputState(cm); | ||||
|         } | ||||
|         function onPromptKeyDown(e, input, close) { | ||||
|           var keyName = CodeMirror.keyName(e), up, offset; | ||||
| @@ -2007,7 +2016,7 @@ | ||||
|         } | ||||
|         var orig = cm.charCoords(head, 'local'); | ||||
|         motionArgs.repeat = repeat; | ||||
|         var curEnd = motions.moveByDisplayLines(cm, head, motionArgs, vim); | ||||
|         curEnd = motions.moveByDisplayLines(cm, head, motionArgs, vim); | ||||
|         if (!curEnd) { | ||||
|           return null; | ||||
|         } | ||||
| @@ -2150,6 +2159,20 @@ | ||||
|           } | ||||
|         } else if (character === 't') { | ||||
|           tmp = expandTagUnderCursor(cm, head, inclusive); | ||||
|         } else if (character === 's') { | ||||
|           // account for cursor on end of sentence symbol | ||||
|           var content = cm.getLine(head.line); | ||||
|           if (head.ch > 0 && isEndOfSentenceSymbol(content[head.ch])) { | ||||
|             head.ch -= 1; | ||||
|           } | ||||
|           var end = getSentence(cm, head, motionArgs.repeat, 1, inclusive); | ||||
|           var start = getSentence(cm, head, motionArgs.repeat, -1, inclusive); | ||||
|           // closer vim behaviour, 'a' only takes the space after the sentence if there is one before and after | ||||
|           if (isWhiteSpaceString(cm.getLine(start.line)[start.ch]) | ||||
|               && isWhiteSpaceString(cm.getLine(end.line)[end.ch -1])) { | ||||
|             start = {line: start.line, ch: start.ch + 1}; | ||||
|           } | ||||
|           tmp = {start: start, end: end}; | ||||
|         } else { | ||||
|           // No text object defined for this, don't move. | ||||
|           return null; | ||||
| @@ -2232,7 +2255,7 @@ | ||||
|         } else if (args.fullLine) { | ||||
|             head.ch = Number.MAX_VALUE; | ||||
|             head.line--; | ||||
|             cm.setSelection(anchor, head) | ||||
|             cm.setSelection(anchor, head); | ||||
|             text = cm.getSelection(); | ||||
|             cm.replaceSelection(""); | ||||
|             finalHead = anchor; | ||||
| @@ -2284,22 +2307,30 @@ | ||||
|       }, | ||||
|       indent: function(cm, args, ranges) { | ||||
|         var vim = cm.state.vim; | ||||
|         var startLine = ranges[0].anchor.line; | ||||
|         var endLine = vim.visualBlock ? | ||||
|           ranges[ranges.length - 1].anchor.line : | ||||
|           ranges[0].head.line; | ||||
|         // In visual mode, n> shifts the selection right n times, instead of | ||||
|         // shifting n lines right once. | ||||
|         var repeat = (vim.visualMode) ? args.repeat : 1; | ||||
|         if (args.linewise) { | ||||
|           // The only way to delete a newline is to delete until the start of | ||||
|           // the next line, so in linewise mode evalInput will include the next | ||||
|           // line. We don't want this in indent, so we go back a line. | ||||
|           endLine--; | ||||
|         } | ||||
|         for (var i = startLine; i <= endLine; i++) { | ||||
|         if (cm.indentMore) { | ||||
|           var repeat = (vim.visualMode) ? args.repeat : 1; | ||||
|           for (var j = 0; j < repeat; j++) { | ||||
|             cm.indentLine(i, args.indentRight); | ||||
|             if (args.indentRight) cm.indentMore(); | ||||
|             else cm.indentLess(); | ||||
|           } | ||||
|         } else { | ||||
|           var startLine = ranges[0].anchor.line; | ||||
|           var endLine = vim.visualBlock ? | ||||
|             ranges[ranges.length - 1].anchor.line : | ||||
|             ranges[0].head.line; | ||||
|           // In visual mode, n> shifts the selection right n times, instead of | ||||
|           // shifting n lines right once. | ||||
|           var repeat = (vim.visualMode) ? args.repeat : 1; | ||||
|           if (args.linewise) { | ||||
|             // The only way to delete a newline is to delete until the start of | ||||
|             // the next line, so in linewise mode evalInput will include the next | ||||
|             // line. We don't want this in indent, so we go back a line. | ||||
|             endLine--; | ||||
|           } | ||||
|           for (var i = startLine; i <= endLine; i++) { | ||||
|             for (var j = 0; j < repeat; j++) { | ||||
|               cm.indentLine(i, args.indentRight); | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor); | ||||
| @@ -2412,11 +2443,14 @@ | ||||
|         var charCoords = cm.charCoords(new Pos(lineNum, 0), 'local'); | ||||
|         var height = cm.getScrollInfo().clientHeight; | ||||
|         var y = charCoords.top; | ||||
|         var lineHeight = charCoords.bottom - y; | ||||
|         switch (actionArgs.position) { | ||||
|           case 'center': y = y - (height / 2) + lineHeight; | ||||
|           case 'center': y = charCoords.bottom - height / 2; | ||||
|             break; | ||||
|           case 'bottom': y = y - height + lineHeight; | ||||
|           case 'bottom': | ||||
|             var lineLastCharPos = new Pos(lineNum, cm.getLine(lineNum).length - 1); | ||||
|             var lineLastCharCoords = cm.charCoords(lineLastCharPos, 'local'); | ||||
|             var lineHeight = lineLastCharCoords.bottom - y; | ||||
|             y = y - height + lineHeight; | ||||
|             break; | ||||
|         } | ||||
|         cm.scrollTo(null, y); | ||||
| @@ -2866,13 +2900,13 @@ | ||||
|         } | ||||
|         if (!actionArgs.backtrack && (end <= cur.ch))return; | ||||
|         if (match) { | ||||
|           var baseStr = match[2] || match[4] | ||||
|           var digits = match[3] || match[5] | ||||
|           var baseStr = match[2] || match[4]; | ||||
|           var digits = match[3] || match[5]; | ||||
|           var increment = actionArgs.increase ? 1 : -1; | ||||
|           var base = {'0b': 2, '0': 8, '': 10, '0x': 16}[baseStr.toLowerCase()]; | ||||
|           var number = parseInt(match[1] + digits, base) + (increment * actionArgs.repeat); | ||||
|           numberStr = number.toString(base); | ||||
|           var zeroPadding = baseStr ? new Array(digits.length - numberStr.length + 1 + match[1].length).join('0') : '' | ||||
|           var zeroPadding = baseStr ? new Array(digits.length - numberStr.length + 1 + match[1].length).join('0') : ''; | ||||
|           if (numberStr.charAt(0) === '-') { | ||||
|             numberStr = '-' + baseStr + zeroPadding + numberStr.substr(1); | ||||
|           } else { | ||||
| @@ -3244,9 +3278,8 @@ | ||||
|             fromCh = anchor.ch, | ||||
|             bottom = Math.max(anchor.line, head.line), | ||||
|             toCh = head.ch; | ||||
|         if (fromCh < toCh) { toCh += 1 } | ||||
|         else { fromCh += 1 }; | ||||
|         var height = bottom - top + 1; | ||||
|         if (fromCh < toCh) { toCh += 1; } | ||||
|         else { fromCh += 1; }        var height = bottom - top + 1; | ||||
|         var primary = head.line == top ? 0 : height - 1; | ||||
|         var ranges = []; | ||||
|         for (var i = 0; i < height; i++) { | ||||
| @@ -3798,21 +3831,156 @@ | ||||
|       start = new Pos(i, 0); | ||||
|       return { start: start, end: end }; | ||||
|     } | ||||
|  | ||||
|     function findSentence(cm, cur, repeat, dir) { | ||||
|  | ||||
|       /* | ||||
|         Takes an index object | ||||
|         { | ||||
|           line: the line string, | ||||
|           ln: line number, | ||||
|           pos: index in line, | ||||
|           dir: direction of traversal (-1 or 1) | ||||
|   function getSentence(cm, cur, repeat, dir, inclusive /*includes whitespace*/) { | ||||
|     /* | ||||
|     Takes an index object | ||||
|     { | ||||
|     line: the line string, | ||||
|     ln: line number, | ||||
|     pos: index in line, | ||||
|     dir: direction of traversal (-1 or 1) | ||||
|     } | ||||
|     and modifies the pos member to represent the | ||||
|     next valid position or sets the line to null if there are | ||||
|     no more valid positions. | ||||
|    */ | ||||
|     function nextChar(curr) { | ||||
|       if (curr.pos + curr.dir < 0 || curr.pos + curr.dir >= curr.line.length) { | ||||
|           curr.line = null; | ||||
|         } | ||||
|         and modifies the line, ln, and pos members to represent the | ||||
|         next valid position or sets them to null if there are | ||||
|         no more valid positions. | ||||
|        */ | ||||
|       else { | ||||
|         curr.pos += curr.dir; | ||||
|       } | ||||
|     } | ||||
|     /* | ||||
|     Performs one iteration of traversal in forward direction | ||||
|     Returns an index object of the new location | ||||
|    */ | ||||
|     function forward(cm, ln, pos, dir) { | ||||
|       var line = cm.getLine(ln); | ||||
|  | ||||
|       var curr = { | ||||
|         line: line, | ||||
|         ln: ln, | ||||
|         pos: pos, | ||||
|         dir: dir, | ||||
|       }; | ||||
|  | ||||
|       if (curr.line === "") { | ||||
|         return { ln: curr.ln, pos: curr.pos }; | ||||
|       } | ||||
|  | ||||
|       var lastSentencePos = curr.pos; | ||||
|  | ||||
|       // Move one step to skip character we start on | ||||
|       nextChar(curr); | ||||
|  | ||||
|       while (curr.line !== null) { | ||||
|         lastSentencePos = curr.pos; | ||||
|         if (isEndOfSentenceSymbol(curr.line[curr.pos])) { | ||||
|           if (!inclusive) { | ||||
|             return { ln: curr.ln, pos: curr.pos + 1 }; | ||||
|           } else { | ||||
|             nextChar(curr); | ||||
|             while (curr.line !== null ) { | ||||
|               if (isWhiteSpaceString(curr.line[curr.pos])) { | ||||
|                 lastSentencePos = curr.pos; | ||||
|                 nextChar(curr); | ||||
|               } else { | ||||
|                 break; | ||||
|               } | ||||
|             } | ||||
|             return { ln: curr.ln, pos: lastSentencePos + 1, }; | ||||
|           } | ||||
|         } | ||||
|         nextChar(curr); | ||||
|       } | ||||
|       return { ln: curr.ln, pos: lastSentencePos + 1 }; | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|     Performs one iteration of traversal in reverse direction | ||||
|     Returns an index object of the new location | ||||
|    */ | ||||
|     function reverse(cm, ln, pos, dir) { | ||||
|       var line = cm.getLine(ln); | ||||
|  | ||||
|       var curr = { | ||||
|         line: line, | ||||
|         ln: ln, | ||||
|         pos: pos, | ||||
|         dir: dir, | ||||
|       }; | ||||
|  | ||||
|       if (curr.line === "") { | ||||
|         return { ln: curr.ln, pos: curr.pos }; | ||||
|       } | ||||
|  | ||||
|       var lastSentencePos = curr.pos; | ||||
|  | ||||
|       // Move one step to skip character we start on | ||||
|       nextChar(curr); | ||||
|  | ||||
|       while (curr.line !== null) { | ||||
|         if (!isWhiteSpaceString(curr.line[curr.pos]) && !isEndOfSentenceSymbol(curr.line[curr.pos])) { | ||||
|           lastSentencePos = curr.pos; | ||||
|         } | ||||
|  | ||||
|         else if (isEndOfSentenceSymbol(curr.line[curr.pos]) ) { | ||||
|           if (!inclusive) { | ||||
|             return { ln: curr.ln, pos: lastSentencePos }; | ||||
|           } else { | ||||
|               if (isWhiteSpaceString(curr.line[curr.pos + 1])) { | ||||
|                 return { ln: curr.ln, pos: curr.pos + 1, }; | ||||
|               } else { | ||||
|                 return {ln: curr.ln, pos: lastSentencePos}; | ||||
|               } | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         nextChar(curr); | ||||
|       } | ||||
|       curr.line = line; | ||||
|       if (inclusive && isWhiteSpaceString(curr.line[curr.pos])) { | ||||
|         return { ln: curr.ln, pos: curr.pos }; | ||||
|       } else { | ||||
|         return { ln: curr.ln, pos: lastSentencePos }; | ||||
|       } | ||||
|  | ||||
|     } | ||||
|  | ||||
|     var curr_index = { | ||||
|       ln: cur.line, | ||||
|       pos: cur.ch, | ||||
|     }; | ||||
|  | ||||
|     while (repeat > 0) { | ||||
|       if (dir < 0) { | ||||
|         curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir); | ||||
|       } | ||||
|       else { | ||||
|         curr_index = forward(cm, curr_index.ln, curr_index.pos, dir); | ||||
|       } | ||||
|       repeat--; | ||||
|     } | ||||
|  | ||||
|     return new Pos(curr_index.ln, curr_index.pos); | ||||
|   } | ||||
|  | ||||
|   function findSentence(cm, cur, repeat, dir) { | ||||
|  | ||||
|     /* | ||||
|     Takes an index object | ||||
|     { | ||||
|     line: the line string, | ||||
|     ln: line number, | ||||
|     pos: index in line, | ||||
|     dir: direction of traversal (-1 or 1) | ||||
|     } | ||||
|     and modifies the line, ln, and pos members to represent the | ||||
|     next valid position or sets them to null if there are | ||||
|     no more valid positions. | ||||
|    */ | ||||
|       function nextChar(cm, idx) { | ||||
|         if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) { | ||||
|           idx.ln += idx.dir; | ||||
| @@ -3843,12 +4011,12 @@ | ||||
|           ln: ln, | ||||
|           pos: pos, | ||||
|           dir: dir, | ||||
|         } | ||||
|         }; | ||||
|  | ||||
|         var last_valid = { | ||||
|           ln: curr.ln, | ||||
|           pos: curr.pos, | ||||
|         } | ||||
|         }; | ||||
|  | ||||
|         var skip_empty_lines = (curr.line === ""); | ||||
|  | ||||
| @@ -3904,7 +4072,7 @@ | ||||
|           ln: ln, | ||||
|           pos: pos, | ||||
|           dir: dir, | ||||
|         } | ||||
|         }; | ||||
|  | ||||
|         var last_valid = { | ||||
|           ln: curr.ln, | ||||
| @@ -3933,7 +4101,7 @@ | ||||
|           } | ||||
|           else if (curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) { | ||||
|             skip_empty_lines = false; | ||||
|             last_valid = { ln: curr.ln, pos: curr.pos } | ||||
|             last_valid = { ln: curr.ln, pos: curr.pos }; | ||||
|           } | ||||
|  | ||||
|           nextChar(cm, curr); | ||||
| @@ -4325,7 +4493,7 @@ | ||||
|     } | ||||
|  | ||||
|     function showConfirm(cm, template) { | ||||
|       var pre = dom('pre', {$color: 'red', class: 'cm-vim-message'}, template); | ||||
|       var pre = dom('div', {$color: 'red', $whiteSpace: 'pre', class: 'cm-vim-message'}, template); | ||||
|       if (cm.openNotification) { | ||||
|         cm.openNotification(pre, {bottom: true, duration: 5000}); | ||||
|       } else { | ||||
| @@ -4920,7 +5088,7 @@ | ||||
|           for (var registerName in registers) { | ||||
|             var text = registers[registerName].toString(); | ||||
|             if (text.length) { | ||||
|               regInfo += '"' + registerName + '    ' + text + '\n' | ||||
|               regInfo += '"' + registerName + '    ' + text + '\n'; | ||||
|             } | ||||
|           } | ||||
|         } else { | ||||
| @@ -4932,7 +5100,7 @@ | ||||
|               continue; | ||||
|             } | ||||
|             var register = registers[registerName] || new Register(); | ||||
|             regInfo += '"' + registerName + '    ' + register.toString() + '\n' | ||||
|             regInfo += '"' + registerName + '    ' + register.toString() + '\n'; | ||||
|           } | ||||
|         } | ||||
|         showConfirm(cm, regInfo); | ||||
| @@ -5726,9 +5894,85 @@ | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     // multiselect support | ||||
|     function cloneVimState(state) { | ||||
|       var n = new state.constructor(); | ||||
|       Object.keys(state).forEach(function(key) { | ||||
|         var o = state[key]; | ||||
|         if (Array.isArray(o)) | ||||
|           o = o.slice(); | ||||
|         else if (o && typeof o == "object" && o.constructor != Object) | ||||
|           o = cloneVimState(o); | ||||
|         n[key] = o; | ||||
|       }); | ||||
|       if (state.sel) { | ||||
|         n.sel = { | ||||
|           head: state.sel.head && copyCursor(state.sel.head), | ||||
|           anchor: state.sel.anchor && copyCursor(state.sel.anchor) | ||||
|         }; | ||||
|       } | ||||
|       return n; | ||||
|     } | ||||
|     function multiSelectHandleKey(cm, key, origin) { | ||||
|       var isHandled = false; | ||||
|       var vim = vimApi.maybeInitVimState_(cm); | ||||
|       var visualBlock = vim.visualBlock || vim.wasInVisualBlock; | ||||
|  | ||||
|       var wasMultiselect = cm.isInMultiSelectMode(); | ||||
|       if (vim.wasInVisualBlock && !wasMultiselect) { | ||||
|         vim.wasInVisualBlock = false; | ||||
|       } else if (wasMultiselect && vim.visualBlock) { | ||||
|          vim.wasInVisualBlock = true; | ||||
|       } | ||||
|  | ||||
|       if (key == '<Esc>' && !vim.insertMode && !vim.visualMode && wasMultiselect && vim.status == "<Esc>") { | ||||
|         // allow editor to exit multiselect | ||||
|         clearInputState(cm); | ||||
|       } else if (visualBlock || !wasMultiselect || cm.inVirtualSelectionMode) { | ||||
|         isHandled = vimApi.handleKey(cm, key, origin); | ||||
|       } else { | ||||
|         var old = cloneVimState(vim); | ||||
|  | ||||
|         cm.operation(function() { | ||||
|           cm.curOp.isVimOp = true; | ||||
|           cm.forEachSelection(function() { | ||||
|             var head = cm.getCursor("head"); | ||||
|             var anchor = cm.getCursor("anchor"); | ||||
|             var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0; | ||||
|             var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0; | ||||
|             head = offsetCursor(head, 0, headOffset); | ||||
|             anchor = offsetCursor(anchor, 0, anchorOffset); | ||||
|             cm.state.vim.sel.head = head; | ||||
|             cm.state.vim.sel.anchor = anchor; | ||||
|  | ||||
|             isHandled = vimApi.handleKey(cm, key, origin); | ||||
|             if (cm.virtualSelection) { | ||||
|               cm.state.vim = cloneVimState(old); | ||||
|             } | ||||
|           }); | ||||
|           if (cm.curOp.cursorActivity && !isHandled) | ||||
|             cm.curOp.cursorActivity = false; | ||||
|           cm.state.vim = vim; | ||||
|         }, true); | ||||
|       } | ||||
|       // some commands may bring visualMode and selection out of sync | ||||
|       if (isHandled && !vim.visualMode && !vim.insert && vim.visualMode != cm.somethingSelected()) { | ||||
|         handleExternalSelection(cm, vim); | ||||
|       } | ||||
|       return isHandled; | ||||
|     } | ||||
|     resetVimGlobalState(); | ||||
|     return vimApi; | ||||
|   }; | ||||
|   // Initialize Vim and make it available as an API. | ||||
|   CodeMirror.Vim = Vim(); | ||||
| }); | ||||
|  | ||||
|   return vimApi; | ||||
| } | ||||
|  | ||||
| function initVim(CodeMirror5) { | ||||
|   CodeMirror5.Vim = initVim$1(CodeMirror5); | ||||
|   return CodeMirror5.Vim; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|     CodeMirror.Vim = initVim(CodeMirror); | ||||
|   }); | ||||
|    | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/apl/apl.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/apl/apl.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/asn.1/asn.1.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/asn.1/asn.1.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /* | ||||
|  * ===================================================================================== | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Brainfuck mode created by Michael Kaminsky https://github.com/mkaminsky11 | ||||
|  | ||||
|   | ||||
							
								
								
									
										11
									
								
								libraries/codemirror/mode/clike/clike.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								libraries/codemirror/mode/clike/clike.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -484,7 +484,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) { | ||||
|                     "instanceof interface native new package private protected public " + | ||||
|                     "return static strictfp super switch synchronized this throw throws transient " + | ||||
|                     "try volatile while @interface"), | ||||
|     types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " + | ||||
|     types: words("var byte short int long float double boolean char void Boolean Byte Character Double Float " + | ||||
|                  "Integer Long Number Object Short String StringBuffer StringBuilder Void"), | ||||
|     blockKeywords: words("catch class do else finally for if switch try while"), | ||||
|     defKeywords: words("class interface enum @interface"), | ||||
| @@ -498,6 +498,11 @@ CodeMirror.defineMode("clike", function(config, parserConfig) { | ||||
|  | ||||
|         stream.eatWhile(/[\w\$_]/); | ||||
|         return "meta"; | ||||
|       }, | ||||
|       '"': function(stream, state) { | ||||
|         if (!stream.match(/""$/)) return false; | ||||
|         state.tokenize = tokenTripleString; | ||||
|         return state.tokenize(stream, state); | ||||
|       } | ||||
|     }, | ||||
|     modeProps: {fold: ["brace", "import"]} | ||||
| @@ -659,7 +664,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) { | ||||
|       "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 actual expect setparam" | ||||
|       "external annotation crossinline const operator infix suspend actual expect setparam value" | ||||
|     ), | ||||
|     types: words( | ||||
|       /* package java.lang */ | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/clojure/clojure.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/clojure/clojure.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports === "object" && typeof module === "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/cmake/cmake.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/cmake/cmake.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/cobol/cobol.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/cobol/cobol.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /** | ||||
|  * Author: Gautam Mehta | ||||
| @@ -195,7 +195,7 @@ CodeMirror.defineMode("cobol", function () { | ||||
|       case "string": // multi-line string parsing mode | ||||
|         var next = false; | ||||
|         while ((next = stream.next()) != null) { | ||||
|           if (next == "\"" || next == "\'") { | ||||
|           if ((next == "\"" || next == "\'") && !stream.match(/['"]/, false)) { | ||||
|             state.mode = false; | ||||
|             break; | ||||
|           } | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /** | ||||
|  * Link to the project's GitHub page: | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -114,6 +114,7 @@ CodeMirror.defineMode("commonlisp", function (config) { | ||||
|  | ||||
|     closeBrackets: {pairs: "()[]{}\"\""}, | ||||
|     lineComment: ";;", | ||||
|     fold: "brace-paren", | ||||
|     blockCommentStart: "#|", | ||||
|     blockCommentEnd: "|#" | ||||
|   }; | ||||
|   | ||||
							
								
								
									
										6
									
								
								libraries/codemirror/mode/crystal/crystal.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								libraries/codemirror/mode/crystal/crystal.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -164,10 +164,10 @@ | ||||
|         } else { | ||||
|           if(delim = stream.match(/^%([^\w\s=])/)) { | ||||
|             delim = delim[1]; | ||||
|           } else if (stream.match(/^%[a-zA-Z0-9_\u009F-\uFFFF]*/)) { | ||||
|           } else if (stream.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/)) { | ||||
|             // Macro variables | ||||
|             return "meta"; | ||||
|           } else { | ||||
|           } else if (stream.eat('%')) { | ||||
|             // '%' operator | ||||
|             return "operator"; | ||||
|           } | ||||
|   | ||||
							
								
								
									
										66
									
								
								libraries/codemirror/mode/css/css.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								libraries/codemirror/mode/css/css.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -228,7 +228,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     if (type == "}" || type == "{") return popAndPass(type, stream, state); | ||||
|     if (type == "(") return pushContext(state, stream, "parens"); | ||||
|  | ||||
|     if (type == "hash" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) { | ||||
|     if (type == "hash" && !/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(stream.current())) { | ||||
|       override += " error"; | ||||
|     } else if (type == "word") { | ||||
|       wordAsValue(stream); | ||||
| @@ -443,13 +443,15 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "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", "prefers-color-scheme" | ||||
|     "pointer", "any-pointer", "hover", "any-hover", "prefers-color-scheme", | ||||
|     "dynamic-range", "video-dynamic-range" | ||||
|   ], mediaFeatures = keySet(mediaFeatures_); | ||||
|  | ||||
|   var mediaValueKeywords_ = [ | ||||
|     "landscape", "portrait", "none", "coarse", "fine", "on-demand", "hover", | ||||
|     "interlace", "progressive", | ||||
|     "dark", "light" | ||||
|     "dark", "light", | ||||
|     "standard", "high" | ||||
|   ], mediaValueKeywords = keySet(mediaValueKeywords_); | ||||
|  | ||||
|   var propertyKeywords_ = [ | ||||
| @@ -482,7 +484,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "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", | ||||
|     "drop-initial-value", "elevation", "empty-cells", "fit", "fit-content", "fit-position", | ||||
|     "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", | ||||
|     "flex-shrink", "flex-wrap", "float", "float-offset", "flow-from", "flow-into", | ||||
|     "font", "font-family", "font-feature-settings", "font-kerning", | ||||
| @@ -564,7 +566,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|   ], propertyKeywords = keySet(propertyKeywords_); | ||||
|  | ||||
|   var nonStandardPropertyKeywords_ = [ | ||||
|     "border-block", "border-block-color", "border-block-end", | ||||
|     "accent-color", "aspect-ratio", "border-block", "border-block-color", "border-block-end", | ||||
|     "border-block-end-color", "border-block-end-style", "border-block-end-width", | ||||
|     "border-block-start", "border-block-start-color", "border-block-start-style", | ||||
|     "border-block-start-width", "border-block-style", "border-block-width", | ||||
| @@ -572,9 +574,9 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "border-inline-end-color", "border-inline-end-style", | ||||
|     "border-inline-end-width", "border-inline-start", "border-inline-start-color", | ||||
|     "border-inline-start-style", "border-inline-start-width", | ||||
|     "border-inline-style", "border-inline-width", "margin-block", | ||||
|     "border-inline-style", "border-inline-width", "content-visibility", "margin-block", | ||||
|     "margin-block-end", "margin-block-start", "margin-inline", "margin-inline-end", | ||||
|     "margin-inline-start", "padding-block", "padding-block-end", | ||||
|     "margin-inline-start", "overflow-anchor", "overscroll-behavior", "padding-block", "padding-block-end", | ||||
|     "padding-block-start", "padding-inline", "padding-inline-end", | ||||
|     "padding-inline-start", "scroll-snap-stop", "scrollbar-3d-light-color", | ||||
|     "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color", | ||||
| @@ -598,16 +600,16 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", | ||||
|     "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", | ||||
|     "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", | ||||
|     "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen", | ||||
|     "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", | ||||
|     "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", | ||||
|     "darkslateblue", "darkslategray", "darkturquoise", "darkviolet", | ||||
|     "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick", | ||||
|     "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", | ||||
|     "deeppink", "deepskyblue", "dimgray", "dimgrey", "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", | ||||
|     "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", | ||||
|     "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", | ||||
|     "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", | ||||
|     "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", | ||||
|     "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", | ||||
| @@ -617,7 +619,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "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", | ||||
|     "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", | ||||
|     "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", | ||||
|     "whitesmoke", "yellow", "yellowgreen" | ||||
|   ], colorKeywords = keySet(colorKeywords_); | ||||
| @@ -628,21 +630,21 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", | ||||
|     "arabic-indic", "armenian", "asterisks", "attr", "auto", "auto-flow", "avoid", "avoid-column", "avoid-page", | ||||
|     "avoid-region", "axis-pan", "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", | ||||
|     "bengali", "blink", "block", "block-axis", "blur", "bold", "bolder", "border", "border-box", | ||||
|     "both", "bottom", "break", "break-all", "break-word", "brightness", "bullets", "button", | ||||
|     "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", | ||||
|     "compact", "condensed", "conic-gradient", "contain", "content", "contents", | ||||
|     "content-box", "context-menu", "continuous", "contrast", "copy", "counter", "counters", "cover", "crop", | ||||
|     "cross", "crosshair", "cubic-bezier", "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", | ||||
|     "dotted", "double", "down", "drop-shadow", "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", | ||||
| @@ -652,10 +654,10 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "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", "fill-box", "fixed", "flat", "flex", "flex-end", "flex-start", "footnotes", | ||||
|     "forwards", "from", "geometricPrecision", "georgian", "graytext", "grid", "groove", | ||||
|     "forwards", "from", "geometricPrecision", "georgian", "grayscale", "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", | ||||
|     "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "hue", "hue-rotate", "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", | ||||
| @@ -667,14 +669,10 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", | ||||
|     "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", | ||||
|     "lower-roman", "lowercase", "ltr", "luminosity", "malayalam", "manipulation", "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", | ||||
|     "media-play-button", "media-slider", "media-sliderthumb", | ||||
|     "media-volume-slider", "media-volume-sliderthumb", "medium", | ||||
|     "menu", "menulist", "menulist-button", | ||||
|     "menutext", "message-box", "middle", "min-intrinsic", | ||||
|     "mix", "mongolian", "monospace", "move", "multiple", "multiple_mask_images", "multiply", "myanmar", "n-resize", | ||||
|     "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", | ||||
|     "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", | ||||
| @@ -685,15 +683,15 @@ CodeMirror.defineMode("css", function(config, parserConfig) { | ||||
|     "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", | ||||
|     "relative", "repeat", "repeating-linear-gradient", "repeating-radial-gradient", | ||||
|     "repeating-conic-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", | ||||
|     "s-resize", "sans-serif", "saturate", "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", "self-start", "self-end", | ||||
|     "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", | ||||
|     "semi-condensed", "semi-expanded", "separate", "sepia", "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", | ||||
|   | ||||
							
								
								
									
										3
									
								
								libraries/codemirror/mode/cypher/cypher.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								libraries/codemirror/mode/cypher/cypher.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // By the Neo4j Team and contributors. | ||||
| // https://github.com/neo4j-contrib/CodeMirror | ||||
| @@ -19,6 +19,7 @@ | ||||
|  | ||||
|   CodeMirror.defineMode("cypher", function(config) { | ||||
|     var tokenBase = function(stream/*, state*/) { | ||||
|       curPunc = null | ||||
|       var ch = stream.next(); | ||||
|       if (ch ==='"') { | ||||
|         stream.match(/^[^"]*"/); | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/d/d.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/d/d.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/dart/dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/dart/dart.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/diff/diff.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/diff/diff.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/django/django.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/django/django.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/dtd/dtd.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/dtd/dtd.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /* | ||||
|   DTD mode | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/dylan/dylan.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/dylan/dylan.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/ebnf/ebnf.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/ebnf/ebnf.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/ecl/ecl.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/ecl/ecl.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/eiffel/eiffel.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/eiffel/eiffel.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/elm/elm.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/elm/elm.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: http://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: http://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -230,6 +230,8 @@ | ||||
|       startState: function ()  { return { f: normal() }; }, | ||||
|       copyState:  function (s) { return { f: s.f }; }, | ||||
|  | ||||
|       lineComment: '--', | ||||
|  | ||||
|       token: function(stream, state) { | ||||
|         var type = state.f(stream, function(s) { state.f = s; }); | ||||
|         var word = stream.current(); | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/erlang/erlang.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/erlang/erlang.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /*jshint unused:true, eqnull:true, curly:true, bitwise:true */ | ||||
| /*jshint undef:true, latedef:true, trailing:true */ | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/factor/factor.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/factor/factor.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Factor syntax highlight - simple mode | ||||
| // | ||||
| @@ -77,7 +77,7 @@ | ||||
|     // specific to simple modes. | ||||
|     meta: { | ||||
|       dontIndentStates: ["start", "vocabulary", "string", "string3", "stack"], | ||||
|       lineComment: [ "!", "#!" ] | ||||
|       lineComment: "!" | ||||
|     } | ||||
|   }); | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/fcl/fcl.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/fcl/fcl.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/forth/forth.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/forth/forth.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Author: Aliaksei Chapyzhenka | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/fortran/fortran.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/fortran/fortran.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -112,7 +112,7 @@ CodeMirror.defineMode("fortran", function() { | ||||
|                      "c_short", "c_signed_char", "c_size_t", "character", | ||||
|                      "complex", "double", "integer", "logical", "real"]); | ||||
|   var isOperatorChar = /[+\-*&=<>\/\:]/; | ||||
|   var litOperator = new RegExp("(\.and\.|\.or\.|\.eq\.|\.lt\.|\.le\.|\.gt\.|\.ge\.|\.ne\.|\.not\.|\.eqv\.|\.neqv\.)", "i"); | ||||
|   var litOperator = /^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i; | ||||
|  | ||||
|   function tokenBase(stream, state) { | ||||
|  | ||||
|   | ||||
							
								
								
									
										10
									
								
								libraries/codemirror/mode/gas/gas.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								libraries/codemirror/mode/gas/gas.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -144,18 +144,26 @@ CodeMirror.defineMode("gas", function(_config, parserConfig) { | ||||
|   function x86(_parserConfig) { | ||||
|     lineCommentStartSymbol = "#"; | ||||
|  | ||||
|     registers.al  = "variable"; | ||||
|     registers.ah  = "variable"; | ||||
|     registers.ax  = "variable"; | ||||
|     registers.eax = "variable-2"; | ||||
|     registers.rax = "variable-3"; | ||||
|  | ||||
|     registers.bl  = "variable"; | ||||
|     registers.bh  = "variable"; | ||||
|     registers.bx  = "variable"; | ||||
|     registers.ebx = "variable-2"; | ||||
|     registers.rbx = "variable-3"; | ||||
|  | ||||
|     registers.cl  = "variable"; | ||||
|     registers.ch  = "variable"; | ||||
|     registers.cx  = "variable"; | ||||
|     registers.ecx = "variable-2"; | ||||
|     registers.rcx = "variable-3"; | ||||
|  | ||||
|     registers.dl  = "variable"; | ||||
|     registers.dh  = "variable"; | ||||
|     registers.dx  = "variable"; | ||||
|     registers.edx = "variable-2"; | ||||
|     registers.rdx = "variable-3"; | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/gfm/gfm.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/gfm/gfm.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/gherkin/gherkin.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/gherkin/gherkin.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /* | ||||
| Gherkin mode - http://www.cukes.info/ | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/go/go.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/go/go.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -24,7 +24,7 @@ CodeMirror.defineMode("go", function(config) { | ||||
|     "float32":true, "float64":true, "int8":true, "int16":true, "int32":true, | ||||
|     "int64":true, "string":true, "uint8":true, "uint16":true, "uint32":true, | ||||
|     "uint64":true, "int":true, "uint":true, "uintptr":true, "error": true, | ||||
|     "rune":true | ||||
|     "rune":true, "any":true, "comparable":true | ||||
|   }; | ||||
|  | ||||
|   var atoms = { | ||||
|   | ||||
							
								
								
									
										22
									
								
								libraries/codemirror/mode/groovy/groovy.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								libraries/codemirror/mode/groovy/groovy.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -91,9 +91,14 @@ CodeMirror.defineMode("groovy", function(config) { | ||||
|           if (!tripleQuoted) { break; } | ||||
|           if (stream.match(quote + quote)) { end = true; break; } | ||||
|         } | ||||
|         if (quote == '"' && next == "$" && !escaped && stream.eat("{")) { | ||||
|           state.tokenize.push(tokenBaseUntilBrace()); | ||||
|           return "string"; | ||||
|         if (quote == '"' && next == "$" && !escaped) { | ||||
|           if (stream.eat("{")) { | ||||
|             state.tokenize.push(tokenBaseUntilBrace()); | ||||
|             return "string"; | ||||
|           } else if (stream.match(/^\w/, false)) { | ||||
|             state.tokenize.push(tokenVariableDeref); | ||||
|             return "string"; | ||||
|           } | ||||
|         } | ||||
|         escaped = !escaped && next == "\\"; | ||||
|       } | ||||
| @@ -122,6 +127,15 @@ CodeMirror.defineMode("groovy", function(config) { | ||||
|     return t; | ||||
|   } | ||||
|  | ||||
|   function tokenVariableDeref(stream, state) { | ||||
|     var next = stream.match(/^(\.|[\w\$_]+)/) | ||||
|     if (!next) { | ||||
|       state.tokenize.pop() | ||||
|       return state.tokenize[state.tokenize.length-1](stream, state) | ||||
|     } | ||||
|     return next[0] == "." ? null : "variable" | ||||
|   } | ||||
|  | ||||
|   function tokenComment(stream, state) { | ||||
|     var maybeEnd = false, ch; | ||||
|     while (ch = stream.next()) { | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/haml/haml.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/haml/haml.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function (mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/haskell/haskell.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/haskell/haskell.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/haxe/haxe.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/haxe/haxe.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -50,7 +50,7 @@ | ||||
|   } | ||||
|  | ||||
|   function getTagRegexp(tagName, anchored) { | ||||
|     return new RegExp((anchored ? "^" : "") + "<\/\s*" + tagName + "\s*>", "i"); | ||||
|     return new RegExp((anchored ? "^" : "") + "<\/\\s*" + tagName + "\\s*>", "i"); | ||||
|   } | ||||
|  | ||||
|   function addTags(from, to) { | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/http/http.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/http/http.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/idl/idl.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/idl/idl.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -16,6 +16,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|   var statementIndent = parserConfig.statementIndent; | ||||
|   var jsonldMode = parserConfig.jsonld; | ||||
|   var jsonMode = parserConfig.json || jsonldMode; | ||||
|   var trackScope = parserConfig.trackScope !== false | ||||
|   var isTS = parserConfig.typescript; | ||||
|   var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/; | ||||
|  | ||||
| @@ -231,6 +232,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|   } | ||||
|  | ||||
|   function inScope(state, varname) { | ||||
|     if (!trackScope) return false | ||||
|     for (var v = state.localVars; v; v = v.next) | ||||
|       if (v.name == varname) return true; | ||||
|     for (var cx = state.context; cx; cx = cx.prev) { | ||||
| @@ -277,6 +279,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|   function register(varname) { | ||||
|     var state = cx.state; | ||||
|     cx.marked = "def"; | ||||
|     if (!trackScope) return | ||||
|     if (state.context) { | ||||
|       if (state.lexical.info == "var" && state.context && state.context.block) { | ||||
|         // FIXME function decls are also not block scoped | ||||
| @@ -327,6 +330,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|     cx.state.context = new Context(cx.state.context, cx.state.localVars, true) | ||||
|     cx.state.localVars = null | ||||
|   } | ||||
|   pushcontext.lex = pushblockcontext.lex = true | ||||
|   function popcontext() { | ||||
|     cx.state.localVars = cx.state.context.vars | ||||
|     cx.state.context = cx.state.context.prev | ||||
| @@ -376,7 +380,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|       return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse); | ||||
|     } | ||||
|     if (type == "function") return cont(functiondef); | ||||
|     if (type == "for") return cont(pushlex("form"), forspec, statement, poplex); | ||||
|     if (type == "for") return cont(pushlex("form"), pushblockcontext, forspec, statement, popcontext, poplex); | ||||
|     if (type == "class" || (isTS && value == "interface")) { | ||||
|       cx.marked = "keyword" | ||||
|       return cont(pushlex("form", type == "class" ? type : value), className, poplex) | ||||
| @@ -479,7 +483,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|   function quasi(type, value) { | ||||
|     if (type != "quasi") return pass(); | ||||
|     if (value.slice(value.length - 2) != "${") return cont(quasi); | ||||
|     return cont(expression, continueQuasi); | ||||
|     return cont(maybeexpression, continueQuasi); | ||||
|   } | ||||
|   function continueQuasi(type) { | ||||
|     if (type == "}") { | ||||
| @@ -619,6 +623,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|     if (type == "{") return cont(pushlex("}"), typeprops, poplex, afterType) | ||||
|     if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType, afterType) | ||||
|     if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr) | ||||
|     if (type == "quasi") { return pass(quasiType, afterType); } | ||||
|   } | ||||
|   function maybeReturnType(type) { | ||||
|     if (type == "=>") return cont(typeexpr) | ||||
| @@ -644,6 +649,18 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|       return cont() | ||||
|     } | ||||
|   } | ||||
|   function quasiType(type, value) { | ||||
|     if (type != "quasi") return pass(); | ||||
|     if (value.slice(value.length - 2) != "${") return cont(quasiType); | ||||
|     return cont(typeexpr, continueQuasiType); | ||||
|   } | ||||
|   function continueQuasiType(type) { | ||||
|     if (type == "}") { | ||||
|       cx.marked = "string-2"; | ||||
|       cx.state.tokenize = tokenQuasi; | ||||
|       return cont(quasiType); | ||||
|     } | ||||
|   } | ||||
|   function typearg(type, value) { | ||||
|     if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg) | ||||
|     if (type == ":") return cont(typeexpr) | ||||
| @@ -783,6 +800,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|     if (value == "@") return cont(expression, classBody) | ||||
|   } | ||||
|   function classfield(type, value) { | ||||
|     if (value == "!") return cont(classfield) | ||||
|     if (value == "?") return cont(classfield) | ||||
|     if (type == ":") return cont(typeexpr, maybeAssign) | ||||
|     if (value == "=") return cont(expressionNoComma) | ||||
| @@ -883,7 +901,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|       if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) { | ||||
|         var c = state.cc[i]; | ||||
|         if (c == poplex) lexical = lexical.prev; | ||||
|         else if (c != maybeelse) break; | ||||
|         else if (c != maybeelse && c != popcontext) break; | ||||
|       } | ||||
|       while ((lexical.type == "stat" || lexical.type == "form") && | ||||
|              (firstChar == "}" || ((top = state.cc[state.cc.length - 1]) && | ||||
| @@ -920,8 +938,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) { | ||||
|     expressionAllowed: expressionAllowed, | ||||
|  | ||||
|     skipExpression: function(state) { | ||||
|       var top = state.cc[state.cc.length - 1] | ||||
|       if (top == expression || top == expressionNoComma) state.cc.pop() | ||||
|       parseJS(state, "atom", "atom", "true", new CodeMirror.StringStream("", 2, null)) | ||||
|     } | ||||
|   }; | ||||
| }); | ||||
|   | ||||
							
								
								
									
										71
									
								
								libraries/codemirror/mode/jinja2/jinja2.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								libraries/codemirror/mode/jinja2/jinja2.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -13,18 +13,18 @@ | ||||
|  | ||||
|   CodeMirror.defineMode("jinja2", function() { | ||||
|     var keywords = ["and", "as", "block", "endblock", "by", "cycle", "debug", "else", "elif", | ||||
|       "extends", "filter", "endfilter", "firstof", "for", | ||||
|       "extends", "filter", "endfilter", "firstof", "do", "for", | ||||
|       "endfor", "if", "endif", "ifchanged", "endifchanged", | ||||
|       "ifequal", "endifequal", "ifnotequal", | ||||
|       "ifequal", "endifequal", "ifnotequal", "set", "raw", "endraw", | ||||
|       "endifnotequal", "in", "include", "load", "not", "now", "or", | ||||
|       "parsed", "regroup", "reversed", "spaceless", | ||||
|       "endspaceless", "ssi", "templatetag", "openblock", | ||||
|       "closeblock", "openvariable", "closevariable", | ||||
|       "parsed", "regroup", "reversed", "spaceless", "call", "endcall", "macro", | ||||
|       "endmacro", "endspaceless", "ssi", "templatetag", "openblock", | ||||
|       "closeblock", "openvariable", "closevariable", "without", "context", | ||||
|       "openbrace", "closebrace", "opencomment", | ||||
|       "closecomment", "widthratio", "url", "with", "endwith", | ||||
|       "get_current_language", "trans", "endtrans", "noop", "blocktrans", | ||||
|       "endblocktrans", "get_available_languages", | ||||
|       "get_current_language_bidi", "plural"], | ||||
|       "get_current_language_bidi", "pluralize", "autoescape", "endautoescape"], | ||||
|     operator = /^[+\-*&%=<>!?|~^]/, | ||||
|     sign = /^[:\[\(\{]/, | ||||
|     atom = ["true", "false"], | ||||
| @@ -78,7 +78,24 @@ | ||||
|           state.instring = ch; | ||||
|           stream.next(); | ||||
|           return "string"; | ||||
|         } else if(stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) { | ||||
|         } | ||||
|         else if (state.inbraces > 0 && ch ==")") { | ||||
|           stream.next() | ||||
|           state.inbraces--; | ||||
|         } | ||||
|         else if (ch == "(") { | ||||
|           stream.next() | ||||
|           state.inbraces++; | ||||
|         } | ||||
|         else if (state.inbrackets > 0 && ch =="]") { | ||||
|           stream.next() | ||||
|           state.inbrackets--; | ||||
|         } | ||||
|         else if (ch == "[") { | ||||
|           stream.next() | ||||
|           state.inbrackets++; | ||||
|         } | ||||
|         else if (!state.lineTag && (stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}"))) { | ||||
|           state.intag = false; | ||||
|           return "tag"; | ||||
|         } else if(stream.match(operator)) { | ||||
| @@ -87,6 +104,10 @@ | ||||
|         } else if(stream.match(sign)) { | ||||
|           state.sign = true; | ||||
|         } else { | ||||
|           if (stream.column() == 1 && state.lineTag && stream.match(keywords)) { | ||||
|             //allow nospace after tag before the keyword | ||||
|             return "keyword"; | ||||
|           } | ||||
|           if(stream.eat(" ") || stream.sol()) { | ||||
|             if(stream.match(keywords)) { | ||||
|               return "keyword"; | ||||
| @@ -120,25 +141,51 @@ | ||||
|         } else if (ch = stream.eat(/\{|%/)) { | ||||
|           //Cache close tag | ||||
|           state.intag = ch; | ||||
|           state.inbraces = 0; | ||||
|           state.inbrackets = 0; | ||||
|           if(ch == "{") { | ||||
|             state.intag = "}"; | ||||
|           } | ||||
|           stream.eat("-"); | ||||
|           return "tag"; | ||||
|         } | ||||
|       //Line statements | ||||
|       } else if (stream.eat('#')) { | ||||
|         if (stream.peek() == '#') { | ||||
|           stream.skipToEnd(); | ||||
|           return "comment" | ||||
|         } | ||||
|         else if (!stream.eol()) { | ||||
|           state.intag = true; | ||||
|           state.lineTag = true; | ||||
|           state.inbraces = 0; | ||||
|           state.inbrackets = 0; | ||||
|           return "tag"; | ||||
|         } | ||||
|       } | ||||
|       stream.next(); | ||||
|     }; | ||||
|  | ||||
|     return { | ||||
|       startState: function () { | ||||
|         return {tokenize: tokenBase}; | ||||
|         return { | ||||
|           tokenize: tokenBase, | ||||
|           inbrackets:0, | ||||
|           inbraces:0 | ||||
|         }; | ||||
|       }, | ||||
|       token: function (stream, state) { | ||||
|         return state.tokenize(stream, state); | ||||
|       token: function(stream, state) { | ||||
|         var style = state.tokenize(stream, state); | ||||
|         if (stream.eol() && state.lineTag && !state.instring && state.inbraces == 0 && state.inbrackets == 0) { | ||||
|           //Close line statement at the EOL | ||||
|           state.intag = false | ||||
|           state.lineTag = false | ||||
|         } | ||||
|         return style; | ||||
|       }, | ||||
|       blockCommentStart: "{#", | ||||
|       blockCommentEnd: "#}" | ||||
|       blockCommentEnd: "#}", | ||||
|       lineComment: "##", | ||||
|     }; | ||||
|   }); | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/jsx/jsx.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/jsx/jsx.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -104,9 +104,9 @@ | ||||
|  | ||||
|     function jsToken(stream, state, cx) { | ||||
|       if (stream.peek() == "<" && jsMode.expressionAllowed(stream, cx.state)) { | ||||
|         jsMode.skipExpression(cx.state) | ||||
|         state.context = new Context(CodeMirror.startState(xmlMode, jsMode.indent(cx.state, "", "")), | ||||
|                                     xmlMode, 0, state.context) | ||||
|         jsMode.skipExpression(cx.state) | ||||
|         return null | ||||
|       } | ||||
|  | ||||
|   | ||||
							
								
								
									
										34
									
								
								libraries/codemirror/mode/julia/julia.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								libraries/codemirror/mode/julia/julia.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -12,9 +12,10 @@ | ||||
| "use strict"; | ||||
|  | ||||
| CodeMirror.defineMode("julia", function(config, parserConf) { | ||||
|   function wordRegexp(words, end) { | ||||
|   function wordRegexp(words, end, pre) { | ||||
|     if (typeof pre === "undefined") { pre = ""; } | ||||
|     if (typeof end === "undefined") { end = "\\b"; } | ||||
|     return new RegExp("^((" + words.join(")|(") + "))" + end); | ||||
|     return new RegExp("^" + pre + "((" + words.join(")|(") + "))" + end); | ||||
|   } | ||||
|  | ||||
|   var octChar = "\\\\[0-7]{1,3}"; | ||||
| @@ -22,13 +23,18 @@ CodeMirror.defineMode("julia", function(config, parserConf) { | ||||
|   var sChar = "\\\\[abefnrtv0%?'\"\\\\]"; | ||||
|   var uChar = "([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])"; | ||||
|  | ||||
|   var asciiOperatorsList = [ | ||||
|     "[<>]:", "[<>=]=", "<<=?", ">>>?=?", "=>", "--?>", "<--[->]?", "\\/\\/", | ||||
|     "\\.{2,3}", "[\\.\\\\%*+\\-<>!\\/^|&]=?", "\\?", "\\$", "~", ":" | ||||
|   ]; | ||||
|   var operators = parserConf.operators || wordRegexp([ | ||||
|         "[<>]:", "[<>=]=", "<<=?", ">>>?=?", "=>", "->", "\\/\\/", | ||||
|         "[\\\\%*+\\-<>!=\\/^|&\\u00F7\\u22BB]=?", "\\?", "\\$", "~", ":", | ||||
|         "\\u00D7", "\\u2208", "\\u2209", "\\u220B", "\\u220C", "\\u2218", | ||||
|         "\\u221A", "\\u221B", "\\u2229", "\\u222A", "\\u2260", "\\u2264", | ||||
|         "\\u2265", "\\u2286", "\\u2288", "\\u228A", "\\u22C5", | ||||
|         "\\b(in|isa)\\b(?!\.?\\()"], ""); | ||||
|     "[<>]:", "[<>=]=", "[!=]==", "<<=?", ">>>?=?", "=>?", "--?>", "<--[->]?", "\\/\\/", | ||||
|     "[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?", "\\?", "\\$", "~", ":", | ||||
|     "\\u00D7", "\\u2208", "\\u2209", "\\u220B", "\\u220C", "\\u2218", | ||||
|     "\\u221A", "\\u221B", "\\u2229", "\\u222A", "\\u2260", "\\u2264", | ||||
|     "\\u2265", "\\u2286", "\\u2288", "\\u228A", "\\u22C5", | ||||
|     "\\b(in|isa)\\b(?!\.?\\()" | ||||
|   ], ""); | ||||
|   var delimiters = parserConf.delimiters || /^[;,()[\]{}]/; | ||||
|   var identifiers = parserConf.identifiers || | ||||
|         /^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/; | ||||
| @@ -57,10 +63,13 @@ CodeMirror.defineMode("julia", function(config, parserConf) { | ||||
|   var keywords = wordRegexp(keywordsList); | ||||
|   var builtins = wordRegexp(builtinsList); | ||||
|  | ||||
|   var macro = /^@[_A-Za-z][\w]*/; | ||||
|   var macro = /^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/; | ||||
|   var symbol = /^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/; | ||||
|   var stringPrefixes = /^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/; | ||||
|  | ||||
|   var macroOperators = wordRegexp(asciiOperatorsList, "", "@"); | ||||
|   var symbolOperators = wordRegexp(asciiOperatorsList, "", ":"); | ||||
|  | ||||
|   function inArray(state) { | ||||
|     return (state.nestedArrays > 0); | ||||
|   } | ||||
| @@ -165,8 +174,7 @@ CodeMirror.defineMode("julia", function(config, parserConf) { | ||||
|     } | ||||
|  | ||||
|     // Handle symbols | ||||
|     if (!leavingExpr && stream.match(symbol) || | ||||
|         stream.match(/:([<>]:|<<=?|>>>?=?|->|\/\/|\.{2,3}|[\.\\%*+\-<>!\/^|&]=?|[~\?\$])/)) { | ||||
|     if (!leavingExpr && (stream.match(symbol) || stream.match(symbolOperators))) { | ||||
|       return "builtin"; | ||||
|     } | ||||
|  | ||||
| @@ -212,7 +220,7 @@ CodeMirror.defineMode("julia", function(config, parserConf) { | ||||
|       return state.tokenize(stream, state); | ||||
|     } | ||||
|  | ||||
|     if (stream.match(macro)) { | ||||
|     if (stream.match(macro) || stream.match(macroOperators)) { | ||||
|       return "meta"; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /** | ||||
|  * Link to the project's GitHub page: | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/lua/lua.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/lua/lua.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's | ||||
| // CodeMirror 1 mode. | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Mathematica mode copyright (c) 2015 by Calin Barbat | ||||
| // Based on code by Patrick Scheibe (halirutan) | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/mbox/mbox.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/mbox/mbox.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										10
									
								
								libraries/codemirror/mode/meta.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								libraries/codemirror/mode/meta.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -19,7 +19,7 @@ | ||||
|     {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]}, | ||||
|     {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h", "ino"]}, | ||||
|     {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]}, | ||||
|     {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]}, | ||||
|     {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy", "cbl"]}, | ||||
|     {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp", "cs"]}, | ||||
|     {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj", "cljc", "cljx"]}, | ||||
|     {name: "ClojureScript", mime: "text/x-clojurescript", mode: "clojure", ext: ["cljs"]}, | ||||
| @@ -44,7 +44,7 @@ | ||||
|     {name: "edn", mime: "application/edn", mode: "clojure", ext: ["edn"]}, | ||||
|     {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]}, | ||||
|     {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]}, | ||||
|     {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, | ||||
|     {name: "Embedded JavaScript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, | ||||
|     {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]}, | ||||
|     {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]}, | ||||
|     {name: "Esper", mime: "text/x-esper", mode: "sql"}, | ||||
| @@ -71,12 +71,12 @@ | ||||
|     {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, | ||||
|     {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, | ||||
|     {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript", "application/javascript;env=frontend", "application/javascript;env=backend"], | ||||
|       mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, | ||||
|      mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, | ||||
|     {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, | ||||
|     {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, | ||||
|     {name: "JSX", mime: "text/jsx", mode: "jsx", ext: ["jsx"]}, | ||||
|     {name: "Jinja2", mime: "text/jinja2", mode: "jinja2", ext: ["j2", "jinja", "jinja2"]}, | ||||
|     {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]}, | ||||
|     {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"], alias: ["jl"]}, | ||||
|     {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]}, | ||||
|     {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]}, | ||||
|     {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]}, | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/mirc/mirc.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/mirc/mirc.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| //mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/mllike/mllike.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/mllike/mllike.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -60,7 +60,7 @@ CodeMirror.defineMode('mllike', function(_config, parserConfig) { | ||||
|       } | ||||
|     } | ||||
|     if (ch === '(') { | ||||
|       if (stream.eat('*')) { | ||||
|       if (stream.match(/^\*(?!\))/)) { | ||||
|         state.commentLevel++; | ||||
|         state.tokenize = tokenComment; | ||||
|         return state.tokenize(stream, state); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Modelica support for CodeMirror, copyright (c) by Lennart Ochel | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/mscgen/mscgen.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/mscgen/mscgen.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // mode(s) for the sequence chart dsl's mscgen, xù and msgenny | ||||
| // For more information on mscgen, see the site of the original author: | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/mumps/mumps.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/mumps/mumps.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /* | ||||
|   This MUMPS Language script was constructed using vbscript.js as a template. | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/nginx/nginx.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/nginx/nginx.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										42
									
								
								libraries/codemirror/mode/nsis/nsis.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								libraries/codemirror/mode/nsis/nsis.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // Author: Jan T. Sott (http://github.com/idleberg) | ||||
|  | ||||
| @@ -24,42 +24,42 @@ CodeMirror.defineSimpleMode("nsis",{ | ||||
|     { regex: /`(?:[^\\`]|\\.)*`?/, token: "string" }, | ||||
|  | ||||
|     // Compile Time Commands | ||||
|     {regex: /^\s*(?:\!(include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|pragma|finalize|getdllversion|gettlbversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace))\b/, token: "keyword"}, | ||||
|     {regex: /^\s*(?:\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i, token: "keyword"}, | ||||
|  | ||||
|     // Conditional Compilation | ||||
|     {regex: /^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/, token: "keyword", indent: true}, | ||||
|     {regex: /^\s*(?:\!(else|endif|macroend))\b/, token: "keyword", dedent: true}, | ||||
|     {regex: /^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i, token: "keyword", indent: true}, | ||||
|     {regex: /^\s*(?:\!(else|endif|macroend))\b/i, token: "keyword", dedent: true}, | ||||
|  | ||||
|     // Runtime Commands | ||||
|     {regex: /^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/, token: "keyword"}, | ||||
|     {regex: /^\s*(?:Function|PageEx|Section(?:Group)?)\b/, token: "keyword", indent: true}, | ||||
|     {regex: /^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/, token: "keyword", dedent: true}, | ||||
|     {regex: /^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|GetWinVer|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Target|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/i, token: "keyword"}, | ||||
|     {regex: /^\s*(?:Function|PageEx|Section(?:Group)?)\b/i, token: "keyword", indent: true}, | ||||
|     {regex: /^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/i, token: "keyword", dedent: true}, | ||||
|  | ||||
|     // Command Options | ||||
|     {regex: /\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/, token: "atom"}, | ||||
|     {regex: /\b(?:admin|all|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|zlib)\b/, token: "builtin"}, | ||||
|     {regex: /\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/i, token: "atom"}, | ||||
|     {regex: /\b(?:admin|all|amd64-unicode|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|x-86-(ansi|unicode)|zlib)\b/i, token: "builtin"}, | ||||
|  | ||||
|     // LogicLib.nsh | ||||
|     {regex: /\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/, token: "variable-2", indent: true}, | ||||
|     {regex: /\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:2|3|4|5|Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/i, token: "variable-2", indent: true}, | ||||
|  | ||||
|     // FileFunc.nsh | ||||
|     {regex: /\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/, token: "variable-2", dedent: true}, | ||||
|     {regex: /\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/i, token: "variable-2", dedent: true}, | ||||
|  | ||||
|     // Memento.nsh | ||||
|     {regex: /\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/, token: "variable-2", dedent: true}, | ||||
|     {regex: /\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/i, token: "variable-2", dedent: true}, | ||||
|  | ||||
|     // TextFunc.nsh | ||||
|     {regex: /\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/, token: "variable-2", dedent: true}, | ||||
|     {regex: /\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/i, token: "variable-2", dedent: true}, | ||||
|  | ||||
|     // WinVer.nsh | ||||
|     {regex: /\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/, token: "variable", dedent: true}, | ||||
|     {regex: /\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/i, token: "variable", dedent: true}, | ||||
|  | ||||
|     // WordFunc.nsh | ||||
|     {regex: /\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/, token: "variable-2", dedent: true}, | ||||
|     {regex: /\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/i, token: "variable-2", dedent: true}, | ||||
|  | ||||
|     // x64.nsh | ||||
|     {regex: /\$\{(?:RunningX64)\}/, token: "variable", dedent: true}, | ||||
|     {regex: /\$\{(?:Disable|Enable)X64FSRedirection\}/, token: "variable-2", dedent: true}, | ||||
|     {regex: /\$\{(?:RunningX64)\}/i, token: "variable", dedent: true}, | ||||
|     {regex: /\$\{(?:Disable|Enable)X64FSRedirection\}/i, token: "variable-2", dedent: true}, | ||||
|  | ||||
|     // Line Comment | ||||
|     {regex: /(#|;).*/, token: "comment"}, | ||||
| @@ -71,20 +71,20 @@ CodeMirror.defineSimpleMode("nsis",{ | ||||
|     {regex: /[-+\/*=<>!]+/, token: "operator"}, | ||||
|  | ||||
|     // Variable | ||||
|     {regex: /\$\w+/, token: "variable"}, | ||||
|     {regex: /\$\w[\w\.]*/, token: "variable"}, | ||||
|  | ||||
|     // Constant | ||||
|     {regex: /\${[\w\.:-]+}/, token: "variable-2"}, | ||||
|     {regex: /\${[\!\w\.:-]+}/, token: "variable-2"}, | ||||
|  | ||||
|     // Language String | ||||
|     {regex: /\$\([\w\.:-]+\)/, token: "variable-3"} | ||||
|     {regex: /\$\([\!\w\.:-]+\)/, token: "variable-3"} | ||||
|   ], | ||||
|   comment: [ | ||||
|     {regex: /.*?\*\//, token: "comment", next: "start"}, | ||||
|     {regex: /.*/, token: "comment"} | ||||
|   ], | ||||
|   meta: { | ||||
|     electricInput: /^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/, | ||||
|     electricInput: /^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/i, | ||||
|     blockCommentStart: "/*", | ||||
|     blockCommentEnd: "*/", | ||||
|     lineComment: ["#", ";"] | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /********************************************************** | ||||
| * This script provides syntax highlighting support for | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/octave/octave.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/octave/octave.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/oz/oz.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/oz/oz.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/pascal/pascal.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/pascal/pascal.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/pegjs/pegjs.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/pegjs/pegjs.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										7
									
								
								libraries/codemirror/mode/perl/perl.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								libraries/codemirror/mode/perl/perl.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| // CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08) | ||||
| // This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com) | ||||
| @@ -513,9 +513,8 @@ CodeMirror.defineMode("perl",function(){ | ||||
|                         return null; | ||||
|                 if(state.chain) | ||||
|                         return tokenChain(stream,state,state.chain,state.style,state.tail); | ||||
|                 if(stream.match(/^\-?[\d\.]/,false)) | ||||
|                         if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/)) | ||||
|                                 return 'number'; | ||||
|                 if(stream.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/)) | ||||
|                         return 'number'; | ||||
|                 if(stream.match(/^<<(?=[_a-zA-Z])/)){                  // NOTE: <<SOMETHING\n...\nSOMETHING\n | ||||
|                         stream.eatWhile(/\w/); | ||||
|                         return tokenSOMETHING(stream,state,stream.current().substr(2));} | ||||
|   | ||||
							
								
								
									
										10
									
								
								libraries/codemirror/mode/php/php.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								libraries/codemirror/mode/php/php.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								libraries/codemirror/mode/pig/pig.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/pig/pig.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| /* | ||||
|  *      Pig Latin Mode for CodeMirror 2 | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   'use strict'; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/pug/pug.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/pug/pug.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/puppet/puppet.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/puppet/puppet.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										27
									
								
								libraries/codemirror/mode/python/python.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								libraries/codemirror/mode/python/python.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -32,7 +32,7 @@ | ||||
|                         "sorted", "staticmethod", "str", "sum", "super", "tuple", | ||||
|                         "type", "vars", "zip", "__import__", "NotImplemented", | ||||
|                         "Ellipsis", "__debug__"]; | ||||
|   CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins)); | ||||
|   CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins).concat(["exec", "print"])); | ||||
|  | ||||
|   function top(state) { | ||||
|     return state.scopes[state.scopes.length - 1]; | ||||
| @@ -62,7 +62,7 @@ | ||||
|       var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/; | ||||
|       myKeywords = myKeywords.concat(["nonlocal", "False", "True", "None", "async", "await"]); | ||||
|       myBuiltins = myBuiltins.concat(["ascii", "bytes", "exec", "print"]); | ||||
|       var stringPrefixes = new RegExp("^(([rbuf]|(br)|(fr))?('{3}|\"{3}|['\"]))", "i"); | ||||
|       var stringPrefixes = new RegExp("^(([rbuf]|(br)|(rb)|(fr)|(rf))?('{3}|\"{3}|['\"]))", "i"); | ||||
|     } else { | ||||
|       var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/; | ||||
|       myKeywords = myKeywords.concat(["exec", "print"]); | ||||
| @@ -298,7 +298,10 @@ | ||||
|     } | ||||
|  | ||||
|     function tokenLexer(stream, state) { | ||||
|       if (stream.sol()) state.beginningOfLine = true; | ||||
|       if (stream.sol()) { | ||||
|         state.beginningOfLine = true; | ||||
|         state.dedent = false; | ||||
|       } | ||||
|  | ||||
|       var style = state.tokenize(stream, state); | ||||
|       var current = stream.current(); | ||||
| @@ -315,10 +318,10 @@ | ||||
|  | ||||
|       // Handle scope changes. | ||||
|       if (current == "pass" || current == "return") | ||||
|         state.dedent += 1; | ||||
|         state.dedent = true; | ||||
|  | ||||
|       if (current == "lambda") state.lambda = true; | ||||
|       if (current == ":" && !state.lambda && top(state).type == "py") | ||||
|       if (current == ":" && !state.lambda && top(state).type == "py" && stream.match(/^\s*(?:#|$)/, false)) | ||||
|         pushPyScope(state); | ||||
|  | ||||
|       if (current.length == 1 && !/string|comment/.test(style)) { | ||||
| @@ -332,10 +335,8 @@ | ||||
|           else return ERRORCLASS; | ||||
|         } | ||||
|       } | ||||
|       if (state.dedent > 0 && stream.eol() && top(state).type == "py") { | ||||
|         if (state.scopes.length > 1) state.scopes.pop(); | ||||
|         state.dedent -= 1; | ||||
|       } | ||||
|       if (state.dedent && stream.eol() && top(state).type == "py" && state.scopes.length > 1) | ||||
|         state.scopes.pop(); | ||||
|  | ||||
|       return style; | ||||
|     } | ||||
| @@ -370,14 +371,16 @@ | ||||
|         if (state.tokenize != tokenBase) | ||||
|           return state.tokenize.isString ? CodeMirror.Pass : 0; | ||||
|  | ||||
|         var scope = top(state), closing = scope.type == textAfter.charAt(0) | ||||
|         var scope = top(state) | ||||
|         var closing = scope.type == textAfter.charAt(0) || | ||||
|             scope.type == "py" && !state.dedent && /^(else:|elif |except |finally:)/.test(textAfter) | ||||
|         if (scope.align != null) | ||||
|           return scope.align - (closing ? 1 : 0) | ||||
|         else | ||||
|           return scope.offset - (closing ? hangingIndent : 0) | ||||
|       }, | ||||
|  | ||||
|       electricInput: /^\s*[\}\]\)]$/, | ||||
|       electricInput: /^\s*([\}\]\)]|else:|elif |except |finally:)$/, | ||||
|       closeBrackets: {triples: "'\""}, | ||||
|       lineComment: "#", | ||||
|       fold: "indent" | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/q/q.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/q/q.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										6
									
								
								libraries/codemirror/mode/r/r.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								libraries/codemirror/mode/r/r.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -54,9 +54,9 @@ CodeMirror.defineMode("r", function(config) { | ||||
|     } else if (ch == "`") { | ||||
|       stream.match(/[^`]+`/); | ||||
|       return "variable-3"; | ||||
|     } else if (ch == "." && stream.match(/.[.\d]+/)) { | ||||
|     } else if (ch == "." && stream.match(/.(?:[.]|\d+)/)) { | ||||
|       return "keyword"; | ||||
|     } else if (/[\w\.]/.test(ch) && ch != "_") { | ||||
|     } else if (/[a-zA-Z\.]/.test(ch)) { | ||||
|       stream.eatWhile(/[\w\.]/); | ||||
|       var word = stream.current(); | ||||
|       if (atoms.propertyIsEnumerable(word)) return "atom"; | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/rpm/rpm.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/rpm/rpm.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/rst/rst.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/rst/rst.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										4
									
								
								libraries/codemirror/mode/ruby/ruby.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								libraries/codemirror/mode/ruby/ruby.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
| @@ -26,7 +26,7 @@ var keywordList = [ | ||||
|   "require_relative", "extend", "autoload", "__END__", "__FILE__", "__LINE__", "__dir__" | ||||
| ], keywords = wordObj(keywordList); | ||||
|  | ||||
| var indentWords = wordObj(["def", "class", "case", "for", "while", "until", "module", "then", | ||||
| var indentWords = wordObj(["def", "class", "case", "for", "while", "until", "module", | ||||
|                            "catch", "loop", "proc", "begin"]); | ||||
| var dedentWords = wordObj(["end", "until"]); | ||||
| var opening = {"[": "]", "{": "}", "(": ")"}; | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/rust/rust.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/rust/rust.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
| (function(mod) { | ||||
|   if (typeof exports == "object" && typeof module == "object") // CommonJS | ||||
|   | ||||
							
								
								
									
										2
									
								
								libraries/codemirror/mode/sas/sas.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								libraries/codemirror/mode/sas/sas.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| // CodeMirror, copyright (c) by Marijn Haverbeke and others | ||||
| // Distributed under an MIT license: https://codemirror.net/LICENSE | ||||
| // Distributed under an MIT license: https://codemirror.net/5/LICENSE | ||||
|  | ||||
|  | ||||
| // SAS mode copyright (c) 2016 Jared Dean, SAS Institute | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user