annotate .cms/lib/codemirror/doc/upgrade_v2.2.html @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
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 2.2 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
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 <div id=nav>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 <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
9
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 <li><a href="../index.html">Home</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 <li><a href="manual.html">Manual</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 <li><a href="https://github.com/codemirror/codemirror5">Code</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 <ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 <li><a class=active href="#">2.2 upgrade guide</a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 </ul>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 </div>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 <article>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 <h2>Upgrading to v2.2</h2>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 <p>There are a few things in the 2.2 release that require some care
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 when upgrading.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 <h3>No more default.css</h3>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 <p>The default theme is now included
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 in <a href="../lib/codemirror.css"><code>codemirror.css</code></a>, so
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 you do not have to included it separately anymore. (It was tiny, so
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 even if you're not using it, the extra data overhead is negligible.)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 <h3>Different key customization</h3>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 <p>CodeMirror has moved to a system
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 where <a href="manual.html#option_keyMap">keymaps</a> are used to
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 bind behavior to keys. This means <a href="../demo/emacs.html">custom
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 bindings</a> are now possible.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 <p>Three options that influenced key
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 behavior, <code>tabMode</code>, <code>enterMode</code>,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 and <code>smartHome</code>, are no longer supported. Instead, you can
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 provide custom bindings to influence the way these keys act. This is
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 done through the
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 new <a href="manual.html#option_extraKeys"><code>extraKeys</code></a>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 option, which can hold an object mapping key names to functionality. A
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 simple example would be:</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 <pre> extraKeys: {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 "Ctrl-S": function(instance) { saveText(instance.getValue()); },
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 "Ctrl-/": "undo"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 }</pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 <p>Keys can be mapped either to functions, which will be given the
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 editor instance as argument, or to strings, which are mapped through
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 functions through the <code>CodeMirror.commands</code> table, which
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 contains all the built-in editing commands, and can be inspected and
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 extended by external code.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 <p>By default, the <code>Home</code> key is bound to
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 the <code>"goLineStartSmart"</code> command, which moves the cursor to
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 the first non-whitespace character on the line. You can set do this to
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 make it always go to the very start instead:</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 <pre> extraKeys: {"Home": "goLineStart"}</pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 <p>Similarly, <code>Enter</code> is bound
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 to <code>"newlineAndIndent"</code> by default. You can bind it to
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 something else to get different behavior. To disable special handling
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 completely and only get a newline character inserted, you can bind it
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 to <code>false</code>:</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 <pre> extraKeys: {"Enter": false}</pre>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 <p>The same works for <code>Tab</code>. If you don't want CodeMirror
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 to handle it, bind it to <code>false</code>. The default behaviour is
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 to indent the current line more (<code>"indentMore"</code> command),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 and indent it less when shift is held (<code>"indentLess"</code>).
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 There are also <code>"indentAuto"</code> (smart indent)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 and <code>"insertTab"</code> commands provided for alternate
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 behavior. Or you can write your own handler function to do something
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 different altogether.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 <h3>Tabs</h3>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 <p>Handling of tabs changed completely. The display width of tabs can
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 now be set with the <code>tabSize</code> option, and tabs can
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 be <a href="../demo/visibletabs.html">styled</a> by setting CSS rules
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 for the <code>cm-tab</code> class.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 <p>The default width for tabs is now 4, as opposed to the 8 that is
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 hard-wired into browsers. If you are relying on 8-space tabs, make
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 sure you explicitly set <code>tabSize: 8</code> in your options.</p>
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 </article>