Repository navigation
Conversation
Preserve the directive when project paths are refreshed and saved, and clear it when audio is explicitly opened or closed.
Use directory attributes and the reparse tag to recognize mounted folders on Windows, and compare directory and parent device IDs on POSIX. Treat filesystem roots as mount points.
Read configs with TextFileReader and search media patterns relative to the subtitle directory. Stop discovery at Git or filesystem boundaries and allow config loading to be disabled.
|
This is a really cool feature, went to port it when I saw it on my feed with my agent and it flagged a few issues:
|
| } | ||
|
|
||
| agi::fs::path ProjectProperties::ConfigFilename(agi::fs::path const& subtitle) { | ||
| return subtitle.parent_path() / (".aegiconf-" + subtitle.filename().string()); |
There was a problem hiding this comment.
I'm not sure having this be a dotfile is the best idea when most platforms hide dotfiles in the file explorer by default. While it is cleaner to have them hidden, having visible files ensures the user knows they exist (and can rename/delete them when renaming/deleting the ass file)
There was a problem hiding this comment.
Being hidden (and thus unobtrusive) by default is the point. Could equivalently put it in a database in the user data dir, but this seemed cleaner. I suppose the rename concern is valid, but imo it's fairly minor (nothing in project garbage is that important), and renaming stuff willy-nilly has gotten a lot less common in the git era anyway.
cae513e to
28093c5
Compare
Save to .aegiconf-[full filename] by default without freezing pattern-derived paths. Preserve editable config content, provide a legacy inline save preference, and embed resolved project settings in recovery autosaves.
Keep the format factory registry in its own translation unit so focused ASS tests can link shared format operations without requiring every subtitle format implementation.
28093c5 to
b0577eb
Compare
Cover cascading precedence, subtitle-relative media paths and patterns, Git discovery boundaries, ordered matching, and config persistence. Document the preferences and recovery autosave behavior.
b0577eb to
d50210d
Compare
Saving ASS subtitles now writes current project settings to
.aegiconf-[full filename]by default, keeping local project state out of subtitle diffs. WhenSave Project Settings in Subtitle Fileis disabled, existing in-file settings are preserved as loaded rather than removed or updated; files without them remain without them. Legacy settings in[Script Info]may migrate into[Aegisub Project Garbage]while retaining their loaded values.Load shared
.aegiconffiles from ancestor directories, then the per-subtitle config, with closer files overriding earlier ones. Discovery stops at Git and filesystem boundaries. Loading any matching config, including an empty file, discards all inline project settings from the active configuration while retaining their load-time values for saving. Legacy settings remain the fallback when no config is loaded.Support ordered video, audio, keyframe, and timecode patterns relative to the subtitle directory, plus
Audio File: ?video. Pattern-derived paths are omitted from saved overrides, and comments, unknown directives, and active patterns are preserved. TheSave Project Settings in Subtitle Filepreference updates inline settings when enabled; config loading can be disabled separately. Recovery autosaves retain embedded project settings and resolved paths.Includes separate filesystem utility commits, documentation, and regression coverage for config precedence, legacy-setting replacement, relative paths, patterns, discovery boundaries, repeated saves, and preservation of original inline settings.
🤖 Codex