@@ -2,16 +2,17 @@ import { useColorMode } from "@docusaurus/theme-common";
22import clsx from "clsx" ;
33import React , { useCallback , useContext , useMemo , useState } from "react" ;
44import { JSONTree } from "react-json-tree" ;
5- import MonacoEditor , { OnChange , OnMount } from "@monaco-editor/react" ;
5+ import MonacoEditor , { BeforeMount , OnChange , OnMount } from "@monaco-editor/react" ;
66import tstlPackageJson from "typescript-to-lua/package.json" ;
77import tsPackageJson from "typescript/package.json" ;
88import { debounce } from "../../utils" ;
9- import { getInitialCode , getInitialLua , updateCodeHistory } from "./code" ;
9+ import { getInitialCode , updateCodeHistory } from "./code" ;
1010import { ConsoleMessage , executeLua } from "./execute" ;
1111import { monaco , useMonacoTheme } from "./monaco" ;
1212import styles from "./styles.module.scss" ;
1313import { jsonTreeTheme } from "./themes" ;
1414import type { CustomTypeScriptWorker } from "./ts.worker" ;
15+ import { baseCompilerOptions } from "./compilerConfig" ;
1516
1617enum PanelKind {
1718 Input ,
@@ -90,6 +91,34 @@ function InputPane() {
9091 [ ] ,
9192 ) ;
9293
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+
93122 const { activePanel } = useContext ( PanelContext ) ;
94123
95124 return (
@@ -99,6 +128,7 @@ function InputPane() {
99128 language = "typescript"
100129 defaultValue = { getInitialCode ( ) }
101130 options = { commonMonacoOptions }
131+ beforeMount = { beforeMount }
102132 onMount = { onMount }
103133 onChange = { onChange }
104134 />
@@ -180,7 +210,7 @@ function OutputPane() {
180210 < MonacoEditor
181211 theme = { theme }
182212 language = "lua"
183- defaultValue = { getInitialLua ( ) }
213+ defaultValue = "starting transpiler..."
184214 value = { lua }
185215 options = { {
186216 ...commonMonacoOptions ,
0 commit comments