Glimmer Language Definition null null null 1 1 3 1 lang comment ^<!-- --> string " \("\|\n\) rstring r' ' singlestring ' \('\|\n\) multiline-string """ """ python \(glimmer\|glimmer\.[a-z_]+\) tags </?\(glimmer-definition\|python-definition\|settings\|language\|compiler\|debugger\|execution\|auto-indent\|use-spaces\|tab-stop\|over-ride\|mime-types\|extension\|mime-type\|syntax-items\|syntax-item\|pattern-items\|pattern-item\|embedded-items\|embedded-item\|name\|start-regex\|end-regex\|regex\|outside-regex\|inside-regex\|style\)> entities \(\&\|\%\)[a-zA-Z0-9#]*; regex-chars \(\\(\|\\)\|\\b\|\\t\|\\n\|(\|)\|\\|\|\[\|\]\|{\|}\) modules \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 \(\?\|\%\|\*\|\*\*\|-\|>\|::\|:\|>>\|<<\|>\|<\|=\|==\|!=\|<=\|>=\|++\|--\|%\|+\|-\|||\|&&\|!\|+=\|-=\|\*=\|/=\|%=\|~\|\.\|,\|;\) import glimmer def lang_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", lang_enter_callback) def lang_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", lang_tab_callback) def insert_lang_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/", "Language Definition", -1) glimmer.add_item_to_menu("_Insert/Language Definition/", "Comment (#)", "", "", -1, insert_lang_comment) glimmer.add_item_to_popup_menu("Comment (#)", -1, insert_lang_comment)