File path: /jEdit-4.2/src/org/gjt/sp/jedit/textarea/JEditTextArea.java | File path: /jEdit-4.2/src/org/gjt/sp/jedit/textarea/JEditTextArea.java | |||
Method name: void goToNextLine(boolean)
|
Method name: void goToPrevLine(boolean)
|
|||
Number of AST nodes: 25 | Number of AST nodes: 25 | |||
1 | Selection s = getSelectionAtOffset(caret);↵ | 1 | Selection s = getSelectionAtOffset(caret);↵ | |
2 | boolean rectSelect = (s == null ? rectangularSelectionMode↵ | 2 | boolean rectSelect = (s == null ? rectangularSelectionMode↵ | |
3 | : s instanceof Selection.Rect);↵ | 3 | : s instanceof Selection.Rect);↵ | |
4 | int magic = getMagicCaretPosition();↵ | 4 | int magic = getMagicCaretPosition();↵ | |
5 | int newCaret = chunkCache.getBelowPosition(caretLine,↵ | 5 | int newCaret = chunkCache.getAbovePosition(caretLine,↵ | |
6 | caret - buffer.getLineStartOffset(caretLine),magic + 1,↵ | 6 | caret - buffer.getLineStartOffset(caretLine),magic + 1,↵ | |
7 | rectSelect && select);↵ | 7 | rectSelect && select);↵ | |
8 | if(newCaret == -1)↵ | 8 | if(newCaret == -1)↵ | |
9 | {↵ | 9 | {↵ | |
10 | int end = getLineEndOffset(caretLine) - 1;↵ | 10 | int start = getLineStartOffset(caretLine);↵ | |
11 | if(caret == end)↵ | 11 | if(caret == start)↵ | |
12 | {↵ | 12 | {↵ | |
13 | getToolkit().beep();↵ | 13 | getToolkit().beep();↵ | |
14 | return;↵ | 14 | return;↵ | |
15 | }↵ | 15 | }↵ | |
16 | else↵ | 16 | else↵ | |
17 | newCaret = end;↵ | 17 | newCaret = start;↵ | |
18 | }↵ | 18 | }↵ | |
19 | if(select)↵ | 19 | if(select)↵ | |
20 | {↵ | 20 | {↵ | |
21 | RectParams params = getRectParams(caret,newCaret);↵ | 21 | RectParams params = getRectParams(caret,newCaret);↵ | |
22 | int extraStartVirt;↵ | 22 | int extraStartVirt;↵ | |
23 | int extraEndVirt;↵ | 23 | int extraEndVirt;↵ | |
24 | if(params == null)↵ | 24 | if(params == null)↵ | |
25 | {↵ | 25 | {↵ | |
26 | extraStartVirt = 0;↵ | 26 | extraStartVirt = 0;↵ | |
27 | extraEndVirt = 0;↵ | 27 | extraEndVirt = 0;↵ | |
28 | }↵ | 28 | }↵ | |
29 | else↵ | 29 | else↵ | |
30 | {↵ | 30 | {↵ | |
31 | extraStartVirt = params.extraStartVirt;↵ | 31 | extraStartVirt = params.extraStartVirt;↵ | |
32 | extraEndVirt = params.extraEndVirt;↵ | 32 | extraEndVirt = params.extraEndVirt;↵ | |
33 | newCaret = params.newCaret;↵ | 33 | newCaret = params.newCaret;↵ | |
34 | }↵ | 34 | }↵ | |
35 | extendSelection(caret,newCaret,extraStartVirt,extraEndVirt);↵ | 35 | extendSelection(caret,newCaret,extraStartVirt,extraEndVirt);↵ | |
36 | }↵ | 36 | }↵ | |
37 | else if(!multi)↵ | 37 | else if(!multi)↵ | |
38 | selectNone();↵ | 38 | selectNone();↵ | |
39 | moveCaretPosition(newCaret);↵ | 39 | moveCaretPosition(newCaret);↵ | |
40 | setMagicCaretPosition(magic); | 40 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 1.2 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 138 |
Number of mapped statements | 25 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 493.1 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Selection s = getSelectionAtOffset(caret); | 1 | Selection s = getSelectionAtOffset(caret); | ||||||||||||||||
2 | boolean rectSelect = (s == null ? rectangularSelectionMode : s instanceof Selection.Rect); | 2 | boolean rectSelect = (s == null ? rectangularSelectionMode : s instanceof Selection.Rect); | ||||||||||||||||
3 | int magic = getMagicCaretPosition(); | 3 | int magic = getMagicCaretPosition(); | ||||||||||||||||
4 | int newCaret = chunkCache.getBelowPosition(caretLine, caret - buffer.getLineStartOffset(caretLine), magic + 1, rectSelect && select); |
| 4 | int newCaret = chunkCache.getAbovePosition(caretLine, caret - buffer.getLineStartOffset(caretLine), magic + 1, rectSelect && select); | |||||||||||||||
5 | if (newCaret == -1) | 5 | if (newCaret == -1) | ||||||||||||||||
6 | int end = getLineEndOffset(caretLine) - 1; |
| 6 | int start = getLineStartOffset(caretLine); | |||||||||||||||
7 | if (caret == end) |
| 7 | if (caret == start) | |||||||||||||||
8 | getToolkit().beep(); | 8 | getToolkit().beep(); | ||||||||||||||||
9 | return; | 9 | return; | ||||||||||||||||
else | else | ||||||||||||||||||
10 | newCaret = end; |
| 10 | newCaret = start; | |||||||||||||||
11 | if (select) | 11 | if (select) | ||||||||||||||||
12 | RectParams params = getRectParams(caret, newCaret); | 12 | RectParams params = getRectParams(caret, newCaret); | ||||||||||||||||
13 | int extraStartVirt; | 13 | int extraStartVirt; | ||||||||||||||||
14 | int extraEndVirt; | 14 | int extraEndVirt; | ||||||||||||||||
15 | if (params == null) | 15 | if (params == null) | ||||||||||||||||
16 | extraStartVirt = 0; | 16 | extraStartVirt = 0; | ||||||||||||||||
17 | extraEndVirt = 0; | 17 | extraEndVirt = 0; | ||||||||||||||||
else | else | ||||||||||||||||||
18 | extraStartVirt = params.extraStartVirt; | 18 | extraStartVirt = params.extraStartVirt; | ||||||||||||||||
19 | extraEndVirt = params.extraEndVirt; | 19 | extraEndVirt = params.extraEndVirt; | ||||||||||||||||
20 | newCaret = params.newCaret; | 20 | newCaret = params.newCaret; | ||||||||||||||||
21 | extendSelection(caret, newCaret, extraStartVirt, extraEndVirt); | 21 | extendSelection(caret, newCaret, extraStartVirt, extraEndVirt); | ||||||||||||||||
22 | else if (!multi) | 22 | else if (!multi) | ||||||||||||||||
23 | selectNone(); | 23 | selectNone(); | ||||||||||||||||
24 | moveCaretPosition(newCaret); | 24 | moveCaretPosition(newCaret); | ||||||||||||||||
25 | setMagicCaretPosition(magic); | 25 | setMagicCaretPosition(magic); |
Row | Violation |
---|---|
1 | Expression chunkCache.getBelowPosition(caretLine,caret - buffer.getLineStartOffset(caretLine),magic + 1,rectSelect && select) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression chunkCache.getAbovePosition(caretLine,caret - buffer.getLineStartOffset(caretLine),magic + 1,rectSelect && select) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression getLineEndOffset(caretLine) - 1 cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression getLineStartOffset(caretLine) cannot be parameterized, because it has dependencies to/from statements that will be extracted |