fix linter rules and format files
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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(),
|
||||||
),);
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,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()
|
||||||
|
|||||||
+1
-1
@@ -261,7 +261,7 @@ class WebPageDialog extends HookConsumerWidget {
|
|||||||
|
|
||||||
await Share.shareXFiles([
|
await Share.shareXFiles([
|
||||||
file,
|
file,
|
||||||
], subject: precachedInfo?.title,);
|
], subject: precachedInfo?.title);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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,
|
||||||
|
|||||||
+3
-2
@@ -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),
|
||||||
|
|||||||
+2
-2
@@ -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]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user