@theia/monaco 1.28.0-next.9 → 1.29.0-next.10

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 (64) hide show
  1. package/README.md +56 -0
  2. package/lib/browser/monaco-color-registry.d.ts.map +1 -1
  3. package/lib/browser/monaco-color-registry.js +4 -3
  4. package/lib/browser/monaco-color-registry.js.map +1 -1
  5. package/lib/browser/monaco-command.js +3 -3
  6. package/lib/browser/monaco-command.js.map +1 -1
  7. package/lib/browser/monaco-diff-editor.d.ts.map +1 -1
  8. package/lib/browser/monaco-diff-editor.js +4 -0
  9. package/lib/browser/monaco-diff-editor.js.map +1 -1
  10. package/lib/browser/monaco-editor.d.ts.map +1 -1
  11. package/lib/browser/monaco-editor.js +4 -1
  12. package/lib/browser/monaco-editor.js.map +1 -1
  13. package/lib/browser/monaco-frontend-application-contribution.d.ts.map +1 -1
  14. package/lib/browser/monaco-frontend-application-contribution.js +15 -2
  15. package/lib/browser/monaco-frontend-application-contribution.js.map +1 -1
  16. package/lib/browser/monaco-indexed-db.d.ts +4 -1
  17. package/lib/browser/monaco-indexed-db.d.ts.map +1 -1
  18. package/lib/browser/monaco-indexed-db.js +18 -8
  19. package/lib/browser/monaco-indexed-db.js.map +1 -1
  20. package/lib/browser/monaco-quick-input-service.d.ts.map +1 -1
  21. package/lib/browser/monaco-quick-input-service.js +1 -1
  22. package/lib/browser/monaco-quick-input-service.js.map +1 -1
  23. package/lib/browser/monaco-text-model-service.d.ts.map +1 -1
  24. package/lib/browser/monaco-text-model-service.js +15 -17
  25. package/lib/browser/monaco-text-model-service.js.map +1 -1
  26. package/lib/browser/monaco-theming-service.d.ts +2 -3
  27. package/lib/browser/monaco-theming-service.d.ts.map +1 -1
  28. package/lib/browser/monaco-theming-service.js +3 -3
  29. package/lib/browser/monaco-theming-service.js.map +1 -1
  30. package/lib/browser/textmate/monaco-textmate-frontend-bindings.d.ts +1 -1
  31. package/lib/browser/textmate/monaco-textmate-frontend-bindings.d.ts.map +1 -1
  32. package/lib/browser/textmate/monaco-textmate-frontend-bindings.js +38 -6
  33. package/lib/browser/textmate/monaco-textmate-frontend-bindings.js.map +1 -1
  34. package/lib/browser/textmate/monaco-textmate-service.d.ts +3 -3
  35. package/lib/browser/textmate/monaco-textmate-service.d.ts.map +1 -1
  36. package/lib/browser/textmate/monaco-textmate-service.js +8 -30
  37. package/lib/browser/textmate/monaco-textmate-service.js.map +1 -1
  38. package/lib/browser/textmate/monaco-theme-registry.d.ts +2 -7
  39. package/lib/browser/textmate/monaco-theme-registry.d.ts.map +1 -1
  40. package/lib/browser/textmate/monaco-theme-registry.js +9 -3
  41. package/lib/browser/textmate/monaco-theme-registry.js.map +1 -1
  42. package/lib/browser/textmate/monaco-theme-types.d.ts +11 -0
  43. package/lib/browser/textmate/monaco-theme-types.d.ts.map +1 -1
  44. package/lib/browser/textmate/monaco-theme-types.js +3 -0
  45. package/lib/browser/textmate/monaco-theme-types.js.map +1 -1
  46. package/lib/browser/textmate/textmate-tokenizer.d.ts +0 -8
  47. package/lib/browser/textmate/textmate-tokenizer.d.ts.map +1 -1
  48. package/lib/browser/textmate/textmate-tokenizer.js +7 -20
  49. package/lib/browser/textmate/textmate-tokenizer.js.map +1 -1
  50. package/package.json +11 -11
  51. package/src/browser/monaco-color-registry.ts +3 -2
  52. package/src/browser/monaco-command.ts +3 -3
  53. package/src/browser/monaco-diff-editor.ts +4 -0
  54. package/src/browser/monaco-editor.ts +4 -1
  55. package/src/browser/monaco-frontend-application-contribution.ts +16 -2
  56. package/src/browser/monaco-indexed-db.ts +16 -9
  57. package/src/browser/monaco-quick-input-service.ts +2 -3
  58. package/src/browser/monaco-text-model-service.ts +15 -16
  59. package/src/browser/monaco-theming-service.ts +3 -3
  60. package/src/browser/textmate/monaco-textmate-frontend-bindings.ts +36 -6
  61. package/src/browser/textmate/monaco-textmate-service.ts +6 -29
  62. package/src/browser/textmate/monaco-theme-registry.ts +7 -10
  63. package/src/browser/textmate/monaco-theme-types.ts +12 -0
  64. package/src/browser/textmate/textmate-tokenizer.ts +6 -19
