diff --git a/lib/modules/browse/extension/edit_code.dart b/lib/modules/browse/extension/edit_code.dart index 8f400d81..d0d748ee 100644 --- a/lib/modules/browse/extension/edit_code.dart +++ b/lib/modules/browse/extension/edit_code.dart @@ -93,7 +93,7 @@ class _CodeEditorPageState extends ConsumerState { _controller.text = source?.sourceCode ?? ""; useLogger = true; _logSubscription = _logStreamController.stream.listen((event) async { - _logsNotifier.value.add(event); + _addLog(event); try { await Future.delayed(const Duration(milliseconds: 5)); if (_scrollController.hasClients) { @@ -103,6 +103,18 @@ class _CodeEditorPageState extends ConsumerState { }); } + static const int _maxLogs = 200; + + void _addLog((LoggerLevel, String, DateTime) log) { + final logs = _logsNotifier.value; + final newLogs = List<(LoggerLevel, String, DateTime)>.from(logs); + if (newLogs.length >= _maxLogs) { + newLogs.removeAt(0); + } + newLogs.add(log); + _logsNotifier.value = newLogs; + } + List filters = []; Future filterDialog(BuildContext context) async {