def run(): if not sys.stdin.isatty(): pager = Pager.from_pipe() pager.run() else: parser = argparse.ArgumentParser(description='Browse through a text file.') parser.add_argument('filename', metavar='filename', nargs='+', help='The file to be displayed.') parser.add_argument('--vi', help='Prefer Vi key bindings.', action='store_true') parser.add_argument('--emacs', help='Prefer Emacs key bindings.', action='store_true') args = parser.parse_args() # Determine input mode. vi_mode = 'vi' in os.environ.get('EDITOR', '').lower() if args.vi: vi_mode = True if args.emacs: vi_mode = False pager = Pager(vi_mode=vi_mode) # Open files. for filename in args.filename: # When a filename is given, take a lexer from that filename. lexer = PygmentsLexer.from_filename(filename, sync_from_start=False) pager.add_source(FileSource(filename, lexer=lexer)) # Run UI. pager.run()
def lex_document(self, cli, document): """ Call the lexer and return a get_tokens_for_line function. """ location = self.editor_buffer.location if location: return PygmentsLexer.from_filename(location, sync_from_start=False).lex_document(cli, document) return SimpleLexer().lex_document(cli, document)
def open_file(self, filename): """ Open this file. """ lexer = PygmentsLexer.from_filename(filename, sync_from_start=False) try: source = FileSource(filename, lexer=lexer) except IOError as e: self.message = '{}'.format(e) else: self.add_source(source)