コード例 #1
0
    def _get_prompt_tokens_and_style(self):
        """Returns function to pass as prompt to prompt_toolkit."""
        token_names, cstyles, strings = format_prompt_for_prompt_toolkit(
            self.prompt)
        tokens = [getattr(Token, n) for n in token_names]

        def get_tokens(cli):
            return list(zip(tokens, strings))

        class CustomStyle(Style):
            styles = {
                Token.Menu.Completions.Completion.Current:
                'bg:#00aaaa #000000',
                Token.Menu.Completions.Completion: 'bg:#008888 #ffffff',
                Token.Menu.Completions.ProgressButton: 'bg:#003333',
                Token.Menu.Completions.ProgressBar: 'bg:#00aaaa',
                Token.AutoSuggestion: '#666666',
                Token.Aborted: '#888888',
            }
            # update with the prompt styles
            styles.update({t: s for (t, s) in zip(tokens, cstyles)})
            # Update with with any user styles
            userstyle = builtins.__xonsh_env__.get('PROMPT_TOOLKIT_STYLES')
            if userstyle is not None:
                styles.update(userstyle)

        return get_tokens, CustomStyle
コード例 #2
0
def test_format_prompt_for_prompt_toolkit():
    templ = ('>>> {BOLD_BLUE}~/xonsh {WHITE} (main){NO_COLOR}')
    prompt = format_prompt(templ, TERM_COLORS)
    token_names, color_styles, strings = format_prompt_for_prompt_toolkit(prompt)
    assert_equal(token_names, ['NO_COLOR', 'BOLD_BLUE', 'WHITE', 'NO_COLOR'])
    assert_equal(color_styles, ['', 'bold #0000FF', '#FFFFFF', ''])
    assert_equal(strings, ['>>> ', '~/xonsh ', ' (main)', ''])
コード例 #3
0
def test_format_prompt_for_prompt_toolkit():
    cases = [
        ('root $ ', ['r', 'o', 'o', 't', ' ', '$', ' ']),
        ('\001\033[0;31m\002>>',
         [FakeChar('>', prefix='\001\033[0;31m\002'), '>']),
        ('\001\033[0;31m\002>>\001\033[0m\002', [
            FakeChar('>', prefix='\001\033[0;31m\002'),
            FakeChar('>', suffix='\001\033[0m\002')
        ]),
        ('\001\033[0;31m\002>\001\033[0m\002', [
            FakeChar('>',
                     prefix='\001\033[0;31m\002',
                     suffix='\001\033[0m\002')
        ]),
        ('\001\033[0;31m\002> $\001\033[0m\002', [
            FakeChar('>', prefix='\001\033[0;31m\002'), ' ',
            FakeChar('$', suffix='\001\033[0m\002')
        ]),
        ('\001\033[0;31m\002\001\033[0;32m\002$> \001\033[0m\002', [
            FakeChar('$', prefix='\001\033[0;31m\002\001\033[0;32m\002'), '>',
            FakeChar(' ', suffix='\001\033[0m\002')
        ]),
    ]
    for test, ans in cases:
        assert_equal(format_prompt_for_prompt_toolkit(test), ans)
コード例 #4
0
    def _get_prompt_tokens_and_style(self):
        """Returns function to pass as prompt to prompt_toolkit."""
        token_names, cstyles, strings = format_prompt_for_prompt_toolkit(self.prompt)
        tokens = [getattr(Token, n) for n in token_names]

        def get_tokens(cli):
            return list(zip(tokens, strings))

        class CustomStyle(Style):
            styles = {
                Token.Menu.Completions.Completion.Current: 'bg:#00aaaa #000000',
                Token.Menu.Completions.Completion: 'bg:#008888 #ffffff',
                Token.Menu.Completions.ProgressButton: 'bg:#003333',
                Token.Menu.Completions.ProgressBar: 'bg:#00aaaa',
                Token.AutoSuggestion: '#666666',
                Token.Aborted: '#888888',
            }
            # update with the prompt styles
            styles.update({t: s for (t, s) in zip(tokens, cstyles)})
            # Update with with any user styles
            userstyle = builtins.__xonsh_env__.get('PROMPT_TOOLKIT_STYLES')
            if userstyle is not None:
                styles.update(userstyle)

        return get_tokens, CustomStyle
