Make template paths static & fix Dart Analysis config (#680)

diff --git a/.gitpod.yml b/.gitpod.yml
index d2bf753..905472b 100644
--- a/.gitpod.yml
+++ b/.gitpod.yml
@@ -16,3 +16,7 @@
   - port: 9504
     onOpen: "ignore"
 
+
+vscode:
+  extensions:
+    - dart-code.dart-code@3.20.1:gKwMOzlkrgxrb7aPrMdQ8w==
\ No newline at end of file
diff --git a/lib/src/analysis_server.dart b/lib/src/analysis_server.dart
index 1c20ed5..dc76714 100644
--- a/lib/src/analysis_server.dart
+++ b/lib/src/analysis_server.dart
@@ -35,61 +35,17 @@
 const Duration _ANALYSIS_SERVER_TIMEOUT = Duration(seconds: 35);
 
 class DartAnalysisServerWrapper extends AnalysisServerWrapper {
-  Directory _tempProject;
-
   DartAnalysisServerWrapper() : super(SdkManager.sdk.sdkPath);
 
   @override
-  Future<AnalysisServer> init() async {
-    _logger.info('DartAnalysisServerWrapper init');
-    _tempProject = await Directory.systemTemp.createTemp('DartAnalysisWrapper');
-    return super.init();
-  }
-
-  @override
-  String get _sourceDirPath => _tempProject.path;
-
-  @override
-  Future<proto.AnalysisResults> analyze(String source) {
-    _logger.info('DartAnalysisServerWrapper analyze');
-    return super.analyze(source);
-  }
-
-  @override
-  Future<dynamic> shutdown() {
-    _logger.info('DartAnalysisServerWrapper shutdown');
-    return _tempProject
-        .delete(recursive: true)
-        .then((value) => super.shutdown());
-  }
+  String get _sourceDirPath => FlutterWebManager.dartTemplateProject.path;
 }
 
 class FlutterAnalysisServerWrapper extends AnalysisServerWrapper {
-  final FlutterWebManager flutterWebManager;
-
-  FlutterAnalysisServerWrapper(this.flutterWebManager)
-      : super(SdkManager.sdk.sdkPath);
+  FlutterAnalysisServerWrapper() : super(SdkManager.sdk.sdkPath);
 
   @override
-  Future<AnalysisServer> init() async {
-    _logger.info('FlutterAnalysisServerWrapper init');
-    return super.init();
-  }
-
-  @override
-  String get _sourceDirPath => flutterWebManager.flutterTemplateProject.path;
-
-  @override
-  Future<proto.AnalysisResults> analyze(String source) {
-    _logger.info('FlutterAnalysisServerWrapper analyze');
-    return super.analyze(source);
-  }
-
-  @override
-  Future<dynamic> shutdown() {
-    _logger.info('FlutterAnalysisServerWrapper shutdown');
-    return super.shutdown();
-  }
+  String get _sourceDirPath => FlutterWebManager.flutterTemplateProject.path;
 }
 
 abstract class AnalysisServerWrapper {
diff --git a/lib/src/analysis_servers.dart b/lib/src/analysis_servers.dart
index d534714..0c8d063 100644
--- a/lib/src/analysis_servers.dart
+++ b/lib/src/analysis_servers.dart
@@ -46,7 +46,7 @@
     _logger.info('Beginning AnalysisServersWrapper init().');
     _dartAnalysisServer = DartAnalysisServerWrapper();
     _flutterWebManager = FlutterWebManager();
-    _flutterAnalysisServer = FlutterAnalysisServerWrapper(_flutterWebManager);
+    _flutterAnalysisServer = FlutterAnalysisServerWrapper();
 
     await _dartAnalysisServer.init();
     _logger.info('Dart analysis server initialized.');
diff --git a/lib/src/compiler.dart b/lib/src/compiler.dart
index 72e784a..97d0578 100644
--- a/lib/src/compiler.dart
+++ b/lib/src/compiler.dart
@@ -63,7 +63,7 @@
     _logger.info('Temp directory created: ${temp.path}');
 
     try {
-      await copyPath(_flutterWebManager.dartTemplateProject.path, temp.path);
+      await copyPath(FlutterWebManager.dartTemplateProject.path, temp.path);
       await Directory(path.join(temp.path, 'lib')).create(recursive: true);
 
       final arguments = <String>[
@@ -131,9 +131,9 @@
       final usingFlutter = _flutterWebManager.usesFlutterWeb(imports);
       if (usingFlutter) {
         await copyPath(
-            _flutterWebManager.flutterTemplateProject.path, temp.path);
+            FlutterWebManager.flutterTemplateProject.path, temp.path);
       } else {
-        await copyPath(_flutterWebManager.dartTemplateProject.path, temp.path);
+        await copyPath(FlutterWebManager.dartTemplateProject.path, temp.path);
       }
 
       await Directory(path.join(temp.path, 'lib')).create(recursive: true);
diff --git a/lib/src/flutter_web.dart b/lib/src/flutter_web.dart
index eeb4001..0f0bf2c 100644
--- a/lib/src/flutter_web.dart
+++ b/lib/src/flutter_web.dart
@@ -8,10 +8,10 @@
 
 /// Support for handling Flutter web snippets.
 class FlutterWebManager {
-  final Directory flutterTemplateProject = Directory(path.join(
+  static final Directory flutterTemplateProject = Directory(path.join(
       Directory.current.path, 'project_templates', 'flutter_project'));
 
-  final Directory dartTemplateProject = Directory(
+  static final Directory dartTemplateProject = Directory(
       path.join(Directory.current.path, 'project_templates', 'dart_project'));
 
   FlutterWebManager();
diff --git a/test/analysis_server_test.dart b/test/analysis_server_test.dart
index ec0f314..a2021cb 100644
--- a/test/analysis_server_test.dart
+++ b/test/analysis_server_test.dart
@@ -6,7 +6,6 @@
 
 import 'package:dart_services/src/analysis_server.dart';
 import 'package:dart_services/src/common.dart';
-import 'package:dart_services/src/flutter_web.dart';
 import 'package:dart_services/src/protos/dart_services.pb.dart' as proto;
 import 'package:test/test.dart';
 
@@ -206,7 +205,7 @@
 
   group('Flutter cached SDK analysis_server', () {
     setUp(() async {
-      analysisServer = FlutterAnalysisServerWrapper(FlutterWebManager());
+      analysisServer = FlutterAnalysisServerWrapper();
       await analysisServer.init();
     });
 
diff --git a/test/flutter_analysis_server_test.dart b/test/flutter_analysis_server_test.dart
index 6d35d53..45fa67e 100644
--- a/test/flutter_analysis_server_test.dart
+++ b/test/flutter_analysis_server_test.dart
@@ -9,7 +9,6 @@
 import 'package:dart_services/src/analysis_servers.dart';
 import 'package:dart_services/src/common_server_impl.dart';
 import 'package:dart_services/src/common_server_api.dart';
-import 'package:dart_services/src/flutter_web.dart';
 import 'package:dart_services/src/protos/dart_services.pbserver.dart';
 import 'package:dart_services/src/server_cache.dart';
 import 'package:dart_services/src/sdk_manager.dart';
@@ -208,7 +207,7 @@
 
     setUp(() async {
       await SdkManager.sdk.init();
-      analysisServer = FlutterAnalysisServerWrapper(FlutterWebManager());
+      analysisServer = FlutterAnalysisServerWrapper();
       await analysisServer.init();
       await analysisServer.warmup();
     });
diff --git a/test/flutter_web_test.dart b/test/flutter_web_test.dart
index df77679..4fdf678 100644
--- a/test/flutter_web_test.dart
+++ b/test/flutter_web_test.dart
@@ -22,8 +22,8 @@
     });
 
     test('inited', () async {
-      expect(await flutterWebManager.flutterTemplateProject.exists(), isTrue);
-      final file = File(path.join(flutterWebManager.flutterTemplateProject.path,
+      expect(await FlutterWebManager.flutterTemplateProject.exists(), isTrue);
+      final file = File(path.join(FlutterWebManager.flutterTemplateProject.path,
           '.dart_tool', 'package_config.json'));
       expect(await file.exists(), isTrue);
     });
@@ -61,7 +61,7 @@
 
     test('packagesFilePath', () async {
       final packageConfig = File(path.join(
-          flutterWebManager.flutterTemplateProject.path,
+          FlutterWebManager.flutterTemplateProject.path,
           '.dart_tool',
           'package_config.json'));
       expect(await packageConfig.exists(), true);