Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ jobs:
- run: npm ci
- run: npm run package
- run: npm run test:vsix
- run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt
- run: sha256sum build/markdown-table-editor-plus.vsix > build/SHA256SUMS.txt
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: md-table-editor-vsix
name: markdown-table-editor-plus-vsix
path: |
build/md-table-editor.vsix
build/markdown-table-editor-plus.vsix
build/SHA256SUMS.txt
if-no-files-found: error
18 changes: 9 additions & 9 deletions .github/workflows/publish-marketplace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ on:
- dry-run
- publish
confirmation:
description: For publish, type md-table-editor:<version>.
description: For publish, type markdown-table-editor-plus:<version>.
required: false
type: string

permissions:
contents: read

concurrency:
group: md-table-editor-marketplace
group: markdown-table-editor-plus-marketplace
cancel-in-progress: false

jobs:
Expand Down Expand Up @@ -66,26 +66,26 @@ jobs:
echo "Publishing is allowed only from refs/heads/main; got '$RELEASE_REF'." >&2
exit 1
fi
if [ "$RELEASE_CONFIRMATION" != "md-table-editor:$RELEASE_VERSION" ]; then
echo "Publish confirmation must exactly match 'md-table-editor:$RELEASE_VERSION'." >&2
if [ "$RELEASE_CONFIRMATION" != "markdown-table-editor-plus:$RELEASE_VERSION" ]; then
echo "Publish confirmation must exactly match 'markdown-table-editor-plus:$RELEASE_VERSION'." >&2
exit 1
fi
fi
echo "Validated $RELEASE_MODE request for md-table-editor:$RELEASE_VERSION."
echo "Validated $RELEASE_MODE request for markdown-table-editor-plus:$RELEASE_VERSION."

- run: npm ci
# npm run package runs typecheck, unit tests, and the bundle build before vsce package.
- run: npm run package
- run: npm run test:vsix

- name: Record the artifact checksum
run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt
run: sha256sum build/markdown-table-editor-plus.vsix > build/SHA256SUMS.txt

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: marketplace-${{ inputs.version }}-${{ inputs.mode }}
path: |
build/md-table-editor.vsix
build/markdown-table-editor-plus.vsix
build/SHA256SUMS.txt
if-no-files-found: error
retention-days: 14
Expand Down Expand Up @@ -132,11 +132,11 @@ jobs:
exit 1
fi
sha256sum --check build/SHA256SUMS.txt
echo "Publishing md-table-editor:$RELEASE_VERSION from main."
echo "Publishing markdown-table-editor-plus:$RELEASE_VERSION from main."

- run: npm ci

- name: Publish the verified VSIX
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
run: npx --no-install vsce publish --packagePath build/md-table-editor.vsix
run: npx --no-install vsce publish --packagePath build/markdown-table-editor-plus.vsix
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ jobs:
- run: npm ci
- run: npm run test:coverage
- run: npm run package
- run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt
- run: sha256sum build/markdown-table-editor-plus.vsix > build/SHA256SUMS.txt
- uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
with:
subject-path: build/md-table-editor.vsix
subject-path: build/markdown-table-editor-plus.vsix
- name: Create GitHub release
env:
GH_TOKEN: ${{ github.token }}
run: gh release create "$GITHUB_REF_NAME" build/md-table-editor.vsix build/SHA256SUMS.txt --generate-notes --verify-tag
run: gh release create "$GITHUB_REF_NAME" build/markdown-table-editor-plus.vsix build/SHA256SUMS.txt --generate-notes --verify-tag
15 changes: 11 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/en/1.1.

## [Unreleased]

## [0.2.2] - 2026-08-04

### Changed

- The Marketplace display name is now `Markdown Table Editor Plus`, and the extension identifier
is `krotname.markdown-table-editor-plus`. The Marketplace requires a display name that no other
extension already uses, and `Markdown Table Editor` belongs to an unrelated extension, so upload
was refused regardless of the identifier. Commands, settings, and behaviour are unchanged.

