void (@NotNull Editor editor, @NotNull DataContext dataContext, @NotNull TransferableProvider transferableProvider) { SelectionToCopy selectionToCopy = SelectionToCopy.fromDataContext(dataContext); if (selectionToCopy == null) { // a genuine "Copy", not "Cut" selectionToCopy = prepareSelectionToCopy(editor); if (selectionToCopy == null) { return; } if (selectionToCopy.copyPasteOptions().isCopiedFromEmptySelection()) { FeatureUsageTracker.getInstance().triggerFeatureUsed("editing.copy.line"); } } copyToClipboard(editor, transferableProvider, selectionToCopy); }