@elice/material-exercise 1.220830.0 → 1.220919.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 (89) hide show
  1. package/cjs/components/material-exercise/MaterialExercise.styled.js +1 -1
  2. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +9 -1
  3. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +5 -1
  4. package/cjs/components/shared/monaco-editor/MonacoEditor.js +9 -9
  5. package/cjs/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +3 -3
  6. package/cjs/components/shared/monaco-editor/editor-languages/css/index.d.ts +4 -0
  7. package/cjs/components/shared/monaco-editor/editor-languages/css/index.js +12 -0
  8. package/cjs/components/shared/monaco-editor/editor-languages/html/index.d.ts +4 -0
  9. package/cjs/components/shared/monaco-editor/editor-languages/html/index.js +10 -0
  10. package/cjs/components/shared/monaco-editor/editor-languages/index.js +2 -2
  11. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.d.ts +4 -0
  12. package/cjs/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -0
  13. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.d.ts +13 -0
  14. package/cjs/components/shared/monaco-editor/utils/emmet/emmet.js +31 -0
  15. package/cjs/components/shared/monaco-editor/utils/emmet/index.d.ts +1 -0
  16. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.d.ts +5 -0
  17. package/cjs/components/shared/monaco-editor/utils/emmet/registerProvider.js +26 -0
  18. package/cjs/components/shared/monaco-editor/utils/grammar/index.js +2 -2
  19. package/cjs/components/shared/monaco-editor/utils/prettier/index.js +6 -2
  20. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.d.ts +15 -0
  21. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +15 -0
  22. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.d.ts +6 -0
  23. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +22 -0
  24. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.d.ts +96 -0
  25. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +900 -0
  26. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.d.ts +2 -0
  27. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.d.ts +12 -0
  28. package/cjs/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +42 -0
  29. package/cjs/components/shared/web-browser/WebBrowser.js +16 -11
  30. package/cjs/components/shared/xterm/Xterm.js +10 -3
  31. package/es/components/material-exercise/MaterialExercise.styled.js +1 -1
  32. package/es/components/material-exercise/exercise-menu/ExerciseMenuDropdown.js +10 -2
  33. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +5 -1
  34. package/es/components/shared/monaco-editor/MonacoEditor.js +11 -11
  35. package/es/components/shared/monaco-editor/editor-hooks/useMonacoMarkers.js +3 -3
  36. package/es/components/shared/monaco-editor/editor-languages/css/index.d.ts +4 -0
  37. package/es/components/shared/monaco-editor/editor-languages/css/index.js +12 -1
  38. package/es/components/shared/monaco-editor/editor-languages/html/index.d.ts +4 -0
  39. package/es/components/shared/monaco-editor/editor-languages/html/index.js +10 -1
  40. package/es/components/shared/monaco-editor/editor-languages/index.js +2 -2
  41. package/es/components/shared/monaco-editor/editor-languages/typescript/index.d.ts +4 -0
  42. package/es/components/shared/monaco-editor/editor-languages/typescript/index.js +10 -1
  43. package/es/components/shared/monaco-editor/utils/emmet/emmet.d.ts +13 -0
  44. package/es/components/shared/monaco-editor/utils/emmet/emmet.js +25 -0
  45. package/es/components/shared/monaco-editor/utils/emmet/index.d.ts +1 -0
  46. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.d.ts +5 -0
  47. package/es/components/shared/monaco-editor/utils/emmet/registerProvider.js +22 -0
  48. package/es/components/shared/monaco-editor/utils/grammar/index.js +2 -2
  49. package/es/components/shared/monaco-editor/utils/prettier/index.js +6 -2
  50. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.d.ts +15 -0
  51. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/configCompat.js +11 -0
  52. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.d.ts +6 -0
  53. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/data.js +17 -0
  54. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.d.ts +96 -0
  55. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/emmetHelper.js +883 -0
  56. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/index.d.ts +2 -0
  57. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.d.ts +12 -0
  58. package/es/components/shared/monaco-editor/vendors/vscode-emmet-helper/utils.js +36 -0
  59. package/es/components/shared/web-browser/WebBrowser.js +16 -11
  60. package/es/components/shared/xterm/Xterm.js +10 -3
  61. package/package.json +7 -6
  62. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/OnDisposed.d.ts +0 -0
  63. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursor.d.ts +0 -0
  64. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursor.js +0 -0
  65. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorManager.d.ts +0 -0
  66. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorManager.js +0 -0
  67. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorWidget.d.ts +0 -0
  68. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorWidget.js +0 -0
  69. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelection.d.ts +0 -0
  70. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelection.js +0 -0
  71. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelectionManager.d.ts +0 -0
  72. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelectionManager.js +0 -0
  73. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/index.d.ts +0 -0
  74. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/styles.d.ts +0 -0
  75. /package/cjs/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/styles.js +0 -0
  76. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/OnDisposed.d.ts +0 -0
  77. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursor.d.ts +0 -0
  78. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursor.js +0 -0
  79. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorManager.d.ts +0 -0
  80. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorManager.js +0 -0
  81. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorWidget.d.ts +0 -0
  82. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteCursorWidget.js +0 -0
  83. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelection.d.ts +0 -0
  84. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelection.js +0 -0
  85. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelectionManager.d.ts +0 -0
  86. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/RemoteSelectionManager.js +0 -0
  87. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/index.d.ts +0 -0
  88. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/styles.d.ts +0 -0
  89. /package/es/components/shared/monaco-editor/{utils/remoteMarker → vendors/monaco-collab-ext}/styles.js +0 -0