### Added

- Real VS Code screenshots and a demo GIF in `docs/`, linked from both READMEs and reusable
Expand All @@ -13,10 +22,8 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/en/1.1.

### Changed

- The extension identifier is now `krotname.md-table-editor`. The Marketplace requires an
extension `name` that no other publisher uses, and `markdown-table-editor` was already taken,
so the package name and the built VSIX file name changed. The display name, commands,
settings, and behaviour are unchanged.
- Renamed the extension identifier away from `markdown-table-editor`, which the Marketplace
reported as already in use. Commands, settings, and behaviour are unchanged.

## [0.2.0] - 2026-08-04

Expand Down
32 changes: 17 additions & 15 deletions MARKETPLACE_SUBMISSION.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
# Visual Studio Marketplace submission

Status: release metadata for version `0.2.1`, the first public Marketplace submission.
Status: release metadata for version `0.2.2`, the first public Marketplace submission.
Comment thread
krotname marked this conversation as resolved.
Keep the version here in sync with `package.json`; the publish workflow refuses a mismatch.

The Marketplace rejects an extension `name` that any publisher already uses, and
`markdown-table-editor` is taken by an unrelated extension, so this project publishes as
`md-table-editor`. The display name is unaffected.
The Marketplace requires both the extension `name` and the **display name** to be unique across
all published extensions. `Markdown Table Editor` is held by the unrelated `octop162.markdown-table-editor`,
and upload is refused with "This extension display name is taken" no matter which identifier is used.
This project therefore publishes as `krotname.markdown-table-editor-plus` with the display name
`Markdown Table Editor Plus`. It is the same product as the JetBrains and Notepad++ editions.

## Artifact

- Version: `0.2.1`
- VSIX: `build/md-table-editor.vsix`, produced by `npm run package`
- Version: `0.2.2`
- VSIX: `build/markdown-table-editor-plus.vsix`, produced by `npm run package`
- Checksum: `build/SHA256SUMS.txt`, produced by the release and publish workflows
- Marketplace item: fill after upload
- Marketplace verification status: fill after upload
- GitHub release: fill after tagging `v0.2.1`
- GitHub release: fill after tagging `v0.2.2`

## Extension metadata

- Extension identifier: `krotname.md-table-editor`
- Display name: `Markdown Table Editor`
- Extension identifier: `krotname.markdown-table-editor-plus`
- Display name: `Markdown Table Editor Plus`
- Publisher: `krotname`
- Categories: `Formatters`, `Other`
- Keywords: `markdown`, `table`, `formatter`, `csv`, `tsv`
Expand Down Expand Up @@ -53,11 +55,11 @@ Edit Markdown pipe tables directly in VS Code: align with `Tab`, fit the table w
widen columns, sort rows, convert CSV/TSV, insert tables by size, and move rows or columns without
leaving the editor. Everything runs locally, with no telemetry and no network access.

## Marketplace release notes for 0.2.1
## Marketplace release notes for 0.2.2

