always_put_control_body_on_new_line 린트 규칙

always_put_control_body_on_new_line 린트 규칙

제어 구조의 표현식과 그 문장을 서로 다른 줄에 작성하도록 안내하는 린트 규칙이에요. 같은 줄에 적으면 관련 코드가 있다는 사실이 잘 안 보이거든요.

출처: always_put_control_body_on_new_line

본문

flutter 저장소 스타일 가이드에서 가져온 규칙이에요:

DO 제어 구조의 표현식과 문장을 분리해서 작성하세요.

if, for, while, do의 문장 부분을 표현식과 같은 줄에 두지 마세요. 아무리 짧아도 마찬가지예요. 같은 줄에 두면 관련 코드가 있다는 게 명확히 보이지 않아요. 특히 early return(조기 반환)에서 이 부분이 중요해요.

BAD:

if (notReady) return;

if (notReady)
  return;
else print('ok')

while (condition) i += 1;

GOOD:

if (notReady)
  return;

if (notReady)
  return;
else
  print('ok')

while (condition)
  i += 1;

이 규칙은 Dart formatter와 충돌할 수 있으니, Dart formatter를 사용할 때는 활성화하지 않는 게 좋아요.

Enable

always_put_control_body_on_new_line 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 always_put_control_body_on_new_line를 추가해 주세요:

linter:
  rules:
    - always_put_control_body_on_new_line

대신 YAML 맵 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 always_put_control_body_on_new_line: true를 추가하면 돼요:

linter:
  rules:
    always_put_control_body_on_new_line: true

더 알아보기