diff .cms/lib/codemirror/src/edit/main.js @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.cms/lib/codemirror/src/edit/main.js	Fri Oct 11 22:40:23 2024 +0000
@@ -0,0 +1,69 @@
+// EDITOR CONSTRUCTOR
+
+import { CodeMirror } from "./CodeMirror.js"
+export { CodeMirror } from "./CodeMirror.js"
+
+import { eventMixin } from "../util/event.js"
+import { indexOf } from "../util/misc.js"
+
+import { defineOptions } from "./options.js"
+
+defineOptions(CodeMirror)
+
+import addEditorMethods from "./methods.js"
+
+addEditorMethods(CodeMirror)
+
+import Doc from "../model/Doc.js"
+
+// Set up methods on CodeMirror's prototype to redirect to the editor's document.
+let dontDelegate = "iter insert remove copy getEditor constructor".split(" ")
+for (let prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
+  CodeMirror.prototype[prop] = (function(method) {
+    return function() {return method.apply(this.doc, arguments)}
+  })(Doc.prototype[prop])
+
+eventMixin(Doc)
+
+// INPUT HANDLING
+
+import ContentEditableInput from "../input/ContentEditableInput.js"
+import TextareaInput from "../input/TextareaInput.js"
+CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}
+
+// MODE DEFINITION AND QUERYING
+
+import { defineMIME, defineMode } from "../modes.js"
+
+// Extra arguments are stored as the mode's dependencies, which is
+// used by (legacy) mechanisms like loadmode.js to automatically
+// load a mode. (Preferred mechanism is the require/define calls.)
+CodeMirror.defineMode = function(name/*, mode, …*/) {
+  if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name
+  defineMode.apply(this, arguments)
+}
+
+CodeMirror.defineMIME = defineMIME
+
+// Minimal default mode.
+CodeMirror.defineMode("null", () => ({token: stream => stream.skipToEnd()}))
+CodeMirror.defineMIME("text/plain", "null")
+
+// EXTENSIONS
+
+CodeMirror.defineExtension = (name, func) => {
+  CodeMirror.prototype[name] = func
+}
+CodeMirror.defineDocExtension = (name, func) => {
+  Doc.prototype[name] = func
+}
+
+import { fromTextArea } from "./fromTextArea.js"
+
+CodeMirror.fromTextArea = fromTextArea
+
+import { addLegacyProps } from "./legacy.js"
+
+addLegacyProps(CodeMirror)
+
+CodeMirror.version = "5.65.18"