コード例 #5
0
def test_format_prompt_for_prompt_toolkit():
    cases = [
        ('root $ ', ['r', 'o', 'o', 't', ' ', '$', ' ']),
        ('\001\033[0;31m\002>>',
            [FakeChar('>', prefix='\001\033[0;31m\002'), '>']
        ),
        ('\001\033[0;31m\002>>\001\033[0m\002',
            [FakeChar('>', prefix='\001\033[0;31m\002'),
             FakeChar('>', suffix='\001\033[0m\002')]
        ),
        ('\001\033[0;31m\002>\001\033[0m\002',
            [FakeChar('>',
                      prefix='\001\033[0;31m\002',
                      suffix='\001\033[0m\002')
            ]
        ),
        ('\001\033[0;31m\002> $\001\033[0m\002',
            [FakeChar('>', prefix='\001\033[0;31m\002'),
             ' ',
             FakeChar('$', suffix='\001\033[0m\002')]
        ),
        ('\001\033[0;31m\002\001\033[0;32m\002$> \001\033[0m\002',
            [FakeChar('$', prefix='\001\033[0;31m\002\001\033[0;32m\002'),
             '>',
             FakeChar(' ', suffix='\001\033[0m\002')]
        ),
        ]
    for test, ans in cases:
        assert_equal(format_prompt_for_prompt_toolkit(test), ans)
コード例 #6
0
ファイル: test_ptk_tools.py プロジェクト: blink1073/xonsh
def test_format_prompt_for_prompt_toolkit():
    templ = ('>>> {BOLD_BLUE}~/xonsh {WHITE} (main){NO_COLOR}')
    prompt = format_prompt(templ, TERM_COLORS)
    token_names, color_styles, strings = format_prompt_for_prompt_toolkit(prompt)
    assert_equal(token_names, ['NO_COLOR', 'BOLD_BLUE', 'WHITE', 'NO_COLOR'])
    assert_equal(color_styles, ['', 'bold #0000D2', '#ffffff', ''])
    assert_equal(strings, ['>>> ', '~/xonsh ', ' (main)', ''])
コード例 #7
0
ファイル: test_ptk_tools.py プロジェクト: takluyver/xonsh
def test_format_prompt_for_prompt_toolkit():
    templ = ('>>> {BOLD_INTENSE_BLUE}~/xonsh {WHITE} {BACKGROUND_RED} {INTENSE_RED}(main){NO_COLOR}')
    prompt = format_prompt(templ, TERM_COLORS)
    token_names, color_styles, strings = format_prompt_for_prompt_toolkit(prompt)
    assert_equal(token_names, ['NO_COLOR', 'BOLD_INTENSE_BLUE', 'WHITE', 'BACKGROUND_RED', 'INTENSE_RED', 'NO_COLOR'])
    assert_equal(color_styles, ['noinherit', 'bold #0000d2', '#f0f0f0', 'bg:#800000', 'bg:#800000 #ff1010', 'noinherit'])
    assert_equal(strings, ['>>> ', '~/xonsh ', ' ', ' ', '(main)', ''])
コード例 #8
0
    def _get_prompt_tokens_and_style(self):
        """Returns function to pass as prompt to prompt_toolkit."""
        token_names, cstyles, strings = format_prompt_for_prompt_toolkit(self.prompt)
        tokens = [getattr(Token, n) for n in token_names]

        def get_tokens(cli):
            return list(zip(tokens, strings))

        custom_style = _xonsh_style(tokens, cstyles)

        return get_tokens, custom_style
コード例 #9
0
 def get_tokens(cli):
     return [(Token.Prompt,
              format_prompt_for_prompt_toolkit(self.prompt))]
コード例 #10
0
 def get_tokens(cli):
     return [(Token.Prompt,
              format_prompt_for_prompt_toolkit(self.prompt))]