void (final @NotNull Editor editor, final @NotNull PsiFile file, final boolean expandPrimitiveAbbreviations) { editor.getDocument().addDocumentListener(new DocumentListener() { @Override public void documentChanged(@NotNull DocumentEvent e) { EmmetPreviewHint existingHint = EmmetPreviewHint.getExistingHint(editor); if (existingHint != null) { existingHint.updateText(new TemplateTextProducer(editor, file, expandPrimitiveAbbreviations)); } else { e.getDocument().removeDocumentListener(this); } } }); editor.getCaretModel().addCaretListener(new CaretListener() { @Override public void caretPositionChanged(@NotNull CaretEvent e) { EmmetPreviewHint existingHint = EmmetPreviewHint.getExistingHint(e.getEditor()); if (existingHint != null) { existingHint.updateText(new TemplateTextProducer(editor, file, expandPrimitiveAbbreviations)); } else { e.getEditor().getCaretModel().removeCaretListener(this); } } }); }