diff --git a/lib/home/bloc/home_bloc.dart b/lib/home/bloc/home_bloc.dart index 6aa4a75..577e166 100644 --- a/lib/home/bloc/home_bloc.dart +++ b/lib/home/bloc/home_bloc.dart @@ -1,14 +1,14 @@ // dynamic calls is ok here // ignore_for_file: avoid_dynamic_calls -import 'dart:io'; - import 'package:ariadne/analyzer/analyzer.dart'; import 'package:ariadne/database/code/code_database.dart'; import 'package:ariadne/database/database_manager.dart'; import 'package:ariadne/database/projects/projects_database.dart'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; +import 'package:file/file.dart'; +import 'package:file/local.dart'; import 'package:flutter/foundation.dart'; import 'package:glob/glob.dart'; import 'package:lsp_server/lsp_server.dart'; @@ -26,11 +26,13 @@ class HomeBloc extends Bloc { required ProjectsDatabase projectsDB, required CodeDatabaseManager codeDbManager, required CodeDatabase codeDB, + FileSystem? fileSystem, }) : _analyzer = analyzer, _projectsDbManager = projectsDbManager, _projectsDB = projectsDB, _codeDbManager = codeDbManager, _codeDB = codeDB, + _fileSystem = fileSystem ?? const LocalFileSystem(), super(const HomeState()) { on(_onShowAnalyzedProjects); on(_onOpenProject); @@ -44,6 +46,7 @@ class HomeBloc extends Bloc { final ProjectsDatabase _projectsDB; final CodeDatabaseManager _codeDbManager; final CodeDatabase _codeDB; + final FileSystem _fileSystem; Future _onShowAnalyzedProjects( ShowAnalyzedProjects event, @@ -78,7 +81,7 @@ class HomeBloc extends Bloc { Emitter emit, ) async { await _projectsDB.analyzedProjects.delete(projectId: event.projectId); - final file = File(event.dbPath); + final file = _fileSystem.file(event.dbPath); if (file.existsSync()) { file.deleteSync(); } @@ -96,7 +99,7 @@ class HomeBloc extends Bloc { final dbFolder = await getApplicationSupportDirectory(); final path = p.join(dbFolder.path, 'analysis', '$fileName.sqlite'); - final file = File(path); + final file = _fileSystem.file(path); if (file.existsSync()) { file.deleteSync(); } @@ -153,8 +156,8 @@ class HomeBloc extends Bloc { } Future> _findDartFiles({required String root}) async { - final rootDir = Directory(root); - final analysisOptionsFile = File( + final rootDir = _fileSystem.directory(root); + final analysisOptionsFile = _fileSystem.file( p.join(rootDir.path, 'analysis_options.yaml'), ); diff --git a/pubspec.lock b/pubspec.lock index d18836c..edbf6fa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -235,7 +235,7 @@ packages: source: hosted version: "2.1.5" file: - dependency: transitive + dependency: "direct main" description: name: file sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 diff --git a/pubspec.yaml b/pubspec.yaml index 1970fbc..757efd4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,6 +11,7 @@ dependencies: collection: ^1.19.1 drift: ^2.30.1 equatable: ^2.0.8 + file: ^7.0.1 flutter: sdk: flutter flutter_bloc: ^9.1.1