Pipewright
A Markdown table formatter for VS Code. It aligns table columns so the | characters line up, and keeps them aligned while you type.
English · Русский
What it does
Pipewright adjusts the spacing inside a table so every column is a fixed width and the pipes form straight vertical lines. It runs as you type, on a command, or on save if you enable editor.formatOnSave. Only spacing changes — the result is plain Markdown.
It handles:
- Alignment markers —
:--- left, :---: center, ---: right, --- none — and rebuilds the separator row to match.
- Wide characters — CJK, emoji, combining marks and full-width forms are measured by their real display width.
- Escaped pipes (
\|), pipes inside inline code (`a|b`), ragged rows (unequal cell counts), indented tables, and CRLF or LF line endings.
Usage
- Type inside a table — the columns realign automatically. The row you're editing lines up once you move the caret off it.
Shift+Alt+F — format the whole document, or a selection. Runs on save if editor.formatOnSave is on.
Shift+Enter inside a table — add a row.
- Right-click → Insert Table — create a table and pick its size.
- Command Palette (
Cmd/Ctrl+Shift+P) → Pipewright: … for the commands.
Settings
Search pipewright in Settings (Cmd/Ctrl+,).
| Setting |
Default |
What it does |
widthMode |
accurate |
How cell width is measured. accurate: CJK, emoji and combining marks. fast: code points only (ASCII). |
ambiguousWidth |
narrow |
Width of East Asian "ambiguous" characters in accurate mode: narrow (1) or wide (2). |
delimiterStyle |
filled |
The separator row: filled = \| --- \|, compact = \| - \|. |
padding |
1 |
Spaces on each side of a cell's content. |
minimumColumnWidth |
3 |
Smallest column width. |
liveFormatting.enabled |
true |
Realign the current table while you type. |
liveMode |
onChange |
When live formatting runs. onChange: on every edit. onType: on \| and Enter (needs editor.formatOnType). |
liveDebounce |
100 |
Delay in milliseconds before realigning in onChange. |
liveFormatting.maxRows |
300 |
Live formatting is skipped for tables larger than this. |
decorations.enabled |
true |
Show a faint marker bar on tables. Colors: pipewright.tableBorder and pipewright.tableBackground. |
Notes
- A table with very long cells (for example a full URL) becomes wide once the columns are aligned. Word wrap is off for Markdown by default so such tables don't wrap; turn it back on with
"[markdown]": { "editor.wordWrap": "on" }.
- The interface is in English and Russian and follows your VS Code display language.
Pipewright (RU)
Форматтер Markdown-таблиц для VS Code. Выравнивает колонки так, чтобы символы | стояли в линию, и держит их выровненными при наборе.
English · Русский
Что делает
Pipewright правит пробелы внутри таблицы так, чтобы каждая колонка была фиксированной ширины, а пайпы стояли ровными вертикалями. Работает при наборе и по команде, а при сохранении — если включить editor.formatOnSave. Меняются только пробелы — на выходе обычный Markdown.
Что понимает:
- Маркеры выравнивания —
:--- лево, :---: центр, ---: право, --- без — и перестраивает строку-разделитель под них.
- Широкие символы — CJK, эмодзи, составные символы и полноширинные формы меряются по реальной ширине отображения.
- Экранированные пайпы (
\|), пайпы внутри inline-кода (`a|b`), рваные строки (разное число ячеек), таблицы с отступом, переводы строк CRLF и LF.
Как пользоваться
- Печатайте внутри таблицы — колонки выравниваются сами. Строка, которую правите, встаёт ровно, когда уводите курсор с неё.
Shift+Alt+F — форматировать весь документ или выделение. При сохранении — если включён editor.formatOnSave.
Shift+Enter внутри таблицы — добавить строку.
- ПКМ → Insert Table — создать таблицу и выбрать размер.
- Палитра команд (
Cmd/Ctrl+Shift+P) → Pipewright: … — все команды.
Настройки
Поиск pipewright в Settings (Cmd/Ctrl+,).
| Настройка |
По умолчанию |
Что делает |
widthMode |
accurate |
Как меряется ширина ячейки. accurate: CJK, эмодзи, составные символы. fast: только кодовые точки (ASCII). |
ambiguousWidth |
narrow |
Ширина «неоднозначных» восточноазиатских символов в режиме accurate: narrow (1) или wide (2). |
delimiterStyle |
filled |
Строка-разделитель: filled = \| --- \|, compact = \| - \|. |
padding |
1 |
Пробелы с каждой стороны содержимого ячейки. |
minimumColumnWidth |
3 |
Минимальная ширина колонки. |
liveFormatting.enabled |
true |
Выравнивать текущую таблицу при наборе. |
liveMode |
onChange |
Когда работает живое форматирование. onChange: на каждое изменение. onType: на \| и Enter (нужен editor.formatOnType). |
liveDebounce |
100 |
Задержка (мс) перед выравниванием в onChange. |
liveFormatting.maxRows |
300 |
Для таблиц больше этого размера живое форматирование пропускается. |
decorations.enabled |
true |
Показывать бледную полосу-маркер у таблиц. Цвета — pipewright.tableBorder и pipewright.tableBackground. |
Заметки
- Таблица с очень длинными ячейками (например, целый URL) становится широкой после выравнивания колонок. Перенос строк для Markdown по умолчанию выключен, чтобы такие таблицы не переносились; включить обратно —
"[markdown]": { "editor.wordWrap": "on" }.
- Интерфейс на английском и русском, следует языку интерфейса VS Code.
| |