@@ -15,6 +15,18 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import * as monaco from '@theia/monaco-editor-core';
18
+ import { IStandaloneTheme } from '@theia/monaco-editor-core/esm/vs/editor/standalone/common/standaloneTheme';
19
+ import { IOnigLib, IRawTheme, Registry } from 'vscode-textmate';
20
+
21
+ export interface ThemeMix extends IRawTheme, monaco.editor.IStandaloneThemeData { }
22
+ export interface MixStandaloneTheme extends IStandaloneTheme {
23
+ themeData: ThemeMix
24
+ }
25
+
26
+ export const OnigasmPromise = Symbol('OnigasmPromise');
27
+ export type OnigasmPromise = Promise<IOnigLib>;
28
+ export const TextmateRegistryFactory = Symbol('TextmateRegistryFactory');
29
+ export type TextmateRegistryFactory = (currentTheme?: ThemeMix) => Registry;
18
30
 
19
31
  export type MonacoThemeColor = monaco.editor.IColors;
20
32
  export interface MonacoTokenRule extends monaco.editor.ITokenThemeRule { };
@@ -49,17 +49,6 @@ export interface TokenizerOption {
49
49
 
50
50
  }
51
51
 
52
- export namespace TokenizerOption {
53
- /**
54
- * The default TextMate tokenizer option.
55
- *
56
- * @deprecated Use the current value of `editor.maxTokenizationLineLength` preference instead.
57
- */
58
- export const DEFAULT: TokenizerOption = {
59
- lineLimit: 400
60
- };
61
- }
62
-
63
52
  export function createTextmateTokenizer(grammar: IGrammar, options: TokenizerOption): monaco.languages.EncodedTokensProvider & monaco.languages.TokensProvider {
64
53
  if (options.lineLimit !== undefined && (options.lineLimit <= 0 || !Number.isInteger(options.lineLimit))) {
65
54
  throw new Error(`The 'lineLimit' must be a positive integer. It was ${options.lineLimit}.`);
@@ -67,24 +56,22 @@ export function createTextmateTokenizer(grammar: IGrammar, options: TokenizerOpt
67
56
  return {
68
57
  getInitialState: () => new TokenizerState(INITIAL),
69
58
  tokenizeEncoded(line: string, state: TokenizerState): monaco.languages.IEncodedLineTokens {
70
- let processedLine = line;
71
59
  if (options.lineLimit !== undefined && line.length > options.lineLimit) {
72
- // Line is too long to be tokenized
73
- processedLine = line.substring(0, options.lineLimit);
60
+ // Skip tokenizing the line if it exceeds the line limit.
61
+ return { endState: state.ruleStack, tokens: new Uint32Array() };
74
62
  }
75
- const result = grammar.tokenizeLine2(processedLine, state.ruleStack);
63
+ const result = grammar.tokenizeLine2(line, state.ruleStack, 500);
76
64
  return {
77
65
  endState: new TokenizerState(result.ruleStack),
78
66
  tokens: result.tokens
79
67
  };
80
68
  },
81
69
  tokenize(line: string, state: TokenizerState): monaco.languages.ILineTokens {
82
- let processedLine = line;
83
70
  if (options.lineLimit !== undefined && line.length > options.lineLimit) {
84
- // Line is too long to be tokenized
85
- processedLine = line.substring(0, options.lineLimit);
71
+ // Skip tokenizing the line if it exceeds the line limit.
72
+ return { endState: state.ruleStack, tokens: [] };
86
73
  }
87
- const result = grammar.tokenizeLine(processedLine, state.ruleStack);
74
+ const result = grammar.tokenizeLine(line, state.ruleStack, 500);
88
75
  return {
89
76
  endState: new TokenizerState(result.ruleStack),
90
77
  tokens: result.tokens.map(t => ({