Plugins

CSV Quick Viewer

Tabular quick viewer for CSV/TSV files: paged grid, column sorting, text/regex filtering, Ctrl+F search and export of selected rows to a file or the clipboard.

Version 1.0.3 Official plugin Released 76 downloads

Install it from Commander: Plugins → Manage, or drop the signed bundle into the plugins/ directory.

What this bundle provides

One download, 1 plugin.

CSV Quick Viewer

dev.nuclr.plugin.core.quickviewer.csv

Tabular quick viewer for CSV/TSV files: paged grid, column sorting, text/regex filtering, Ctrl+F search and export of selected rows to a file or the clipboard.

QuickView Apache-2.0

About

📊 CSV Quick Viewer

Spreadsheet-style previews for delimited files inside Nuclr Commander.

Hit Ctrl+Q on a .csv and get a real grid in the opposite pane — sortable, filterable, searchable, and ready to export the rows you pick. 🧮

🚀 What It Does

  • 🧱 Paged grid — the page fills the pane by default, or pick a fixed 25 / 50 / 100 / 250 / 500 / 1000 rows
  • 🔢 Total row count at the bottom, with the range on screen and how many rows a filter removed
  • ↕️ Click-to-sort headers — ascending, descending, back to file order; numbers sort as numbers, blanks stay last
  • 🔎 Filtering — one query across every column, plus a filter field under each column heading, as plain text or a regular expression, case-sensitive or not
  • 🔦 Ctrl+F search that highlights every matching cell, counts them, and jumps to the right page
  • 📤 Export the rows you selected — across pages — to a CSV file or the clipboard
  • 📁 The exported file is revealed in your file manager (Explorer, Finder, or the freedesktop ShowItems call), selected and ready to use; the viewer itself is left untouched — same rows ticked, same page, same scroll position
  • 🧭 Separator sniffing for comma, semicolon, tab and pipe, overridable from the right-click menu
  • 🛡️ Bounded loading: at most 200,000 rows / 24M characters, so a runaway file cannot freeze the pane
  • ⛔ Cancellation-aware, so moving the cursor down a folder never leaves stale content behind

🎯 Supported File Types

ExtensionSniffed as
csvcomma, semicolon, tab or pipe — whichever parses most consistently
tsv, tabtab

UTF-8 (with or without a BOM) and UTF-16 with a BOM are decoded; anything undecodable is replaced rather than refused. A file with NUL bytes is handed back so another viewer can take it.

⌨️ Keys

KeyAction
Ctrl+FOpen the find bar
F3 / Shift+F3Next / previous match
EscClose the find bar, then clear the selection, then clear the filters
Ctrl+CCopy the selected rows (or everything in view) as CSV
Ctrl+ASelect every row in view, across pages
Alt+← / Alt+→Previous / next page
Alt+Home / Alt+EndFirst / last page

🖼️ Thumbnail

The top rows as a small spreadsheet: the separator sniffed as for the grid, the header row shaded when the file has one, numbers right-aligned and columns sized to their content. Only the first 32 KB is read.

It implements the platform SDK 6.0.0 thumbnail methods, so plugins that want a picture of a file - attachment chips in AI Projects, for one - get it through Commander.

📥 Installation

Copy the signed plugin archive and detached signature into a directory Commander scans:

quick-view-csv-<version>.zip
quick-view-csv-<version>.zip.sig

Commander scans two directories at startup — the per-user one (%USERPROFILE%\.nuclr\commander\plugins, or ~/.nuclr/commander/plugins) and the plugins/ folder of the installation itself. The per-user directory is the one to prefer: it needs no elevated write, and an installed build and a development tree both read it.

The archive's RSA-SHA256 signature is verified against nuclr-cert.pem on load. Both directories are read once, at startup, so a newly copied plugin appears on the next launch, not in the running window.

🧠 How It Works

CsvQuickViewProvider  → claims .csv/.tsv/.tab and owns the plugin lifecycle
CsvFileSupport        → name-only selection, so remote resources are never downloaded to answer
CsvLoader / CsvParser → lenient RFC 4180 parsing inside a fixed row and character budget
CsvDialect / Numbers  → separator sniffing, header detection, the numbers people put in spreadsheets
CsvIndex / Paging     → the view: which rows the filter kept, in which order, sliced into pages
CsvSearch             → every matching cell in the current view, packed two-per-long
CsvExporter           → RFC 4180 output to a file or the clipboard
CsvQuickViewPanel     → the grid, the bars and the threading between them

The view

The file is parsed once and never copied again. Filtering and sorting produce an array of row indices — the view — and a page is a slice of that array. That is why:

  • the # gutter still shows the row's place in the file after sorting and filtering,
  • rows selected on one page survive paging, sorting and re-filtering, and export in display order,
  • re-opening the same file (which the host does whenever the folder listing refreshes — an export written into that folder, for instance) keeps the filter, the sort, the page, the ticked rows, the column widths and the scroll position,
  • a 200,000-row file re-filters on each keystroke without the pane stalling.

Threading

Parsing happens on the thread the host opens the file on. Filtering, sorting and searching run inline for small files and on virtual threads beyond 20,000 rows, each keyed by a generation counter so a result that arrives after the user has typed on is dropped rather than shown. Everything that touches the grid runs on the event-dispatch thread.

🧪 Building

mvn clean verify

Produces target/quick-view-csv-<version>.zip and its detached .zip.sig. Signing reads jarsigner.storepass from the Maven settings or -D properties; no credentials live in this repository.

The bundle declares platform SDK 6.0.0, the first with the thumbnail methods it implements. Commander skips any plugin whose required SDK is newer than its own, so this build needs a Commander built on SDK 6.0.0 or later.

📄 License

Apache License 2.0 — see LICENSE.

Releases

Version Released Size Download
1.0.3 0.1 MB Download
1.0.2 0.1 MB Download
1.0.1 0.1 MB Download
1.0.0 0.1 MB Download

Details

Plugin ID
dev.nuclr.plugin.core.quickviewer.csv
Repository
nuclrdev/plugin-quick-viewer-csv
Platform SDK
6.0.0
SHA-256
edd2caa72f5f31f8123fdf5094a3f3c46c8e23206f42b82ee291d2b95c8086ff