fix(file-panels): Settings offers Source where the picker does, and review follow-ups

- Settings > Files offers Source on every key except those a built-in panel of
  another kind (Image) claims, so a plugin that alone claims a text extension
  shows the same choices as the picker.
- Delete the unused isSourceFilePanel.
- The Markdown example warns with the file name when its unmount write fails,
  rather than dropping the edit silently.
- Document that PluginFile stat fields are read at render time and that watch
  or the read hooks are how a panel learns they changed.
This commit is contained in:
Mohamed Boudra
2026-10-20 08:07:00 +02:00
parent ee7d422cc7
commit cd102d08b6
7 changed files with 35 additions and 26 deletions
@@ -85,7 +85,12 @@ function MarkdownEditor({ file, tab, theme }: PluginFilePanelProps) {
unwatch();
clearTimeout(saveTimer.current);
// Switching panels keeps the edit. Closing the tab asks first and drops it if discarded.
if (unsaved.current !== null) void file.writeText(unsaved.current).catch(() => {});
// The panel is gone, so a failed write (a conflict, a lost connection) can only be reported.
if (unsaved.current !== null) {
void file.writeText(unsaved.current).catch((cause) => {
console.warn(`Unsaved edits to ${file.name} were not written: ${messageOf(cause)}`);
});
}
};
}, [file, load]);