下面列出了怎么用com.intellij.openapi.editor.event.EditorEventMulticaster的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void runActivity(@NotNull Project project) {
if (!ApplicationManager.getApplication().isHeadlessEnvironment()) {
final EditorEventMulticaster eventMulticaster = EditorFactory.getInstance().getEventMulticaster();
final PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(project);
eventMulticaster.addCaretListener(new CaretListener() {
@Override
public void caretPositionChanged(CaretEvent e) {
final PsiFile psiFile = psiDocumentManager.getPsiFile(e.getEditor().getDocument());
if (psiFile instanceof GraphQLFile) {
int offset = e.getEditor().logicalPositionToOffset(e.getNewPosition());
psiFile.putUserData(CARET_OFFSET, offset);
}
}
}, project);
}
}
public WidgetIndentsHighlightingPassFactory(@NotNull Project project) {
this.project = project;
flutterDartAnalysisService = FlutterDartAnalysisServer.getInstance(project);
this.editorOutlineService = ActiveEditorsOutlineService.getInstance(project);
this.inspectorGroupManagerService = InspectorGroupManagerService.getInstance(project);
this.editorEventService = EditorMouseEventService.getInstance(project);
this.editorPositionService = EditorPositionService.getInstance(project);
this.settingsListener = new SettingsListener();
this.outlineListener = this::updateEditor;
TextEditorHighlightingPassRegistrar.getInstance(project)
.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.AFTER, Pass.UPDATE_FOLDING, false, false);
syncSettings(FlutterSettings.getInstance());
FlutterSettings.getInstance().addListener(settingsListener);
final EditorEventMulticaster eventMulticaster = EditorFactory.getInstance().getEventMulticaster();
eventMulticaster.addCaretListener(new CaretListener() {
@Override
public void caretPositionChanged(@NotNull CaretEvent event) {
final Editor editor = event.getEditor();
if (editor.getProject() != project) return;
if (editor.isDisposed() || project.isDisposed()) return;
if (!(editor instanceof EditorEx)) return;
final EditorEx editorEx = (EditorEx)editor;
WidgetIndentsHighlightingPass.onCaretPositionChanged(editorEx, event.getCaret());
}
}, this);
editorOutlineService.addListener(outlineListener);
}
public WidgetIndentsHighlightingPassFactory(@NotNull Project project) {
this.project = project;
flutterDartAnalysisService = FlutterDartAnalysisServer.getInstance(project);
this.editorOutlineService = ActiveEditorsOutlineService.getInstance(project);
this.inspectorGroupManagerService = InspectorGroupManagerService.getInstance(project);
this.editorEventService = EditorMouseEventService.getInstance(project);
this.editorPositionService = EditorPositionService.getInstance(project);
this.settingsListener = new SettingsListener();
this.outlineListener = this::updateEditor;
TextEditorHighlightingPassRegistrar.getInstance(project)
.registerTextEditorHighlightingPass(this, TextEditorHighlightingPassRegistrar.Anchor.AFTER, Pass.UPDATE_FOLDING, false, false);
syncSettings(FlutterSettings.getInstance());
FlutterSettings.getInstance().addListener(settingsListener);
final EditorEventMulticaster eventMulticaster = EditorFactory.getInstance().getEventMulticaster();
eventMulticaster.addCaretListener(new CaretListener() {
@Override
public void caretPositionChanged(@NotNull CaretEvent event) {
final Editor editor = event.getEditor();
if (editor.getProject() != project) return;
if (editor.isDisposed() || project.isDisposed()) return;
if (!(editor instanceof EditorEx)) return;
final EditorEx editorEx = (EditorEx)editor;
WidgetIndentsHighlightingPass.onCaretPositionChanged(editorEx, event.getCaret());
}
}, this);
editorOutlineService.addListener(outlineListener);
}
private void startListener() {
if (LISTENING.compareAndSet(false, true))
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
VirtualFileManager.getInstance().addVirtualFileListener(new SassLintConfigFileVfsListener(), SassLintConfigFileListener.this.project);
EditorEventMulticaster multicaster = EditorFactory.getInstance().getEventMulticaster();
multicaster.addDocumentListener(new SassLintConfigFileDocumentListener(), SassLintConfigFileListener.this.project);
}
});
}
});
}
private void startListener() {
if (LISTENING.compareAndSet(false, true))
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
VirtualFileManager.getInstance().addVirtualFileListener(new ESLintConfigFileVfsListener(), ESLintConfigFileListener.this.project);
EditorEventMulticaster multicaster = EditorFactory.getInstance().getEventMulticaster();
multicaster.addDocumentListener(new ESLintConfigFileDocumentListener(), ESLintConfigFileListener.this.project);
}
});
}
});
}
@Override
public void install(@Nonnull StatusBar statusBar) {
super.install(statusBar);
KeyboardFocusManager.getCurrentKeyboardFocusManager()
.addPropertyChangeListener(SWING_FOCUS_OWNER_PROPERTY, evt -> propertyChange(new PropertyChangeEvent(evt.getSource(), evt.getPropertyName(), evt.getOldValue(), evt.getNewValue())));
Disposer.register(this, () -> KeyboardFocusManager.getCurrentKeyboardFocusManager()
.removePropertyChangeListener(SWING_FOCUS_OWNER_PROPERTY, evt -> propertyChange(new PropertyChangeEvent(evt.getSource(), evt.getPropertyName(), evt.getOldValue(), evt.getNewValue()))));
EditorEventMulticaster multicaster = EditorFactory.getInstance().getEventMulticaster();
if (multicaster instanceof EditorEventMulticasterEx) {
((EditorEventMulticasterEx)multicaster).addPropertyChangeListener(this, this);
}
}
@Override
@Nonnull
public EditorEventMulticaster getEventMulticaster() {
return new MockEditorEventMulticaster();
}
@Override
@Nonnull
public EditorEventMulticaster getEventMulticaster() {
return myEditorEventMulticaster;
}
/**
* Returns the service for attaching event listeners to all editor instances.
*/
@Nonnull
public abstract EditorEventMulticaster getEventMulticaster();