Character Objects

In my day job of programming, my IDE lets me create objects and functions for easy reuse. Additionally, when I use a function, I can hover over it to see a summary of what it does. Moreover, when I want to review or change my use of that function, it’s a breeze to make many alterations at once. Going from that day job to my nighttime writing got me thinking–what if you could do something similar with characters and locations?

For example, if I want a character named “Sam,” I can create a character object that Scrivener would store in a unique file type. I can create the exact spelling I wish to use and set up how each variation of this character’s name would be spelled. Does he spell his name with an accent mark? Then “Sám” it is. Is it a guy? Then “he” and “him” are variations, as are “Sám’s” and maybe “Sámmy” and “Sámmy’s”. Now when I go to write his name, as soon as I type in the capital “S,” I get a popover of suggestions that I can choose from. No longer do I need to copy and past the accented letter or pull it from a character list.

Better still, Scrivener could keep track of where I used one of Sám’s name variations, including those otherwise ambiguous pronouns. So now when I want to see a full listing of what Sám has been up to, Scrivener can show me in its Scrivenings view. And if I want to change one of the variations from “Sám” to “Sáim,” I would simply need to change that in the predefined character object, and Scrivener would automatically update all occurrences.

And what if Scrivener could place even more information about Sáim at my fingertips? When I begin typing his name or hover over an existing instance of his name, it could give me a side window or another popup with a predefined summary of the character. And given Scrivener’s propensity for being versatile, I could even choose which parts of the character object are shown in this hover view. Do I want an external description? What about a backstory? Or maybe a driving internal description.

And of course, the cherry on top would be if Scrivener could review the work to point out when there are other ambiguous pronouns that could be confused with Sáim. This wouldn’t have to be anything too intelligent, just a recognition that a pronoun shouldn’t be out there on its own for too long at a time.

Of course, this could also be useful for locations or special objects, but the character use would be the most magical. Fingers crossed.

That would be a hell of a lot of work for the developers.

Be cool though. I imagine it could work with data detectors in the document, similar to when I recognises dates and places. Alternatively, you’d have to pepper your document with some kind of variable pointer. MultiMarkdown already lets you do that but it’s static until the document is compiled (or run through a custom pre-processor)