```markdown
- The extension is published as `krotname.md-table-editor`; the Marketplace already had the
`markdown-table-editor` name in use by an unrelated extension.
- The extension is published as `krotname.markdown-table-editor-plus` with the display name
`Markdown Table Editor Plus`; both the identifier and the plain display name were already in use.
- The table engine is a faithful port of the shared JetBrains/Notepad++ core and matches it byte
for byte across the differential corpus, correcting table detection, header protection, caret
placement, width fitting, and CSV/TSV whitespace handling.
Expand All @@ -70,21 +72,21 @@ leaving the editor. Everything runs locally, with no telemetry and no network ac
## Automated submission

Run the **Publish to VS Code Marketplace** workflow from `main`: start with `dry-run`, then use
`publish` with the confirmation `md-table-editor:0.2.1`. The verify job builds the VSIX,
`publish` with the confirmation `markdown-table-editor-plus:0.2.2`. The verify job builds the VSIX,
installs it into a throwaway VS Code profile, and records a checksum without ever seeing the
Marketplace token. The publish job then waits for approval in the `marketplace` GitHub environment,
which holds the `VSCE_PAT` secret, verifies the checksum of the artifact built by the verify job,
and uploads exactly that file with `vsce publish --packagePath`.

Locally the same upload is `npx vsce publish --packagePath build/md-table-editor.vsix` with
Locally the same upload is `npx vsce publish --packagePath build/markdown-table-editor-plus.vsix` with
`VSCE_PAT` set in the environment.

## Manual submission

1. Sign in at <https://marketplace.visualstudio.com/manage> with the Microsoft account that owns
the `krotname` publisher, creating the publisher first if it does not exist.
2. Open the publisher page and choose `New extension` / `Visual Studio Code`.
3. Upload `build/md-table-editor.vsix`.
3. Upload `build/markdown-table-editor-plus.vsix`.
4. Confirm that the rendered README, icon, categories, license, and repository links are correct.
5. Wait for the automated Marketplace verification to finish and record the resulting status above.

Expand Down
13 changes: 8 additions & 5 deletions README.en.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Markdown Table Editor for Visual Studio Code
# Markdown Table Editor Plus for Visual Studio Code

[![CI](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml)
[![CodeQL](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml?query=branch%3Amain)
Expand All @@ -7,15 +7,18 @@
[![License](https://img.shields.io/github/license/krotname/VsCodeMarkdownTableEditor)](LICENSE)
[![Website](https://img.shields.io/badge/website-markdowntableeditor.ru-0f766e)](https://markdowntableeditor.ru/)

Markdown Table Editor turns VS Code into a comfortable Markdown table editor. Take a crooked table
Markdown Table Editor Plus turns VS Code into a comfortable Markdown table editor. Take a crooked table
written by hand or generated by an AI, press `Tab`, and the extension aligns the columns while
keeping the Markdown intact — then helps you move rows, columns, and data without leaving the editor.

**Quick start:** [download the VSIX from the latest release](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) ·
[open the project site](https://markdowntableeditor.ru/) ·
[README на русском](README.md)

The Visual Studio Marketplace listing is in preparation; until then the extension installs from the VSIX.
The Visual Studio Marketplace listing is in preparation; until then the extension installs from the
VSIX. On the Marketplace it is named **Markdown Table Editor Plus**, because the plain
`Markdown Table Editor` name is held by an unrelated extension. It is the same product line as the
JetBrains IDE and Notepad++ editions.

## Other editions

Expand Down Expand Up @@ -115,10 +118,10 @@ cells without changing what each row means:

From a VSIX:

1. Download `md-table-editor.vsix` from the [latest release](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest)
1. Download `markdown-table-editor-plus.vsix` from the [latest release](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest)
or build it locally with `npm run package`.
2. Run `Extensions: Install from VSIX...` in VS Code.
3. Select the downloaded or built `md-table-editor.vsix`.
3. Select the downloaded or built `markdown-table-editor-plus.vsix`.

Every released VSIX ships with a `SHA256SUMS.txt` file and a GitHub Actions build provenance
attestation.
Expand Down
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Markdown Table Editor для Visual Studio Code
# Markdown Table Editor Plus для Visual Studio Code

[![CI](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml)
[![CodeQL](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml?query=branch%3Amain)
Expand All @@ -7,15 +7,17 @@
[![License](https://img.shields.io/github/license/krotname/VsCodeMarkdownTableEditor)](LICENSE)
[![Website](https://img.shields.io/badge/website-markdowntableeditor.ru-0f766e)](https://markdowntableeditor.ru/)

Markdown Table Editor превращает VS Code в удобный редактор Markdown-таблиц. Берёте чужую косую
Markdown Table Editor Plus превращает VS Code в удобный редактор Markdown-таблиц. Берёте чужую косую
таблицу или сгенерированную ИИ, жмёте `Tab` — и расширение выравнивает колонки, сохраняя разметку,
а дальше помогает переставлять строки, колонки и данные, не выходя из редактора.

**Быстрый старт:** [скачать VSIX из последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) ·
[открыть сайт проекта](https://markdowntableeditor.ru/) ·
[English README](README.en.md)

Публикация в Visual Studio Marketplace готовится; до неё расширение ставится из VSIX.
Публикация в Visual Studio Marketplace готовится; до неё расширение ставится из VSIX. В Marketplace
расширение называется **Markdown Table Editor Plus**: простое `Markdown Table Editor` там уже занято
посторонним расширением. Это та же линейка, что версии для JetBrains IDEs и Notepad++.

## Другие версии

Expand Down Expand Up @@ -115,10 +117,10 @@ GIF собран из реальных скриншотов VS Code под Windo

Из VSIX:

1. Скачайте `md-table-editor.vsix` из [последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest)
1. Скачайте `markdown-table-editor-plus.vsix` из [последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest)
или соберите его локально командой `npm run package`.
2. В VS Code выполните `Extensions: Install from VSIX...`.
3. Выберите скачанный или собранный файл `md-table-editor.vsix`.
3. Выберите скачанный или собранный файл `markdown-table-editor-plus.vsix`.

Каждый релизный VSIX сопровождается файлом `SHA256SUMS.txt` и подписью происхождения сборки
(build provenance attestation), созданной GitHub Actions.
Expand Down
2 changes: 1 addition & 1 deletion THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Distributed extension

The published `md-table-editor.vsix` does not bundle third-party runtime code. It contains
The published `markdown-table-editor-plus.vsix` does not bundle third-party runtime code. It contains
the bundled extension entry point built from this repository's TypeScript sources, its source map,
the extension manifest, the icon, and the project documentation, including the GPL-3.0-or-later
license text.
Expand Down
2 changes: 1 addition & 1 deletion e2e/extension.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ suiteTeardown(async () => {
});

test('extension activates and aligns an actual VS Code document', async () => {
const extension = vscode.extensions.getExtension('krotname.md-table-editor');
const extension = vscode.extensions.getExtension('krotname.markdown-table-editor-plus');
assert.ok(extension);
await extension.activate();
await vscode.commands.executeCommand('markdownTableEditor.align');
Expand Down
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "md-table-editor",
"displayName": "Markdown Table Editor",
"name": "markdown-table-editor-plus",
Comment thread
krotname marked this conversation as resolved.
"displayName": "Markdown Table Editor Plus",
"description": "Fast, local Markdown table editing for Visual Studio Code.",
"version": "0.2.1",
"version": "0.2.2",
"publisher": "krotname",
"license": "GPL-3.0-or-later",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion scripts/package.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { join } from 'node:path';

await mkdir('build', { recursive: true });
const cli = join('node_modules', '@vscode', 'vsce', 'vsce');
const result = spawnSync(process.execPath, [cli, 'package', '--no-dependencies', '--out', 'build/md-table-editor.vsix'], {
const result = spawnSync(process.execPath, [cli, 'package', '--no-dependencies', '--out', 'build/markdown-table-editor-plus.vsix'], {
stdio: 'inherit',
});
if (result.error) throw result.error;
Expand Down
2 changes: 1 addition & 1 deletion scripts/verify-vsix.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { runVSCodeCommand } from '@vscode/test-electron';
const root = process.cwd();
const { name, publisher, version } = JSON.parse(await readFile(join(root, 'package.json'), 'utf8'));
const expected = `${publisher}.${name}@${version}`;
const vsix = join(root, 'build', 'md-table-editor.vsix');
const vsix = join(root, 'build', 'markdown-table-editor-plus.vsix');
const extensionsDirectory = join(root, 'build', 'vsix-extensions');
const userDataDirectory = join(root, 'build', 'vsix-user-data');
const profileArgs = ['--extensions-dir', extensionsDirectory, '--user-data-dir', userDataDirectory];
Expand Down
Loading