main
dart 40 lines 931 Bytes
Raw
1 import 'package:flutter_riverpod/flutter_riverpod.dart';
2 import 'package:syntax_highlight/syntax_highlight.dart';
3
4 const supportedHighlighterLanguages = {
5 'css',
6 'dart',
7 'go',
8 'html',
9 'java',
10 'javascript',
11 'json',
12 'kotlin',
13 'python',
14 'rust',
15 'sql',
16 'swift',
17 'typescript',
18 'yaml',
19 };
20
21 final highlighterThemesProvider = FutureProvider<HighlighterThemes>((ref) {
22 return HighlighterThemes.load();
23 });
24
25 class HighlighterThemes {
26 final HighlighterTheme light;
27 final HighlighterTheme dark;
28
29 HighlighterThemes({required this.light, required this.dark});
30
31 static Future<HighlighterThemes> load() async {
32 final light = await HighlighterTheme.loadLightTheme();
33 final dark = await HighlighterTheme.loadDarkTheme();
34 return HighlighterThemes(light: light, dark: dark);
35 }
36 }
37
38 Future<void> initializeHighlighter() async {
39 await Highlighter.initialize(supportedHighlighterLanguages.toList());
40 }