comparison .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
comparison
equal deleted inserted replaced
-1:000000000000 0:78edf6b517a0
1 // EDITOR CONSTRUCTOR
2
3 import { CodeMirror } from "./CodeMirror.js"
4 export { CodeMirror } from "./CodeMirror.js"
5
6 import { eventMixin } from "../util/event.js"
7 import { indexOf } from "../util/misc.js"
8
9 import { defineOptions } from "./options.js"
10
11 defineOptions(CodeMirror)
12
13 import addEditorMethods from "./methods.js"
14
15 addEditorMethods(CodeMirror)
16
17 import Doc from "../model/Doc.js"
18
19 // Set up methods on CodeMirror's prototype to redirect to the editor's document.
20 let dontDelegate = "iter insert remove copy getEditor constructor".split(" ")
21 for (let prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
22 CodeMirror.prototype[prop] = (function(method) {
23 return function() {return method.apply(this.doc, arguments)}
24 })(Doc.prototype[prop])
25
26 eventMixin(Doc)
27
28 // INPUT HANDLING
29
30 import ContentEditableInput from "../input/ContentEditableInput.js"
31 import TextareaInput from "../input/TextareaInput.js"
32 CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}
33
34 // MODE DEFINITION AND QUERYING
35
36 import { defineMIME, defineMode } from "../modes.js"
37
38 // Extra arguments are stored as the mode's dependencies, which is
39 // used by (legacy) mechanisms like loadmode.js to automatically
40 // load a mode. (Preferred mechanism is the require/define calls.)
41 CodeMirror.defineMode = function(name/*, mode, …*/) {
42 if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name
43 defineMode.apply(this, arguments)
44 }
45
46 CodeMirror.defineMIME = defineMIME
47
48 // Minimal default mode.
49 CodeMirror.defineMode("null", () => ({token: stream => stream.skipToEnd()}))
50 CodeMirror.defineMIME("text/plain", "null")
51
52 // EXTENSIONS
53
54 CodeMirror.defineExtension = (name, func) => {
55 CodeMirror.prototype[name] = func
56 }
57 CodeMirror.defineDocExtension = (name, func) => {
58 Doc.prototype[name] = func
59 }
60
61 import { fromTextArea } from "./fromTextArea.js"
62
63 CodeMirror.fromTextArea = fromTextArea
64
65 import { addLegacyProps } from "./legacy.js"
66
67 addLegacyProps(CodeMirror)
68
69 CodeMirror.version = "5.65.18"