handleRegionFields method
dynamic
handleRegionFields()
Implementation
handleRegionFields() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
EditorRegionOptions? region = widget.options.regionOptions;
String path = widget.path;
String fileContent = widget.defaultValue;
if (region != null) {
int regionStart = region.start!;
int regionEnd = region.end!;
if (prefs.get(path) != null) {
regionStart = int.parse(prefs.getString(path)?.split(':')[0] ?? '');
regionEnd = int.parse(prefs.getString(path)?.split(':')[1] ?? '');
}
int lines = fileContent.split('\n').length;
if (lines >= 1) {
String beforeEditableRegionText =
fileContent.split('\n').sublist(0, regionStart).join('\n');
String inEditableRegionText = fileContent
.split('\n')
.sublist(regionStart, regionEnd - 1)
.join('\n');
String afterEditableRegionText = fileContent
.split('\n')
.sublist(regionEnd - 1, fileContent.split('\n').length)
.join('\n');
beforeController.text = beforeEditableRegionText;
inController.text = inEditableRegionText;
afterController.text = afterEditableRegionText;
}
} else {
beforeController.text = '';
inController.text = fileContent;
afterController.text = '';
}
updateLineCount(inController.text, RegionPosition.inner);
}