//This task originally focused narrowly on generated code.//
- See also T13130 for broader discussion and rationale.
- See PHI64 for some plans.
Recently, changesets in Differential have "attributes". There is a large set of behaviors which attributes should expand to handle. Generally, "attributes" mean that `arc` can specify these behaviors per-changeset with client-side rules, and Differential/Diffusion can optionally also specify these behaviors with rules.
- **Generated Code**: See PHI64. `arc` should be able to mark arbitrary changesets as "generated" so they are folded at display time.
- **Third-Party Code**: See PHI1007. This is exactly the same as "generated" code, it just should say "This is third party code..." instead of "This is generated code...".
- **Context**: See PHI675. By default, `arc` uploads files with full context. There are several levels of complexity here, but one desirable outcome is likely to let `arc` selectively send large files with less context (i.e., produce a low-context diff if a change includes a couple of lines in a 10MB text file).
- **Tab Widths**: See T2495. `arc` could have rules to say "this file uses 17-space tabstops".
- **Syntax Highlighting**: `arc` could have rules to say "by default, highlight this file as though it were python source code".
- **Encoding**: `arc` could have rules to say "by default, render this file as encoded with Shift-JIS".
- **Whitespace**: If whitespace options survive PHI723, `arc` could have rules to say "show / don't show whitespace changes for this file".
- **"Don't Hide this Deleted File"**: See PHI985, where an install would like Differential to show deleted files by default. Although I don't think this use case is very marginal, it might be reasonable to have an "always show this changeset" flag that's stronger than other behaviors like the "generated" attribute and the default behavior for deleted files. You could then configure `arc` to set this flag on every changeset if you want "always show deleted files" as a behavior.
Obsolete:
- After changes connected to T13161, specifying whitespace behavior no longer makes much sense because whitespace options have been removed.