1
1
import type * as monaco from "monaco-editor" ;
2
- import parserCSS from "prettier/parser-postcss" ;
3
- import parserTypescript from "prettier/parser-typescript" ;
4
- import prettier from "prettier/standalone" ;
5
2
import { diffToMonacoTextEdits } from "./diffToMonacoTextEdits" ;
6
3
7
- // TODO: move to shared webworker or host frame?
4
+ // TODO: move prettier to shared webworker or host frame?
8
5
export function setupPrettier ( monacoInstance : typeof monaco ) {
9
6
monacoInstance . languages . registerDocumentFormattingEditProvider (
10
7
"typescript" ,
11
8
{
12
- provideDocumentFormattingEdits ( model , options , token ) {
9
+ async provideDocumentFormattingEdits ( model , options , token ) {
13
10
try {
11
+ const prettier = await import ( "prettier/standalone" ) ;
12
+ const parserTypescript = await import ( "prettier/parser-typescript" ) ;
14
13
const newText = prettier . format ( model . getValue ( ) , {
15
14
parser : "typescript" ,
16
15
plugins : [ parserTypescript ] ,
@@ -33,7 +32,9 @@ export function setupPrettier(monacoInstance: typeof monaco) {
33
32
) ;
34
33
35
34
monacoInstance . languages . registerDocumentFormattingEditProvider ( "css" , {
36
- provideDocumentFormattingEdits ( model , options , token ) {
35
+ async provideDocumentFormattingEdits ( model , options , token ) {
36
+ const prettier = await import ( "prettier/standalone" ) ;
37
+ const parserCSS = await import ( "prettier/parser-postcss" ) ;
37
38
try {
38
39
const newText = prettier . format ( model . getValue ( ) , {
39
40
parser : "css" ,
0 commit comments