Dart Lint Kit (VSCode Extension)
🚧 Warning:
This extension is still under active development and is not yet ready for public use.
The Dart Lint Kit VSCode extension brings custom linting and quick actions to your Dart workspace using the lint_kit
package. It connects directly to a standalone analyzer server — powered by your code — and gives you real-time diagnostics, auto-fixes, and a full debugging workflow.
🗒️ Note:
✨ Dart Lint Kit is designed to enhance your workflow by supporting custom lints and code actions — it does not replace the Dart analyzer.
🚀 Getting Started
Install the Extension
Search for Dart Lint Kit in the Extensions Marketplace and install it.
Create a Lint Kit Package
Open the command palette and run:
Dart Lint Kit: Create Lint Kit Package
This will scaffold a fully working lint_kit
package in your workspace, including an example analyzer. As long as this package exists in your workspace, the extension will automatically detect and run your custom analyzer — no config required.
Write Custom Lints
Start coding your own lint rules and code actions using the lint_kit
framework. The extension will pick up changes automatically.
🔍 Interactive Debugging
Debug your analyzer directly inside VSCode:
Run the command:
Dart Lint Kit: Debug Analyzer
This launches the analyzer in debug mode, allowing you to:
- Set breakpoints
- Inspect state
- Step through analysis logic
When debugging stops, your analyzer will automatically restart with the latest changes — no reload needed.
🧠 How It Works
The VSCode extension communicates with a dedicated analyzer server powered by your local lint_kit
package. It uses the lint_kit_cli
under the hood to:
- Authenticate with Lint Kit’s backend
- Launch, monitor, and debug analyzers
- Fetch logs, manage devices, and more
This architecture allows your lints to run locally with full performance and observability — while still offering cloud-connected features like authentication and cross-device support.
🧪 Write Your Own Lints
To define your own lints and code actions, edit your local lint_kit
package:
import 'package:lint_kit/lint_kit.dart';
class MyAnalyzer implements LintKitAnalyzer {
const MyAnalyzer();
@override
Future<List<Message>> analyze(AnalyzedFile file, AnalysisOptions? options) async {
// ... analyze code and return messages
}
@override
String get packageName => 'custom_rules';
@override
List<LintKitAnalyzer> get plugins => [];
}
Once saved, the extension will automatically display your lints in the editor.
🙌 Contributions
Feedback and feature requests are always welcome.
To file a bug or suggest an improvement, head to the Lint Kit Issues Repo.
lint_kit
– Framework for defining custom lints
lint_kit_cli
– CLI interface to the analyzer and backend