@@ -2,16 +2,17 @@ import { useColorMode } from "@docusaurus/theme-common";
2
2
import clsx from "clsx" ;
3
3
import React , { useCallback , useContext , useMemo , useState } from "react" ;
4
4
import { JSONTree } from "react-json-tree" ;
5
- import MonacoEditor , { OnChange , OnMount } from "@monaco-editor/react" ;
5
+ import MonacoEditor , { BeforeMount , OnChange , OnMount } from "@monaco-editor/react" ;
6
6
import tstlPackageJson from "typescript-to-lua/package.json" ;
7
7
import tsPackageJson from "typescript/package.json" ;
8
8
import { debounce } from "../../utils" ;
9
- import { getInitialCode , getInitialLua , updateCodeHistory } from "./code" ;
9
+ import { getInitialCode , updateCodeHistory } from "./code" ;
10
10
import { ConsoleMessage , executeLua } from "./execute" ;
11
11
import { monaco , useMonacoTheme } from "./monaco" ;
12
12
import styles from "./styles.module.scss" ;
13
13
import { jsonTreeTheme } from "./themes" ;
14
14
import type { CustomTypeScriptWorker } from "./ts.worker" ;
15
+ import { baseCompilerOptions } from "./compilerConfig" ;
15
16
16
17
enum PanelKind {
17
18
Input ,
@@ -90,6 +91,34 @@ function InputPane() {
90
91
[ ] ,
91
92
) ;
92
93
94
+ const beforeMount : BeforeMount = ( monaco ) => {
95
+ monaco . languages . typescript . typescriptDefaults . setCompilerOptions ( {
96
+ ...monaco . languages . typescript . typescriptDefaults . getCompilerOptions ( ) ,
97
+ ...baseCompilerOptions ,
98
+ } ) ;
99
+
100
+ // // TODO: Generate it from lua-types/5.4.d.ts
101
+ for ( const module of [
102
+ require ( "!!raw-loader!@typescript-to-lua/language-extensions/index.d.ts" ) ,
103
+ require ( "!!raw-loader!lua-types/core/coroutine.d.ts" ) ,
104
+ require ( "!!raw-loader!lua-types/core/global.d.ts" ) ,
105
+ require ( "!!raw-loader!lua-types/core/math.d.ts" ) ,
106
+ require ( "!!raw-loader!lua-types/core/metatable.d.ts" ) ,
107
+ require ( "!!raw-loader!lua-types/core/string.d.ts" ) ,
108
+ require ( "!!raw-loader!lua-types/core/table.d.ts" ) ,
109
+ require ( "!!raw-loader!lua-types/core/coroutine.d.ts" ) ,
110
+ require ( "!!raw-loader!lua-types/core/coroutine.d.ts" ) ,
111
+ require ( "!!raw-loader!lua-types/core/coroutine.d.ts" ) ,
112
+ require ( "!!raw-loader!lua-types/core/coroutine.d.ts" ) ,
113
+ require ( "!!raw-loader!lua-types/special/5.2-plus.d.ts" ) ,
114
+ require ( "!!raw-loader!lua-types/special/5.2-plus-or-jit.d.ts" ) ,
115
+ require ( "!!raw-loader!lua-types/special/5.3-plus.d.ts" ) ,
116
+ require ( "!!raw-loader!lua-types/special/5.4-pre.d.ts" ) ,
117
+ ] ) {
118
+ monaco . languages . typescript . typescriptDefaults . addExtraLib ( module . default ) ;
119
+ }
120
+ } ;
121
+
93
122
const { activePanel } = useContext ( PanelContext ) ;
94
123
95
124
return (
@@ -99,6 +128,7 @@ function InputPane() {
99
128
language = "typescript"
100
129
defaultValue = { getInitialCode ( ) }
101
130
options = { commonMonacoOptions }
131
+ beforeMount = { beforeMount }
102
132
onMount = { onMount }
103
133
onChange = { onChange }
104
134
/>
@@ -180,7 +210,7 @@ function OutputPane() {
180
210
< MonacoEditor
181
211
theme = { theme }
182
212
language = "lua"
183
- defaultValue = { getInitialLua ( ) }
213
+ defaultValue = "starting transpiler..."
184
214
value = { lua }
185
215
options = { {
186
216
...commonMonacoOptions ,
0 commit comments