##// END OF EJS Templates
Added option to ptshell for highlighting matching brackets.
Jonathan Slenders -
Show More
@@ -17,7 +17,7 b' from traitlets import Bool, Unicode, Dict, Integer, observe'
17
17
18 from prompt_toolkit.completion import Completer, Completion
18 from prompt_toolkit.completion import Completer, Completion
19 from prompt_toolkit.enums import DEFAULT_BUFFER, SEARCH_BUFFER, EditingMode
19 from prompt_toolkit.enums import DEFAULT_BUFFER, SEARCH_BUFFER, EditingMode
20 from prompt_toolkit.filters import HasFocus, HasSelection, Condition, ViInsertMode, EmacsInsertMode
20 from prompt_toolkit.filters import HasFocus, HasSelection, Condition, ViInsertMode, EmacsInsertMode, IsDone
21 from prompt_toolkit.history import InMemoryHistory
21 from prompt_toolkit.history import InMemoryHistory
22 from prompt_toolkit.shortcuts import create_prompt_application, create_eventloop, create_prompt_layout
22 from prompt_toolkit.shortcuts import create_prompt_application, create_eventloop, create_prompt_layout
23 from prompt_toolkit.interface import CommandLineInterface
23 from prompt_toolkit.interface import CommandLineInterface
@@ -25,6 +25,7 b' from prompt_toolkit.key_binding.manager import KeyBindingManager'
25 from prompt_toolkit.keys import Keys
25 from prompt_toolkit.keys import Keys
26 from prompt_toolkit.layout.lexers import Lexer
26 from prompt_toolkit.layout.lexers import Lexer
27 from prompt_toolkit.layout.lexers import PygmentsLexer
27 from prompt_toolkit.layout.lexers import PygmentsLexer
28 from prompt_toolkit.layout.processors import ConditionalProcessor, HighlightMatchingBracketProcessor
28 from prompt_toolkit.styles import PygmentsStyle, DynamicStyle
29 from prompt_toolkit.styles import PygmentsStyle, DynamicStyle
29
30
30 from pygments.styles import get_style_by_name, get_all_styles
31 from pygments.styles import get_style_by_name, get_all_styles
@@ -145,7 +146,10 b' class TerminalInteractiveShell(InteractiveShell):'
145 help="Display a multi column completion menu.",
146 help="Display a multi column completion menu.",
146 ).tag(config=True)
147 ).tag(config=True)
147
148
148
149 highlight_matching_brackets = Bool(False,
150 help="Highlight matching brackets .",
151 ).tag(config=True)
152
149 @observe('term_title')
153 @observe('term_title')
150 def init_term_title(self, change=None):
154 def init_term_title(self, change=None):
151 # Enable or disable the terminal title.
155 # Enable or disable the terminal title.
@@ -300,6 +304,13 b' class TerminalInteractiveShell(InteractiveShell):'
300 'get_continuation_tokens':self.get_continuation_tokens,
304 'get_continuation_tokens':self.get_continuation_tokens,
301 'multiline':True,
305 'multiline':True,
302 'display_completions_in_columns': self.display_completions_in_columns,
306 'display_completions_in_columns': self.display_completions_in_columns,
307
308 # Highlight matching brackets, but only when this setting is
309 # enabled, and only when the DEFAULT_BUFFER has the focus.
310 'extra_input_processors': [ConditionalProcessor(
311 processor=HighlightMatchingBracketProcessor(chars='[](){}'),
312 filter=HasFocus(DEFAULT_BUFFER) & ~IsDone() &
313 Condition(lambda cli: self.highlight_matching_brackets))],
303 }
314 }
304
315
305 def _update_layout(self):
316 def _update_layout(self):
General Comments 0
You need to be logged in to leave comments. Login now