private void deinitLineNumbers(@NotNull Editor editor) { editor.getCaretModel().removeCaretListener(myLineNumbersCaretListener); EditorData.setEditorGroup(editor, false); editor.getGutter().closeAllAnnotations(); final Project project = editor.getProject(); if (project == null || project.isDisposed()) return; editor.getSettings().setLineNumbersShown(EditorData.isLineNumbersShown(editor)); }
private void updateLineNumbers(@NotNull Editor editor) { if (!EditorData.isFileEditor(editor)) { return; } final Options options = Options.getInstance(); final boolean relativeLineNumber = options.isSet(Options.RELATIVE_NUMBER); final boolean lineNumber = options.isSet(Options.NUMBER); final EditorSettings settings = editor.getSettings(); final boolean showEditorLineNumbers = (EditorData.isLineNumbersShown(editor) || lineNumber) && !relativeLineNumber; if (settings.isLineNumbersShown() ^ showEditorLineNumbers) { // Update line numbers later since it may be called from a caret listener // on the caret move and it may move the caret internally ApplicationManager.getApplication().invokeLater(() -> { if (editor.isDisposed()) return; settings.setLineNumbersShown(showEditorLineNumbers); }); } if (relativeLineNumber) { final EditorGutter gutter = editor.getGutter(); gutter.closeAllAnnotations(); gutter.registerTextAnnotation(myLineNumbersGutterProvider); } }
@Override public void editorReleased(@NotNull EditorFactoryEvent event) { TargetLineMouseAdapter adapter = mouseAdapterMap.get(event.getEditor()); if (adapter != null && event.getEditor().getGutter() instanceof Component) { Component gutterComponent = (Component) event.getEditor().getGutter(); gutterComponent.removeMouseListener(adapter); mouseAdapterMap.remove(event.getEditor()); } } },
@Override public void editorCreated(@NotNull EditorFactoryEvent event) { if (event.getEditor().getProject() == CloudDebugProcessStateSerializer.this.project && event.getEditor().getGutter() instanceof Component) { Component gutterComponent = (Component) event.getEditor().getGutter(); TargetLineMouseAdapter adapter = new TargetLineMouseAdapter(event.getEditor()); assert !mouseAdapterMap.containsKey(event.getEditor()); mouseAdapterMap.put(event.getEditor(), adapter); gutterComponent.addMouseListener(adapter); } }