diff options
Diffstat (limited to 'pygments/lexers/shell.py')
-rw-r--r-- | pygments/lexers/shell.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py index be74a040..e25274eb 100644 --- a/pygments/lexers/shell.py +++ b/pygments/lexers/shell.py @@ -154,6 +154,7 @@ class ShellSessionBaseLexer(Lexer): .. versionadded:: 2.1 """ + _bare_continuation = False _venv = re.compile(r'^(\([^)]*\))(\s*)') def get_tokens_unprocessed(self, text): @@ -172,10 +173,10 @@ class ShellSessionBaseLexer(Lexer): venv = venv_match.group(1) venv_whitespace = venv_match.group(2) insertions.append((len(curcode), - [(0, Generic.Prompt.VirtualEnv, venv)])) + [(0, Generic.Prompt.VirtualEnv, venv)])) if venv_whitespace: insertions.append((len(curcode), - [(0, Text, venv_whitespace)])) + [(0, Text, venv_whitespace)])) line = line[venv_match.end():] m = self._ps1rgx.match(line) @@ -193,11 +194,17 @@ class ShellSessionBaseLexer(Lexer): elif backslash_continuation: if line.startswith(self._ps2): insertions.append((len(curcode), - [(0, Generic.Prompt, line[:len(self._ps2)])])) + [(0, Generic.Prompt, + line[:len(self._ps2)])])) curcode += line[len(self._ps2):] else: curcode += line backslash_continuation = curcode.endswith('\\\n') + elif self._bare_continuation and line.startswith(self._ps2): + insertions.append((len(curcode), + [(0, Generic.Prompt, + line[:len(self._ps2)])])) + curcode += line[len(self._ps2):] else: if insertions: toks = innerlexer.get_tokens_unprocessed(curcode) @@ -774,8 +781,9 @@ class PowerShellSessionLexer(ShellSessionBaseLexer): mimetypes = [] _innerLexerCls = PowerShellLexer + _bare_continuation = True _ps1rgx = re.compile(r'^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)') - _ps2 = '>> ' + _ps2 = '> ' class FishShellLexer(RegexLexer): |