Commit Graph

6 Commits

Author SHA1 Message Date
arch1t3cht 58d6ab520b folding: Also update counterpart for fold operations
This wasn't necessary before since the internal representation of
folds is be checked for consistency after each commit, but after the
switch to extradata fold operations would leave the extradata in an
invalid state. This isn't technically a problem, but it does leave more
extradata entries lying around than necessary, and it can trip up
automation scripts that aren't prepared for inconsistent fold state.
2023-06-01 23:01:32 +02:00
arch1t3cht 64b92a95ac folding: Simplify fold operation code 2023-05-19 18:45:40 +02:00
arch1t3cht 1bd426f69a folding: Switch to extradata for storage
This makes the internal juggling of fold data even more complicated, but
it has a number of advantages:
- Folds will preserved even when opening the file with Aegisub builds
  that don't know about folding.
- Folds will be preserved by automation scripts that re-insert every
  line.
- Folds do not break when adding or deleting lines in a text editor or
  some other editor, as long as the lines involving folds aren't
  touched.
- In particular, merging changes using tools like git will not break
  folds.
- Copy/pasting folds also keeps the folds to some extent. This is
  impossible to solve in full generality, but simple cases like
  cut/pasting a folded section somewhere else work, as long as the file
  isn't saved in between.
- This will give automation scripts full access to folding without
  needing to set up any additional API functions.
2023-01-02 02:40:19 +01:00
arch1t3cht 663112ba03 folding: Don't drop folds starting at the very first line 2022-08-08 16:38:43 +02:00
arch1t3cht e65e55833c Fix compilation for older C++ 2022-07-27 15:23:47 +02:00
arch1t3cht 56cc1a6873 Add line folding
Line folds are managed using metadata of AssDialogue elements, and
saved in the project properties. They only affect the appearance of the
subtitle grid, and have no impact on other line operations.
2022-07-27 15:23:47 +02:00