updates for showing git branch and venv in prompt -- also for webshare

This commit is contained in:
sawka
2023-04-12 14:48:10 -07:00
parent 88cc9f3096
commit c969966162
3 changed files with 38 additions and 9 deletions
+2 -2
View File
@@ -633,8 +633,8 @@ class Prompt extends React.Component<{rptr : RemotePtrType, festate : Record<str
if (remote && remote.remotecanonicalname) {
remoteTitle = "connected to " + remote.remotecanonicalname;
}
let cwdElem = (<span title="current directory" className="term-prompt-cwd">{cwd}</span>);
let remoteElem = (<span title={remoteTitle} className={cn("term-prompt-remote", remoteColorClass)}>[{remoteStr}]</span>);
let cwdElem = (<span title="current directory" className="term-prompt-cwd"><i className="fa-solid fa-sharp fa-folder-open"/>{cwd}</span>);
let remoteElem = (<span title={remoteTitle} className={cn("term-prompt-remote", remoteColorClass)}>[{remoteStr}] </span>);
let rootIndicatorElem = (<span className="term-prompt-end">{isRoot ? "#" : "$"}</span>);
let branchElem = null;
let pythonElem = null;
+8 -1
View File
@@ -2353,8 +2353,9 @@ input[type=checkbox] {
}
#main .term-prompt {
font-size: 14px;
i {
font-size: 12px;
margin-right: 3px;
}
@@ -2366,6 +2367,12 @@ input[type=checkbox] {
color: @term-bright-magenta;
}
.term-prompt-remote {
i {
margin-right: 0;
}
}
.term-prompt-remote {
color: @term-bright-green;
+28 -6
View File
@@ -39,6 +39,17 @@ function makeFullRemoteRef(ownerName : string, remoteRef : string, name : string
return ownerName + ":" + remoteRef + ":" + name;
}
function getShortVEnv(venvDir : string) : string {
if (isBlank(venvDir)) {
return "";
}
let lastSlash = venvDir.lastIndexOf("/");
if (lastSlash == -1) {
return venvDir;
}
return venvDir.substr(lastSlash+1);
}
function replaceHomePath(path : string, homeDir : string) : string {
if (path == homeDir) {
return "~";
@@ -49,7 +60,7 @@ function replaceHomePath(path : string, homeDir : string) : string {
return path;
}
function getCwdStr(remote : T.WebRemote, state : T.FeStateType) : string {
function getCwdStr(remote : T.WebRemote, state : Record<string, string>) : string {
if (state == null || isBlank(state.cwd)) {
return "~";
}
@@ -70,22 +81,33 @@ function getRemoteStr(remote : T.WebRemote) : string {
}
@mobxReact.observer
class Prompt extends React.Component<{remote : T.WebRemote, festate : T.FeStateType}, {}> {
class Prompt extends React.Component<{remote : T.WebRemote, festate : Record<string, string>}, {}> {
render() {
let {remote, festate} = this.props;
let remoteStr = getRemoteStr(remote);
let cwd = getCwdStr(remote, festate);
let isRoot = !!remote.isroot;
let remoteColorClass = (isRoot ? "color-red" : "color-green");
// if (remote && remote.remoteopts && remote.remoteopts.color) {
// remoteColorClass = "color-" + remote.remoteopts.color;
// }
let remoteTitle : string = null;
if (remote && remote.canonicalname) {
remoteTitle = remote.canonicalname;
}
let cwdElem = (<span title="current directory" className="term-prompt-cwd"><i className="fa-solid fa-sharp fa-folder-open"/>{cwd}</span>);
let remoteElem = (<span title={remoteTitle} className={cn("term-prompt-remote", remoteColorClass)}>[{remoteStr}] </span>);
let rootIndicatorElem = (<span className="term-prompt-end">{isRoot ? "#" : "$"}</span>);
let branchElem = null;
let pythonElem = null;
if (!isBlank(festate["PROMPTVAR_GITBRANCH"])) {
let branchName = festate["PROMPTVAR_GITBRANCH"];
branchElem = (<span title="current git branch" className="term-prompt-branch"><i className="fa-sharp fa-solid fa-code-branch"/>{branchName} </span>);
}
if (!isBlank(festate["VIRTUAL_ENV"])) {
let venvDir = festate["VIRTUAL_ENV"];
let venv = getShortVEnv(venvDir);
pythonElem = (<span title="python venv" className="term-prompt-python"><i className="fa-brands fa-python"/>{venv} </span>);
}
return (
<span className="term-prompt"><span title={remoteTitle} className={cn("term-prompt-remote", remoteColorClass)}>[{remoteStr}]</span> <span className="term-prompt-cwd">{cwd}</span> <span className="term-prompt-end">{isRoot ? "#" : "$"}</span></span>
<span className="term-prompt">{remoteElem} {pythonElem}{branchElem}{cwdElem} {rootIndicatorElem}</span>
);
}
}