Slick V3.3 Computer Accessories User Manual


 
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.
Begin/End Structure Matching
for Python
305