File tree 4 files changed +21
-2
lines changed
4 files changed +21
-2
lines changed Original file line number Diff line number Diff line change 9
9
injectKeyProps ,
10
10
} from ' ./types'
11
11
import EditorContainer from ' ./editor/EditorContainer.vue'
12
+ import type * as monaco from ' monaco-editor-core'
12
13
13
14
export interface Props {
14
15
theme? : ' dark' | ' light'
@@ -37,6 +38,7 @@ export interface Props {
37
38
}
38
39
editorOptions? : {
39
40
showErrorText? : string
41
+ monacoOptions? : monaco .editor .IStandaloneEditorConstructionOptions
40
42
}
41
43
splitPaneOptions? : {
42
44
CodeTogglerButtonText? : string
Original file line number Diff line number Diff line change @@ -35,7 +35,12 @@ const emit = defineEmits<{
35
35
const containerRef = ref <HTMLDivElement >()
36
36
const ready = ref (false )
37
37
const editor = shallowRef <monaco .editor .IStandaloneCodeEditor >()
38
- const { store, autoSave, theme : replTheme } = inject (injectKeyProps )!
38
+ const {
39
+ store,
40
+ autoSave,
41
+ theme : replTheme,
42
+ editorOptions,
43
+ } = inject (injectKeyProps )!
39
44
40
45
initMonaco (store .value )
41
46
@@ -67,6 +72,7 @@ onMounted(async () => {
67
72
enabled: false ,
68
73
},
69
74
fixedOverflowWidgets: true ,
75
+ ... editorOptions .value .monacoOptions ,
70
76
})
71
77
editor .value = editorInstance
72
78
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import type { CreateData } from './vue.worker'
8
8
import vueWorker from './vue.worker?worker'
9
9
import * as languageConfigs from './language-configs'
10
10
import type { LanguageService } from '@vue/language-service'
11
+ import { debounce } from '../utils'
11
12
12
13
let initted = false
13
14
export function initMonaco ( store : Store ) {
@@ -155,7 +156,12 @@ export function loadMonacoEnv(store: Store) {
155
156
languages . setLanguageConfiguration ( 'typescript' , languageConfigs . ts )
156
157
languages . setLanguageConfiguration ( 'css' , languageConfigs . css )
157
158
158
- store . reloadLanguageTools = ( ) => reloadLanguageTools ( store )
159
+ let languageToolsPromise : Promise < void > | undefined
160
+ store . reloadLanguageTools = debounce ( async ( ) => {
161
+ ; ( languageToolsPromise ||= reloadLanguageTools ( store ) ) . finally ( ( ) => {
162
+ languageToolsPromise = undefined
163
+ } )
164
+ } , 250 )
159
165
languages . onLanguage ( 'vue' , ( ) => store . reloadLanguageTools ! ( ) )
160
166
161
167
// Support for go to definition
Original file line number Diff line number Diff line change @@ -72,6 +72,11 @@ const App = {
72
72
// OutputTogglerButtonText: '输出 >',
73
73
// },
74
74
// isEmbedMode: true,
75
+ editorOptions : {
76
+ monacoOptions : {
77
+ // wordWrap: 'on',
78
+ } ,
79
+ } ,
75
80
} )
76
81
} ,
77
82
}
You can’t perform that action at this time.
0 commit comments