@@ -28,7 +28,7 @@ const EXERCISE_HORIZONTAL_RATIO = {
28
28
 
29
29
  const StyledExerciseContainer = styled__default["default"].div.withConfig({
30
30
  componentId: "sc-9joi7g-0"
31
- })(["flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0;overflow:hidden;"]);
31
+ })(["flex:1;display:flex;flex-direction:column;height:100%;min-width:0;min-height:0;"]);
32
32
  /**
33
33
  * Wrapper contains:
34
34
  * - FileTree
@@ -4,10 +4,11 @@ var React = require('react');
4
4
  var reactIntl = require('react-intl');
5
5
  var blocks = require('@elice/blocks');
6
6
  var icons = require('@elice/icons');
7
+ var types = require('@elice/types');
7
8
  var recoil = require('recoil');
8
9
  var ExerciseMenuButton = require('../../shared/exercise-menu-button/ExerciseMenuButton.js');
9
10
  var recoil$1 = require('../context/recoil.js');
10
- require('../context/context.js');
11
+ var context = require('../context/context.js');
11
12
  require('../context/recoilTypes.js');
12
13
  var subjects = require('../context/subjects.js');
13
14
  require('../context/ExerciseProvider.js');
@@ -21,12 +22,18 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
22
 
22
23
  const ExerciseMenuDropdown = () => {
23
24
  const intl = reactIntl.useIntl();
25
+ const {
26
+ materialExerciseId
27
+ } = React__default["default"].useContext(context.ExerciseContext);
24
28
  const user = recoil.useRecoilValue(recoil$1.exerciseUserState);
29
+ const exercise = recoil.useRecoilValue(recoil$1.exerciseState(materialExerciseId));
30
+ const lecture = recoil.useRecoilValue(recoil$1.exerciseLectureState(exercise === null || exercise === void 0 ? void 0 : exercise.lectureId));
25
31
  const activeFilename = recoil.useRecoilValue(recoil$1.exerciseActiveFilenameState);
26
32
  const setRightpaneActiveState = recoil.useSetRecoilState(recoil$1.exerciseRightpaneActiveState);
27
33
  const [isSubmitHistoryModalOpen, setIsSubmitHistoryModalOpen] = React__default["default"].useState(false);
28
34
  const [isCodeHistoryModalOpen, setIsCodeHistoryModalOpen] = React__default["default"].useState(false);
29
35
  const [isExerciseRoomModalOpen, setIsExerciseRoomModalOpen] = React__default["default"].useState(false);
36
+ const isLectureTestInProgress = typeof (lecture === null || lecture === void 0 ? void 0 : lecture.testAdmissionStatus) !== 'undefined' && lecture.testAdmissionStatus === types.enums.TestAdmissionStatus.InProgress;
30
37
  /**
31
38
  *
32
39
  */
@@ -103,6 +110,7 @@ const ExerciseMenuDropdown = () => {
103
110
  label: intl.formatMessage({
104
111
  id: 'exerciseMenu.dropdown.item.room'
105
112
  }),
113
+ disabled: isLectureTestInProgress,
106
114
  onClick: () => setIsExerciseRoomModalOpen(true)
107
115
  }],
108
116
  size: "xsmall",
@@ -484,10 +484,14 @@ const ExerciseRunner = ({
484
484
 
485
485
 
486
486
  const renderXterm = () => {
487
+ // show system message when...
488
+ const showSystemMessage = // - run type is grade
489
+ runnerRunTypeState === types.enums.ExerciseRunType.Grade || // - not an arduino exercise
490
+ !isArduinoExercise;
487
491
  return React__default["default"].createElement(XtermLazy, {
488
492
  isRunning: wsRunnerRoom.isRunning,
489
493
  fontSize: editorPreferenceFontSize,
490
- suppressSystemMessage: isArduinoExercise,
494
+ suppressSystemMessage: !showSystemMessage,
491
495
  onInputRequest: handleXtermInputRequest,
492
496
  onTtyResizeRequest: wsStdio.sendTtyResize,
493
497
  locale: locale,
@@ -5,7 +5,7 @@ var designTokens = require('@elice/design-tokens');
5
5
  var monaco = require('monaco-editor/esm/vs/editor/editor.api');
6
6
  var styled = require('styled-components');
7
7
  var index$1 = require('./utils/grammar/index.js');
8
- var styles = require('./utils/remoteMarker/styles.js');
8
+ var styles = require('./vendors/monaco-collab-ext/styles.js');
9
9
  var preferences = require('./constants/monaco/preferences.js');
10
10
  var useMonacoEventChange = require('./editor-hooks/useMonacoEventChange.js');
11
11
  var useMonacoEventCursor = require('./editor-hooks/useMonacoEventCursor.js');
@@ -41,6 +41,12 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
41
41
  var monaco__namespace = /*#__PURE__*/_interopNamespace(monaco);
42
42
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
43
43
 
44
+ //
45
+ //
46
+ // pre-init monaco editor
47
+
48
+ index();
49
+ index$1().catch(console.warn); //
44
50
  //
45
51
  //
46
52
 
@@ -49,10 +55,7 @@ const StyledMonacoEditorWrapper = styled__default["default"].div.withConfig({
49
55
  })(["width:100%;height:100%;"]);
50
56
  const StyledMonacoEditor = styled__default["default"].div.withConfig({
51
57
  componentId: "sc-1j3uyex-1"
52
- })(["width:100%;height:100%;background-color:", ";", ""], designTokens.base.color.navy9, styles.cssRemoteMarker); //
53
- //
54
- //
55
-
58
+ })(["width:100%;height:100%;background-color:", ";", ""], designTokens.base.color.navy9, styles.cssRemoteMarker);
56
59
  /**
57
60
  *
58
61
  */
@@ -301,11 +304,8 @@ const MonacoEditor = React.forwardRef(({
301
304
  try {
302
305
  if (!editorElRef.current) {
303
306
  return;
304
- } // pre-config monaco editor
305
-
307
+ } // create monaco editor instance and render it.
306
308
 
307
- index();
308
- index$1().catch(console.warn); // create monaco editor instance and render it.
309
309
 
310
310
  editor.current = monaco__namespace.editor.create(editorElRef.current, Object.assign(Object.assign({}, editorOptions), {
311
311
  value: defaultValue,
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactUse = require('react-use');
7
- var RemoteCursorManager = require('../utils/remoteMarker/RemoteCursorManager.js');
8
- var RemoteSelectionManager = require('../utils/remoteMarker/RemoteSelectionManager.js');
9
- require('../utils/remoteMarker/styles.js');
7
+ var RemoteCursorManager = require('../vendors/monaco-collab-ext/RemoteCursorManager.js');
8
+ var RemoteSelectionManager = require('../vendors/monaco-collab-ext/RemoteSelectionManager.js');
9
+ require('../vendors/monaco-collab-ext/styles.js');
10
10
 
11
11
  /** Available colors for marker. */
12
12
 
@@ -6,4 +6,8 @@ export declare function setDocumentFormattingEditProvider(): void;
6
6
  * Set CSS options.
7
7
  */
8
8
  export declare function setOptions(): void;
9
+ /**
10
+ * Enable emmet feature.
11
+ */
12
+ export declare function setEnableFeatrueEmmet(): void;
9
13
  export default function (): void;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var monaco = require('monaco-editor/esm/vs/editor/editor.api');
6
+ var emmet = require('../../utils/emmet/emmet.js');
6
7
  var formatter = require('./formatter.js');
7
8
 
8
9
  function _interopNamespace(e) {
@@ -31,6 +32,8 @@ var monaco__namespace = /*#__PURE__*/_interopNamespace(monaco);
31
32
 
32
33
  function setDocumentFormattingEditProvider() {
33
34
  monaco__namespace.languages.registerDocumentFormattingEditProvider('css', formatter);
35
+ monaco__namespace.languages.registerDocumentFormattingEditProvider('scss', formatter);
36
+ monaco__namespace.languages.registerDocumentFormattingEditProvider('less', formatter);
34
37
  }
35
38
  /**
36
39
  * Set CSS options.
@@ -40,6 +43,13 @@ function setOptions() {
40
43
  monaco__namespace.languages.css.cssDefaults.setOptions({
41
44
  validate: false
42
45
  });
46
+ }
47
+ /**
48
+ * Enable emmet feature.
49
+ */
50
+
51
+ function setEnableFeatrueEmmet() {
52
+ emmet.emmetCSS(monaco__namespace, ['css', 'scss', 'less']);
43
53
  } //
44
54
  //
45
55
  //
@@ -47,8 +57,10 @@ function setOptions() {
47
57
  function css () {
48
58
  setDocumentFormattingEditProvider();
49
59
  setOptions();
60
+ setEnableFeatrueEmmet();
50
61
  }
51
62
 
52
63
  exports["default"] = css;
53
64
  exports.setDocumentFormattingEditProvider = setDocumentFormattingEditProvider;
65
+ exports.setEnableFeatrueEmmet = setEnableFeatrueEmmet;
54
66
  exports.setOptions = setOptions;
@@ -6,4 +6,8 @@ export declare function setDocumentFormattingEditProvider(): void;
6
6
  * Set HTML options.
7
7
  */
8
8
  export declare function setOptions(): void;
9
+ /**
10
+ * Enable emmet feature.
11
+ */
12
+ export declare function setEnableFeatrueEmmet(): void;
9
13
  export default function (): void;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var monaco = require('monaco-editor/esm/vs/editor/editor.api');
6
+ var emmet = require('../../utils/emmet/emmet.js');
6
7
  var formatter = require('./formatter.js');
7
8
 
8
9
  function _interopNamespace(e) {
@@ -38,6 +39,13 @@ function setDocumentFormattingEditProvider() {
38
39
 
39
40
  function setOptions() {
40
41
  monaco__namespace.languages.html.htmlDefaults.setOptions({});
42
+ }
43
+ /**
44
+ * Enable emmet feature.
45
+ */
46
+
47
+ function setEnableFeatrueEmmet() {
48
+ emmet.emmetHTML(monaco__namespace, ['html', 'handlebars', 'php']);
41
49
  } //
42
50
  //
43
51
  //
@@ -45,8 +53,10 @@ function setOptions() {
45
53
  function html () {
46
54
  setDocumentFormattingEditProvider();
47
55
  setOptions();
56
+ setEnableFeatrueEmmet();
48
57
  }
49
58
 
50
59
  exports["default"] = html;
51
60
  exports.setDocumentFormattingEditProvider = setDocumentFormattingEditProvider;
61
+ exports.setEnableFeatrueEmmet = setEnableFeatrueEmmet;
52
62
  exports.setOptions = setOptions;
@@ -4,10 +4,10 @@ var index = require('./css/index.js');
4
4
  var index$1 = require('./html/index.js');
5
5
  var index$2 = require('./typescript/index.js');
6
6
 
7
- function configEditorLanguages () {
7
+ function initMonacoLanguages () {
8
8
  index["default"]();
9
9
  index$1["default"]();
10
10
  index$2["default"]();
11
11
  }
12
12
 
13
- module.exports = configEditorLanguages;
13
+ module.exports = initMonacoLanguages;
@@ -22,4 +22,8 @@ export declare function setExernalLibs(): void;
22
22
  * Enables intelliSense for all files without needing an `addExtraLib` call.
23
23
  */
24
24
  export declare function setEagerModelSync(): void;
25
+ /**
26
+ * Enable emmet for JavaScript and TypeScript.
27
+ */
28
+ export declare function setEnableFeatrueEmmet(): void;
25
29
  export default function (): void;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var monaco = require('monaco-editor/esm/vs/editor/editor.api');
6
+ var emmet = require('../../utils/emmet/emmet.js');
6
7
  var express = require('./dts/express.js');
7
8
  var propTypes = require('./dts/propTypes.js');
8
9
  var react = require('./dts/react.js');
@@ -103,6 +104,13 @@ function setExernalLibs() {
103
104
  function setEagerModelSync() {
104
105
  monaco__namespace.languages.typescript.javascriptDefaults.setEagerModelSync(true);
105
106
  monaco__namespace.languages.typescript.typescriptDefaults.setEagerModelSync(true);
107
+ }
108
+ /**
109
+ * Enable emmet for JavaScript and TypeScript.
110
+ */
111
+
112
+ function setEnableFeatrueEmmet() {
113
+ emmet.emmetJSX(monaco__namespace, ['javascript', 'javascriptreact', 'typescript', 'typescriptreact']);
106
114
  } //
107
115
  //
108
116
  //
@@ -113,6 +121,7 @@ function typescript () {
113
121
  setDiagnosticsOptions();
114
122
  setExernalLibs();
115
123
  setEagerModelSync();
124
+ setEnableFeatrueEmmet();
116
125
  }
117
126
 
118
127
  exports["default"] = typescript;
@@ -120,4 +129,5 @@ exports.setCompilerOptions = setCompilerOptions;
120
129
  exports.setDiagnosticsOptions = setDiagnosticsOptions;
121
130
  exports.setDocumentFormattingEditProvider = setDocumentFormattingEditProvider;
122
131
  exports.setEagerModelSync = setEagerModelSync;
132
+ exports.setEnableFeatrueEmmet = setEnableFeatrueEmmet;
123
133
  exports.setExernalLibs = setExernalLibs;
@@ -0,0 +1,13 @@
1
+ import type * as Monaco from 'monaco-editor';
2
+ /**
3
+ * Enable emmet feature for HTML.
4
+ */
5
+ export declare function emmetHTML(monaco: typeof Monaco, languages: string[]): (() => void) | undefined;
6
+ /**
7
+ * Enable emmet feature for CSS.
8
+ */
9
+ export declare function emmetCSS(monaco: typeof Monaco, languages: string[]): (() => void) | undefined;
10
+ /**
11
+ * Enable emmet feature for JSX.
12
+ */
13
+ export declare function emmetJSX(monaco: typeof Monaco, languages: string[]): (() => void) | undefined;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var registerProvider = require('./registerProvider.js');
6
+
7
+ /**
8
+ * Enable emmet feature for HTML.
9
+ */
10
+
11
+ function emmetHTML(monaco, languages) {
12
+ return registerProvider.registerProvider(monaco, languages, 'html');
13
+ }
14
+ /**
15
+ * Enable emmet feature for CSS.
16
+ */
17
+
18
+ function emmetCSS(monaco, languages) {
19
+ return registerProvider.registerProvider(monaco, languages, 'css');
20
+ }
21
+ /**
22
+ * Enable emmet feature for JSX.
23
+ */
24
+
25
+ function emmetJSX(monaco, languages) {
26
+ return registerProvider.registerProvider(monaco, languages, 'jsx');
27
+ }
28
+
29
+ exports.emmetCSS = emmetCSS;
30
+ exports.emmetHTML = emmetHTML;
31
+ exports.emmetJSX = emmetJSX;
@@ -0,0 +1 @@
1
+ export * from './emmet';
@@ -0,0 +1,5 @@
1
+ import type * as Monaco from 'monaco-editor';
2
+ /**
3
+ * Register completion provider of emmet.
4
+ */
5
+ export declare function registerProvider(monaco: typeof Monaco, languages: string[], syntax: string): (() => void) | undefined;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var emmetHelper = require('../../vendors/vscode-emmet-helper/emmetHelper.js');
6
+ var utils = require('../../vendors/vscode-emmet-helper/utils.js');
7
+
8
+ /**
9
+ * Register completion provider of emmet.
10
+ */
11
+
12
+ function registerProvider(monaco, languages, syntax) {
13
+ if (!monaco) {
14
+ return;
15
+ }
16
+
17
+ const providers = languages.map(language => monaco.languages.registerCompletionItemProvider(language, {
18
+ triggerCharacters: utils.LANGUAGE_MODES[utils.MAPPED_MODES[language] || language],
19
+ provideCompletionItems: (model, position) => emmetHelper.doComplete(monaco, model, position, syntax, utils.DEFAULT_CONFIG)
20
+ }));
21
+ return () => {
22
+ providers.forEach(provider => provider.dispose());
23
+ };
24
+ }
25
+
26
+ exports.registerProvider = registerProvider;
@@ -52,11 +52,11 @@ function createGrammarRegistry() {
52
52
  */
53
53
 
54
54
 
55
- async function initGrammars () {
55
+ async function initMonacoGrammars () {
56
56
  await onigasm.initOnigasm();
57
57
  const grammars = createGrammarMap();
58
58
  const registry = createGrammarRegistry();
59
59
  await textmate.wireTmGrammars(registry, grammars);
60
60
  }
61
61
 
62
- module.exports = initGrammars;
62
+ module.exports = initMonacoGrammars;
@@ -25,8 +25,12 @@ function _interopNamespace(e) {
25
25
  */
26
26
 
27
27
  async function prettier (value, options) {
28
- const prettier = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('prettier/standalone')); });
29
- return prettier.format(value, Object.assign(Object.assign({}, options), config.prettierConfigSource.config));
28
+ try {
29
+ const prettier = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('prettier/standalone')); });
30
+ return prettier.format(value, Object.assign(Object.assign({}, options), config.prettierConfigSource.config));
31
+ } catch (_) {
32
+ return value;
33
+ }
30
34
  }
31
35
 
32
36
  module.exports = prettier;
@@ -0,0 +1,15 @@
1
+ export interface SnippetsMap {
2
+ [name: string]: string;
3
+ }
4
+ /**
5
+ * Parses raw snippets definitions with possibly multiple keys into a plan
6
+ * snippet map
7
+ */
8
+ export declare function parseSnippets(snippets: SnippetsMap): SnippetsMap;
9
+ /**
10
+ * List of all known syntaxes
11
+ */
12
+ export declare const syntaxes: {
13
+ markup: string[];
14
+ stylesheet: string[];
15
+ };
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /* eslint-disable */
6
+ /**
7
+ * List of all known syntaxes
8
+ */
9
+
10
+ const syntaxes = {
11
+ markup: ['html', 'xml', 'xsl', 'jsx', 'js', 'pug', 'slim', 'haml'],
12
+ stylesheet: ['css', 'sass', 'scss', 'less', 'sss', 'stylus']
13
+ };
14
+
15
+ exports.syntaxes = syntaxes;
@@ -0,0 +1,6 @@
1
+ export declare const cssData: {
2
+ properties: string[];
3
+ };
4
+ export declare const htmlData: {
5
+ tags: string[];
6
+ };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /* eslint-disable */
6
+
7
+ /* ====================================================================================================
8
+ * These codes forked and modified from `microsoft/vscode-emmet-helper`
9
+ * under the terms of the MIT license.
10
+ * Make sure to check the original project if any issue exists.
11
+ * - project: https://github.com/microsoft/vscode-emmet-helper
12
+ * - codes: https://github.com/microsoft/vscode-emmet-helper/blob/e64481648451f0189216794979ce2ace82ee8148/src/data.ts
13
+ * ==================================================================================================== */
14
+ const cssData = {
15
+ "properties": ["additive-symbols", "align-content", "align-items", "justify-items", "justify-self", "justify-items", "align-self", "all", "alt", "animation", "animation-delay", "animation-direction", "animation-duration", "animation-fill-mode", "animation-iteration-count", "animation-name", "animation-play-state", "animation-timing-function", "backface-visibility", "background", "background-attachment", "background-blend-mode", "background-clip", "background-color", "background-image", "background-origin", "background-position", "background-position-x", "background-position-y", "background-repeat", "background-size", "behavior", "block-size", "border", "border-block-end", "border-block-start", "border-block-end-color", "border-block-start-color", "border-block-end-style", "border-block-start-style", "border-block-end-width", "border-block-start-width", "border-bottom", "border-bottom-color", "border-bottom-left-radius", "border-bottom-right-radius", "border-bottom-style", "border-bottom-width", "border-collapse", "border-color", "border-image", "border-image-outset", "border-image-repeat", "border-image-slice", "border-image-source", "border-image-width", "border-inline-end", "border-inline-start", "border-inline-end-color", "border-inline-start-color", "border-inline-end-style", "border-inline-start-style", "border-inline-end-width", "border-inline-start-width", "border-left", "border-left-color", "border-left-style", "border-left-width", "border-radius", "border-right", "border-right-color", "border-right-style", "border-right-width", "border-spacing", "border-style", "border-top", "border-top-color", "border-top-left-radius", "border-top-right-radius", "border-top-style", "border-top-width", "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", "caption-side", "caret-color", "clear", "clip", "clip-path", "clip-rule", "color", "color-interpolation-filters", "column-count", "column-fill", "column-gap", "column-rule", "column-rule-color", "column-rule-style", "column-rule-width", "columns", "column-span", "column-width", "contain", "content", "counter-increment", "counter-reset", "cursor", "direction", "display", "empty-cells", "enable-background", "fallback", "fill", "fill-opacity", "fill-rule", "filter", "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", "float", "flood-color", "flood-opacity", "font", "font-family", "font-feature-settings", "font-kerning", "font-language-override", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-synthesis", "font-variant", "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", "font-variant-position", "font-weight", "glyph-orientation-horizontal", "glyph-orientation-vertical", "grid-area", "grid-auto-columns", "grid-auto-flow", "grid-auto-rows", "grid-column", "grid-column-end", "grid-column-gap", "grid-column-start", "grid-gap", "grid-row", "grid-row-end", "grid-row-gap", "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns", "grid-template-rows", "height", "hyphens", "image-orientation", "image-rendering", "ime-mode", "inline-size", "isolation", "justify-content", "kerning", "left", "letter-spacing", "lighting-color", "line-break", "line-height", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", "margin-block-end", "margin-block-start", "margin-bottom", "margin-inline-end", "margin-inline-start", "margin-left", "margin-right", "margin-top", "marker", "marker-end", "marker-mid", "marker-start", "mask-type", "max-block-size", "max-height", "max-inline-size", "max-width", "min-block-size", "min-height", "min-inline-size", "min-width", "mix-blend-mode", "motion", "motion-offset", "motion-path", "motion-rotation", "-moz-animation", "-moz-animation-delay", "-moz-animation-direction", "-moz-animation-duration", "-moz-animation-iteration-count", "-moz-animation-name", "-moz-animation-play-state", "-moz-animation-timing-function", "-moz-appearance", "-moz-backface-visibility", "-moz-background-clip", "-moz-background-inline-policy", "-moz-background-origin", "-moz-border-bottom-colors", "-moz-border-image", "-moz-border-left-colors", "-moz-border-right-colors", "-moz-border-top-colors", "-moz-box-align", "-moz-box-direction", "-moz-box-flex", "-moz-box-flexgroup", "-moz-box-ordinal-group", "-moz-box-orient", "-moz-box-pack", "-moz-box-sizing", "-moz-column-count", "-moz-column-gap", "-moz-column-rule", "-moz-column-rule-color", "-moz-column-rule-style", "-moz-column-rule-width", "-moz-columns", "-moz-column-width", "-moz-font-feature-settings", "-moz-hyphens", "-moz-perspective", "-moz-perspective-origin", "-moz-text-align-last", "-moz-text-decoration-color", "-moz-text-decoration-line", "-moz-text-decoration-style", "-moz-text-size-adjust", "-moz-transform", "-moz-transform-origin", "-moz-transition", "-moz-transition-delay", "-moz-transition-duration", "-moz-transition-property", "-moz-transition-timing-function", "-moz-user-focus", "-moz-user-select", "-ms-accelerator", "-ms-behavior", "-ms-block-progression", "-ms-content-zoom-chaining", "-ms-content-zooming", "-ms-content-zoom-limit", "-ms-content-zoom-limit-max", "-ms-content-zoom-limit-min", "-ms-content-zoom-snap", "-ms-content-zoom-snap-points", "-ms-content-zoom-snap-type", "-ms-filter", "-ms-flex", "-ms-flex-align", "-ms-flex-direction", "-ms-flex-flow", "-ms-flex-item-align", "-ms-flex-line-pack", "-ms-flex-order", "-ms-flex-pack", "-ms-flex-wrap", "-ms-flow-from", "-ms-flow-into", "-ms-grid-column", "-ms-grid-column-align", "-ms-grid-columns", "-ms-grid-column-span", "-ms-grid-layer", "-ms-grid-row", "-ms-grid-row-align", "-ms-grid-rows", "-ms-grid-row-span", "-ms-high-contrast-adjust", "-ms-hyphenate-limit-chars", "-ms-hyphenate-limit-lines", "-ms-hyphenate-limit-zone", "-ms-hyphens", "-ms-ime-mode", "-ms-interpolation-mode", "-ms-layout-grid", "-ms-layout-grid-char", "-ms-layout-grid-line", "-ms-layout-grid-mode", "-ms-layout-grid-type", "-ms-line-break", "-ms-overflow-style", "-ms-perspective", "-ms-perspective-origin", "-ms-perspective-origin-x", "-ms-perspective-origin-y", "-ms-progress-appearance", "-ms-scrollbar-3dlight-color", "-ms-scrollbar-arrow-color", "-ms-scrollbar-base-color", "-ms-scrollbar-darkshadow-color", "-ms-scrollbar-face-color", "-ms-scrollbar-highlight-color", "-ms-scrollbar-shadow-color", "-ms-scrollbar-track-color", "-ms-scroll-chaining", "-ms-scroll-limit", "-ms-scroll-limit-x-max", "-ms-scroll-limit-x-min", "-ms-scroll-limit-y-max", "-ms-scroll-limit-y-min", "-ms-scroll-rails", "-ms-scroll-snap-points-x", "-ms-scroll-snap-points-y", "-ms-scroll-snap-type", "-ms-scroll-snap-x", "-ms-scroll-snap-y", "-ms-scroll-translation", "-ms-text-align-last", "-ms-text-autospace", "-ms-text-combine-horizontal", "-ms-text-justify", "-ms-text-kashida-space", "-ms-text-overflow", "-ms-text-size-adjust", "-ms-text-underline-position", "-ms-touch-action", "-ms-touch-select", "-ms-transform", "-ms-transform-origin", "-ms-transform-origin-x", "-ms-transform-origin-y", "-ms-transform-origin-z", "-ms-user-select", "-ms-word-break", "-ms-word-wrap", "-ms-wrap-flow", "-ms-wrap-margin", "-ms-wrap-through", "-ms-writing-mode", "-ms-zoom", "-ms-zoom-animation", "nav-down", "nav-index", "nav-left", "nav-right", "nav-up", "negative", "-o-animation", "-o-animation-delay", "-o-animation-direction", "-o-animation-duration", "-o-animation-fill-mode", "-o-animation-iteration-count", "-o-animation-name", "-o-animation-play-state", "-o-animation-timing-function", "object-fit", "object-position", "-o-border-image", "-o-object-fit", "-o-object-position", "opacity", "order", "orphans", "-o-table-baseline", "-o-tab-size", "-o-text-overflow", "-o-transform", "-o-transform-origin", "-o-transition", "-o-transition-delay", "-o-transition-duration", "-o-transition-property", "-o-transition-timing-function", "offset-block-end", "offset-block-start", "offset-inline-end", "offset-inline-start", "outline", "outline-color", "outline-offset", "outline-style", "outline-width", "overflow", "overflow-wrap", "overflow-x", "overflow-y", "pad", "padding", "padding-bottom", "padding-block-end", "padding-block-start", "padding-inline-end", "padding-inline-start", "padding-left", "padding-right", "padding-top", "page-break-after", "page-break-before", "page-break-inside", "paint-order", "perspective", "perspective-origin", "pointer-events", "position", "prefix", "quotes", "range", "resize", "right", "ruby-align", "ruby-overhang", "ruby-position", "ruby-span", "scrollbar-3dlight-color", "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-darkshadow-color", "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color", "scrollbar-track-color", "scroll-behavior", "scroll-snap-coordinate", "scroll-snap-destination", "scroll-snap-points-x", "scroll-snap-points-y", "scroll-snap-type", "shape-image-threshold", "shape-margin", "shape-outside", "shape-rendering", "size", "src", "stop-color", "stop-opacity", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "suffix", "system", "symbols", "table-layout", "tab-size", "text-align", "text-align-last", "text-anchor", "text-decoration", "text-decoration-color", "text-decoration-line", "text-decoration-style", "text-indent", "text-justify", "text-orientation", "text-overflow", "text-rendering", "text-shadow", "text-transform", "text-underline-position", "top", "touch-action", "transform", "transform-origin", "transform-style", "transition", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "unicode-bidi", "unicode-range", "user-select", "vertical-align", "visibility", "-webkit-animation", "-webkit-animation-delay", "-webkit-animation-direction", "-webkit-animation-duration", "-webkit-animation-fill-mode", "-webkit-animation-iteration-count", "-webkit-animation-name", "-webkit-animation-play-state", "-webkit-animation-timing-function", "-webkit-appearance", "-webkit-backdrop-filter", "-webkit-backface-visibility", "-webkit-background-clip", "-webkit-background-composite", "-webkit-background-origin", "-webkit-border-image", "-webkit-box-align", "-webkit-box-direction", "-webkit-box-flex", "-webkit-box-flex-group", "-webkit-box-ordinal-group", "-webkit-box-orient", "-webkit-box-pack", "-webkit-box-reflect", "-webkit-box-sizing", "-webkit-break-after", "-webkit-break-before", "-webkit-break-inside", "-webkit-column-break-after", "-webkit-column-break-before", "-webkit-column-break-inside", "-webkit-column-count", "-webkit-column-gap", "-webkit-column-rule", "-webkit-column-rule-color", "-webkit-column-rule-style", "-webkit-column-rule-width", "-webkit-columns", "-webkit-column-span", "-webkit-column-width", "-webkit-filter", "-webkit-flow-from", "-webkit-flow-into", "-webkit-font-feature-settings", "-webkit-hyphens", "-webkit-line-break", "-webkit-margin-bottom-collapse", "-webkit-margin-collapse", "-webkit-margin-start", "-webkit-margin-top-collapse", "-webkit-mask-clip", "-webkit-mask-image", "-webkit-mask-origin", "-webkit-mask-repeat", "-webkit-mask-size", "-webkit-nbsp-mode", "-webkit-overflow-scrolling", "-webkit-padding-start", "-webkit-perspective", "-webkit-perspective-origin", "-webkit-region-fragment", "-webkit-tap-highlight-color", "-webkit-text-fill-color", "-webkit-text-size-adjust", "-webkit-text-stroke", "-webkit-text-stroke-color", "-webkit-text-stroke-width", "-webkit-touch-callout", "-webkit-transform", "-webkit-transform-origin", "-webkit-transform-origin-x", "-webkit-transform-origin-y", "-webkit-transform-origin-z", "-webkit-transform-style", "-webkit-transition", "-webkit-transition-delay", "-webkit-transition-duration", "-webkit-transition-property", "-webkit-transition-timing-function", "-webkit-user-drag", "-webkit-user-modify", "-webkit-user-select", "white-space", "widows", "width", "will-change", "word-break", "word-spacing", "word-wrap", "writing-mode", "z-index", "zoom"]
16
+ };
17
+ const htmlData = {
18
+ "tags": ["body", "head", "html", "address", "blockquote", "dd", "div", "section", "article", "aside", "header", "footer", "nav", "menu", "dl", "dt", "fieldset", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "iframe", "noframes", "object", "ol", "p", "ul", "applet", "center", "dir", "hr", "pre", "a", "abbr", "acronym", "area", "b", "base", "basefont", "bdo", "big", "br", "button", "caption", "cite", "code", "col", "colgroup", "del", "dfn", "em", "font", "i", "img", "input", "ins", "isindex", "kbd", "label", "legend", "li", "link", "map", "meta", "noscript", "optgroup", "option", "param", "q", "s", "samp", "script", "select", "small", "span", "strike", "strong", "style", "sub", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "title", "tr", "tt", "u", "var", "canvas", "main", "figure", "plaintext", "figcaption", "hgroup", "details", "summary"]
19
+ };
20
+
21
+ exports.cssData = cssData;
22
+ exports.htmlData = htmlData;
@@ -0,0 +1,96 @@
1
+ import type * as Monaco from 'monaco-editor';
2
+ import type { ExtractOptions, MarkupAbbreviation, Options, StylesheetAbbreviation, SyntaxType, UserConfig } from 'emmet';
3
+ import type { SnippetsMap } from './configCompat';
4
+ declare type TextModel = Monaco.editor.ITextModel;
5
+ declare type CompletionList = Monaco.languages.CompletionList;
6
+ declare type Position = Monaco.IPosition;
7
+ declare type Range = Monaco.IRange;
8
+ /**
9
+ * Emmet configuration as derived from the Emmet related VS Code settings
10
+ */
11
+ export interface VSCodeEmmetConfig {
12
+ showExpandedAbbreviation?: string;
13
+ showAbbreviationSuggestions?: boolean;
14
+ syntaxProfiles?: object;
15
+ variables?: object;
16
+ preferences?: object;
17
+ excludeLanguages?: string[];
18
+ showSuggestionsAsSnippets?: boolean;
19
+ }
20
+ /**
21
+ * Returns all applicable emmet expansions for abbreviation at given position in a CompletionList
22
+ * @param document TextDocument in which completions are requested
23
+ * @param position Position in the document at which completions are requested
24
+ * @param syntax Emmet supported language
25
+ * @param emmetConfig Emmet Configurations as derived from VS Code
26
+ */
27
+ export declare function doComplete(monaco: typeof Monaco, model: TextModel, position: Position, syntax: string, emmetConfig: VSCodeEmmetConfig): CompletionList | undefined;
28
+ export declare const emmetSnippetField: (index: number, placeholder: string) => string;
29
+ /** Returns whether or not syntax is a supported stylesheet syntax, like CSS */
30
+ export declare function isStyleSheet(syntax: string): boolean;
31
+ /** Returns the syntax type, either markup (e.g. for HTML) or stylesheet (e.g. for CSS) */
32
+ export declare function getSyntaxType(syntax: string): SyntaxType;
33
+ /** Returns the default syntax (html or css) to use for the snippets registry */
34
+ export declare function getDefaultSyntax(syntax: string): string;
35
+ /** Returns the default snippets that Emmet suggests */
36
+ export declare function getDefaultSnippets(syntax: string): SnippetsMap;
37
+ /**
38
+ * Extracts abbreviation from the given position in the given document
39
+ */
40
+ export declare function extractAbbreviation(monaco: typeof Monaco, model: TextModel, position: Position, options?: Partial<ExtractOptions>): {
41
+ abbreviation: string;
42
+ abbreviationRange: Range;
43
+ filter: string | undefined;
44
+ } | undefined;
45
+ /**
46
+ * Extracts abbreviation from the given text
47
+ * @param text Text from which abbreviation needs to be extracted
48
+ * @param syntax Syntax used to extract the abbreviation from the given text
49
+ */
50
+ export declare function extractAbbreviationFromText(text: string, syntax: string): {
51
+ abbreviation: string;
52
+ filter: string | undefined;
53
+ } | undefined;
54
+ /**
55
+ * Returns a boolean denoting validity of given abbreviation in the context of given syntax
56
+ * Not needed once https://github.com/emmetio/atom-plugin/issues/22 is fixed
57
+ * @param syntax string
58
+ * @param abbreviation string
59
+ */
60
+ export declare function isAbbreviationValid(syntax: string, abbreviation: string): boolean;
61
+ declare type ExpandOptionsConfig = {
62
+ type: SyntaxType;
63
+ options: Partial<Options>;
64
+ variables: SnippetsMap;
65
+ snippets: SnippetsMap;
66
+ syntax: string;
67
+ text: string | string[] | undefined;
68
+ maxRepeat: number;
69
+ };
70
+ /**
71
+ * Returns options to be used by emmet
72
+ */
73
+ export declare function getExpandOptions(syntax: string, emmetConfig?: VSCodeEmmetConfig, filter?: string): ExpandOptionsConfig;
74
+ /**
75
+ * Parses given abbreviation using given options and returns a tree
76
+ * @param abbreviation string
77
+ * @param options options used by the emmet module to parse given abbreviation
78
+ */
79
+ export declare function parseAbbreviation(abbreviation: string, options: UserConfig): StylesheetAbbreviation | MarkupAbbreviation;
80
+ /**
81
+ * Expands given abbreviation using given options
82
+ * @param abbreviation string or parsed abbreviation
83
+ * @param config options used by the @emmetio/expand-abbreviation module to expand given abbreviation
84
+ */
85
+ export declare function expandAbbreviation(abbreviation: string | MarkupAbbreviation | StylesheetAbbreviation, config: UserConfig): string;
86
+ /**
87
+ * Get the corresponding emmet mode for given vscode language mode
88
+ * Eg: jsx for typescriptreact/javascriptreact or pug for jade
89
+ * If the language is not supported by emmet or has been exlcuded via `exlcudeLanguages` setting,
90
+ * then nothing is returned
91
+ *
92
+ * @param language
93
+ * @param exlcudedLanguages Array of language ids that user has chosen to exlcude for emmet
94
+ */
95
+ export declare function getEmmetMode(language: string, excludedLanguages?: string[]): string | undefined;
96
+ export {};