flutter syntax view template /********************* * main.dart *********************/ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import './home.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); // don't switch to landscape // only portrait SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]); runApp(MyApp());} class MyApp extends StatelessWidget{ MyApp({super.key}); @override Widget build(BuildContext context){ return GetMaterialApp( title: 'Flutter Template', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true), //colorSchemeSeed: Color(0x9f4376f8)), home: Home());}} /************* * home.dart *************/ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import './screen1.dart'; import './help.dart'; import './source.dart'; import './data.dart'; class Home extends StatelessWidget{ @override Widget build(BuildContext context){ return Scaffold( appBar:AppBar(title: Text('Flutter Template')), drawer: Drawer(child: ListView(children: [ ListTile(title: Text('Screen1'), onTap:() {Get.to(Screen1());}), ListTile(title: Text('Help'), onTap:()=> Navigator.of(context).push(Help())), ListTile(title: Text('Source'), onTap:() {Get.to(Source());}), ListTile(title: Text('Exit'), onTap:(){ SystemNavigator.pop(); })])), body: Center(child: Text(homeData)));}} /*************** * screen1.dart ***************/ import 'package:flutter/material.dart'; import 'package:get/get.dart'; class Screen1 extends StatelessWidget { Screen1({super.key}); @override Widget build(BuildContext context) { return Scaffold(appBar:AppBar(title:Text('Screen1')), body: Center(child: Text('Screen1')));}} /*************** * source.dart ***************/ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:flutter_syntax_view/flutter_syntax_view.dart'; import 'dart:async'; import 'dart:io'; import 'dart:convert'; import './codes.dart'; // function to show source code Widget showSource(String code, BuildContext context){ num line = LineSplitter().convert(code).length; return SizedBox(height:16.0 * line, child:SyntaxView( code: code, syntax: Syntax.DART, syntaxTheme: SyntaxTheme.vscodeDark(), withZoom:true, withLinesCount:true, expanded:true));} class Source extends StatelessWidget{ @override Widget build(BuildContext context) { return Scaffold(appBar:AppBar(title: Text('Source Code')), body: SingleChildScrollView(child:Column(children:[ for (var i=0; i{ Help() : super(builder: (BuildContext context){ return Scaffold( appBar: AppBar(title: Text('Help')), body: Center(child: Text(helpData)));});} /*************** * data.dart ***************/ String homeData = ''' Home Screen This is a flutter template with source code view, touch the drawer on the upper left hand of the screen for more info. '''; String helpData = ''' Help Screen The format for codes.dart starts with List codes = [ 3 single quotes content of main.dart 3 single quotes comma 3 single quotes content home.dart 3 single quotes comma repeat pattern for every source code ]; '''; /***************** * codes.dart *****************/ // main.dart // home.dart // source.dart // help.dart // screen1.dart List codes = [ /////////////////////////////////// // main.dart ''' /********************* * main.dart *********************/ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import './home.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); // don't switch to landscape // only portrait SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]); runApp(MyApp());} class MyApp extends StatelessWidget{ MyApp({super.key}); @override Widget build(BuildContext context){ return GetMaterialApp( title: 'Flutter Template', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true), //colorSchemeSeed: Color(0x9f4376f8)), home: Home());}} ''', //////////////////////////////////////////// // home.dart ''' /************* * home.dart *************/ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import './screen1.dart'; import './help.dart'; import './source.dart'; import './data.dart'; class Home extends StatelessWidget{ @override Widget build(BuildContext context){ return Scaffold( appBar:AppBar(title: Text('Flutter Template')), drawer: Drawer(child: ListView(children: [ ListTile(title: Text('Screen1'), onTap:() {Get.to(Screen1());}), ListTile(title: Text('Help'), onTap:()=> Navigator.of(context).push(Help())), ListTile(title: Text('Source'), onTap:() {Get.to(Source());}), ListTile(title: Text('Exit'), onTap:(){ SystemNavigator.pop(); })])), body: Center(child: Text(homeData)));}} ''', ////////////////////////////////////// // source.dart ''' /*************** * source.dart ***************/ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:flutter_syntax_view/flutter_syntax_view.dart'; import 'dart:async'; import 'dart:io'; import 'dart:convert'; import './codes.dart'; // function to show source code Widget showSource(String code, BuildContext context){ num line = LineSplitter().convert(code).length; return SizedBox(height:16.0 * line, child:SyntaxView( code: code, syntax: Syntax.DART, syntaxTheme: SyntaxTheme.vscodeDark(), withZoom:true, withLinesCount:true, expanded:true));} class Source extends StatelessWidget{ @override Widget build(BuildContext context) { return Scaffold(appBar:AppBar(title: Text('Source Code')), body: SingleChildScrollView(child:Column(children:[ for (var i=0; i{ Help() : super(builder: (BuildContext context){ return Scaffold( appBar: AppBar(title: Text('Help')), body: Center(child: Text(helpData)));});} ''', //////////////////////////// // screen1.dart ''' mport 'package:flutter/material.dart'; import 'package:get/get.dart'; class Screen1 extends StatelessWidget { Screen1({super.key}); @override Widget build(BuildContext context) { return Scaffold(appBar:AppBar(title:Text('Screen1')), body: Center(child: Text('Screen1')));}} ''', ];