init
This commit is contained in:
commit
84c134adc4
131 changed files with 5489 additions and 0 deletions
73
lib/note_editor.dart
Normal file
73
lib/note_editor.dart
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_code_editor/flutter_code_editor.dart';
|
||||
import 'package:flutter_highlight/themes/monokai-sublime.dart';
|
||||
import 'package:highlight/languages/markdown.dart';
|
||||
import 'dart:io';
|
||||
|
||||
class NoteEditorScreen extends StatefulWidget {
|
||||
final File note;
|
||||
final bool isDarkMode;
|
||||
|
||||
NoteEditorScreen({required this.note, required this.isDarkMode});
|
||||
|
||||
@override
|
||||
_NoteEditorScreenState createState() => _NoteEditorScreenState();
|
||||
}
|
||||
|
||||
class _NoteEditorScreenState extends State<NoteEditorScreen> {
|
||||
late CodeController _controller;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_loadNoteContent();
|
||||
}
|
||||
|
||||
Future<void> _loadNoteContent() async {
|
||||
final content = await widget.note.readAsString();
|
||||
setState(() {
|
||||
_controller = CodeController(
|
||||
text: content,
|
||||
language: markdown,
|
||||
);
|
||||
_controller.addListener(_saveNote);
|
||||
_controller.popupController.enabled = false;
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _saveNote() async {
|
||||
await widget.note.writeAsString(_controller.text);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_controller.removeListener(_saveNote);
|
||||
_controller.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text(widget.note.uri.pathSegments.last.replaceAll('.md', '')),
|
||||
),
|
||||
body: _controller == null
|
||||
? Center(child: CircularProgressIndicator())
|
||||
: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: CodeTheme(
|
||||
data: CodeThemeData(styles: monokaiSublimeTheme),
|
||||
child: CodeField(
|
||||
gutterStyle: GutterStyle.none,
|
||||
controller: _controller,
|
||||
expands: true,
|
||||
textStyle: TextStyle(
|
||||
fontSize: 14.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue