Skip to content

Instantly share code, notes, and snippets.

@kboomska
Last active April 25, 2023 18:04
Show Gist options
  • Save kboomska/88b953340949b2b66efa066a27c6c47d to your computer and use it in GitHub Desktop.
Save kboomska/88b953340949b2b66efa066a27c6c47d to your computer and use it in GitHub Desktop.
Flutter snippets
{
"StatelessWidget": {
"prefix": "stl",
"description": "Insert a custom Flutter StatelessWidget.",
"body": [
"class ${1:MyWidget} extends StatelessWidget {",
"\tconst ${1:MyWidget}({super.key});",
"",
"\t@override",
"\tWidget build(BuildContext context) {",
"\t\treturn ${2|Container,Column,Row,Center,Scaffold|}(",
"\t\t\t$0",
"\t\t);",
"\t}",
"}",
"",
],
},
"StatelessWidget with import Material": {
"prefix": "stli",
"description": "Insert a custom Flutter StatelessWidget with import from 'package:flutter/material.dart'.",
"body": [
"import 'package:flutter/material.dart';",
"",
"class ${1:MyWidget} extends StatelessWidget {",
"\tconst ${1:MyWidget}({super.key});",
"",
"\t@override",
"\tWidget build(BuildContext context) {",
"\t\treturn ${2|Container,Column,Row,Center,Scaffold|}(",
"\t\t\t$0",
"\t\t);",
"\t}",
"}",
"",
],
},
"StatefulWidget": {
"prefix": "stf",
"description": "Insert a custom Flutter StatefulWidget.",
"body": [
"class ${1:MyWidget} extends StatefulWidget {",
"\tconst ${1:MyWidget}({super.key});",
"",
"\t@override",
"\tState<${1:MyWidget}> createState() => _${1:MyWidget}State();",
"}\n",
"class _${1:MyWidget}State extends State<${1:MyWidget}> {",
"\t@override",
"\tWidget build(BuildContext context) {",
"\t\treturn ${2|Container,Column,Row,Center,Scaffold|}(",
"\t\t\t$0",
"\t\t);",
"\t}",
"}",
"",
],
},
"StatefulWidget with import Material": {
"prefix": "stfi",
"description": "Insert a custom Flutter StatefulWidget with import from 'package:flutter/material.dart'.",
"body": [
"import 'package:flutter/material.dart';",
"",
"class ${1:MyWidget} extends StatefulWidget {",
"\tconst ${1:MyWidget}({super.key});",
"",
"\t@override",
"\tState<${1:MyWidget}> createState() => _${1:MyWidget}State();",
"}\n",
"class _${1:MyWidget}State extends State<${1:MyWidget}> {",
"\t@override",
"\tWidget build(BuildContext context) {",
"\t\treturn ${2|Container,Column,Row,Center,Scaffold|}(",
"\t\t\t$0",
"\t\t);",
"\t}",
"}",
"",
],
},
"runApp": {
"prefix": "run",
"body": [
"import 'package:flutter/material.dart';",
"",
"void main() {",
"\trunApp(const ${1:MyApp}());",
"}",
"",
"class ${1:MyApp} extends StatelessWidget {",
"\tconst ${1:MyApp}({super.key});",
"",
"\t@override",
"\tWidget build(BuildContext context) {",
"\t\treturn const MaterialApp(",
"\t\t\tdebugShowCheckedModeBanner: false,",
"\t\t\thome: ${2|MyWidget,Scaffold,Container|}(),",
"\t\t);",
"\t}",
"}",
"$0",
],
},
"InheritedNotifier": {
"prefix": "inhnot",
"description": "Insert a custom Flutter InheritedNotifier.",
"body": [
"class ${1:MyWidgetProvider} extends InheritedNotifier {",
"\tconst ${1:MyWidgetProvider}({",
"\t\tsuper.key,",
"\t\trequired Widget child,",
"\t}) : super(child: child);",
"",
"\tstatic ${1:MyWidgetProvider}? noticeOf(BuildContext context) {",
"\t\treturn context.dependOnInheritedWidgetOfExactType<${1:MyWidgetProvider}>();",
"\t}",
"",
"\tstatic ${1:MyWidgetProvider}? readOnly(BuildContext context) {",
"\t\tfinal widget =",
"\t\t\t\tcontext.getElementForInheritedWidgetOfExactType<${1:MyWidgetProvider}>()?.widget;",
"\t\treturn widget is ${1:MyWidgetProvider} ? widget : null;",
"\t}",
"}",
"$0",
],
},
"InheritedNotifier with Model": {
"prefix": "inhmod",
"description": "Insert a custom Flutter InheritedNotifier with Model.",
"body": [
"class ${1:MyModel} extends ChangeNotifier {",
"\t$2",
"}",
"",
"class ${1:MyModel}Provider extends InheritedNotifier {",
"\tfinal ${1:MyModel} model;",
"",
"\tconst ${1:MyModel}Provider({",
"\t\tsuper.key,",
"\t\trequired this.model,",
"\t\trequired Widget child,",
"\t}) : super(",
"\t\t\t\t\tnotifier: model,",
"\t\t\t\t\tchild: child,",
"\t\t\t\t);",
"",
"\tstatic ${1:MyModel}Provider? noticeOf(BuildContext context) {",
"\t\treturn context.dependOnInheritedWidgetOfExactType<${1:MyModel}Provider>();",
"\t}",
"",
"\tstatic ${1:MyModel}Provider? readOnly(BuildContext context) {",
"\t\tfinal widget = context",
"\t\t\t\t.getElementForInheritedWidgetOfExactType<${1:MyModel}Provider>()",
"\t\t\t\t?.widget;",
"\t\treturn widget is ${1:MyModel}Provider ? widget : null;",
"\t}",
"}",
"$0",
],
},
"InheritedNotifier with Model and import Material": {
"prefix": "inhimod",
"description": "Insert a custom Flutter InheritedNotifier with Model.",
"body": [
"import 'package:flutter/material.dart';",
"",
"class ${1:MyModel} extends ChangeNotifier {",
"\t$2",
"}",
"",
"class ${1:MyModel}Provider extends InheritedNotifier {",
"\tfinal ${1:MyModel} model;",
"",
"\tconst ${1:MyModel}Provider({",
"\t\tsuper.key,",
"\t\trequired this.model,",
"\t\trequired Widget child,",
"\t}) : super(",
"\t\t\t\t\tnotifier: model,",
"\t\t\t\t\tchild: child,",
"\t\t\t\t);",
"",
"\tstatic ${1:MyModel}Provider? noticeOf(BuildContext context) {",
"\t\treturn context.dependOnInheritedWidgetOfExactType<${1:MyModel}Provider>();",
"\t}",
"",
"\tstatic ${1:MyModel}Provider? readOnly(BuildContext context) {",
"\t\tfinal widget = context",
"\t\t\t\t.getElementForInheritedWidgetOfExactType<${1:MyModel}Provider>()",
"\t\t\t\t?.widget;",
"\t\treturn widget is ${1:MyModel}Provider ? widget : null;",
"\t}",
"}",
"$0",
],
},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment