Problem with auto-complete character name suggestions

Hey everyone,

I’m using Scrivener’s screenplay model, and I’m having trouble with the auto-complete suggestions when typing character names.

The main issue is that, once a suggestion appears when I start typing and I hit enter, it will automatically change the formatting to dialogue (which is expected), but the problem is that it doesn’t automatically add a colon after the character name.

It may seem like an irrelevant problem, but the real issue is, if there is no colon separating the character name from the dialogue, Scrivener for some reason will then add the character name PLUS the dialogue as a character name suggestion when next I start inputting a character name.

For example, if I have a character named MARK, and I type the following:

MARK: How are you?

Because there is a colon, next time I type “M”, Scrivener will automatically suggest “MARK”.

But if I type:

MARK How are you?

Next time I type “M”, because there is no colon, the auto-complete suggestion will be “MARK How are you?”

Which means soon there will be as many autocomplete suggestions as there are lines of dialogue, which essentially renders the auto-complete function useless.

What I’m currently doing is typing the character name, typing enter to accept the suggestion, pressing backspace, then pressing Tab (which adds a colon and changes the style back to Dialogue). But it’s so cumbersome that I might as well simply type the full character name.

I hope this was not too confusing.

Thanks for the help,

Ian
img 1

image

You could simply turn that off, and add your character names to the auto complete list manually.
Perhaps adding the colon to the auto-complete list would work too.

But, P.S. → You are supposed to hit TAB after the character name. Doing that does add the colon.

image

Make sure you have “Allow tabs” unchecked, just above the section I marked.

I played with it some more and I think I see now what you mean.

The problem is not with the setting but with the auto-completion itself, that doesn’t add the colon and therefor creates a new auto-complete item.

Perhaps an oversight, maybe not a bug, but requiring fixing nonetheless, I agree.

Meanwhile: I went to my project’s auto-completion list and added the colon after the character name, and that fixed it.

After that it added the character name once (without the colon), but that suggestion coming second (so it is not really a problem), and then it stopped adding anything to the list.

Else, that issue also messes up the formatting, making what comes after the character’s name be bold when it shouldn’t be.
image


Fix

Here is a fix that I think takes care of the whole issue (for now):

Set the script element to do nothing after the autocompletion:
image

And hit tab twice when you use autocomplete.
The first TAB will confirm using the suggestion, the second will add the colon and move you to the next formatting as it should.
Confirming the auto-complete suggestion using ENTER then hitting TAB works just as well.
(All that matters is that a tab doesn’t end up automatically inserted, which wrongfully bypasses the insertion of a colon, and then messes up the formatting of what comes after, making the font bold (depending on the script’s settings, of course), since we end up elsewhere than we should be in the sequence of elements and formatting ← which should have been Dialogue(Cont.).)

image

Only one entry was added to the auto-complete list. :+1:


To the devs:

That list
image

should have an option to trigger what is done and inserted normally when hitting TAB.

image

(The option to “Go to next line” doesn’t work btw.)

I would also add that visually it is uselessly confusing, as the insertion only happens after typing in a character name (which seems to be considered as an empty line, but the insertion being bypassed when it is actually truly empty).
I think it should rather be displayed like this:
(I moved up the “insert” field.)
2023-03-06 11_33_43-Window

Or plain specify that this (where it currently only says “insert:”) will be inserted after the initial character name, when moving on using TAB. “Tabbing after character name: / insert:”.

image

3 Likes

Thanks a lot, Vincent. I didn’t think it was a bug either, but didn’t know how else to categorize it.

Hopefully the devs will look into this! The way I see it, automatically adding the colon when you hit Enter is the logical thing to do, and should be the default option.

I appreciate the help!

2 Likes

You saw I found a fix for it, though, right?

1 Like

Yes, thanks! That does make my life easier.

2 Likes

Thanks for the report of the bug, this has been filed to take a look at. It appears neither of the two post-completion events work as expected (save for the one that “does nothing”, that works fine at least).

2 Likes

Yes, @Vincent_Vincent , your suggestion looked good but it does not, unfortunately, work in Wine, at least not for me. But it does work very well indeed running Scriv with Windows in a VirtualBox VM. :+1:

Thanks very much, well done. :clap:

Well, glad I could help.
I can’t say I see the connection between the two threads that much (how this here could have fixed the issue from the other thread), but still, glad I could help. :wink: