mirror of
https://github.com/cmderdev/cmder.git
synced 2024-11-10 17:59:11 +08:00
Merge pull request #2549 from ian-craig/status-branchonly
Show branch name when cmder.status=false without expensive status ops
This commit is contained in:
commit
62a6311b6d
52
vendor/clink.lua
vendored
52
vendor/clink.lua
vendored
@ -41,6 +41,10 @@ local function get_conflict_color()
|
|||||||
return conflict_color or "\x1b[31;1m"
|
return conflict_color or "\x1b[31;1m"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function get_unknown_color()
|
||||||
|
return unknown_color or "\x1b[37;1m"
|
||||||
|
end
|
||||||
|
|
||||||
---
|
---
|
||||||
-- Makes a string safe to use as the replacement in string.gsub
|
-- Makes a string safe to use as the replacement in string.gsub
|
||||||
---
|
---
|
||||||
@ -392,34 +396,36 @@ local function git_prompt_filter()
|
|||||||
local colors = {
|
local colors = {
|
||||||
clean = get_clean_color(),
|
clean = get_clean_color(),
|
||||||
dirty = get_dirty_color(),
|
dirty = get_dirty_color(),
|
||||||
conflict = get_conflict_color()
|
conflict = get_conflict_color(),
|
||||||
|
nostatus = get_unknown_color()
|
||||||
}
|
}
|
||||||
|
|
||||||
local git_dir = get_git_dir()
|
local git_dir = get_git_dir()
|
||||||
|
local color
|
||||||
cmderGitStatusOptIn = get_git_status_setting()
|
cmderGitStatusOptIn = get_git_status_setting()
|
||||||
if cmderGitStatusOptIn then
|
if git_dir then
|
||||||
if git_dir then
|
local branch = get_git_branch(git_dir)
|
||||||
-- if we're inside of git repo then try to detect current branch
|
if branch then
|
||||||
local branch = get_git_branch(git_dir)
|
if cmderGitStatusOptIn then
|
||||||
local color
|
-- if we're inside of git repo then try to detect current branch
|
||||||
if branch then
|
-- Has branch => therefore it is a git folder, now figure out status
|
||||||
-- Has branch => therefore it is a git folder, now figure out status
|
local gitStatus = get_git_status()
|
||||||
local gitStatus = get_git_status()
|
local gitConflict = get_git_conflict()
|
||||||
local gitConflict = get_git_conflict()
|
|
||||||
|
|
||||||
color = colors.dirty
|
color = colors.dirty
|
||||||
if gitStatus then
|
if gitStatus then
|
||||||
color = colors.clean
|
color = colors.clean
|
||||||
end
|
end
|
||||||
|
|
||||||
if gitConflict then
|
if gitConflict then
|
||||||
color = colors.conflict
|
color = colors.conflict
|
||||||
end
|
end
|
||||||
|
else
|
||||||
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..verbatim(branch)..")")
|
color = colors.nostatus
|
||||||
return false
|
end
|
||||||
end
|
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..verbatim(branch)..")")
|
||||||
end
|
return false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- No git present or not in git file
|
-- No git present or not in git file
|
||||||
@ -437,6 +443,7 @@ local function hg_prompt_filter()
|
|||||||
local colors = {
|
local colors = {
|
||||||
clean = get_clean_color(),
|
clean = get_clean_color(),
|
||||||
dirty = get_dirty_color(),
|
dirty = get_dirty_color(),
|
||||||
|
nostatus = get_unknown_color()
|
||||||
}
|
}
|
||||||
|
|
||||||
local pipe = io.popen("hg branch 2>&1")
|
local pipe = io.popen("hg branch 2>&1")
|
||||||
@ -471,6 +478,7 @@ local function svn_prompt_filter()
|
|||||||
local colors = {
|
local colors = {
|
||||||
clean = get_clean_color(),
|
clean = get_clean_color(),
|
||||||
dirty = get_dirty_color(),
|
dirty = get_dirty_color(),
|
||||||
|
nostatus = get_unknown_color()
|
||||||
}
|
}
|
||||||
|
|
||||||
if get_svn_dir() then
|
if get_svn_dir() then
|
||||||
|
1
vendor/cmder_prompt_config.lua.default
vendored
1
vendor/cmder_prompt_config.lua.default
vendored
@ -43,3 +43,4 @@ lamb_color = "\x1b[1;30;40m" -- Light Grey = Lambda Color
|
|||||||
clean_color = "\x1b[1;37;40m"
|
clean_color = "\x1b[1;37;40m"
|
||||||
dirty_color = "\x1b[33;3m"
|
dirty_color = "\x1b[33;3m"
|
||||||
conflict_color = "\x1b[31;1m"
|
conflict_color = "\x1b[31;1m"
|
||||||
|
unknown_color = "\x1b[37;1m" -- White = No VCS Status Branch Color
|
||||||
|
18
vendor/git-prompt.sh
vendored
18
vendor/git-prompt.sh
vendored
@ -9,6 +9,21 @@ function getGitStatusSetting() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSimpleGitBranch() {
|
||||||
|
gitDir=$(git rev-parse --git-dir 2>/dev/null)
|
||||||
|
if [ -z "$gitDir" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
headContent=$(< "$gitDir/HEAD")
|
||||||
|
if [[ "$headContent" == "ref: refs/heads/"* ]]
|
||||||
|
then
|
||||||
|
echo " (${headContent:16})"
|
||||||
|
else
|
||||||
|
echo " (HEAD detached at ${headContent:0:7})"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
if test -f /etc/profile.d/git-sdk.sh
|
if test -f /etc/profile.d/git-sdk.sh
|
||||||
then
|
then
|
||||||
TITLEPREFIX=SDK-${MSYSTEM#MINGW}
|
TITLEPREFIX=SDK-${MSYSTEM#MINGW}
|
||||||
@ -45,6 +60,9 @@ else
|
|||||||
. "$COMPLETION_PATH/git-prompt.sh"
|
. "$COMPLETION_PATH/git-prompt.sh"
|
||||||
PS1="$PS1"'\[\033[36m\]' # change color to cyan
|
PS1="$PS1"'\[\033[36m\]' # change color to cyan
|
||||||
PS1="$PS1"'`__git_ps1`' # bash function
|
PS1="$PS1"'`__git_ps1`' # bash function
|
||||||
|
else
|
||||||
|
PS1="$PS1"'\[\033[37;1m\]' # change color to white
|
||||||
|
PS1="$PS1"'`getSimpleGitBranch`'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
8
vendor/psmodules/Cmder.ps1
vendored
8
vendor/psmodules/Cmder.ps1
vendored
@ -36,6 +36,14 @@ function checkGit($Path) {
|
|||||||
|
|
||||||
if (getGitStatusSetting -eq $true) {
|
if (getGitStatusSetting -eq $true) {
|
||||||
Write-VcsStatus
|
Write-VcsStatus
|
||||||
|
} else {
|
||||||
|
$headContent = Get-Content (Join-Path $Path '.git/HEAD')
|
||||||
|
if ($headContent -like "ref: refs/heads/*") {
|
||||||
|
$branchName = $headContent.Substring(16)
|
||||||
|
} else {
|
||||||
|
$branchName = "HEAD detached at $($headContent.Substring(0, 7))"
|
||||||
|
}
|
||||||
|
Write-Host " [$branchName]" -NoNewline -ForegroundColor White
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user