| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -40,6 +40,7 @@ | |||
| 40 | 40 | import gobject | |
| 41 | 41 | import gtk | |
| 42 | 42 | import pango | |
| 43 | + from pygments.lexers import PythonLexer | ||
| 43 | 44 | ||
| 44 | 45 | from bpython import importcompletion, repl | |
| 45 | 46 | from bpython.formatter import theme_map | |
@@ -474,25 +475,10 @@ def do_key_press_event(self, event): | |||
| 474 | 475 | if event.keyval == gtk.keysyms.F2: | |
| 475 | 476 | source = self.get_source_of_current_name() | |
| 476 | 477 | if source is not None: | |
| 477 | - win = gtk.Window() | ||
| 478 | - sw = gtk.ScrolledWindow() | ||
| 479 | - view = gtk.TextView() | ||
| 480 | - buffer = view.get_buffer() | ||
| 481 | - add_tags_to_buffer(self.config.color_gtk_scheme, buffer) | ||
| 482 | - from pygments.lexers import PythonLexer | ||
| 483 | - tokens = PythonLexer().get_tokens(source) | ||
| 484 | - for (token, value) in tokens: | ||
| 485 | - while token not in theme_map: | ||
| 486 | - token = token.parent | ||
| 487 | - iter_ = buffer.get_end_iter() | ||
| 488 | - buffer.insert_with_tags_by_name(iter_, value, | ||
| 489 | - theme_map[token]) | ||
| 490 | - sw.add(view) | ||
| 491 | - win.add(sw) | ||
| 492 | - win.show_all() | ||
| 478 | + show_source_in_new_window(source, self.config.color_gtk_scheme, | ||
| 479 | + self.config.syntax) | ||
| 493 | 480 | else: | |
| 494 | - # XXX Error message | ||
| 495 | - pass | ||
| 481 | + self.interact.notify('Cannot show source.') | ||
| 496 | 482 | elif event.keyval == gtk.keysyms.Return: | |
| 497 | 483 | if self.list_win_visible: | |
| 498 | 484 | self.list_win_visible = False | |
@@ -750,6 +736,23 @@ def writetb(self, lines): | |||
| 750 | 736 | ) | |
| 751 | 737 | self.move_cursor(len(string)) | |
| 752 | 738 | ||
| 739 | + def show_source_in_new_window(source, color_scheme=None, highlight=True): | ||
| 740 | + win = gtk.Window() | ||
| 741 | + sw = gtk.ScrolledWindow() | ||
| 742 | + view = gtk.TextView() | ||
| 743 | + buffer = view.get_buffer() | ||
| 744 | + if highlight: | ||
| 745 | + add_tags_to_buffer(color_scheme, buffer) | ||
| 746 | + for (token, value) in PythonLexer().get_tokens(source): | ||
| 747 | + while token not in theme_map: | ||
| 748 | + token = token.parent | ||
| 749 | + iter_ = buffer.get_end_iter() | ||
| 750 | + buffer.insert_with_tags_by_name(iter_, value, theme_map[token]) | ||
| 751 | + else: | ||
| 752 | + buffer.insert(buffer.get_end_iter(), source) | ||
| 753 | + sw.add(view) | ||
| 754 | + win.add(sw) | ||
| 755 | + win.show_all() | ||
| 753 | 756 | ||
| 754 | 757 | def init_import_completion(): | |
| 755 | 758 | try: | |
| Back | FazBrowse Home | New Git URL |
0 commit comments