Awkwardness positioning the cursor while editing
I am using FM 2020, structured, DITA 1.3.
When I edit DITA files, I find that positioning the cursor for an insertion point and selecting text for copy/cutting to be awkward. In particular, the default behaviour of the <home> and <end> keys, mouse-clicks and cursor keys is often inconsistent and unintuitive (and therefore inefficient). For example:
- There are some inconsistencies in whether or not the end result includes or excludes element tags.
- There are some inconsistencies in the end result depending on whether you press a key on the keyboard vs. clicking on the text with a mouse.
- The more common behaviour, which is to include element tags in the selection, makes editing inefficient
NOTE: while I can make some reasonable guesses as to the programmatical reasons for why FM behaves this way, I am raising these concerns/observations from a usability perspective.
NOTE: I have created https://tracker.adobe.com/#/view/FRMAKER-12635, Please vote if you also want this issue addressed
Positioning an Insertion Point.
The following examples are all inside a <taskbody> element
- Using <Home> key on keyboard
- Example #1: cursor is on first line of text of a <p> element (in a <context> element)
- Desired behaviour: move to beginning of text, INSIDE of the <p> element
- Actual behaviour: moves cursor to BEFORE the <p> element.
- Example #2: cursor is on second line of text of a <p> element (in a <context> element)
- Desired behaviour: move to beginning of line of text
- Actual behaviour: works as desired.
- Example #3: cursor is in middle of <title> element inside a <fig>
- Desired behaviour: move to beginning of text, INSIDE of the <title> element
- Actual behaviour: moves cursor to BEFORE the <fig> element.
- Example #4: cursor is on first line of a text in a <cmd> element (inside a <step>)
- Desired behaviour: move to beginning of text, INSIDE of the <cmd> element
- Actual behaviour: works as desired
- NOTE: this behaviour is inconsistent with Example #1
- Using <End> key on keyboard
- The desired and actual behaviours are the same as for the analogous four examples for the <Home> button.
- Using cursor keys
- Example #5: cursor is at start of second line of text of a <p> element (in a <context> element), then the <up> cursor is pressed
- Desired behaviour: move to beginning of text of first line, INSIDE of the <p> element
- Actual behaviour: moves cursor to BEFORE the <p> element.
- Example #6: cursor is at end of second last line of text of a <p> element (in a <context> element), then the <down> cursor is pressed
- Desired behaviour: move to end of text of last line, INSIDE of the <p> element
- Actual behaviour: moves cursor to AFTER the <p> element.
- Using the mouse (all mouse clicks are in the editor, NOT in the Structure View)
- Example #7: click at beginning of first line of text in a paragraph (in a <context> element)
- Desired behaviour: move to beginning of text, INSIDE of the <p> element
- Actual behaviour: works as desired
- NOTE: this behaviour is inconsistent with using the <Home> button
- Example #8: click at beginning of second line of text in a paragraph (in a <context> element)
- Desired behaviour: move to beginning of line of text
- Actual behaviour: works as desired.
- Example #9: click at beginning of text for a <title> element inside a <fig>)
- Desired behaviour: move to beginning of text, INSIDE of the <title> element
- Actual behaviour: works as desired.
- NOTE: this behaviour is inconsistent with using the <Home> button
- Example #10: click at end of last line of a paragraph (in a <context> element)
- Desired behaviour: move to end of text, INSIDE of the <p> element
- Actual behaviour: moves cursor to AFTER the <p> element.
- NOTE: this behaviour is inconsistent with clicking at the start of the first line of a paragraph
- NOTE: if one is very careful to click ON the second half of the last character, then the actual behaviour matches the desired. But that requires careful positioning of the mouse.
- Example #11: click after the end of a line to text of a <cmd> element (inside a <step>)
- Desired behaviour: move to end of text, INSIDE of the <cmd> element
- Actual behaviour: works as desired
- NOTE: this behaviour is inconsistent with Example #10, because it does not matter where the click is (i.e. clicking on the last character or well after the last character have same result in this example)
- Example #7: click at beginning of first line of text in a paragraph (in a <context> element)
- Example #5: cursor is at start of second line of text of a <p> element (in a <context> element), then the <up> cursor is pressed
- Example #1: cursor is on first line of text of a <p> element (in a <context> element)
Selecting text for copying/cutting.
When selecting text for copying/cutting, I often position my cursor at some point, then hold the <shift> key down, and either use <home|end> keys, cursors, or mouse-clicks. All of the above issues occur as well here, but with a couple of additional issues related to multiple presses of the <home> (or <end> keys).
- Example #12: cursor is on second line of FIRST paragraph (in a <context> element)
- First press of <shift> + <home>
- Desired behaviour: select all text up to beginning of line of text
- Actual behaviour: works as desired.
- NOTE: this behaviour is consistent with Example #2 above
- Second press of <shift> + <home>
- Desired behaviour: select all text up to beginning of first line of text, INSIDE of the <p> element
- Actual behaviour: selects everything in the entire <taskbody>
- NOTE: this behaviour is not consistent with Example #1 above, which is what I was expecting…
- Third press of <shift> + <home>
- Desired behaviour: select the entire <p> element
- Actual behaviour: selects everything in the entire <task> element
- Example #13: cursor is on second line of SECOND paragraph (in a <context> element)
- First press of <shift> + <home>
- Same as Example #12
- Second press of <shift> + <home>
- Desired behaviour: select all text up to beginning of first line of text, INSIDE of the <p> element
- Actual behaviour: selects the entire <p> element >
- NOTE: this behaviour is inconsistent with Example #12
- Third press of <shift> + <home>
- Desired behaviour: select the entire <p> element
- NOTE: this desired behaviour for the third press is the same what actually happens after the Second press
- Actual behaviour: adds the entire previous element to the selection
- NOTE: this behaviour is inconsistent with Example #12
- Desired behaviour: select the entire <p> element
- First press of <shift> + <home>
- First press of <shift> + <home>
