diff --git a/mode/console.py b/mode/console.py index 43e5808..b879b1a 100644 --- a/mode/console.py +++ b/mode/console.py @@ -2,23 +2,23 @@ import color, mode from lex import Grammar, PatternRule, RegionRule from mode.python import StringGrammar1, StringGrammar2, PythonGrammar -class ConsoleGrammar(Grammar): - rules = [ - RegionRule(r'string', r'"', StringGrammar2, r'"'), - RegionRule(r'string', r"'", StringGrammar1, r"'"), - RegionRule(r'console_input', r'^(?:>>>|-->)', PythonGrammar, '\n$'), - PatternRule(r'console_mesg', r'^[A-Za-z].*$'), - PatternRule(r'console_reserved', r'True|False|None'), - PatternRule(r'console_bareword', r'[a-zA-Z_][a-zA-Z0-9_]*'), - ] +#class ConsoleGrammar(Grammar): +# rules = [ +# RegionRule(r'string', r'"', StringGrammar2, r'"'), +# RegionRule(r'string', r"'", StringGrammar1, r"'"), +# RegionRule(r'console_input', r'^(?:>>>|-->)', PythonGrammar, '\n$'), +# PatternRule(r'console_mesg', r'^[A-Za-z].*$'), +# PatternRule(r'console_reserved', r'True|False|None'), +# PatternRule(r'console_bareword', r'[a-zA-Z_][a-zA-Z0-9_]*'), +# ] class Console(mode.Fundamental): modename = 'Console' - grammar = ConsoleGrammar() - colors = { - 'console_mesg': ('red', 'default', 'bold'), - 'console_input.start': ('red', 'default', 'bold'), - 'console_reserved': ('magenta', 'default', 'bold'), - 'console_bareword': ('default', 'default', 'bold'), - } +# grammar = ConsoleGrammar() +# colors = { +# 'console_mesg': ('red', 'default', 'bold'), +# 'console_input.start': ('red', 'default', 'bold'), +# 'console_reserved': ('magenta', 'default', 'bold'), +# 'console_bareword': ('default', 'default', 'bold'), +# } install = Console.install diff --git a/term.py b/term.py index d95e489..61c9f48 100644 --- a/term.py +++ b/term.py @@ -110,3 +110,422 @@ class XTerm(Dumb): self.meta = [] else: Dumb.handle(self, c) + +class Auto(Dumb): + name = 'auto' + def __init__(self): + try: + curses.setupterm() + except: + pass + +# terminfo junk +boolean_settings = [ + ['cpi_changes_res', 'cpix'], + ['cr_cancels_micro_mode', 'crxm'], + ['dest_tabs_magic_smso', 'xt'], + ['eat_newline_glitch', 'xenl'], + ['erase_overstrike', 'eo'], + ['generic_type', 'gn'], + ['hard_copy', 'hc'], + ['hard_cursor', 'chts'], + ['has_meta_key', 'km'], + ['has_print_wheel', 'daisy'], + ['has_status_line', 'hs'], + ['hue_lightness_saturation', 'hls'], + ['insert_null_glitch', 'in'], + ['lpi_changes_res', 'lpix'], + ['memory_above', 'da'], + ['memory_below', 'db'], + ['move_insert_mode', 'mir'], + ['move_standout_mode', 'msgr'], + ['needs_xon_xoff', 'nxon'], + ['no_esc_ctlc', 'xsb'], + ['no_pad_char', 'npc'], + ['non_dest_scroll_region', 'ndscr'], + ['non_rev_rmcup', 'nrrmc'], + ['over_strike', 'os'], + ['prtr_silent', 'mc5i'], + ['row_addr_glitch', 'xvpa'], + ['semi_auto_right_margin', 'sam'], + ['status_line_esc_ok', 'eslok'], + ['tilde_glitch', 'hz'], + ['transparent_underline', 'ul'], + ['xon_xoff', 'xon'], +] + +number_settings = [ + ['columns', 'cols'], + ['init_tabs', 'it'], + ['label_height', 'lh'], + ['label_width', 'lw'], + ['lines', 'lines'], + ['lines_of_memory', 'lm'], + ['magic_cookie_glitch', 'xmc'], + ['max_attributes', 'ma'], + ['max_colors', 'colors'], + ['max_pairs', 'pairs'], + ['maximum_windows', 'wnum'], + ['no_color_video', 'ncv'], + ['num_labels', 'nlab'], + ['padding_baud_rate', 'pb'], + ['virtual_terminal', 'vt'], + ['width_status_line', 'wsl'], +] + +string_settings = [ + ['acs_chars', 'acsc'], + ['back_tab', 'cbt'], + ['bell', 'bel'], + ['carriage_return', 'cr'], + ['change_char_pitch', 'cpi'], + ['change_line_pitch', 'lpi'], + ['change_res_horz', 'chr'], + ['change_res_vert', 'cvr'], + ['change_scroll_region', 'csr'], + ['char_padding', 'rmp'], + ['clear_all_tabs', 'tbc'], + ['clear_margins', 'mgc'], + ['clear_screen', 'clear'], + ['clr_bol', 'el1'], + ['clr_eol', 'el'], + ['clr_eos', 'ed'], + ['column_address', 'hpa'], + ['command_character', 'cmdch'], + ['create_window', 'cwin'], + ['cursor_address', 'cup'], + ['cursor_down', 'cud1'], + ['cursor_home', 'home'], + ['cursor_invisible', 'civis'], + ['cursor_left', 'cub1'], + ['cursor_mem_address', 'mrcup'], + ['cursor_normal', 'cnorm'], + ['cursor_right', 'cuf1'], + ['cursor_to_ll', 'll'], + ['cursor_up', 'cuu1'], + ['cursor_visible', 'cvvis'], + ['define_char', 'defc'], + ['delete_character', 'dch1'], + ['delete_line', 'dl1'], + ['dial_phone', 'dial'], + ['dis_status_line', 'dsl'], + ['display_clock', 'dclk'], + ['down_half_line', 'hd'], + ['ena_acs', 'enacs'], + ['enter_alt_charset_mode', 'smacs'], + ['enter_am_mode', 'smam'], + ['enter_blink_mode', 'blink'], + ['enter_bold_mode', 'bold'], + ['enter_ca_mode', 'smcup'], + ['enter_delete_mode', 'smdc'], + ['enter_dim_mode', 'dim'], + ['enter_doublewide_mode', 'swidm'], + ['enter_draft_quality', 'sdrfq'], + ['enter_insert_mode', 'smir'], + ['enter_italics_mode', 'sitm'], + ['enter_leftward_mode', 'slm'], + ['enter_micro_mode', 'smicm'], + ['enter_near_letter_quality', 'snlq'], + ['enter_normal_quality', 'snrmq'], + ['enter_protected_mode', 'prot'], + ['enter_reverse_mode', 'rev'], + ['enter_secure_mode', 'invis'], + ['enter_shadow_mode', 'sshm'], + ['enter_standout_mode', 'smso'], + ['enter_subscript_mode', 'ssubm'], + ['enter_superscript_mode', 'ssupm'], + ['enter_underline_mode', 'smul'], + ['enter_upward_mode', 'sum'], + ['enter_xon_mode', 'smxon'], + ['erase_chars', 'ech'], + ['exit_alt_charset_mode', 'rmacs'], + ['exit_am_mode', 'rmam'], + ['exit_attribute_mode', 'sgr0'], + ['exit_ca_mode', 'rmcup'], + ['exit_delete_mode', 'rmdc'], + ['exit_doublewide_mode', 'rwidm'], + ['exit_insert_mode', 'rmir'], + ['exit_italics_mode', 'ritm'], + ['exit_leftward_mode', 'rlm'], + ['exit_micro_mode', 'rmicm'], + ['exit_shadow_mode', 'rshm'], + ['exit_standout_mode', 'rmso'], + ['exit_subscript_mode', 'rsubm'], + ['exit_superscript_mode', 'rsupm'], + ['exit_underline_mode', 'rmul'], + ['exit_upward_mode', 'rum'], + ['exit_xon_mode', 'rmxon'], + ['fixed_pause', 'pause'], + ['flash_hook', 'hook'], + ['flash_screen', 'flash'], + ['form_feed', 'ff'], + ['from_status_line', 'fsl'], + ['goto_window', 'wingo'], + ['hangup', 'hup'], + ['init_1string', 'is1'], + ['init_2string', 'is2'], + ['init_3string', 'is3'], + ['init_file', 'if'], + ['init_prog', 'iprog'], + ['initialize_color', 'initc'], + ['initialize_pair', 'initp'], + ['insert_character', 'ich1'], + ['insert_line', 'il1'], + ['insert_padding', 'ip'], + ['key_a1', 'ka1'], + ['key_a3', 'ka3'], + ['key_b2', 'kb2'], + ['key_backspace', 'kbs'], + ['key_beg', 'kbeg'], + ['key_btab', 'kcbt'], + ['key_c1', 'kc1'], + ['key_c3', 'kc3'], + ['key_cancel', 'kcan'], + ['key_catab', 'ktbc'], + ['key_clear', 'kclr'], + ['key_close', 'kclo'], + ['key_command', 'kcmd'], + ['key_copy', 'kcpy'], + ['key_create', 'kcrt'], + ['key_ctab', 'kctab'], + ['key_dc', 'kdch1'], + ['key_dl', 'kdl1'], + ['key_down', 'kcud1'], + ['key_eic', 'krmir'], + ['key_end', 'kend'], + ['key_enter', 'kent'], + ['key_eol', 'kel'], + ['key_eos', 'ked'], + ['key_exit', 'kext'], + ['key_f0', 'kf0'], + ['key_f1', 'kf1'], + ['key_f10', 'kf10'], + ['key_f11', 'kf11'], + ['key_f12', 'kf12'], + ['key_f13', 'kf13'], + ['key_f14', 'kf14'], + ['key_f15', 'kf15'], + ['key_f16', 'kf16'], + ['key_f17', 'kf17'], + ['key_f18', 'kf18'], + ['key_f19', 'kf19'], + ['key_f2', 'kf2'], + ['key_f20', 'kf20'], + ['key_f21', 'kf21'], + ['key_f22', 'kf22'], + ['key_f23', 'kf23'], + ['key_f24', 'kf24'], + ['key_f25', 'kf25'], + ['key_f26', 'kf26'], + ['key_f27', 'kf27'], + ['key_f28', 'kf28'], + ['key_f29', 'kf29'], + ['key_f3', 'kf3'], + ['key_f30', 'kf30'], + ['key_f31', 'kf31'], + ['key_f32', 'kf32'], + ['key_f33', 'kf33'], + ['key_f34', 'kf34'], + ['key_f35', 'kf35'], + ['key_f36', 'kf36'], + ['key_f37', 'kf37'], + ['key_f38', 'kf38'], + ['key_f39', 'kf39'], + ['key_f4', 'kf4'], + ['key_f40', 'kf40'], + ['key_f41', 'kf41'], + ['key_f42', 'kf42'], + ['key_f43', 'kf43'], + ['key_f44', 'kf44'], + ['key_f45', 'kf45'], + ['key_f46', 'kf46'], + ['key_f47', 'kf47'], + ['key_f48', 'kf48'], + ['key_f49', 'kf49'], + ['key_f5', 'kf5'], + ['key_f50', 'kf50'], + ['key_f51', 'kf51'], + ['key_f52', 'kf52'], + ['key_f53', 'kf53'], + ['key_f54', 'kf54'], + ['key_f55', 'kf55'], + ['key_f56', 'kf56'], + ['key_f57', 'kf57'], + ['key_f58', 'kf58'], + ['key_f59', 'kf59'], + ['key_f6', 'kf6'], + ['key_f60', 'kf60'], + ['key_f61', 'kf61'], + ['key_f62', 'kf62'], + ['key_f63', 'kf63'], + ['key_f7', 'kf7'], + ['key_f8', 'kf8'], + ['key_f9', 'kf9'], + ['key_find', 'kfnd'], + ['key_help', 'khlp'], + ['key_home', 'khome'], + ['key_ic', 'kich1'], + ['key_il', 'kil1'], + ['key_left', 'kcub1'], + ['key_ll', 'kll'], + ['key_mark', 'kmrk'], + ['key_message', 'kmsg'], + ['key_move', 'kmov'], + ['key_next', 'knxt'], + ['key_npage', 'knp'], + ['key_open', 'kopn'], + ['key_options', 'kopt'], + ['key_ppage', 'kpp'], + ['key_previous', 'kprv'], + ['key_print', 'kprt'], + ['key_redo', 'krdo'], + ['key_reference', 'kref'], + ['key_refresh', 'krfr'], + ['key_replace', 'krpl'], + ['key_restart', 'krst'], + ['key_resume', 'kres'], + ['key_right', 'kcuf1'], + ['key_save', 'ksav'], + ['key_sbeg', 'kBEG'], + ['key_scancel', 'kCAN'], + ['key_scommand', 'kCMD'], + ['key_scopy', 'kCPY'], + ['key_screate', 'kCRT'], + ['key_sdc', 'kDC'], + ['key_sdl', 'kDL'], + ['key_select', 'kslt'], + ['key_send', 'kEND'], + ['key_seol', 'kEOL'], + ['key_sexit', 'kEXT'], + ['key_sf', 'kind'], + ['key_sfind', 'kFND'], + ['key_shelp', 'kHLP'], + ['key_shome', 'kHOM'], + ['key_sic', 'kIC'], + ['key_sleft', 'kLFT'], + ['key_smessage', 'kMSG'], + ['key_smove', 'kMOV'], + ['key_snext', 'kNXT'], + ['key_soptions', 'kOPT'], + ['key_sprevious', 'kPRV'], + ['key_sprint', 'kPRT'], + ['key_sr', 'kri'], + ['key_sredo', 'kRDO'], + ['key_sreplace', 'kRPL'], + ['key_sright', 'kRIT'], + ['key_srsume', 'kRES'], + ['key_ssave', 'kSAV'], + ['key_ssuspend', 'kSPD'], + ['key_stab', 'khts'], + ['key_sundo', 'kUND'], + ['key_suspend', 'kspd'], + ['key_undo', 'kund'], + ['key_up', 'kcuu1'], + ['keypad_local', 'rmkx'], + ['keypad_xmit', 'smkx'], + ['lab_f0', 'lf0'], + ['lab_f1', 'lf1'], + ['lab_f10', 'lf10'], + ['lab_f2', 'lf2'], + ['lab_f3', 'lf3'], + ['lab_f4', 'lf4'], + ['lab_f5', 'lf5'], + ['lab_f6', 'lf6'], + ['lab_f7', 'lf7'], + ['lab_f8', 'lf8'], + ['lab_f9', 'lf9'], + ['label_format', 'fln'], + ['label_off', 'rmln'], + ['label_on', 'smln'], + ['meta_off', 'rmm'], + ['meta_on', 'smm'], + ['micro_column_address', 'mhpa'], + ['micro_down', 'mcud1'], + ['micro_left', 'mcub1'], + ['micro_right', 'mcuf1'], + ['micro_row_address', 'mvpa'], + ['micro_up', 'mcuu1'], + ['newline', 'nel'], + ['order_of_pins', 'porder'], + ['orig_colors', 'oc'], + ['orig_pair', 'op'], + ['pad_char', 'pad'], + ['parm_dch', 'dch'], + ['parm_delete_line', 'dl'], + ['parm_down_cursor', 'cud'], + ['parm_down_micro', 'mcud'], + ['parm_ich', 'ich'], + ['parm_index', 'indn'], + ['parm_insert_line', 'il'], + ['parm_left_cursor', 'cub'], + ['parm_left_micro', 'mcub'], + ['parm_right_cursor', 'cuf'], + ['parm_right_micro', 'mcuf'], + ['parm_rindex', 'rin'], + ['parm_up_cursor', 'cuu'], + ['parm_up_micro', 'mcuu'], + ['pkey_key', 'pfkey'], + ['pkey_local', 'pfloc'], + ['pkey_xmit', 'pfx'], + ['plab_norm', 'pln'], + ['print_screen', 'mc0'], + ['prtr_non', 'mc5p'], + ['prtr_off', 'mc4'], + ['prtr_on', 'mc5'], + ['pulse', 'pulse'], + ['quick_dial', 'qdial'], + ['remove_clock', 'rmclk'], + ['repeat_char', 'rep'], + ['req_for_input', 'rfi'], + ['reset_1string', 'rs1'], + ['reset_2string', 'rs2'], + ['reset_3string', 'rs3'], + ['reset_file', 'rf'], + ['restore_cursor', 'rc'], + ['row_address', 'vpa'], + ['save_cursor', 'sc'], + ['scroll_forward', 'ind'], + ['scroll_reverse', 'ri'], + ['select_char_set', 'scs'], + ['set_attributes', 'sgr'], + ['set_background', 'setb'], + ['set_bottom_margin', 'smgb'], + ['set_bottom_margin_parm', 'smgbp'], + ['set_clock', 'sclk'], + ['set_color_pair', 'scp'], + ['set_foreground', 'setf'], + ['set_left_margin', 'smgl'], + ['set_left_margin_parm', 'smglp'], + ['set_right_margin', 'smgr'], + ['set_right_margin_parm', 'smgrp'], + ['set_tab', 'hts'], + ['set_top_margin', 'smgt'], + ['set_top_margin_parm', 'smgtp'], + ['set_window', 'wind'], + ['start_bit_image', 'sbim'], + ['start_char_set_def', 'scsd'], + ['stop_bit_image', 'rbim'], + ['stop_char_set_def', 'rcsd'], + ['subscript_characters', 'subcs'], + ['superscript_characters', 'supcs'], + ['tab', 'ht'], + ['these_cause_cr', 'docr'], + ['to_status_line', 'tsl'], + ['tone', 'tone'], + ['underline_char', 'uc'], + ['up_half_line', 'hu'], + ['user0', 'u0'], + ['user1', 'u1'], + ['user2', 'u2'], + ['user3', 'u3'], + ['user4', 'u4'], + ['user5', 'u5'], + ['user6', 'u6'], + ['user7', 'u7'], + ['user8', 'u8'], + ['user9', 'u9'], + ['wait_tone', 'wait'], + ['xoff_character', 'xoffc'], + ['xon_character', 'xonc'], + ['zero_motion', 'zerom'], +]