useMonaco

Get monaco namespace asynchronously, the same as to do import * as monaco from 'monaco-editor'.

This composable can run everywhere you want, but if called on:

  • Client-side: Returns monaco namespace after loaded.
  • Server-side: Returns null

If you want to import types or interfaces from monaco-editor, you should do type-only import. For example:

import type { 
ISelection
} from 'monaco-editor'

Example

const 
monaco
= await
useMonaco
()
const
editorEl
=
useTemplateRef
<
HTMLDivElement
>('editor')
watchEffect
(() => {
if(
monaco
&&
editorEl
.
value
) {
monaco
.
editor
.
create
(
editorEl
.
value
, {
language
: 'typescript' })
} })