column-selection
Create multiple selections across lines by dragging
asiloisad 254 1 1.4.10 MIT GitHub
  • Made for Pulsar!

    This package was written specifically for Pulsar and did not exist in the Atom package repository.

column-selection

Create multiple selections across lines by dragging. Enables column/block selection with carets on each line for efficient multi-line editing.

sticky

picker

Features

  • Drag selection: Hold modifier key and drag to select a column of text.
  • Sticky mode: Toggle persistent column selection using command or left-click status bar item
  • Picker mode: Select region with two clicks using command or right-click status bar item.
  • Edge scrolling: Auto-scroll when dragging near editor edges.
  • Status indicator: Shows current mode in the status bar.
  • Precise positioning: Temporarily disables atomic soft tabs during selection for accurate column alignment.
  • High performance: Reuses existing selections and uses mergeIntersectingSelections for efficient updates, avoiding costly recreation of selection objects during drag.
  • Inline blocks support: Works correctly with inline block decorations (e.g., hydrogen-next output results).
  • cursor-leader compatibility: Works correctly alongside cursor-leader, including when power mode is active.

Note: For the best column selection experience, consider disabling atomic soft tabs globally in Settings > Editor > Atomic Soft Tabs. This prevents cursor snapping to tab boundaries and allows precise positioning at any column.

Installation

To install column-selection search for column-selection in the Install pane of the Pulsar settings or run ppm install column-selection. Alternatively, you can run ppm install asiloisad/pulsar-column-selection to install a package directly from the GitHub repository.

Commands

Commands available in atom-workspace:

  • column-selection:sticky: Alt+Q toggle sticky column selection mode,
  • column-selection:picker: Ctrl+Q toggle picker column selection mode.

Customization

The style can be adjusted according to user preferences in the styles.less file:

  • e.g. crosshair cursor while selecting:
atom-text-editor.column-selection {
  cursor: crosshair;
}

Contributing

Got ideas to make this package better, found a bug, or want to help add new features? Just drop your thoughts on GitHub. Any feedback is welcome!