Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>ttscNew to Visual Studio Code? Get it now.
ttsc

ttsc

samchon

| (0) | Free
TypeScript-Go and ttsc plugin diagnostics, completions, lint actions, and formatting for VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ttsc for VS Code

banner of @ttsc/vscode

GitHub license NPM Version NPM Downloads Build Status Guide Documents Discord Badge

Bring TypeScript-Go and supported ttsc plugin features into one VS Code session.

The extension keeps TypeScript-Go completion and diagnostics in one ttscserver stream with @ttsc/lint diagnostics, suggestions, fix-all actions, formatting, and completion published by lint project rules.

Use it when the project already runs ttsc. Add @ttsc/lint when you also want lint diagnostics, fix-all actions, and formatting in the editor.

VS Code showing ttsc lint diagnostics

Requirements

  • VS Code 1.94 or later.
  • Node.js 18 or later.
  • A workspace with tsconfig.json or jsconfig.json.
  • Project-installed ttsc, typescript, and the ttsc plugins you want editor diagnostics from.

Install the common project dependencies:

npm install -D ttsc typescript @ttsc/lint

@ttsc/lint is optional for TypeScript-Go language features, but required for the lint and format commands shown below.

Install

Install from the VS Code Marketplace by searching ttsc and choosing the extension by samchon.

From a shell, the short installer is:

npx @ttsc/vscode

The direct VS Code CLI form is:

code --install-extension samchon.ttsc

To uninstall the npm-installed copy:

npx @ttsc/vscode uninstall

Both shell commands use the code CLI. If it isn't on your PATH, run Shell Command: Install 'code' command in PATH from VS Code's command palette.

Configuration

lint.config.ts

At the project root, this drives both the lint rules and the formatter. Without it the extension still type-checks, but @ttsc/lint diagnostics and formatting do nothing:

// lint.config.ts
import type { ITtscLintConfig } from "@ttsc/lint";

export default {
  rules: {
    "no-var": "error",
    "prefer-const": "error",
    "typescript/no-explicit-any": "warning",
    "typescript/no-floating-promises": "error",
  },
  format: {
    printWidth: 100,
    singleQuote: true,
    trailingComma: "all",
  },
} satisfies ITtscLintConfig;

.vscode/settings.json

Set samchon.ttsc as the default formatter and turn on editor.formatOnSave:

{
  "[typescript][typescriptreact]": {
    "editor.defaultFormatter": "samchon.ttsc",
    "editor.formatOnSave": true
  }
}

Lint fixes stay off-save by default because they can change code meaning. Run ttsc: Fix all lint issues from the command palette, or opt in on manual saves:

{
  "editor.codeActionsOnSave": {
    "source.fixAll.ttsc": "explicit"
  }
}

What it adds

  • TypeScript-Go diagnostics, hover, navigation, and completions.
  • @ttsc/lint diagnostics, suggestions, code actions, and source.fixAll.ttsc.
  • JSDoc completion from a built-in lint rule and project-indexed completion from contributor rules that publish it.
  • Diagnostics reported by other LSP-capable ttsc plugins.
  • ttsc: Fix all lint issues, ttsc: Format document, and ttsc: Restart language server in the command palette.
  • Format on save with the format block from lint.config.*.
  • Multi-root workspace support. Each package can use its own ttsc, typescript, tsconfig.json, and lint.config.*.

Save the file before relying on lint diagnostics or running the command-palette lint and format commands. Format-on-save works on the live editor buffer.

Completion uses the live editor buffer. Enable jsdoc/check-tag-names to try built-in lint completion inside a /** ... */ block. The Lint in VS Code guide covers that workflow and contributor project indexes.

Troubleshooting

No diagnostics? Work through these in order:

  1. Confirm the workspace has a tsconfig.json or jsconfig.json.
  2. Confirm ttsc resolves in the project: npx ttsc --version.
  3. Confirm the project itself checks: npx ttsc --noEmit.
  4. Open View → Output → ttsc and read the server log.
  5. For full LSP tracing, set ttsc.trace.server to "verbose" and reload the window.

If diagnostics work but lint completion does not, press Ctrl+Space after @ inside a JSDoc block. After changing the lint config or project-indexed inputs, save the file: the completion corpus is rediscovered in the background on save. ttsc: Restart language server is still needed for a completion trigger character the session never advertised, which the ttsc output channel names when it appears.

Sponsors

Sponsors

Thanks for your support.

Your donation encourages ttsc development.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft