debang_lints 1.1.0 copy "debang_lints: ^1.1.0" to clipboard
debang_lints: ^1.1.0 copied to clipboard

A Dart analyzer plugin for the debang package that enforces descriptive assertion messages and requires author attribution in debang() calls.

Debang Lints #

Pub

En | Ru

A custom Dart analyzer plugin that enforces quality standards for debang() calls.

About Debang #

debang is a debugging package that provides the .debang() extension for nullable types with assertion messages and a Debang() constructor for providing default values. This linter ensures all assertion messages are descriptive and meaningful.

For better understanding how it works check demo page

Overview #

This plugin helps maintain code quality by ensuring that all debug messages passed to debang() are descriptive and useful. Short, cryptic messages like '' (empty string) or 'won't be null' are flagged, and messages without an author name are reported — encouraging developers to write accountable, meaningful debug output.

Rules #

Rule Description Default
debang_message_too_short Message must meet a minimum character length disabled
debang_missing_author Message must start with an author name (username): disabled

Installation #

1. Add to analysis_options.yaml #

plugins:
  debang_lints: ^1.1.0

Note: Lint rules are disabled by default in the new Dart analyzer plugin system. You must explicitly enable each rule under diagnostics:.

2. Restart Analysis Server #

Run dart pub get, then:

VS Code: Command Palette → Dart: Restart Analysis Server

IntelliJ/Android Studio: File → Invalidate Caches / Restart

Usage Examples #

debang_message_too_short #

❌ Bad (triggers diagnostic)

import 'package:debang/debang.dart';

void main() {
  int? value;
  value.debang("Won't be null");  // Error: assertion message too short
}

✅ Good (passes validation)

import 'package:debang/debang.dart';

void main() {
  int? value;
  value.debang(
    "Value won't be null because it is written after authorization into local storage."
  );  // OK
}

debang_missing_author #

Messages must begin with (username):, similar to the TODO(username): convention.

❌ Bad (triggers diagnostic)

import 'package:debang/debang.dart';

void main() {
  int? value;
  value.debang("Won't be null after auth");  // Error: missing author name
}

✅ Good (passes validation)

import 'package:debang/debang.dart';

void main() {
  int? value;
  value.debang("(John Doe): Won't be null after auth flow completes");  // OK
}

Changelog #

The list of changes is available in CHANGELOG.md.

Contributions #

Feel free to contribute to this project. If you find a bug or want to add a new feature but don't know how to fix/implement it, please open an issue. If you fixed a bug or implemented a feature, please submit a pull request.

License #

MIT License — see the LICENSE file for details.

1
likes
150
points
29
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Dart analyzer plugin for the debang package that enforces descriptive assertion messages and requires author attribution in debang() calls.

Repository (GitHub)
View/report issues

Topics

#linter #analyzer #code-quality #debang #static-analysis

License

MIT (license)

Dependencies

analysis_server_plugin, analyzer

More

Packages that depend on debang_lints