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: linter:
rules: rules:
- unawaited_futures unawaited_futures: true
- discarded_futures discarded_futures: true
- collection_methods_unrelated_type collection_methods_unrelated_type: true
require_trailing_commas: false
analyzer: analyzer:
errors: errors:
+1 -1
View File
@@ -13,7 +13,7 @@ GoRouter router(Ref ref) {
@Riverpod() @Riverpod()
class WillAcceptDrop extends _$WillAcceptDrop { class WillAcceptDrop extends _$WillAcceptDrop {
// ignore: use_setters_to_change_properties // ignore: use_setters_to_change_properties api decision
void setData(DropTargetData data) { void setData(DropTargetData data) {
state = data; state = data;
} }
@@ -22,7 +22,7 @@ class AppInitializationService extends _$AppInitializationService {
initialized: false, initialized: false,
stage: 'Loading Package Info...', stage: 'Loading Package Info...',
errors: List.empty(), errors: List.empty(),
),); ));
return ref.read(packageInfoProvider.future); return ref.read(packageInfoProvider.future);
} }
@@ -32,7 +32,7 @@ class AppInitializationService extends _$AppInitializationService {
initialized: false, initialized: false,
stage: 'Synchronizing Bangs...', stage: 'Synchronizing Bangs...',
errors: List.empty(), errors: List.empty(),
),); ));
return ref return ref
.read(bangSyncRepositoryProvider.notifier) .read(bangSyncRepositoryProvider.notifier)
@@ -61,6 +61,6 @@ class AppInitializationService extends _$AppInitializationService {
initialized: false, initialized: false,
stage: null, stage: null,
errors: List.empty(), errors: List.empty(),
),); ));
} }
} }
+2 -2
View File
@@ -204,7 +204,7 @@ class GenericWebsiteService extends _$GenericWebsiteService {
'title': title, 'title': title,
'resources': resources.map(_serializeResource).toList(), 'resources': resources.map(_serializeResource).toList(),
}; };
}, [response.body, url.toString()],); }, [response.body, url.toString()]);
final resources = final resources =
(result['resources']! as List<Map<String, dynamic>>) (result['resources']! as List<Map<String, dynamic>>)
@@ -220,7 +220,7 @@ class GenericWebsiteService extends _$GenericWebsiteService {
title: result['title'] as String?, title: result['title'] as String?,
favicon: favicon, favicon: favicon,
); );
}, exceptionHandler: handleHttpError,); }, exceptionHandler: handleHttpError);
} }
Future<BrowserIcon?> getCachedIcon(Uri url) async { Future<BrowserIcon?> getCachedIcon(Uri url) async {
+1 -1
View File
@@ -1,7 +1,7 @@
extension NullableX<T> on T? { extension NullableX<T> on T? {
@pragma('vm:prefer-inline') @pragma('vm:prefer-inline')
R? mapNotNull<R>(R? Function(T) callback) { 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; return (this != null) ? callback(this!) : null;
} }
} }
@@ -13,7 +13,7 @@ FutureOr<bool> widgetPinnable(Ref ref) async {
@Riverpod() @Riverpod()
Raw<Stream<ReceivedParameter>> appWidgetLaunchStream(Ref ref) { Raw<Stream<ReceivedParameter>> appWidgetLaunchStream(Ref ref) {
// ignore: discarded_futures // ignore: discarded_futures is used as stream
final initialStream = HomeWidget.initiallyLaunchedFromHomeWidget().asStream(); final initialStream = HomeWidget.initiallyLaunchedFromHomeWidget().asStream();
return ConcatStream([ return ConcatStream([
@@ -35,6 +35,6 @@ class BangSourceService extends _$BangSourceService {
return bang; return bang;
}).toList(), }).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'; 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), leadingIcon: const Icon(MdiIcons.languageMarkdown),
child: const Text('Copy as markdown'), child: const Text('Copy as markdown'),
), ),
@@ -15,7 +15,7 @@ class BottomSheetController extends _$BottomSheetController {
return ref.watch(createTabStreamProvider).valueOrNull; return ref.watch(createTabStreamProvider).valueOrNull;
} }
// ignore: use_setters_to_change_properties // ignore: use_setters_to_change_properties api decision
void show(Sheet sheet) { void show(Sheet sheet) {
state = sheet; state = sheet;
} }
@@ -10,7 +10,7 @@ class OverlayDialogController extends _$OverlayDialogController {
return null; return null;
} }
// ignore: use_setters_to_change_properties // ignore: use_setters_to_change_properties api decision
void show(Widget dialog) { void show(Widget dialog) {
state = dialog; state = dialog;
} }
@@ -1,7 +1,6 @@
import 'package:fast_equatable/fast_equatable.dart'; import 'package:fast_equatable/fast_equatable.dart';
import 'package:lensai/features/kagi/data/entities/modes.dart'; import 'package:lensai/features/kagi/data/entities/modes.dart';
// ignore: missing_override_of_must_be_overridden
sealed class Sheet with FastEquatable {} sealed class Sheet with FastEquatable {}
class CreateTabSheet extends Sheet { class CreateTabSheet extends Sheet {
@@ -1,5 +1,3 @@
// ignore_for_file: use_setters_to_change_properties
import 'dart:async'; import 'dart:async';
import 'package:lensai/data/models/equatable_iterable.dart'; import 'package:lensai/data/models/equatable_iterable.dart';
@@ -21,6 +19,8 @@ part 'providers.g.dart';
@Riverpod(keepAlive: true) @Riverpod(keepAlive: true)
class SelectedBangTrigger extends _$SelectedBangTrigger { class SelectedBangTrigger extends _$SelectedBangTrigger {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void setTrigger(String trigger) { void setTrigger(String trigger) {
state = trigger; state = trigger;
} }
@@ -60,6 +60,8 @@ class SelectedBangData extends _$SelectedBangData {
@Riverpod(keepAlive: true) @Riverpod(keepAlive: true)
class LastUsedAssistantMode extends _$LastUsedAssistantMode { class LastUsedAssistantMode extends _$LastUsedAssistantMode {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(AssistantMode mode) { void update(AssistantMode mode) {
state = mode; state = mode;
} }
@@ -72,6 +74,8 @@ class LastUsedAssistantMode extends _$LastUsedAssistantMode {
@Riverpod(keepAlive: true) @Riverpod(keepAlive: true)
class ActiveResearchVariant extends _$ActiveResearchVariant { class ActiveResearchVariant extends _$ActiveResearchVariant {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(ResearchVariant mode) { void update(ResearchVariant mode) {
state = mode; state = mode;
} }
@@ -84,6 +88,8 @@ class ActiveResearchVariant extends _$ActiveResearchVariant {
@Riverpod(keepAlive: true) @Riverpod(keepAlive: true)
class ActiveChatModel extends _$ActiveChatModel { class ActiveChatModel extends _$ActiveChatModel {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(ChatModel model) { void update(ChatModel model) {
state = model; state = model;
} }
@@ -96,6 +102,8 @@ class ActiveChatModel extends _$ActiveChatModel {
@Riverpod(keepAlive: true) @Riverpod(keepAlive: true)
class ShowFindInPage extends _$ShowFindInPage { class ShowFindInPage extends _$ShowFindInPage {
// ignore: document_ignores api decision
// ignore: use_setters_to_change_properties
void update(bool show) { void update(bool show) {
state = show; state = show;
} }
@@ -135,7 +143,7 @@ EquatableCollection<Map<String, TabState>> availableTabStates(
return EquatableCollection({ return EquatableCollection({
for (final tabId in availableTabs.collection) for (final tabId in availableTabs.collection)
if (tabStates.containsKey(tabId)) tabId: tabStates[tabId]!, if (tabStates.containsKey(tabId)) tabId: tabStates[tabId]!,
}, immutable: true,); }, immutable: true);
} }
@Riverpod() @Riverpod()
@@ -261,7 +261,7 @@ class WebPageDialog extends HookConsumerWidget {
await Share.shareXFiles([ await Share.shareXFiles([
file, file,
], subject: precachedInfo?.title,); ], subject: precachedInfo?.title);
} }
}); });
} }
@@ -67,7 +67,7 @@ class CreateTabSheetWidget extends HookConsumerWidget {
onActiveToolChanged?.call(KagiTool.values[initialIndex]); onActiveToolChanged?.call(KagiTool.values[initialIndex]);
}); });
return null; return null;
}, [initialIndex],); }, [initialIndex]);
return Column( return Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@@ -255,6 +255,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
final filteredTabIds = ref.watch( final filteredTabIds = ref.watch(
seamlessFilteredTabIdsProvider( seamlessFilteredTabIdsProvider(
TabSearchPartition.preview, TabSearchPartition.preview,
// ignore: document_ignores using fast equatable
// ignore: provider_parameters // ignore: provider_parameters
ContainerFilterById(containerId: container), ContainerFilterById(containerId: container),
), ),
@@ -294,7 +295,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
} }
return null; return null;
}, [filteredTabIds, activeTab],); }, [filteredTabIds, activeTab]);
final tabs = useMemoized(() { final tabs = useMemoized(() {
return filteredTabIds.collection return filteredTabIds.collection
@@ -346,7 +347,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
), ),
) )
.toList(); .toList();
}, [filteredTabIds, activeTab],); }, [filteredTabIds, activeTab]);
return Padding( return Padding(
padding: const EdgeInsets.symmetric(horizontal: 4.0), padding: const EdgeInsets.symmetric(horizontal: 4.0),
@@ -51,9 +51,9 @@ class TabSearch extends HookConsumerWidget {
.read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier) .read(tabSearchRepositoryProvider(TabSearchPartition.search).notifier)
.addQuery( .addQuery(
searchTextController.text, searchTextController.text,
// ignore: avoid_redundant_argument_values // ignore: avoid_redundant_argument_values dont break things
matchPrefix: _matchPrefix, matchPrefix: _matchPrefix,
// ignore: avoid_redundant_argument_values // ignore: avoid_redundant_argument_values dont break things
matchSuffix: _matchSuffix, matchSuffix: _matchSuffix,
); );
}); });
@@ -64,7 +64,7 @@ class ContainerEditScreen extends HookConsumerWidget {
title: Text(switch (_mode) { title: Text(switch (_mode) {
_DialogMode.create => 'New Container', _DialogMode.create => 'New Container',
_DialogMode.edit => 'Edit Container', _DialogMode.edit => 'Edit Container',
},), }),
actions: [ actions: [
IconButton( IconButton(
onPressed: () async { 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'; import 'package:lensai/features/geckoview/features/preferences/data/models/preference_setting.dart';
enum PreferencePartition { enum PreferencePartition {
@@ -19,9 +21,7 @@ Map<String, PreferenceSettingGroup> deserializePreferenceSettingGroups(
(key, value) => MapEntry( (key, value) => MapEntry(
key, key,
PreferenceSettingGroup( PreferenceSettingGroup(
// ignore: avoid_dynamic_calls
description: value['description'] as String?, description: value['description'] as String?,
// ignore: avoid_dynamic_calls
settings: (value['preferences'] as Map<String, dynamic>).map( settings: (value['preferences'] as Map<String, dynamic>).map(
(key, value) => MapEntry( (key, value) => MapEntry(
key, key,
@@ -33,6 +33,6 @@ class KagiAutosuggestService extends _$KagiAutosuggestService
final List resultList => resultList.cast(), final List resultList => resultList.cast(),
_ => [], _ => [],
}; };
}, exceptionHandler: handleHttpError,); }, exceptionHandler: handleHttpError);
} }
} }
@@ -43,9 +43,9 @@ class SearchSuggestionsRepository extends _$SearchSuggestionsRepository {
} }
return suggestionsProvider return suggestionsProvider
// ignore: discarded_futures // ignore: discarded_futures is used as stream
.getSuggestions(query) .getSuggestions(query)
// ignore: discarded_futures // ignore: discarded_futures is used as stream
.then((result) { .then((result) {
result.onSuccess((result) { result.onSuccess((result) {
_cache.set(query, result); _cache.set(query, result);
@@ -107,7 +107,7 @@ class SummarizeTab extends HookConsumerWidget {
textController.addListener(debounce); textController.addListener(debounce);
return () => textController.removeListener(debounce); return () => textController.removeListener(debounce);
}, [textController],); }, [textController]);
return Column( return Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@@ -198,7 +198,7 @@ final class PrefixQueryBuilder extends FtsQueryBuilder {
} }
return 'NEAR(${phrase.map((bareword) => '$bareword*').join(' ')})'; return 'NEAR(${phrase.map((bareword) => '$bareword*').join(' ')})';
}, ' OR ',); }, ' OR ');
} }
} }
@@ -100,6 +100,7 @@ class WebEngineSettingsScreen extends HookConsumerWidget {
subtitle: const Text( subtitle: const Text(
'While turning off JavaScript boosts security, privacy, and speed, it may cause some sites to not work as intended.', '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), secondary: const Icon(MdiIcons.languageJavascript),
value: engineSettings.javascriptEnabled, value: engineSettings.javascriptEnabled,
onChanged: (value) async { onChanged: (value) async {
@@ -53,9 +53,9 @@ final _sharingIntentTransformer =
Raw<Stream<ReceivedParameter>> sharingIntentStream(Ref ref) { Raw<Stream<ReceivedParameter>> sharingIntentStream(Ref ref) {
final initialStream = final initialStream =
FlutterSharingIntent.instance FlutterSharingIntent.instance
// ignore: discarded_futures // ignore: discarded_futures is used as stream
.getInitialSharing() .getInitialSharing()
// ignore: discarded_futures // ignore: discarded_futures is used as stream
.then((event) { .then((event) {
FlutterSharingIntent.instance.reset(); FlutterSharingIntent.instance.reset();
return event; return event;
@@ -9,6 +9,7 @@ part 'start_tor_proxy.g.dart';
@Riverpod() @Riverpod()
class StartProxyController extends _$StartProxyController { class StartProxyController extends _$StartProxyController {
// ignore: document_ignores is used for dialog
// ignore: avoid_build_context_in_providers // ignore: avoid_build_context_in_providers
Future<void> maybeStartProxy(BuildContext context) async { Future<void> maybeStartProxy(BuildContext context) async {
final torProxyRunning = ref.read(torProxyServiceProvider); final torProxyRunning = ref.read(torProxyServiceProvider);
@@ -2,7 +2,7 @@ import 'package:flutter_background_service/flutter_background_service.dart';
import 'package:tor/tor.dart'; import 'package:tor/tor.dart';
@pragma('vm:entry-point') @pragma('vm:entry-point')
void onStart(ServiceInstance service) async { Future<void> onStart(ServiceInstance service) async {
await Tor.init(); await Tor.init();
final portSub = Tor.instance.events.stream.listen((port) { final portSub = Tor.instance.events.stream.listen((port) {
@@ -5,7 +5,7 @@ AsyncSnapshot<T> useCachedFuture<T>(
Future<T> Function() valueBuilder, [ Future<T> Function() valueBuilder, [
List<Object?> keys = const <Object>[], List<Object?> keys = const <Object>[],
]) { ]) {
// ignore: discarded_futures // ignore: discarded_futures is used
final cachedFuture = useMemoized(valueBuilder, keys); final cachedFuture = useMemoized(valueBuilder, keys);
return useFuture(cachedFuture); return useFuture(cachedFuture);
} }
@@ -9,5 +9,5 @@ void useListenableCallback(
useEffect(() { useEffect(() {
listenable?.addListener(callback); listenable?.addListener(callback);
return () => listenable?.removeListener(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) { void useOnDispose(VoidCallback onDispose) {
useEffect(() { useEffect(() {
return onDispose; return onDispose;
}, const [],); }, const []);
} }
@@ -6,5 +6,5 @@ void useOnInitialization(FutureOr<void> Function() callback) {
useEffect(() { useEffect(() {
Future.microtask(callback); Future.microtask(callback);
return null; return null;
}, [],); }, []);
} }
@@ -32,5 +32,5 @@ void useSyncPageWithTab(
tabController.removeListener(syncPage); tabController.removeListener(syncPage);
pageController.removeListener(syncTab); pageController.removeListener(syncTab);
}; };
}, [tabController, pageController],); }, [tabController, pageController]);
} }
@@ -16,9 +16,10 @@ include: package:lint/package.yaml
linter: linter:
rules: rules:
- unawaited_futures unawaited_futures: true
- discarded_futures discarded_futures: true
- collection_methods_unrelated_type collection_methods_unrelated_type: true
require_trailing_commas: false
analyzer: analyzer:
plugins: plugins:
@@ -1,4 +1,4 @@
// ignore_for_file: constant_identifier_names, non_constant_identifier_names // ignore_for_file: constant_identifier_names, non_constant_identifier_names copied from kotlin
import 'package:flutter_mozilla_components/src/pigeons/gecko.g.dart'; import 'package:flutter_mozilla_components/src/pigeons/gecko.g.dart';
@@ -50,12 +50,12 @@ class GeckoAddonService extends GeckoAddonEvents {
_browserExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( _browserExtensionSubject.addWhenMoreRecent(timestamp, extensionId, (
extensionId: extensionId, extensionId: extensionId,
data: null, data: null,
),); ));
case WebExtensionActionType.page: case WebExtensionActionType.page:
_pageExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( _pageExtensionSubject.addWhenMoreRecent(timestamp, extensionId, (
extensionId: extensionId, extensionId: extensionId,
data: null, data: null,
),); ));
} }
} }
@@ -71,12 +71,12 @@ class GeckoAddonService extends GeckoAddonEvents {
_browserIconSubject.addWhenMoreRecent(timestamp, extensionId, ( _browserIconSubject.addWhenMoreRecent(timestamp, extensionId, (
extensionId: extensionId, extensionId: extensionId,
bytes: icon, bytes: icon,
),); ));
case WebExtensionActionType.page: case WebExtensionActionType.page:
_pageIconSubject.addWhenMoreRecent(timestamp, extensionId, ( _pageIconSubject.addWhenMoreRecent(timestamp, extensionId, (
extensionId: extensionId, extensionId: extensionId,
bytes: icon, bytes: icon,
),); ));
} }
} }
@@ -92,12 +92,12 @@ class GeckoAddonService extends GeckoAddonEvents {
_browserExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( _browserExtensionSubject.addWhenMoreRecent(timestamp, extensionId, (
extensionId: extensionId, extensionId: extensionId,
data: extensionData, data: extensionData,
),); ));
case WebExtensionActionType.page: case WebExtensionActionType.page:
_pageExtensionSubject.addWhenMoreRecent(timestamp, extensionId, ( _pageExtensionSubject.addWhenMoreRecent(timestamp, extensionId, (
extensionId: extensionId, extensionId: extensionId,
data: extensionData, data: extensionData,
),); ));
} }
} }
@@ -85,7 +85,7 @@ class GeckoEventService extends GeckoStateEvents {
_historySubject.addWhenMoreRecent(timestamp, id, ( _historySubject.addWhenMoreRecent(timestamp, id, (
tabId: id, tabId: id,
history: state, history: state,
),); ));
} }
@override @override
@@ -97,7 +97,7 @@ class GeckoEventService extends GeckoStateEvents {
_readerableSubject.addWhenMoreRecent(timestamp, id, ( _readerableSubject.addWhenMoreRecent(timestamp, id, (
tabId: id, tabId: id,
readerable: state, readerable: state,
),); ));
} }
@override @override
@@ -109,7 +109,7 @@ class GeckoEventService extends GeckoStateEvents {
_securityInfoSubject.addWhenMoreRecent(timestamp, id, ( _securityInfoSubject.addWhenMoreRecent(timestamp, id, (
tabId: id, tabId: id,
securityInfo: state, securityInfo: state,
),); ));
} }
@override @override
@@ -117,7 +117,7 @@ class GeckoEventService extends GeckoStateEvents {
_iconChangeSubject.addWhenMoreRecent(timestamp, id, ( _iconChangeSubject.addWhenMoreRecent(timestamp, id, (
tabId: id, tabId: id,
bytes: bytes, bytes: bytes,
),); ));
} }
@override @override
@@ -125,7 +125,7 @@ class GeckoEventService extends GeckoStateEvents {
_iconUpdateSubject.addWhenMoreRecent(timestamp, url, ( _iconUpdateSubject.addWhenMoreRecent(timestamp, url, (
url: url, url: url,
bytes: bytes, bytes: bytes,
),); ));
} }
@override @override
@@ -133,7 +133,7 @@ class GeckoEventService extends GeckoStateEvents {
_thumbnailSubject.addWhenMoreRecent(timestamp, id, ( _thumbnailSubject.addWhenMoreRecent(timestamp, id, (
tabId: id, tabId: id,
bytes: bytes, bytes: bytes,
),); ));
} }
@override @override
@@ -141,7 +141,7 @@ class GeckoEventService extends GeckoStateEvents {
_findResultsSubject.addWhenMoreRecent(timestamp, id, ( _findResultsSubject.addWhenMoreRecent(timestamp, id, (
tabId: id, tabId: id,
results: results.nonNulls.toList(), results: results.nonNulls.toList(),
),); ));
} }
@override @override
@@ -77,7 +77,7 @@ class _GeckoViewState extends State<GeckoView> {
}); });
}); });
}) })
// ignore: discarded_futures // ignore: discarded_futures that hos it is done in docs
..create(); ..create();
}, },
); );
+4 -3
View File
@@ -16,9 +16,10 @@ include: package:lint/package.yaml
linter: linter:
rules: rules:
- unawaited_futures unawaited_futures: true
- discarded_futures discarded_futures: true
- collection_methods_unrelated_type collection_methods_unrelated_type: true
require_trailing_commas: false
analyzer: analyzer:
plugins: plugins:
+1 -1
View File
@@ -5,7 +5,7 @@ import 'package:sqlite3/sqlite3.dart';
const String _libName = 'vec0'; const String _libName = 'vec0';
// ignore: avoid_classes_with_only_static_members // ignore: avoid_classes_with_only_static_members better like this
class Sqlite3Vec { class Sqlite3Vec {
static void ensureExtensionLoaded() { static void ensureExtensionLoaded() {
final libPath = switch (Platform.operatingSystem) { final libPath = switch (Platform.operatingSystem) {