@Override
  protected void doSetText(XExpression text) {
    myExpression = text;
    // set a dummy document immediately
    DocumentImpl dummyDocument = new DocumentImpl(text.getExpression());
    dummyDocument.putUserData(DUMMY_DOCUMENT, true);
    myEditor.getEditorTextField().setNewDocumentAndFileType(getFileType(text), dummyDocument);
    // schedule the real document creation
    ReadAction.nonBlocking(() -> createDocument(text))
      .inSmartMode(getProject())
      .finishOnUiThread(ModalityState.any(), document -> {
        myEditor.getEditorTextField().setNewDocumentAndFileType(getFileType(text), document);
        getEditorsProvider().afterEditorCreated(getEditor());
      })
      .coalesceBy(this)
      .submit(AppExecutorUtil.getAppExecutorService());
  }
@Override
  protected void doSetText(XExpression text)