Python
1
0
4
py
multilinestring
"""
"""
string
"
\("\|\n\)
rstring
r'
'
singlestring
'
\('\|\n\)
comment
#
\n
modulhander
\b\(import\|from\)\b
func_class
\b\(def\|class\|return\)\b
keywords
\b\(and\|del\|for\|is\|raise\|assert\|elif\|from\|lambda\|break\|else\|global\|not\|try\|except\|if\|or\|while\|continue\|exec\|pass\|finally\|in\|print\)\b
operators
\(/\|\*\|<<\|>>\|<\|>\|=\|==\|!=\|<=\|>=\|%\|+\|-\||\|&\)
whole_numbers1
\b[0-9]\b
whole_numbers2
\b[1-9][0-9]*\b
float_numbers1
\.\b[0-9]+\b
float_numbers2
\b[0-9]*\.\W
hex_numbers
\b0x[0-9a-fA-F]+\b
oct_numbers
\b0[0-7]+\b
bin_numbers
\b0[01]+\b
self
\bself\b
punctuation
\((\|)\|\|:\|{\|}\|\[\|\]\|\.\)
import glimmer
import string
def python_enter_callback():
insert = "\n"
extralen = 0
slen = 0
file = glimmer.get_file_number()
tstart = glimmer.line_start()
tend = glimmer.current_position()
if (tend-tstart) > 0:
chars = glimmer.get_text(tstart, tend)
slen = len(chars)
if slen > 0:
index = 0
while index < slen:
c = chars[index]
if c == '\t' or c == ' ':
insert = insert + chars[index]
index = index+1
else:
break
c = chars[slen-1]
if c == ':':
extralen = glimmer.get_file_tab_width(file)
if glimmer.get_file_use_spaces(file):
while extralen > 0:
insert = insert + " "
extralen = extralen-1
else:
insert = insert + '\t'
glimmer.insert(insert)
glimmer.register_signal_hook("enter-pressed", python_enter_callback)
def python_tab_callback():
tablen = 0
insertchars = ""
file = glimmer.get_file_number()
if glimmer.get_file_use_spaces(file):
tablen = glimmer.get_file_tab_width(file)
pos = glimmer.current_position()
lstart = glimmer.line_start()
if pos - lstart > 0:
str1 = glimmer.get_text(lstart, pos)
else:
str1 = ""
if glimmer.get_tab_stops():
str1 = string.expandtabs(str1, tablen)
len1 = len(str1)
del str1
tablen = tablen - (len1 % tablen)
while tablen > 0:
insertchars = insertchars + " "
tablen = tablen-1
else:
insertchars = insertchars + "\t"
glimmer.insert(insertchars)
glimmer.register_signal_hook("tab-pressed", python_tab_callback)
def insert_python_comment():
glimmer.freeze()
if glimmer.has_selection():
start = glimmer.selection_start()
end = glimmer.selection_end()
file = glimmer.get_file_number()
glimmer.move(0)
line1 = glimmer.line_by_pos(start)
line2 = glimmer.line_by_pos(end)
cur = line1
print start
print end
while cur <= line2:
glimmer.move_to_col(0)
glimmer.move_to_line(cur)
glimmer.insert("#")
cur = cur+1
glimmer.move_to(end+((line2-line1)+1)*2)
else:
glimmer.insert("#")
glimmer.thaw()
glimmer.add_sub_to_menu("_Insert/", "Python", -1)
glimmer.add_item_to_menu("_Insert/Python/", "Comment (#)", "", "", -1, insert_python_comment)
glimmer.add_item_to_popup_menu("Comment (#)", -1, insert_python_comment)