FrameWork/Flutter
vsc에서 flutter 코드 정렬 할 때, 위젯 별로 정렬되지 않은 문제 해결하기
jheaon
2025. 2. 24. 12:14
1. 문제
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(
const MaterialApp(home: Scaffold(body: Center(child: Text("hello world"),),),),
);
}
# 코드 포맷터 사용 후
import 'package:flutter/material.dart';
void main() {
runApp(
const MaterialApp(home: Scaffold(body: Center(child: Text("hello world")))),
);
}
# 내가 원하는 것
import 'package:flutter/material.dart';
void main() {
runApp(
const MaterialApp(
home: Scaffold(
body: Center(
child: Text("hello world"),
),
),
),
);
}
다음과 같이 되어 있는 코드에서 포맷터를 이용하여 코드 정렬을 하면 각 위젯마다 정렬돼서 나오는 것을 원했는데, 위와 같이 한 줄로 나오고 위젯마다 줄 바꿈 돼서 보이지 않는 문제가 발생했다.
2. 해결 방안
해당 문제는 Dart SDK 버전 3.7에 도입된 새로운 Dart 포맷터를 이용하여 생긴 문제이다. (아마도 한 줄에 사용된 글자 수가 짧아서 한 줄로 표현하기 위해서 다음과 같이 패치한 듯)
해당 문제를 해결하기 위해서는 flutter프로젝트의 pubspec.yaml 파일에서 다음 값을 변경해 준다.
# 변경 전
environment:
sdk: ^3.7.0
# 변경 후 (하위 호환성을 추가)
environment:
sdk: ">=3.6.0 <4.0.0"
flutter: ">=3.6.0"