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)