Slick V3.3 Begin/End Structure Matching for Python, Begin/End Structure Matching For Python

Models: V3.3

1 568
Download 568 pages 2.03 Kb
Page 327
Image 327

Begin/End Structure Matching

for Python

Python

This section describes some of the advanced features that are available for the Python language.

Begin/End Structure Matching for Python

Begin/End Structure Matching moves the cursor from the beginning of a code structure to the end, or vice versa.

To place the cursor on the opposite end of the structure when the cursor is on a begin or end keyword pair, press Ctrl+] (find_matching_paren command or from the menu click Search Go to Matching Parenthesis). The find_matching_paren command supports matching parenthesis pairs { },[ ] and ( ).

For Python, SlickEdit® Core supports the matching of the colon (:) token and the end of context.

Note the cursor location in the code block below:

def function_foo(arg): <- cursor

....

return 0 <- destination

Executing find_matching_paren will move the cursor to the end of line containing the return 0 state- ment. Executing it while the cursor is at the end of the return 0 statement will bring the cursor back to the colon (:) position of the function signature line (def function_foo(arg):).

This works on function, class, for, while, if, and try statements.

There is one limitation of this feature. Note the following code block:

for i in xrange(0, 10): <- A for j in xrange(0, 10): <- B

for k in xrange(0, 10): <- C print i, j, k <- D

Invoking find_matching_paren at position A, B, or C will move the cursor to D, but doing so while the cursor is at D will only move the cursor back to C (not A nor B). This is because the Python language doesn't have the notion of end-of-scope token (such as } in C/C++, Java, etc.), so it's impossible to de- termine the correct destination when jumping from D. Therefore we pick the nearest possible destination in this scenario.

See Begin/End Structure Matching for more information about this feature.

305

Page 327
Image 327
Slick V3.3 manual Begin/End Structure Matching for Python, Begin/End Structure Matching For Python