Blinter for VS Code
Blinter is a linter and debug companion for batch scripts (.bat, .cmd). It runs the bundled Blinter.exe and surfaces diagnostics in VS Code Problems, hover tooltips, decorations, and a dedicated output view
At a glance
- Windows only (
win32)
- Works with
.bat and .cmd
- Run and debug through
blinter-debug (F5)
- Quick fixes for suppression comments and command casing
Release notes summary
Table of contents
Installation
Option 1: Install from VSIX
- Build or download a
.vsix package.
- In VS Code, open Extensions.
- Select the
... menu and choose Install from VSIX....
- Select the VSIX file.
Option 2: Run from source (development)
- Clone this repository.
- Install dependencies:
npm ci
- Ensure vendor assets are present:
.\setup-vendor.bat
- Press
F5 in VS Code to launch Extension Development Host.
Quick start
- Open a workspace containing a
.bat or .cmd file.
- Open Run and Debug (
Ctrl+Shift+D).
- Use
Launch Batch (Blinter) and run with F5.
- Review diagnostics in Problems and the
Blinter Output view.
- Use Quick Fix (
Ctrl+.) for suppression/comment assistance.
Example launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Batch (Blinter)",
"type": "blinter-debug",
"request": "launch",
"program": "${file}"
}
]
}
Features
- Registers
blinter-debug for Run and Debug workflows
- Streams diagnostics while the script runs
- Highlights critical issues in-editor
- Shows grouped issue summaries in
Blinter Output
- Adds quick fixes for:
- command casing normalization
- suppression comments (
LINT:IGNORE)
- optional Copilot handoff
- Supports
blinter.ini creation and status-bar visibility
Commands
Blinter: Run
Blinter: Run and Debug
Blinter: Create Config File
Blinter: Ask Copilot About Diagnostic
Blinter: Remove All Suppressions
Configuration
Linting behavior
blinter.enabled (boolean, default true)
blinter.runOn (onSave | onType, default onSave)
blinter.debounceDelay (number, default 500)
blinter.followCalls (boolean, default false)
blinter.minSeverity (all | performance | style | warning | error, default all)
blinter.enabledRules (string[], default [])
blinter.disabledRules (string[], default [])
blinter.useConfigFile (boolean, default true)
blinter.maxLineLength (number, default 100)
blinter.noRecursive (boolean, default false)
Presentation
blinter.quickFixCodes (string[])
blinter.criticalHighlightColor (string, default #5a1124)
blinter.encoding (string, default utf8)
blinter.suppressionCommentStyle (REM | ::, default REM)
blinter.showAskCopilotQuickFix (boolean, default false)
Suppression workflow
When a Blinter diagnostic appears:
- Use Quick Fix (
Ctrl+.).
- Choose
Blinter: Suppress ... on this line.
- Blinter inserts a
LINT:IGNORE comment above the target line.
- Existing
LINT:IGNORE codes on the previous line are merged.
You can remove all suppression comments via:
- Command Palette:
Blinter: Remove All Suppressions
Blinter Output view title button
Output and troubleshooting
- Open
View -> Output -> Blinter for command, stdout, and stderr logs.
- If diagnostics do not appear:
- confirm
blinter.enabled is true
- confirm file language is
bat or cmd
- verify the bundled executable exists under
vendor/Blinter/Blinter.exe
- If the debug session closes early, inspect output logs first.
Developer setup
The repository keeps vendor artifacts out of source control where possible. Use:
.\setup-vendor.bat
to populate the required core assets under vendor/Blinter.
Testing
Common commands:
npm run lint
npm run test:unit
npm run test:integration
npm run test:matrix
test:matrix runs unit, integration, system packaging, UAT checks, regression, performance, security, smoke, sanity, and exploratory suites with reports in test/reports/.
Packaging
Build a VSIX package:
.\build.bat
or
npm run package:vsix
See PACKAGING.md for release flow details.
License