Paste with Indentation
Contents
Description
This article describes a new pasting behavior which is smarter than the regular paste-as-it-is behavior in terms of indentation. However the implementation will remain simple without using heavy Eiffel parser to reformat the text being pasted.
Behaviors
In general: Adjust the number of leading tabs for each line in the pasting text by the result of the number of existing tabs before the editor cursor subtracting the number of leading tabs in the pasting text.
Except:
- There is a non-tabulation character before the editor cursor
- NC = 0
- NP = 0
Note:
- Number of tabulations before the cursor (NC)
- Number of leading tabulations of the text being pasted (NP)
Behavior 1: Multiple lines with leading tabs in pasting text
Copied text:
Behavior 1.1
Pasted at:
Result:
Summury:
- Remove tabs before the cursor.
- The text pasted is indented by one tabulation (NC - NP)
Behavior 1.2
Pasted at:
Result:
Summury:
- Remove tabs before the cursor.
- The text pasted is not modified when (NC - NP) = 0
Behavior 1.3
Pasted at:
Result:
Summury:
- Nothing has been done to the pasted text when NC = 0
Behavior 2: Multiple lines with no tab in pasting text
Copied text:
Behavior 2.1
Pasted at:
Result:
Summury:
- Nothing has been done to the pasted text when NP = 0
Behavior 2.2
Pasted at:
Result:
Summury:
- Nothing has been done to the pasted text when NP = 0
Behavior 3: Single line with leading tabs in pasting text
Copied text:
Behavior 3.1
Pasted at:
Result:
Summury:
- Remove tabs before the cursor.
- The text pasted is indented by one tabulation (NC - NP)
Behavior 3.2
Pasted at:
Result:
Summury:
- Remove tabs before the cursor.
- The text pasted is not modified when (NC - NP) = 0
Behavior 3.3
Pasted at:
Result:
Summury:
- Nothing is done to the text pasted when NC = 0
Behavior 4
Copied text:
Behavior 4.1
Pasted at:
Result:
Summury:
- Remove tabs before the cursor.
- The text pasted is indented by one tabulation (NC - NP)
- This is a good example to show this pasting behavior's advantage. Paste-as-it-is requires 4 steps to get this result.