본문 바로가기
Flutter

플러터에서 커스텀 린트 옵션

by Maccrey Coding 2024. 7. 22.
728x90
반응형

 

lint 패키지는 Flutter 및 Dart 프로젝트에서 린팅 규칙을 정의하고 적용하기 위한 패키지입니다.

이를 통해 코드 품질을 유지하고 일관된 스타일을 보장할 수 있습니다.

lint 패키지를 사용하여 analysis_options.yaml 파일에 다양한 옵션을 설정할 수 있습니다.

다음은 analysis_options.yaml 파일에서 사용할 수 있는 주요 옵션과 예제입니다

 

기본 설정

기본적으로 lint 패키지를 포함하도록 설정합니다

include: package:lint/analysis_options.yaml

linter

linter 섹션은 사용할 린트 규칙을 정의합니다. Dart 팀에서 제공하는 많은 린트 규칙이 있습니다.

예제

linter:
  rules:
    always_declare_return_types: true
    avoid_print: true
    avoid_single_cascade_in_expression_statements: true
    avoid_unused_constructor_parameters: true

analyzer

analyzer 섹션은 분석기 설정을 정의하며, 특정 린트 규칙의 심각도와 분석 옵션을 커스터마이징할 수 있습니다.

예제

analyzer:
  errors:
    missing_return: error
    invalid_annotation_target: warning
    dead_code: ignore
  strong-mode:
    implicit-casts: false
    implicit-dynamic: false

include

include 키워드는 다른 설정 파일을 포함할 수 있습니다. 이는 lint 패키지의 기본 설정을 포함시키는 데 자주 사용됩니다.

예제

include: package:lint/analysis_options.yaml

exclude

exclude 섹션은 린트 규칙을 적용하지 않을 파일이나 디렉토리를 지정합니다.

예제

analyzer:
  exclude:
    - 'test/**'
    - 'lib/generated/**'

커스텀 린트 규칙 추가

analyzer와 linter 섹션을 통해 커스텀 린트 규칙을 추가할 수 있습니다. 이를 통해 프로젝트의 특성에 맞는 린트 규칙을 정의할 수 있습니다.

예제

linter:
  rules:
    always_declare_return_types: true
    avoid_print: true
    # 커스텀 린트 규칙 추가
    file_names: true
    prefer_const_constructors: true

사용 가능한 린트 규칙 목록

lint 패키지는 많은 린트 규칙을 제공합니다. Dart의 공식 린트 규칙 목록에서 자세한 내용을 확인할 수 있습니다. 몇 가지 일반적인 린트 규칙은 다음과 같습니다:

  • always_declare_return_types: 모든 함수와 메서드에 반환 타입을 선언합니다.
  • avoid_print: print 함수 사용을 피합니다.
  • avoid_types_as_parameter_names: 매개변수 이름으로 타입 이름 사용을 피합니다.
  • constant_identifier_names: 상수 식별자는 대문자로 작성해야 합니다.
  • file_names: 파일 이름은 소문자여야 합니다.
  • prefer_const_constructors: 가능한 곳에서 const 생성자를 사용합니다.
  • prefer_final_fields: 변경되지 않는 필드에 final을 사용합니다.

최종 예제

전체 analysis_options.yaml 파일의 예제는 다음과 같습니다

include: package:lint/analysis_options.yaml

linter:
  rules:
    always_declare_return_types: true
    avoid_print: true
    avoid_single_cascade_in_expression_statements: true
    avoid_unused_constructor_parameters: true
    file_names: true
    prefer_const_constructors: true

analyzer:
  errors:
    missing_return: error
    invalid_annotation_target: warning
    dead_code: ignore

  exclude:
    - 'test/**'
    - 'lib/generated/**'
  
  strong-mode:
    implicit-casts: false
    implicit-dynamic: false

 

이 설정 파일은 기본 lint 설정을 포함하면서 몇 가지 추가 규칙을 정의하고, 특정 오류의 심각도를 설정하며, 분석에서 제외할 파일 및 디렉토리를 지정합니다.

 

lint 패키지와 함께 analysis_options.yaml 파일을 설정하면 코드의 일관성을 유지하고, 잠재적인 버그를 조기에 발견하며, 코드 품질을 높이는 데 도움이 됩니다.

 

728x90
반응형