@jupyterlab/codemirror 4.0.0-alpha.9 → 4.0.0-beta.0

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 -273
  8. package/lib/editor.js +220 -819
  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 +1687 -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 +1726 -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 +33 -187
  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 -82
  70. package/lib/mode.js +0 -150
  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 -8
  77. package/lib/tokens.js.map +0 -1
  78. package/typings/codemirror/codemirror.d.ts +0 -227
@@ -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
+ }