Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Jay Flutter SnippetsNew to Visual Studio Code? Get it now.
Jay Flutter Snippets

Jay Flutter Snippets

cleanwash

|
5 installs
| (0) | Free
Personal Freezed / sealed-class Dart snippets (frf, sealed1, sealed2) + auto constructor generator (cons)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Jay Flutter Snippets

Freezed / sealed class / Provider / DI 보일러플레이트를 빠르게 찍어내기 위한 개인용 Dart/Flutter 스니펫 모음입니다. VS Code, Cursor, Antigravity 등 VS Code 기반 에디터에서 동일하게 동작합니다.

flutter_basic_kit_library 기반의 riverpod_kit / provider_kit / bloc_kit이 CLI로 화면 단위 스캐폴딩을 담당한다면, 이 익스텐션은 파일 안에서 타이핑할 때 바로 쓰는 조각 코드를 담당합니다.

설치

방법 1 — 마켓플레이스 검색 (VS Code, Cursor)

확장 검색창에서 Jay Flutter Snippets 검색 후 설치.

방법 2 — VSIX 수동 설치 (Antigravity 등, 검색 안 될 때)

  1. Releases 또는 로컬 빌드로 .vsix 파일 준비
  2. Cmd+Shift+P → Extensions: Install from VSIX... → 파일 선택

스니펫 목록

Freezed / 데이터 모델

Prefix 설명
frf Freezed 데이터클래스 — abstract class + const factory named-param 생성자 + fromJson
sealed1 순수 Dart sealed class + Success/Error 수동 구현 (Freezed 미사용)
sealed2 Freezed sealed class + .success/.error factory variant
json @JsonSerializable 클래스 스캐폴드 (Freezed 없이 json_annotation만)
fromjson 기존 클래스에 fromJson/toJson 쌍만 추가
when 봉인된 Result<T>에 대한 Dart 3 패턴 매칭 switch

화면 / 상태 관리

Prefix 설명
scaffold AppBar + body가 있는 기본 Scaffold
vmstate ChangeNotifier ViewModel의 _state 필드 + state getter
cnp ChangeNotifierProvider로 ViewModel + Screen 연결
stream1 단일 구독용 StreamController + Stream getter
stream2 브로드캐스트 StreamController + Stream getter

초기 설정

Prefix 설명
disetup get_it + injectable DI 부트스트랩 파일

생성자 자동완성 (cons)

클래스 본문 안, final 필드 선언 아래에서 cons를 입력하면 커서 위쪽의 final 필드들을 스캔해서 const ClassName({...}) 생성자를 만들어주는 자동완성 제안이 뜹니다. super.key + 필드별 required this.field가 전부 named/required로 생성됩니다.

class BigButton extends StatefulWidget {
  final String text;
  final void Function() onPressed;

  cons  // <- 여기서 입력하고 제안 수락
}

위 코드는 아래처럼 확장됩니다:

  const BigButton({
    super.key,
    required this.text,
    required this.onPressed,
  });

초기값이 있는 필드(final _controller = TextEditingController();)는 생성자 파라미터가 아닌 경우가 많아서 의도적으로 건너뜁니다. 위 스니펫들과 달리 이 기능은 정적 스니펫이 아니라 실제 익스텐션 코드(extension.js)로 동작합니다 — 자동완성 시점에 클래스의 final 필드를 실제로 스캔합니다.

사용 예시

test.dart 파일에서 frf 입력 → Tab:

import 'package:freezed_annotation/freezed_annotation.dart';

part 'test.freezed.dart';
part 'test.g.dart';

@freezed
abstract class ClassName with _$ClassName {
  const factory ClassName({

  }) = _ClassName;

  factory ClassName.fromJson(Map<String, Object?> json) => _$ClassNameFromJson(json);
}

클래스 이름을 고치면 3곳(class, with, factory ... =)이 동시에 바뀌고, Tab을 한 번 더 누르면 필드를 채워 넣는 괄호 안으로 커서가 이동합니다. 필드는 required/@Default/nullable(?) 중 하나를 꼭 지정해야 build_runner가 정상적으로 코드를 생성합니다.

dart run build_runner build --delete-conflicting-outputs

라이선스

MIT — 자세한 내용은 LICENSE 참고.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft