annotate .cms/lib/codemirror/doc/upgrade_v3.html @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 <!doctype html>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3 <title>CodeMirror: Version 3 upgrade guide</title>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 <meta charset="utf-8"/>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 <link rel=stylesheet href="docs.css">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 <script src="../lib/codemirror.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 <link rel="stylesheet" href="../lib/codemirror.css">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 <script src="../addon/runmode/runmode.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 <script src="../addon/runmode/colorize.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 <script src="../mode/javascript/javascript.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 <script src="../mode/xml/xml.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 <script src="../mode/css/css.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 <script src="../mode/htmlmixed/htmlmixed.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 <script src="activebookmark.js"></script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 <div id=nav>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 <a href="https://codemirror.net/5"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 <li><a href="../index.html">Home</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 <li><a href="manual.html">Manual</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 <li><a href="https://github.com/codemirror/codemirror5">Code</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 <li><a class=active href="#upgrade">Upgrade guide</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 <li><a href="#dom">DOM structure</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 <li><a href="#gutters">Gutter model</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 <li><a href="#events">Event handling</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 <li><a href="#marktext">markText method arguments</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 <li><a href="#folding">Line folding</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 <li><a href="#lineclass">Line CSS classes</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 <li><a href="#positions">Position properties</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 <li><a href="#matchbrackets">Bracket matching</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 <li><a href="#modes">Mode management</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 <li><a href="#new">New features</a></li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 <article>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 <h2 id=upgrade>Upgrading to version 3</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 <p>Version 3 does not depart too much from 2.x API, and sites that use
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 CodeMirror in a very simple way might be able to upgrade without
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 trouble. But it does introduce a number of incompatibilities. Please
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 at least skim this text before upgrading.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 <p>Note that <strong>version 3 drops full support for Internet
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 Explorer 7</strong>. The editor will mostly work on that browser, but
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 it'll be significantly glitchy.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 <section id=dom>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 <h2>DOM structure</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 <p>This one is the most likely to cause problems. The internal
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 structure of the editor has changed quite a lot, mostly to implement a
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 new scrolling model.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 <p>Editor height is now set on the outer wrapper element (CSS
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 class <code>CodeMirror</code>), not on the scroller element
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 (<code>CodeMirror-scroll</code>).</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 <p>Other nodes were moved, dropped, and added. If you have any code
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 that makes assumptions about the internal DOM structure of the editor,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 you'll have to re-test it and probably update it to work with v3.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 <p>See the <a href="manual.html#styling">styling section</a> of the
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 manual for more information.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 <section id=gutters>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 <h2>Gutter model</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 <p>In CodeMirror 2.x, there was a single gutter, and line markers
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 created with <code>setMarker</code> would have to somehow coexist with
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 the line numbers (if present). Version 3 allows you to specify an
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 array of gutters, <a href="manual.html#option_gutters">by class
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 name</a>,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 use <a href="manual.html#setGutterMarker"><code>setGutterMarker</code></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 to add or remove markers in individual gutters, and clear whole
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 gutters
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 with <a href="manual.html#clearGutter"><code>clearGutter</code></a>.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 Gutter markers are now specified as DOM nodes, rather than HTML
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 snippets.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 <p>The gutters no longer horizontally scrolls along with the content.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 The <code>fixedGutter</code> option was removed (since it is now the
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 only behavior).</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 <pre data-lang="text/html">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 &lt;style>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 /* Define a gutter style */
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 .note-gutter { width: 3em; background: cyan; }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 &lt;/style>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 &lt;script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 // Create an instance with two gutters -- line numbers and notes
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 var cm = new CodeMirror(document.body, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 gutters: ["note-gutter", "CodeMirror-linenumbers"],
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 lineNumbers: true
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 // Add a note to line 0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 cm.setGutterMarker(0, "note-gutter", document.createTextNode("hi"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 &lt;/script>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 </pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 <section id=events>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 <h2>Event handling</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 <p>Most of the <code>onXYZ</code> options have been removed. The same
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 effect is now obtained by calling
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 the <a href="manual.html#on"><code>on</code></a> method with a string
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 identifying the event type. Multiple handlers can now be registered
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 (and individually unregistered) for an event, and objects such as line
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 handlers now also expose events. See <a href="manual.html#events">the
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 full list here</a>.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 <p>(The <code>onKeyEvent</code> and <code>onDragEvent</code> options,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 which act more as hooks than as event handlers, are still there in
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 their old form.)</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 <pre data-lang="javascript">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 cm.on("change", function(cm, change) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 console.log("something changed! (" + change.origin + ")");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 </pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 <section id=marktext>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 <h2>markText method arguments</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 <p>The <a href="manual.html#markText"><code>markText</code></a> method
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 (which has gained some interesting new features, such as creating
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 atomic and read-only spans, or replacing spans with widgets) no longer
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132 takes the CSS class name as a separate argument, but makes it an
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 optional field in the options object instead.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 <pre data-lang="javascript">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 // Style first ten lines, and forbid the cursor from entering them
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 cm.markText({line: 0, ch: 0}, {line: 10, ch: 0}, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 className: "magic-text",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 inclusiveLeft: true,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140 atomic: true
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 </pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 <section id=folding>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 <h2>Line folding</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 <p>The interface for hiding lines has been
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 removed. <a href="manual.html#markText"><code>markText</code></a> can
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 now be used to do the same in a more flexible and powerful way.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 <p>The <a href="../demo/folding.html">folding script</a> has been
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 updated to use the new interface, and should now be more robust.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 <pre data-lang="javascript">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 // Fold a range, replacing it with the text "??"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 var range = cm.markText({line: 4, ch: 2}, {line: 8, ch: 1}, {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157 replacedWith: document.createTextNode("??"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 // Auto-unfold when cursor moves into the range
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 clearOnEnter: true
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 // Get notified when auto-unfolding
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 CodeMirror.on(range, "clear", function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 console.log("boom");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 </pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 <section id=lineclass>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 <h2>Line CSS classes</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 <p>The <code>setLineClass</code> method has been replaced
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 by <a href="manual.html#addLineClass"><code>addLineClass</code></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 and <a href="manual.html#removeLineClass"><code>removeLineClass</code></a>,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 which allow more modular control over the classes attached to a line.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 <pre data-lang="javascript">
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176 var marked = cm.addLineClass(10, "background", "highlighted-line");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 setTimeout(function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 cm.removeLineClass(marked, "background", "highlighted-line");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 </pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 <section id=positions>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 <h2>Position properties</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 <p>All methods that take or return objects that represent screen
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 positions now use <code>{left, top, bottom, right}</code> properties
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 (not always all of them) instead of the <code>{x, y, yBot}</code> used
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 by some methods in v2.x.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 <p>Affected methods
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 are <a href="manual.html#cursorCoords"><code>cursorCoords</code></a>, <a href="manual.html#charCoords"><code>charCoords</code></a>, <a href="manual.html#coordsChar"><code>coordsChar</code></a>,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 and <a href="manual.html#getScrollInfo"><code>getScrollInfo</code></a>.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 <section id=matchbrackets>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 <h2>Bracket matching no longer in core</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197 <p>The <a href="manual.html#addon_matchbrackets"><code>matchBrackets</code></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 option is no longer defined in the core editor.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199 Load <code>addon/edit/matchbrackets.js</code> to enable it.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 <section id=modes>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 <h2>Mode management</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 <p>The <code>CodeMirror.listModes</code>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 and <code>CodeMirror.listMIMEs</code> functions, used for listing
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 defined modes, are gone. You are now encouraged to simply
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207 inspect <code>CodeMirror.modes</code> (mapping mode names to mode
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 constructors) and <code>CodeMirror.mimeModes</code> (mapping MIME
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 strings to mode specs).</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 <section id=new>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212 <h2>New features</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 <p>Some more reasons to upgrade to version 3.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 <li>Bi-directional text support. CodeMirror will now mostly do the
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218 right thing when editing Arabic or Hebrew text.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 <li>Arbitrary line heights. Using fonts with different heights
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 inside the editor (whether off by one pixel or fifty) is now
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221 supported and handled gracefully.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 <li>In-line widgets. See <a href="../demo/widget.html">the demo</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 and <a href="manual.html#addLineWidget">the docs</a>.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 <li>Defining custom options
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 with <a href="manual.html#defineOption"><code>CodeMirror.defineOption</code></a>.</li>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 </section>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 </article>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230 <script>setTimeout(function(){CodeMirror.colorize();}, 20);</script>