I am currently working on a dialog where the user inputs a sequence of names. This sequence is simulated in the underlying code as the user types, and "issues" with the sequence are printed below the input field. Alternatively, the user can copy-and-paste a sequence into the input field. The user would expect to be able to edit the middle of a sequence, both to correct errors, or to insert a (sub-)sequence. The rough draft of this dialog is shown in figure 1.
This works... sort-of. The information to correct the sequence is there, but it is hard to interpret. Transition "9" is in this case the last name in the sequence, but to find it you would need to count the names. Finding "T4" requires one to go through the entire sequence. Besides this, looking at the input it is not immediately clear where one name ends and the next one begins.
I have thought of putting each transition name in a "bubble" after it's typed, more or less like the tag-system here on Stack Exchange. This would allow me to manipulate the colour of the bubble to indicate an error. I have only seen this system being used with input that is a set (aka: no order, no duplicates), which might confuse the user. For example, in the Stack Exchange tag engine, tagging something with "a b" is the same as tagging it with "b a". This is not necessarily the case with this sequence. "a b a" would be normalized to "a b", which will not happen in this sequence either.
Alternatively, I could create a list view, but this would make copy-and-paste useless, and inserting a sub-sequence a nightmare. I could force the user to input the sequence by clicking buttons with the transition names. This would ensure the sequence is always correct, but messes with copy-and-paste again. Inserting a sub-sequence is not possible in that case either.
Is there a de-facto standard for input and editing of a sequence? Is there a de-facto standard for indicating an issue with part of the sequence that was given?