搜尋套件、儲存庫與 APP 分類

套件詳情v2.14.0

lint

一個具意見性、由社群驅動的 Dart 與 Flutter 項目 lint 规則集。類似於 pedantic,但更嚴格

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
25.5萬
喜歡數
863
Pub 分數
160

安裝套件

flutter pub add lint

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

一組嚴格的、由社群驅動的 Dart 與 Flutter 專案程式碼檢查規則,旨在強制執行一致的程式碼品質與最佳實務。基於 `pedantic` 的基礎上,它應用更嚴謹的標準,協助開發者撰寫更乾淨、更具可維護性的程式碼。此套件非常適合尋求跨多個平台標準化、具明確意見的程式碼分析方法的團隊。

適用情境

  • 在團隊專案中強制執行一致的程式碼風格
  • 透過嚴格的 linting 提升程式碼品質
  • 使用靜態分析自動化程式碼審查
  • 在Flutter應用中保持統一的編碼標準
  • 將 linting 集成到 CI/CD 流水線中

主要特色

  • 嚴格且具明確立場的 lint 規則
  • 社群維護且即時更新
  • 透過更嚴格的指南擴展 pedantic
  • 支援所有主要的Flutter平台
  • 透過 pub add 命令輕鬆整合

適合對象

  • 重視程式碼一致性的團隊
  • 需要高代碼品質的專案
  • 跨多個平台使用的 Flutter 開發人員
  • 需要自動化 lint 檢查的 CI/CD 環境
  • 採用現代 Dart 實踐的專案

使用建議

  • 可能需要大量程式碼調整
  • 不適合非常寬鬆的編碼風格
  • 可能增加初始設定的複雜性
  • 需要持續維護 lint 配置
  • 可能與其他 linter 包衝突

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Pub style: lint

Lint for Dart/Flutter

Lint logo

lint is a hand-picked, open-source, community-driven collection of lint rules for Dart and Flutter projects. The set of rules follows the Effective Dart: Style Guide.

This package can be used as a replacement for package:lints or the discontinued package:pedantic for those who prefer stricter rules.

lint supports 3 different set of rules:

  • strict: tries to be strict but not annoying. Perfect for production app code
  • casual: great when prototyping, to be used in code samples, any non-production code
  • package: like strict but for dart packages, that have a public API

Install

Add lint as dependency to your pubspec.yaml. Version ^1.0.0 means you're automatically getting the latest version for lint when running pub upgrade

dev_dependencies:
  lint: ^2.0.0

Create an analysis_options.yaml file in the root of your project with the following content:

# This file configures the analyzer to use the lint rule set from `package:lint`

include: package:lint/strict.yaml # For production apps
# include: package:lint/casual.yaml # For code samples, hackathons and other non-production code
# include: package:lint/package.yaml # Use this for packages with public API


# You might want to exclude auto-generated files from dart analysis.
# Uncomment the section below and the files you want to exclude.
# analyzer:
#   exclude:
#     - '**.freezed.dart'
#     - '**.g.dart'

# You can customize the lint rules set to your own liking. A list of all rules
# can be found at https://dart.dev/tools/linter-rules
# Uncomment the section below and the rules you want to customize.
# linter:
#   rules:
    # Util classes are awesome!
    # avoid_classes_with_only_static_members: false
    
    # Make constructors the first thing in every class
    # sort_constructors_first: true

    # Choose wisely, but you don't have to
    # prefer_double_quotes: true
    # prefer_single_quotes: true

Lint badge

You're using lint in your open-source project? Add the badge to your README.md show that you honor strict lint rules

style: lint

[![style: lint](https://img.shields.io/badge/style-lint-4BC0F5.svg)](https://pub.dev/packages/lint)

Comparison with other lint packages

A detailed comparison of all linting packages for dart can be found at rydmike.com/blog_flutter_linting.html

lint is among the strictest but not the strictest. It tires to find the right balance between useful and annoying.

Which version to use?

Generally, you can just put lint: ^2.0.0 in your pubspec.yaml and pub get the latest version compatible with your Dart version.

Dart Version Lint Version
3.13 2.14.0
3.12 2.13.0
3.11 2.12.0
3.10 2.11.0
3.9 2.10.0
3.8 2.9.0
3.7 2.8.0
3.6 2.7.0
3.5 2.6.1
3.4 2.5.0
3.3 2.4.0
3.2 2.3.0
3.1 2.2.0
3.0 2.1.0
2.18 2.0.0
2.17 1.10.0
2.16 1.9.0
2.15 1.8.0
2.14 1.7.0
2.13 1.6.0
2.12 1.5.0

Comparison to discontinued package:pedantic

Google publicly shares their internal rules as package:pedantic in open-source. It represents what Google is enforcing internally throughout all Dart code. For a lint rule to be added to pedantic, Google has to change all code which doesn't follow the style.

This strict practice results in only 27/150+ rules to be enabled. While some are contradictory to each other and can not enabled together, a big chunk of rules isn't enabled because it requires too much work to update all of Googles existing code.

For developers outside Google, it is the norm to have separate lint rules per project. One project might enable more rules then others.

lint enables a majority of lint rules, leaving out contradictory and very opinionated rules.

License

Copyright 2022 Pascal Welsch

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

所屬分類

原始碼儲存庫

使用此套件的專案

所在榜單