fix linter rules and format files

This commit is contained in:
Fabian Freund
2025-02-18 16:06:49 +01:00
parent ec175514e6
commit 15dfcc1a4f
39 changed files with 77 additions and 64 deletions
+4 -3
View File
@@ -16,9 +16,10 @@ include: package:lint/strict.yaml
linter:
rules:
- unawaited_futures
- discarded_futures
- collection_methods_unrelated_type
unawaited_futures: true
discarded_futures: true
collection_methods_unrelated_type: true
require_trailing_commas: false
analyzer:
errors:
+1 -1
View File
@@ -13,7 +13,7 @@ GoRouter router(Ref ref) {
@Riverpod()
class WillAcceptDrop extends _$WillAcceptDrop {
// ignore: use_setters_to_change_properties
// ignore: use_setters_to_change_properties api decision
void setData(DropTargetData data) {
state = data;
}
@@ -22,7 +22,7 @@ class AppInitializationService extends _$AppInitializationService {
initialized: false,
stage: 'Loading Package Info...',
errors: List.empty(),
),);
));
return ref.read(packageInfoProvider.future);
}
@@ -32,7 +32,7 @@ class AppInitializationService extends _$AppInitializationService {
initialized: false,
stage: 'Synchronizing Bangs...',
errors: List.empty(),
),);
));
return ref
.read(bangSyncRepositoryProvider.notifier)
@@ -61,6 +61,6 @@ class AppInitializationService extends _$AppInitializationService {
initialized: false,
stage: null,
errors: List.empty(),
),);
));
}
}
+2 -2
View File
@@ -204,7 +204,7 @@ class GenericWebsiteService extends _$GenericWebsiteService {
'title': title,
'resources': resources.map(_serializeResource).toList(),
};
}, [response.body, url.toString()],);
}, [response.body, url.toString()]);
final resources =
(result['resources']! as List<Map<String, dynamic>>)
@@ -220,7 +220,7 @@ class GenericWebsiteService extends _$GenericWebsiteService {
title: result['title'] as String?,
favicon: favicon,
);
}, exceptionHandler: handleHttpError,);
}, exceptionHandler: handleHttpError);
}
Future<BrowserIcon?> getCachedIcon(Uri url) async {
+1 -1
View File
@@ -1,7 +1,7 @@
extension NullableX<T> on T? {
@pragma('vm:prefer-inline')
R? mapNotNull<R>(R? Function(T) callback) {
// ignore: null_check_on_nullable_type_parameter
// ignore: null_check_on_nullable_type_parameter validated
return (this != null) ? callback(this!) : null;
}
}
@@ -13,7 +13,7 @@ FutureOr<bool> widgetPinnable(Ref ref) async {
@Riverpod()
Raw<Stream<ReceivedParameter>> appWidgetLaunchStream(Ref ref) {
// ignore: discarded_futures
// ignore: discarded_futures is used as stream
final initialStream = HomeWidget.initiallyLaunchedFromHomeWidget().asStream();
return ConcatStream([
@@ -35,6 +35,6 @@ class BangSourceService extends _$BangSourceService {
return bang;
}).toList(),
);
}, exceptionHandler: handleHttpError,);
}, exceptionHandler: handleHttpError);
}
}
@@ -1,4 +1,4 @@
// ignore_for_file: avoid_dynamic_calls
// ignore_for_file: avoid_dynamic_calls we know what we do
import 'dart:convert';
@@ -66,7 +66,7 @@ class ChatArchiveDetailScreen extends HookConsumerWidget {
);
}
},
// ignore: deprecated_member_use
// ignore: deprecated_member_use use this icon for now
leadingIcon: const Icon(MdiIcons.languageMarkdown),
child: const Text('Copy as markdown'),
),
@@ -15,7 +15,7 @@ class BottomSheetController extends _$BottomSheetController {
return ref.watch(createTabStreamProvider).valueOrNull;
}
// ignore: use_setters_to_change_properties
// ignore: use_setters_to_change_properties api decision
void show(Sheet sheet) {
state = sheet;
}
@@ -10,7 +10,7 @@ class OverlayDialogController extends _$OverlayDialogController {
return null;
}
// ignore: use_setters_to_change_properties
// ignore: use_setters_to_change_properties api decision
void show(Widget dialog) {
state = dialog;
}
@@ -1,7 +1,6 @@
import 'package:fast_equatable/fast_equatable.dart';
import 'package:lensai/features/kagi/data/entities/modes.dart';
// ignore: missing_override_of_must_be_overridden
sealed class Sheet with FastEquatable {}
class CreateTabSheet extends Sheet {
@@ -1,5 +1,3 @@
// ignore_for_file: use_setters_to_change_properties
import 'dart:async';
import 'package:lensai/data/models/equatable_iterable.dart';
@@ -21,6 +19,8 @@ part 'providers.g.dart';
@Riverpod(keepAlive: true)
class SelectedBangTrigger extends _$SelectedBangTrigger {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void setTrigger(String trigger) {
state = trigger;
}
@@ -60,6 +60,8 @@ class SelectedBangData extends _$SelectedBangData {
@Riverpod(keepAlive: true)
class LastUsedAssistantMode extends _$LastUsedAssistantMode {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(AssistantMode mode) {
state = mode;
}
@@ -72,6 +74,8 @@ class LastUsedAssistantMode extends _$LastUsedAssistantMode {
@Riverpod(keepAlive: true)
class ActiveResearchVariant extends _$ActiveResearchVariant {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(ResearchVariant mode) {
state = mode;
}
@@ -84,6 +88,8 @@ class ActiveResearchVariant extends _$ActiveResearchVariant {
@Riverpod(keepAlive: true)
class ActiveChatModel extends _$ActiveChatModel {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(ChatModel model) {
state = model;
}
@@ -96,6 +102,8 @@ class ActiveChatModel extends _$ActiveChatModel {
@Riverpod(keepAlive: true)
class ShowFindInPage extends _$ShowFindInPage {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(bool show) {
state = show;
}
@@ -135,7 +143,7 @@ EquatableCollection<Map<String, TabState>> availableTabStates(
return EquatableCollection({
for (final tabId in availableTabs.collection)
if (tabStates.containsKey(tabId)) tabId: tabStates[tabId]!,
}, immutable: true,);
}, immutable: true);
}
@Riverpod()
@@ -261,7 +261,7 @@ class WebPageDialog extends HookConsumerWidget {
await Share.shareXFiles([
file,
], subject: precachedInfo?.title,);
], subject: precachedInfo?.title);
}
});
}
@@ -67,7 +67,7 @@ class CreateTabSheetWidget extends HookConsumerWidget {
onActiveToolChanged?.call(KagiTool.values[initialIndex]);
});
return null;
}, [initialIndex],);
}, [initialIndex]);
return Column(
mainAxisSize: MainAxisSize.min,
@@ -255,6 +255,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
final filteredTabIds = ref.watch(
seamlessFilteredTabIdsProvider(
TabSearchPartition.preview,
// ignore: document_ignores using fast equatable
// ignore: provider_parameters
ContainerFilterById(containerId: container),
),
@@ -294,7 +295,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
}
return null;
}, [filteredTabIds, activeTab],);
}, [filteredTabIds, activeTab]);
final tabs = useMemoized(() {
return filteredTabIds.collection
@@ -346,7 +347,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
),
)
.toList();
}, [filteredTabIds, activeTab],);
}, [filteredTabIds, activeTab]);
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 4.0),
@@ -51,9 +51,9 @@ class TabSearch extends HookConsumerWidget {
.read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier)
.addQuery(
searchTextController.text,
// ignore: avoid_redundant_argument_values
// ignore: avoid_redundant_argument_values dont break things
matchPrefix: _matchPrefix,
// ignore: avoid_redundant_argument_values
// ignore: avoid_redundant_argument_values dont break things
matchSuffix: _matchSuffix,
);
});
@@ -64,7 +64,7 @@ class ContainerEditScreen extends HookConsumerWidget {
title: Text(switch (_mode) {
_DialogMode.create => 'New Container',
_DialogMode.edit => 'Edit Container',
},),
}),
actions: [
IconButton(
onPressed: () async {
@@ -1,3 +1,5 @@
// ignore_for_file: avoid_dynamic_calls wo know what we do
import 'package:lensai/features/geckoview/features/preferences/data/models/preference_setting.dart';
enum PreferencePartition {
@@ -19,9 +21,7 @@ Map<String, PreferenceSettingGroup> deserializePreferenceSettingGroups(
(key, value) => MapEntry(
key,
PreferenceSettingGroup(
// ignore: avoid_dynamic_calls
description: value['description'] as String?,
// ignore: avoid_dynamic_calls
settings: (value['preferences'] as Map<String, dynamic>).map(
(key, value) => MapEntry(
key,
@@ -33,6 +33,6 @@ class KagiAutosuggestService extends _$KagiAutosuggestService
final List resultList => resultList.cast(),
_ => [],
};
}, exceptionHandler: handleHttpError,);
}, exceptionHandler: handleHttpError);
}
}
@@ -43,9 +43,9 @@ class SearchSuggestionsRepository extends _$SearchSuggestionsRepository {
}
return suggestionsProvider
// ignore: discarded_futures
// ignore: discarded_futures is used as stream
.getSuggestions(query)
// ignore: discarded_futures
// ignore: discarded_futures is used as stream
.then((result) {
result.onSuccess((result) {
_cache.set(query, result);
@@ -107,7 +107,7 @@ class SummarizeTab extends HookConsumerWidget {
textController.addListener(debounce);
return () => textController.removeListener(debounce);
}, [textController],);
}, [textController]);
return Column(
mainAxisSize: MainAxisSize.min,
@@ -198,7 +198,7 @@ final class PrefixQueryBuilder extends FtsQueryBuilder {
}
return 'NEAR(${phrase.map((bareword) => '$bareword*').join(' ')})';
}, ' OR ',);
}, ' OR ');
}
}
@@ -100,6 +100,7 @@ class WebEngineSettingsScreen extends HookConsumerWidget {
subtitle: const Text(
'While turning off JavaScript boosts security, privacy, and speed, it may cause some sites to not work as intended.',
),
// ignore: deprecated_member_use use this icon for now
secondary: const Icon(MdiIcons.languageJavascript),
value: engineSettings.javascriptEnabled,
onChanged: (value) async {
@@ -53,9 +53,9 @@ final _sharingIntentTransformer =
Raw<Stream<ReceivedParameter>> sharingIntentStream(Ref ref) {
final initialStream =
FlutterSharingIntent.instance
// ignore: discarded_futures
// ignore: discarded_futures is used as stream
.getInitialSharing()
// ignore: discarded_futures
// ignore: discarded_futures is used as stream
.then((event) {
FlutterSharingIntent.instance.reset();
return event;
@@ -9,6 +9,7 @@ part 'start_tor_proxy.g.dart';
@Riverpod()
class StartProxyController extends _$StartProxyController {
// ignore: document_ignores is used for dialog
// ignore: avoid_build_context_in_providers
Future<void> maybeStartProxy(BuildContext context) async {
final torProxyRunning = ref.read(torProxyServiceProvider);
@@ -2,7 +2,7 @@ import 'package:flutter_background_service/flutter_background_service.dart';
import 'package:tor/tor.dart';
@pragma('vm:entry-point')
void onStart(ServiceInstance service) async {
Future<void> onStart(ServiceInstance service) async {
await Tor.init();
final portSub = Tor.instance.events.stream.listen((port) {
@@ -5,7 +5,7 @@ AsyncSnapshot<T> useCachedFuture<T>(
Future<T> Function() valueBuilder, [
List<Object?> keys = const <Object>[],
]) {
// ignore: discarded_futures
// ignore: discarded_futures is used
final cachedFuture = useMemoized(valueBuilder, keys);
return useFuture(cachedFuture);
}
@@ -9,5 +9,5 @@ void useListenableCallback(
useEffect(() {
listenable?.addListener(callback);
return () => listenable?.removeListener(callback);
}, keys ?? [listenable],);
}, keys ?? [listenable]);
}
+1 -1
View File
@@ -4,5 +4,5 @@ import 'package:flutter_hooks/flutter_hooks.dart';
void useOnDispose(VoidCallback onDispose) {
useEffect(() {
return onDispose;
}, const [],);
}, const []);
}
@@ -6,5 +6,5 @@ void useOnInitialization(FutureOr<void> Function() callback) {
useEffect(() {
Future.microtask(callback);
return null;
}, [],);
}, []);
}
@@ -32,5 +32,5 @@ void useSyncPageWithTab(
tabController.removeListener(syncPage);
pageController.removeListener(syncTab);
};
}, [tabController, pageController],);
}, [tabController, pageController]);
}