Skip to content

Repository files navigation

fuzdev.tsv-format

This is a VSCode extension with format-on-save for TypeScript/JS, Svelte, and CSS using tsv, a Rust formatter similar to Prettier + prettier-plugin-svelte.

tsv has one canonical, non-configurable style (like gofmt and Python's Black). There's no .prettierrc, no settings, no plugin discovery. It runs in both the desktop and the web (vscode.dev / github.dev) extension hosts using wasm, with native builds coming soon.

What it formats

  • TypeScript - .ts/.mts/.cts
  • JS - .js/.mjs/.cjs
  • Svelte - .svelte
  • CSS - .css

These are planned for the future:

  • .json/.jsonc
  • .html

tsv will not support:

  • .jsx/.tsx (typescriptreact/javascriptreact)
  • .scss/.less

Setup

This extension registers a formatter but doesn't change your settings. To make it the default formatter and format on save, add this to your settings.json:

{
  "editor.formatOnSave": true,
  "[typescript]": {"editor.defaultFormatter": "fuzdev.tsv-format"},
  "[javascript]": {"editor.defaultFormatter": "fuzdev.tsv-format"},
  "[svelte]": {"editor.defaultFormatter": "fuzdev.tsv-format"},
  "[css]": {"editor.defaultFormatter": "fuzdev.tsv-format"}
}

You can also run Format Document manually. There is no Format Selection support - for now tsv formats whole files only.

How it behaves

  • Format on save is VSCode's built-in feature; this extension just provides the formatter. It applies edits synchronously, so a save can't race against an in-flight format.
  • Ignore directives (format-ignore and the prettier-ignore alias) are honored by tsv itself.
  • Ignore files are respected: a file your project ignores via .gitignore (hierarchically, like git, inside a repo), a .formatignore (hierarchically), or a .prettierignore (also hierarchically, inside a repo) is skipped on save and on Format Document — matching what tsv format would skip on the command line (including its build-output skips like dist/ and build/).
  • Parse errors never interrupt you: the file is left unchanged, a small ⚠ tsv item appears in the status bar, and the details go to the tsv Output channel (click the status item, or run tsv format: Show Output).

Contributing

fuz.dev/contributing

License

MIT

About

vscode plugin for `tsv format`

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages