|
||
---|---|---|
.gitignore | ||
LICENSE | ||
README.rst |
README.rst
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
</html>
# pygments_nightfox_style
Pygments Nightfox Style
A style for Pygments (and IPython) based on Nightfox palette by EdenEast.
Original repository for Nightfox palette
This style has IPython specific configuration, when using this code in your IPython configuration:
from IPython.terminal.prompts import Prompts, RichPromptDisplayHook
from pygments.token import Token
from prompt_toolkit.enums import EditingMode
from platform import python_version
import os
import socket
import subprocess
class NightfoxPrompts(Prompts):
def vi_mode(self):
if (getattr(self.shell.pt_app, 'editing_mode', None) == EditingMode.VI
and self.shell.prompt_includes_vi_mode):
mode = str(self.shell.pt_app.app.vi_state.input_mode)
if "INSERT" in mode:
return 'I'
if "NAV" in mode:
return 'N'
if "REPLACE_SINGLE" in mode:
return 'r'
if "REPLACE" in mode:
return 'R'
return 'E' # Emacs mode
def in_prompt_tokens(self):
git_branch = ""
try:
git_branch = subprocess.check_output(
["git", "branch", "--show-current"], stderr=subprocess.DEVNULL
)
if git_branch:
git_branch = git_branch.decode("utf-8").replace("\n", "")
except subprocess.CalledProcessError:
pass
git_branch = str(git_branch)
venv = (os.environ.get("VIRTUAL_ENV") or "").split("/")[-1]
return [
(Token.IPython.Prompt.Login, os.getlogin()),
(Token.IPython.Prompt.Login.Sep, ''),
(Token.IPython.Prompt.Host, socket.gethostname()),
(Token.IPython.Prompt.Host.Sep, ''),
(Token.IPython.Prompt.Venv, venv),
(Token.IPython.Prompt.Venv.Sep, ''),
(Token.IPython.Prompt.Version, ' ' + python_version()),
(Token.IPython.Prompt.Version.Sep, ''),
(Token, '\n'),
(Token.IPython.Prompt.Cwd, os.getcwd()),
(Token.IPython.Prompt.Cwd.Sep, ''),
(Token.IPython.Prompt.Vcs, str(' ') + git_branch if git_branch else ''),
(Token.IPython.Prompt.Vcs.Sep, ''),
(Token, '\n'),
(Token.IPython.Prompt.Mode, self.vi_mode()),
(Token.IPython.Prompt.Mode.Sep, ' '),
]
def out_prompt_tokens(self):
return []