Skip to content

Instantly share code, notes, and snippets.

@jtmuller5
Created July 9, 2025 13:28
Show Gist options
  • Select an option

  • Save jtmuller5/813f6348de02e25893d0b64560f01764 to your computer and use it in GitHub Desktop.

Select an option

Save jtmuller5/813f6348de02e25893d0b64560f01764 to your computer and use it in GitHub Desktop.
Stateful Signal Widget Snippet
{
"Stateless Signal": {
"prefix": "slStateless",
"scope": "dart",
"body": [
"import 'package:flutter/material.dart';",
"import 'package:signals/signals.dart';",
"",
"class ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/} extends StatelessWidget {",
" ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}({super.key});",
"",
" final counter = signal(0);",
"",
" @override",
" Widget build(BuildContext context) {",
" return const Placeholder();",
" }",
"}"
],
"description": "Stateless widget with signal"
},
"Stateful Signal": {
"prefix": "slStateful",
"scope": "dart",
"body": [
"import 'package:flutter/material.dart';",
"import 'package:signals/signals_flutter.dart';",
"",
"class ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/} extends StatefulWidget {",
" const ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}({super.key});",
"",
" @override",
" State<${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}> createState() => _${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}State();",
"}",
"",
"class _${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}State extends State<${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/}> with SignalsMixin {",
" late final counter = createSignal(0);",
"",
" @override",
" Widget build(BuildContext context) {",
" return Text('Counter: ${counter.value}');",
" }",
"}"
],
"description": "Stateful widget with signal"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment