@jupyterlab/codemirror 4.0.0-alpha.9 → 4.0.0-beta.1
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.
- package/lib/codemirror-ipythongfm.d.ts +9 -3
- package/lib/codemirror-ipythongfm.js +52 -30
- package/lib/codemirror-ipythongfm.js.map +1 -1
- package/lib/commands.d.ts +13 -0
- package/lib/commands.js +32 -0
- package/lib/commands.js.map +1 -0
- package/lib/editor.d.ts +48 -273
- package/lib/editor.js +220 -819
- package/lib/editor.js.map +1 -1
- package/lib/extension.d.ts +236 -0
- package/lib/extension.js +696 -0
- package/lib/extension.js.map +1 -0
- package/lib/extensions/customStyle.d.ts +25 -0
- package/lib/extensions/customStyle.js +51 -0
- package/lib/extensions/customStyle.js.map +1 -0
- package/lib/extensions/index.d.ts +3 -0
- package/lib/extensions/index.js +8 -0
- package/lib/extensions/index.js.map +1 -0
- package/lib/extensions/rulers.d.ts +8 -0
- package/lib/extensions/rulers.js +85 -0
- package/lib/extensions/rulers.js.map +1 -0
- package/lib/extensions/ybinding.d.ts +129 -0
- package/lib/extensions/ybinding.js +229 -0
- package/lib/extensions/ybinding.js.map +1 -0
- package/lib/factory.d.ts +15 -5
- package/lib/factory.js +53 -24
- package/lib/factory.js.map +1 -1
- package/lib/index.d.ts +7 -19
- package/lib/index.js +7 -23
- package/lib/index.js.map +1 -1
- package/lib/language.d.ts +96 -0
- package/lib/language.js +1687 -0
- package/lib/language.js.map +1 -0
- package/lib/mimetype.d.ts +3 -0
- package/lib/mimetype.js +16 -5
- package/lib/mimetype.js.map +1 -1
- package/lib/searchprovider.d.ts +219 -0
- package/lib/searchprovider.js +640 -0
- package/lib/searchprovider.js.map +1 -0
- package/lib/theme.d.ts +57 -0
- package/lib/theme.js +194 -0
- package/lib/theme.js.map +1 -0
- package/lib/token.d.ts +375 -0
- package/lib/token.js +18 -0
- package/lib/token.js.map +1 -0
- package/package.json +45 -41
- package/src/codemirror-ipythongfm.ts +109 -0
- package/src/commands.ts +34 -0
- package/src/editor.ts +783 -0
- package/src/extension.ts +890 -0
- package/src/extensions/customStyle.ts +79 -0
- package/src/extensions/index.ts +8 -0
- package/src/extensions/rulers.ts +112 -0
- package/src/extensions/ybinding.ts +295 -0
- package/src/factory.ts +100 -0
- package/src/index.ts +17 -0
- package/src/language.ts +1726 -0
- package/src/mimetype.ts +54 -0
- package/src/searchprovider.ts +813 -0
- package/src/theme.ts +219 -0
- package/src/token.ts +436 -0
- package/src/typings.d.ts +13 -0
- package/style/base.css +33 -187
- package/style/index.css +1 -7
- package/style/index.js +1 -7
- package/lib/codemirror-ipython.d.ts +0 -2
- package/lib/codemirror-ipython.js +0 -30
- package/lib/codemirror-ipython.js.map +0 -1
- package/lib/mode.d.ts +0 -82
- package/lib/mode.js +0 -150
- package/lib/mode.js.map +0 -1
- package/lib/syntaxstatus.d.ts +0 -67
- package/lib/syntaxstatus.js +0 -140
- package/lib/syntaxstatus.js.map +0 -1
- package/lib/tokens.d.ts +0 -18
- package/lib/tokens.js +0 -8
- package/lib/tokens.js.map +0 -1
- package/typings/codemirror/codemirror.d.ts +0 -227
package/src/mimetype.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Copyright (c) Jupyter Development Team.
|
|
2
|
+
// Distributed under the terms of the Modified BSD License.
|
|
3
|
+
|
|
4
|
+
import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
|
|
5
|
+
import { PathExt } from '@jupyterlab/coreutils';
|
|
6
|
+
import * as nbformat from '@jupyterlab/nbformat';
|
|
7
|
+
import { IEditorLanguageRegistry } from './token';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The mime type service for CodeMirror.
|
|
11
|
+
*/
|
|
12
|
+
export class CodeMirrorMimeTypeService implements IEditorMimeTypeService {
|
|
13
|
+
constructor(protected languages: IEditorLanguageRegistry) {}
|
|
14
|
+
/**
|
|
15
|
+
* Returns a mime type for the given language info.
|
|
16
|
+
*
|
|
17
|
+
* #### Notes
|
|
18
|
+
* If a mime type cannot be found returns the default mime type `text/plain`, never `null`.
|
|
19
|
+
*/
|
|
20
|
+
getMimeTypeByLanguage(info: nbformat.ILanguageInfoMetadata): string {
|
|
21
|
+
const ext = info.file_extension || '';
|
|
22
|
+
const mode = this.languages.findBest(
|
|
23
|
+
(info.codemirror_mode as any) || {
|
|
24
|
+
mimetype: info.mimetype,
|
|
25
|
+
name: info.name,
|
|
26
|
+
ext: [ext.split('.').slice(-1)[0]]
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
return mode
|
|
30
|
+
? (mode.mime as string)
|
|
31
|
+
: IEditorMimeTypeService.defaultMimeType;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Returns a mime type for the given file path.
|
|
36
|
+
*
|
|
37
|
+
* #### Notes
|
|
38
|
+
* If a mime type cannot be found returns the default mime type `text/plain`, never `null`.
|
|
39
|
+
*/
|
|
40
|
+
getMimeTypeByFilePath(path: string): string {
|
|
41
|
+
const ext = PathExt.extname(path);
|
|
42
|
+
if (ext === '.ipy') {
|
|
43
|
+
return 'text/x-python';
|
|
44
|
+
} else if (ext === '.md') {
|
|
45
|
+
return 'text/x-ipythongfm';
|
|
46
|
+
}
|
|
47
|
+
const mode = this.languages.findByFileName(path);
|
|
48
|
+
return mode
|
|
49
|
+
? Array.isArray(mode.mime)
|
|
50
|
+
? mode.mime[0] ?? IEditorMimeTypeService.defaultMimeType
|
|
51
|
+
: mode.mime
|
|
52
|
+
: IEditorMimeTypeService.defaultMimeType;
|
|
53
|
+
}
|
|
54
|
+
}
|