feat: use $EDITOR to edit files (#496)

Fixes #489
This commit is contained in:
lollipopkit🏳️‍⚧️
2024-07-26 23:32:57 +08:00
committed by GitHub
parent 5db1253ab8
commit 8be94aa09c
16 changed files with 67 additions and 4 deletions

View File

@@ -691,6 +691,7 @@ class _SettingPageState extends State<SettingPage> {
Widget _buildSFTP() {
return Column(
children: [
_buildSftpEditor(),
_buildSftpRmrDir(),
_buildSftpOpenLastPath(),
_buildSftpShowFoldersFirst(),
@@ -1237,4 +1238,40 @@ class _SettingPageState extends State<SettingPage> {
trailing: StoreSwitch(prop: _setting.letterCache),
);
}
Widget _buildSftpEditor() {
return _setting.sftpEditor.listenable().listenVal(
(val) {
return ListTile(
leading: const Icon(MingCute.edit_fill),
title: TipText(text: l10n.editor, tip: l10n.sftpEditorTip),
trailing: Text(
val.isEmpty ? l10n.inner : val,
style: UIs.text15,
),
onTap: () async {
final ctrl = TextEditingController(text: val);
void onSave(String s) {
_setting.sftpEditor.put(s);
context.pop();
}
await context.showRoundDialog<bool>(
title: l10n.choose,
child: Input(
controller: ctrl,
autoFocus: true,
label: l10n.editor,
hint: '\$EDITOR / vim / nano ...',
icon: Icons.edit,
suggestion: false,
onSubmitted: onSave,
),
actions: Btns.oks(onTap: () => onSave(ctrl.text)),
);
},
);
},
);
}
}