@jupyterlab/codemirror 4.0.0-alpha.2 → 4.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/lib/codemirror-ipythongfm.d.ts +9 -3
  2. package/lib/codemirror-ipythongfm.js +52 -30
  3. package/lib/codemirror-ipythongfm.js.map +1 -1
  4. package/lib/commands.d.ts +13 -0
  5. package/lib/commands.js +32 -0
  6. package/lib/commands.js.map +1 -0
  7. package/lib/editor.d.ts +48 -279
  8. package/lib/editor.js +220 -818
  9. package/lib/editor.js.map +1 -1
  10. package/lib/extension.d.ts +236 -0
  11. package/lib/extension.js +696 -0
  12. package/lib/extension.js.map +1 -0
  13. package/lib/extensions/customStyle.d.ts +25 -0
  14. package/lib/extensions/customStyle.js +51 -0
  15. package/lib/extensions/customStyle.js.map +1 -0
  16. package/lib/extensions/index.d.ts +3 -0
  17. package/lib/extensions/index.js +8 -0
  18. package/lib/extensions/index.js.map +1 -0
  19. package/lib/extensions/rulers.d.ts +8 -0
  20. package/lib/extensions/rulers.js +85 -0
  21. package/lib/extensions/rulers.js.map +1 -0
  22. package/lib/extensions/ybinding.d.ts +129 -0
  23. package/lib/extensions/ybinding.js +229 -0
  24. package/lib/extensions/ybinding.js.map +1 -0
  25. package/lib/factory.d.ts +15 -5
  26. package/lib/factory.js +53 -24
  27. package/lib/factory.js.map +1 -1
  28. package/lib/index.d.ts +7 -19
  29. package/lib/index.js +7 -23
  30. package/lib/index.js.map +1 -1
  31. package/lib/language.d.ts +96 -0
  32. package/lib/language.js +1690 -0
  33. package/lib/language.js.map +1 -0
  34. package/lib/mimetype.d.ts +3 -0
  35. package/lib/mimetype.js +16 -5
  36. package/lib/mimetype.js.map +1 -1
  37. package/lib/searchprovider.d.ts +219 -0
  38. package/lib/searchprovider.js +640 -0
  39. package/lib/searchprovider.js.map +1 -0
  40. package/lib/theme.d.ts +57 -0
  41. package/lib/theme.js +194 -0
  42. package/lib/theme.js.map +1 -0
  43. package/lib/token.d.ts +375 -0
  44. package/lib/token.js +18 -0
  45. package/lib/token.js.map +1 -0
  46. package/package.json +45 -41
  47. package/src/codemirror-ipythongfm.ts +109 -0
  48. package/src/commands.ts +34 -0
  49. package/src/editor.ts +783 -0
  50. package/src/extension.ts +890 -0
  51. package/src/extensions/customStyle.ts +79 -0
  52. package/src/extensions/index.ts +8 -0
  53. package/src/extensions/rulers.ts +112 -0
  54. package/src/extensions/ybinding.ts +295 -0
  55. package/src/factory.ts +100 -0
  56. package/src/index.ts +17 -0
  57. package/src/language.ts +1729 -0
  58. package/src/mimetype.ts +54 -0
  59. package/src/searchprovider.ts +813 -0
  60. package/src/theme.ts +219 -0
  61. package/src/token.ts +436 -0
  62. package/src/typings.d.ts +13 -0
  63. package/style/base.css +34 -162
  64. package/style/index.css +1 -7
  65. package/style/index.js +1 -7
  66. package/lib/codemirror-ipython.d.ts +0 -2
  67. package/lib/codemirror-ipython.js +0 -30
  68. package/lib/codemirror-ipython.js.map +0 -1
  69. package/lib/mode.d.ts +0 -81
  70. package/lib/mode.js +0 -149
  71. package/lib/mode.js.map +0 -1
  72. package/lib/syntaxstatus.d.ts +0 -67
  73. package/lib/syntaxstatus.js +0 -140
  74. package/lib/syntaxstatus.js.map +0 -1
  75. package/lib/tokens.d.ts +0 -18
  76. package/lib/tokens.js +0 -9
  77. package/lib/tokens.js.map +0 -1
  78. package/typings/codemirror/codemirror.d.ts +0 -227
package/style/base.css CHANGED
@@ -3,46 +3,33 @@
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
- .CodeMirror {
6
+ .cm-editor {
7
7
  line-height: var(--jp-code-line-height);
8
8
  font-size: var(--jp-code-font-size);
9
9
  font-family: var(--jp-code-font-family);
10
10
  border: 0;
11
11
  border-radius: 0;
12
12
  height: auto;
13
+
13
14
  /* Changed to auto to autogrow */
14
15
  }
15
16
 
16
- .CodeMirror pre {
17
+ .cm-editor pre {
17
18
  padding: 0 var(--jp-code-padding);
18
19
  }
19
20
 
20
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-dialog {
21
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {
21
22
  background-color: var(--jp-layout-color0);
22
23
  color: var(--jp-content-font-color1);
23
24
  }
24
25
 
25
- /* This causes https://github.com/jupyter/jupyterlab/issues/522 */
26
- /* May not cause it not because we changed it! */
27
- .CodeMirror-lines {
28
- padding: var(--jp-code-padding) 0;
29
- }
30
-
31
- .CodeMirror-linenumber {
32
- padding: 0 8px;
33
- }
34
-
35
26
  .jp-CodeMirrorEditor {
36
27
  cursor: text;
37
28
  }
38
29
 
39
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
40
- border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
41
- }
42
-
43
30
  /* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
44
31
  @media screen and (min-width: 2138px) and (max-width: 4319px) {
45
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
32
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
46
33
  border-left: var(--jp-code-cursor-width1) solid
47
34
  var(--jp-editor-cursor-color);
48
35
  }
@@ -50,21 +37,16 @@
50
37
 
51
38
  /* When zoomed out less than 33% */
52
39
  @media screen and (min-width: 4320px) {
53
- .jp-CodeMirrorEditor[data-type='inline'] .CodeMirror-cursor {
40
+ .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
54
41
  border-left: var(--jp-code-cursor-width2) solid
55
42
  var(--jp-editor-cursor-color);
56
43
  }
57
44
  }
58
45
 
59
- .CodeMirror.jp-mod-readOnly .CodeMirror-cursor {
46
+ .cm-editor.jp-mod-readOnly .cm-cursor {
60
47
  display: none;
61
48
  }
62
49
 
63
- .CodeMirror-gutters {
64
- border-right: 1px solid var(--jp-border-color2);
65
- background-color: var(--jp-layout-color0);
66
- }
67
-
68
50
  .jp-CollaboratorCursor {
69
51
  border-left: 5px solid transparent;
70
52
  border-right: 5px solid transparent;
@@ -75,30 +57,34 @@
75
57
  margin-right: -5px;
76
58
  }
77
59
 
78
- .CodeMirror-selectedtext.cm-searching {
79
- background-color: var(--jp-search-selected-match-background-color) !important;
80
- color: var(--jp-search-selected-match-color) !important;
60
+ .cm-searching,
61
+ .cm-searching span {
62
+ background-color: var(--jp-search-unselected-match-background-color);
63
+ color: var(--jp-search-unselected-match-color);
81
64
  }
82
65
 
83
- .cm-searching {
84
- background-color: var(
85
- --jp-search-unselected-match-background-color
86
- ) !important;
87
- color: var(--jp-search-unselected-match-color) !important;
66
+ .cm-content .cm-searching::selection,
67
+ .cm-content .cm-searching span::selection {
68
+ background-color: var(--jp-search-unselected-match-background-color);
69
+ color: var(--jp-search-unselected-match-color);
88
70
  }
89
71
 
90
- .cm-trailingspace {
91
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
92
- background-position: center left;
93
- background-repeat: repeat-x;
72
+ .jp-current-match .cm-searching,
73
+ .jp-current-match .cm-searching span {
74
+ background-color: var(--jp-search-selected-match-background-color);
75
+ color: var(--jp-search-selected-match-color);
94
76
  }
95
77
 
96
- .CodeMirror-focused .CodeMirror-selected {
97
- background-color: var(--jp-editor-selected-focused-background);
78
+ .cm-content .jp-current-match .cm-searching::selection,
79
+ .cm-content .jp-current-match .cm-searching span::selection {
80
+ background-color: var(--jp-search-selected-match-background-color);
81
+ color: var(--jp-search-selected-match-color);
98
82
  }
99
83
 
100
- .CodeMirror-selected {
101
- background-color: var(--jp-editor-selected-background);
84
+ .cm-trailingspace {
85
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
86
+ background-position: center left;
87
+ background-repeat: repeat-x;
102
88
  }
103
89
 
104
90
  .jp-CollaboratorCursor-hover {
@@ -120,136 +106,22 @@
120
106
  border-left: 1px dashed var(--jp-border-color2);
121
107
  }
122
108
 
123
- /**
124
- * Here is our jupyter theme for CodeMirror syntax highlighting
125
- * This is used in our marked.js syntax highlighting and CodeMirror itself
126
- * The string "jupyter" is set in ../codemirror/widget.DEFAULT_CODEMIRROR_THEME
127
- * This came from the classic notebook, which came form highlight.js/GitHub
128
- */
129
-
130
- /**
131
- * CodeMirror themes are handling the background/color in this way. This works
132
- * fine for CodeMirror editors outside the notebook, but the notebook styles
133
- * these things differently.
134
- */
135
- .CodeMirror.cm-s-jupyter {
136
- background: var(--jp-layout-color0);
137
- color: var(--jp-content-font-color1);
138
- }
139
-
140
- /* In the notebook, we want this styling to be handled by its container */
141
- .jp-CodeConsole .CodeMirror.cm-s-jupyter,
142
- .jp-Notebook .CodeMirror.cm-s-jupyter {
143
- background: transparent;
144
- }
145
-
146
- .cm-s-jupyter .CodeMirror-cursor {
147
- border-left: var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color);
148
- }
149
- .cm-s-jupyter span.cm-keyword {
150
- color: var(--jp-mirror-editor-keyword-color);
151
- font-weight: bold;
152
- }
153
- .cm-s-jupyter span.cm-atom {
154
- color: var(--jp-mirror-editor-atom-color);
155
- }
156
- .cm-s-jupyter span.cm-number {
157
- color: var(--jp-mirror-editor-number-color);
158
- }
159
- .cm-s-jupyter span.cm-def {
160
- color: var(--jp-mirror-editor-def-color);
161
- }
162
- .cm-s-jupyter span.cm-variable {
163
- color: var(--jp-mirror-editor-variable-color);
164
- }
165
- .cm-s-jupyter span.cm-variable-2 {
166
- color: var(--jp-mirror-editor-variable-2-color);
167
- }
168
- .cm-s-jupyter span.cm-variable-3 {
169
- color: var(--jp-mirror-editor-variable-3-color);
170
- }
171
- .cm-s-jupyter span.cm-punctuation {
172
- color: var(--jp-mirror-editor-punctuation-color);
173
- }
174
- .cm-s-jupyter span.cm-property {
175
- color: var(--jp-mirror-editor-property-color);
176
- }
177
- .cm-s-jupyter span.cm-operator {
178
- color: var(--jp-mirror-editor-operator-color);
179
- font-weight: bold;
180
- }
181
- .cm-s-jupyter span.cm-comment {
182
- color: var(--jp-mirror-editor-comment-color);
183
- font-style: italic;
184
- }
185
- .cm-s-jupyter span.cm-string {
186
- color: var(--jp-mirror-editor-string-color);
187
- }
188
- .cm-s-jupyter span.cm-string-2 {
189
- color: var(--jp-mirror-editor-string-2-color);
190
- }
191
- .cm-s-jupyter span.cm-meta {
192
- color: var(--jp-mirror-editor-meta-color);
193
- }
194
- .cm-s-jupyter span.cm-qualifier {
195
- color: var(--jp-mirror-editor-qualifier-color);
196
- }
197
- .cm-s-jupyter span.cm-builtin {
198
- color: var(--jp-mirror-editor-builtin-color);
199
- }
200
- .cm-s-jupyter span.cm-bracket {
201
- color: var(--jp-mirror-editor-bracket-color);
202
- }
203
- .cm-s-jupyter span.cm-tag {
204
- color: var(--jp-mirror-editor-tag-color);
205
- }
206
- .cm-s-jupyter span.cm-attribute {
207
- color: var(--jp-mirror-editor-attribute-color);
208
- }
209
- .cm-s-jupyter span.cm-header {
210
- color: var(--jp-mirror-editor-header-color);
211
- }
212
- .cm-s-jupyter span.cm-quote {
213
- color: var(--jp-mirror-editor-quote-color);
214
- }
215
- .cm-s-jupyter span.cm-link {
216
- color: var(--jp-mirror-editor-link-color);
217
- }
218
- .cm-s-jupyter span.cm-error {
219
- color: var(--jp-mirror-editor-error-color);
220
- }
221
- .cm-s-jupyter span.cm-hr {
222
- color: #999;
223
- }
224
-
225
- .cm-s-jupyter span.cm-tab {
226
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
227
- background-position: right;
228
- background-repeat: no-repeat;
229
- }
230
-
231
- .cm-s-jupyter .CodeMirror-activeline-background,
232
- .cm-s-jupyter .CodeMirror-gutter {
233
- background-color: var(--jp-layout-color2);
234
- }
235
-
236
109
  /* Styles for shared cursors (remote cursor locations and selected ranges) */
237
- .jp-CodeMirrorEditor .remote-caret {
110
+ .jp-CodeMirrorEditor .cm-ySelectionCaret {
238
111
  position: relative;
239
- border-left: 2px solid black;
112
+ border-left: 1px solid black;
240
113
  margin-left: -1px;
241
114
  margin-right: -1px;
242
115
  box-sizing: border-box;
243
116
  }
244
117
 
245
- .jp-CodeMirrorEditor .remote-caret > div {
118
+ .jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {
246
119
  white-space: nowrap;
247
120
  position: absolute;
248
121
  top: -1.15em;
249
122
  padding-bottom: 0.05em;
250
- left: -2px;
123
+ left: -1px;
251
124
  font-size: 0.95em;
252
- background-color: rgb(250, 129, 0);
253
125
  font-family: var(--jp-ui-font-family);
254
126
  font-weight: bold;
255
127
  line-height: normal;
@@ -257,16 +129,16 @@
257
129
  color: white;
258
130
  padding-left: 2px;
259
131
  padding-right: 2px;
260
- z-index: 3;
132
+ z-index: 101;
261
133
  transition: opacity 0.3s ease-in-out;
262
134
  }
263
135
 
264
- .jp-CodeMirrorEditor .remote-caret.hide-name > div {
136
+ .jp-CodeMirrorEditor .cm-ySelectionInfo {
265
137
  transition-delay: 0.7s;
266
138
  opacity: 0;
267
139
  }
268
140
 
269
- .jp-CodeMirrorEditor .remote-caret:hover > div {
141
+ .jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {
270
142
  opacity: 1;
271
143
  transition-delay: 0s;
272
144
  }
package/style/index.css CHANGED
@@ -4,13 +4,7 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
6
  /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */
7
- @import url('~@lumino/widgets/style/index.css');
8
- @import url('~@jupyterlab/ui-components/style/index.css');
9
- @import url('~@jupyterlab/apputils/style/index.css');
10
7
  @import url('~@jupyterlab/codeeditor/style/index.css');
11
- @import url('~@jupyterlab/statusbar/style/index.css');
12
- @import url('~codemirror/lib/codemirror.css');
13
- @import url('~codemirror/addon/dialog/dialog.css');
14
- @import url('~codemirror/addon/fold/foldgutter.css');
8
+ @import url('~@jupyterlab/documentsearch/style/index.css');
15
9
 
16
10
  @import url('./base.css');
package/style/index.js CHANGED
@@ -4,13 +4,7 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
 
6
6
  /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */
7
- import '@lumino/widgets/style/index.js';
8
- import '@jupyterlab/ui-components/style/index.js';
9
- import '@jupyterlab/apputils/style/index.js';
10
7
  import '@jupyterlab/codeeditor/style/index.js';
11
- import '@jupyterlab/statusbar/style/index.js';
12
- import 'codemirror/lib/codemirror.css';
13
- import 'codemirror/addon/dialog/dialog.css';
14
- import 'codemirror/addon/fold/foldgutter.css';
8
+ import '@jupyterlab/documentsearch/style/index.js';
15
9
 
16
10
  import './base.css';
@@ -1,2 +0,0 @@
1
- import 'codemirror/mode/meta';
2
- import 'codemirror/mode/python/python';
@@ -1,30 +0,0 @@
1
- // Copyright (c) Jupyter Development Team.
2
- // Distributed under the terms of the Modified BSD License.
3
- import CodeMirror from 'codemirror';
4
- import 'codemirror/mode/meta';
5
- import 'codemirror/mode/python/python';
6
- /**
7
- * Define an IPython codemirror mode.
8
- *
9
- * It is a slightly altered Python Mode with a `?` operator.
10
- */
11
- CodeMirror.defineMode('ipython', (config, modeOptions) => {
12
- const pythonConf = {};
13
- for (const prop in modeOptions) {
14
- if (modeOptions.hasOwnProperty(prop)) {
15
- pythonConf[prop] = modeOptions[prop];
16
- }
17
- }
18
- pythonConf.name = 'python';
19
- pythonConf.singleOperators = new RegExp('^[\\+\\-\\*/%&|@\\^~<>!\\?]');
20
- pythonConf.identifiers = new RegExp('^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*');
21
- return CodeMirror.getMode(config, pythonConf);
22
- }, 'python');
23
- CodeMirror.defineMIME('text/x-ipython', 'ipython');
24
- CodeMirror.modeInfo.push({
25
- ext: [],
26
- mime: 'text/x-ipython',
27
- mode: 'ipython',
28
- name: 'ipython'
29
- });
30
- //# sourceMappingURL=codemirror-ipython.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codemirror-ipython.js","sourceRoot":"","sources":["../src/codemirror-ipython.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,UAAU,CAAC,UAAU,CACnB,SAAS,EACT,CAAC,MAAsC,EAAE,WAAiB,EAAE,EAAE;IAC5D,MAAM,UAAU,GAAQ,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC9B,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YACpC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;SACtC;KACF;IACD,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,UAAU,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACvE,UAAU,CAAC,WAAW,GAAG,IAAI,MAAM,CACjC,mDAAmD,CACpD,CAAC;IACF,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC,EACD,QAAQ,CACT,CAAC;AAEF,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACnD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC"}
package/lib/mode.d.ts DELETED
@@ -1,81 +0,0 @@
1
- import { JSONValue } from '@lumino/coreutils';
2
- import 'codemirror/addon/runmode/runmode';
3
- import 'codemirror/mode/clike/clike';
4
- import 'codemirror/mode/css/css';
5
- import 'codemirror/mode/javascript/javascript';
6
- import 'codemirror/mode/julia/julia';
7
- import 'codemirror/mode/markdown/markdown';
8
- import 'codemirror/mode/meta';
9
- import 'codemirror/mode/r/r';
10
- import 'codemirror/mode/shell/shell';
11
- import 'codemirror/mode/sql/sql';
12
- import './codemirror-ipython';
13
- import './codemirror-ipythongfm';
14
- /**
15
- * The namespace for CodeMirror Mode functionality.
16
- */
17
- export declare namespace Mode {
18
- /**
19
- * The interface of a codemirror modeInfo spec.
20
- */
21
- interface ISpec {
22
- ext?: string[];
23
- name?: string;
24
- mode: string;
25
- mime: string;
26
- }
27
- /**
28
- * The interface of a codemirror mode spec.
29
- */
30
- interface IMode {
31
- name: string;
32
- [key: string]: JSONValue;
33
- }
34
- /**
35
- * The interface for a codemirror spec resolver.
36
- */
37
- interface ISpecLoader {
38
- /**
39
- * A function which returns whether it was successfully loaded
40
- */
41
- (spec: ISpec): Promise<boolean>;
42
- }
43
- /**
44
- * Get the raw list of available modes specs.
45
- */
46
- function getModeInfo(): ISpec[];
47
- /**
48
- * Running a CodeMirror mode outside of an editor.
49
- */
50
- function run(code: string, mode: string | ISpec, el: HTMLElement): void;
51
- /**
52
- * Ensure a codemirror mode is available by name or Codemirror spec.
53
- *
54
- * @param mode - The mode to ensure. If it is a string, uses [findBest]
55
- * to get the appropriate spec.
56
- *
57
- * @returns A promise that resolves when the mode is available.
58
- */
59
- function ensure(mode: string | ISpec): Promise<ISpec | null>;
60
- function addSpecLoader(loader: ISpecLoader, rank: number): void;
61
- /**
62
- * Find a codemirror mode by name or CodeMirror spec.
63
- */
64
- function findBest(mode: string | ISpec): ISpec;
65
- /**
66
- * Find a codemirror mode by MIME.
67
- */
68
- function findByMIME(mime: string): ISpec;
69
- /**
70
- * Find a codemirror mode by name.
71
- */
72
- function findByName(name: string): ISpec;
73
- /**
74
- * Find a codemirror mode by filename.
75
- */
76
- function findByFileName(name: string): ISpec;
77
- /**
78
- * Find a codemirror mode by extension.
79
- */
80
- function findByExtension(ext: string | string[]): ISpec | null;
81
- }
package/lib/mode.js DELETED
@@ -1,149 +0,0 @@
1
- // Copyright (c) Jupyter Development Team.
2
- // Distributed under the terms of the Modified BSD License.
3
- import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
4
- import { PathExt } from '@jupyterlab/coreutils';
5
- import { ArrayExt } from '@lumino/algorithm';
6
- import CodeMirror from 'codemirror';
7
- import 'codemirror/addon/runmode/runmode';
8
- import 'codemirror/mode/clike/clike';
9
- import 'codemirror/mode/css/css';
10
- // Bundle other common modes
11
- import 'codemirror/mode/javascript/javascript';
12
- import 'codemirror/mode/julia/julia';
13
- import 'codemirror/mode/markdown/markdown';
14
- import 'codemirror/mode/meta';
15
- import 'codemirror/mode/r/r';
16
- import 'codemirror/mode/shell/shell';
17
- import 'codemirror/mode/sql/sql';
18
- import './codemirror-ipython';
19
- import './codemirror-ipythongfm';
20
- /**
21
- * The namespace for CodeMirror Mode functionality.
22
- */
23
- export var Mode;
24
- (function (Mode) {
25
- const specLoaders = [
26
- {
27
- // Simplest, cheapest check by mode name.
28
- loader: async (spec) => CodeMirror.modes.hasOwnProperty(spec.mode),
29
- rank: 0
30
- },
31
- {
32
- // Fetch the mode asynchronously.
33
- loader: function (spec) {
34
- return new Promise((resolve, reject) => {
35
- // An arrow function below seems to miscompile in our current webpack to
36
- // invalid js.
37
- require([
38
- `codemirror/mode/${spec.mode}/${spec.mode}.js`
39
- ], function () {
40
- resolve(true);
41
- });
42
- });
43
- },
44
- rank: 99
45
- }
46
- ];
47
- /**
48
- * Get the raw list of available modes specs.
49
- */
50
- function getModeInfo() {
51
- return CodeMirror.modeInfo;
52
- }
53
- Mode.getModeInfo = getModeInfo;
54
- /**
55
- * Running a CodeMirror mode outside of an editor.
56
- */
57
- function run(code, mode, el) {
58
- CodeMirror.runMode(code, mode, el);
59
- }
60
- Mode.run = run;
61
- /**
62
- * Ensure a codemirror mode is available by name or Codemirror spec.
63
- *
64
- * @param mode - The mode to ensure. If it is a string, uses [findBest]
65
- * to get the appropriate spec.
66
- *
67
- * @returns A promise that resolves when the mode is available.
68
- */
69
- async function ensure(mode) {
70
- const spec = findBest(mode);
71
- for (const specLoader of specLoaders) {
72
- if (await specLoader.loader(spec)) {
73
- return spec;
74
- }
75
- }
76
- return null;
77
- }
78
- Mode.ensure = ensure;
79
- function addSpecLoader(loader, rank) {
80
- const item = { loader, rank };
81
- const index = ArrayExt.upperBound(specLoaders, item, Private.itemCmp);
82
- ArrayExt.insert(specLoaders, index, item);
83
- }
84
- Mode.addSpecLoader = addSpecLoader;
85
- /**
86
- * Find a codemirror mode by name or CodeMirror spec.
87
- */
88
- function findBest(mode) {
89
- var _a;
90
- const modename = typeof mode === 'string' ? mode : mode.mode || mode.name;
91
- const mimetype = typeof mode !== 'string' ? mode.mime : modename;
92
- const ext = typeof mode !== 'string' ? (_a = mode.ext) !== null && _a !== void 0 ? _a : [] : [];
93
- return (CodeMirror.findModeByName(modename || '') ||
94
- CodeMirror.findModeByMIME(mimetype || '') ||
95
- findByExtension(ext) ||
96
- CodeMirror.findModeByMIME(IEditorMimeTypeService.defaultMimeType) ||
97
- CodeMirror.findModeByMIME('text/plain'));
98
- }
99
- Mode.findBest = findBest;
100
- /**
101
- * Find a codemirror mode by MIME.
102
- */
103
- function findByMIME(mime) {
104
- return CodeMirror.findModeByMIME(mime);
105
- }
106
- Mode.findByMIME = findByMIME;
107
- /**
108
- * Find a codemirror mode by name.
109
- */
110
- function findByName(name) {
111
- return CodeMirror.findModeByName(name);
112
- }
113
- Mode.findByName = findByName;
114
- /**
115
- * Find a codemirror mode by filename.
116
- */
117
- function findByFileName(name) {
118
- const basename = PathExt.basename(name);
119
- return CodeMirror.findModeByFileName(basename);
120
- }
121
- Mode.findByFileName = findByFileName;
122
- /**
123
- * Find a codemirror mode by extension.
124
- */
125
- function findByExtension(ext) {
126
- if (typeof ext === 'string') {
127
- return CodeMirror.findModeByExtension(ext);
128
- }
129
- for (let i = 0; i < ext.length; i++) {
130
- const mode = CodeMirror.findModeByExtension(ext[i]);
131
- if (mode) {
132
- return mode;
133
- }
134
- }
135
- return null;
136
- }
137
- Mode.findByExtension = findByExtension;
138
- })(Mode || (Mode = {}));
139
- var Private;
140
- (function (Private) {
141
- /**
142
- * A less-than comparison function for the loader rank
143
- */
144
- function itemCmp(first, second) {
145
- return first.rank - second.rank;
146
- }
147
- Private.itemCmp = itemCmp;
148
- })(Private || (Private = {}));
149
- //# sourceMappingURL=mode.js.map
package/lib/mode.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../src/mode.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- import { CodeEditor } from '@jupyterlab/codeeditor';
2
- import { ITranslator } from '@jupyterlab/translation';
3
- import { VDomModel, VDomRenderer } from '@jupyterlab/ui-components';
4
- import { CommandRegistry } from '@lumino/commands';
5
- /**
6
- * StatusBar item to change the language syntax highlighting of the file editor.
7
- */
8
- export declare class EditorSyntaxStatus extends VDomRenderer<EditorSyntaxStatus.Model> {
9
- /**
10
- * Construct a new VDomRenderer for the status item.
11
- */
12
- constructor(opts: EditorSyntaxStatus.IOptions);
13
- /**
14
- * Render the status item.
15
- */
16
- render(): JSX.Element | null;
17
- /**
18
- * Create a menu for selecting the mode of the editor.
19
- */
20
- private _handleClick;
21
- protected translator: ITranslator;
22
- private _commands;
23
- private _popup;
24
- }
25
- /**
26
- * A namespace for EditorSyntax statics.
27
- */
28
- export declare namespace EditorSyntaxStatus {
29
- /**
30
- * A VDomModel for the current editor/mode combination.
31
- */
32
- class Model extends VDomModel {
33
- /**
34
- * The current mode for the editor. If no editor is present,
35
- * returns the empty string.
36
- */
37
- get mode(): string;
38
- /**
39
- * The current editor for the application editor tracker.
40
- */
41
- get editor(): CodeEditor.IEditor | null;
42
- set editor(editor: CodeEditor.IEditor | null);
43
- /**
44
- * If the editor mode changes, update the model.
45
- */
46
- private _onMIMETypeChange;
47
- /**
48
- * Trigger a rerender of the model.
49
- */
50
- private _triggerChange;
51
- private _mode;
52
- private _editor;
53
- }
54
- /**
55
- * Options for the EditorSyntax status item.
56
- */
57
- interface IOptions {
58
- /**
59
- * The application command registry.
60
- */
61
- commands: CommandRegistry;
62
- /**
63
- * The language translator.
64
- */
65
- translator?: ITranslator;
66
- }
67
- }