Fix cmder no status prompt

This commit is contained in:
dgames 2021-05-30 07:50:48 -04:00
parent 03d0f913ea
commit c9acb13d0b
4 changed files with 70 additions and 22 deletions

View File

@ -5,6 +5,8 @@
### Changes ### Changes
- Update Git for Windows to 2.31.1 - Update Git for Windows to 2.31.1
- Update to Clink 1.2.5
- Do not rely on having a `%cmder_root%\config\cmder_prompt_config.lua`
### Adds ### Adds

84
vendor/clink.lua vendored
View File

@ -13,6 +13,38 @@ dofile(clink_lua_file)
-- now add our own things... -- now add our own things...
local function get_uah_color()
return uah_color or "\x1b[1;33;40m" -- Green = uah = [user]@[hostname]
end
local function get_cwd_color()
return cwd_color or "\x1b[1;32;40m" -- Yellow cwd = Current Working Directory
end
local function get_lamb_color()
return lamb_color or "\x1b[1;30;40m" -- Light Grey = Lambda Color
end
local function get_clean_color()
return clean_color or "\x1b[1;37;40m"
end
local function get_dirty_color()
return dirty_color or "\x1b[33;3m"
end
local function get_conflict_color()
return conflict_color or "\x1b[31;1m"
end
local function get_unknown_color()
return unknown_color or "\x1b[1;37;40m"
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
--- ---
@ -65,6 +97,22 @@ local function set_prompt_filter()
prompt_lambSymbol = "λ" prompt_lambSymbol = "λ"
end end
if not prompt_type then
prompt_type = "full"
end
if prompt_useHomeSymbol == nil then
prompt_useHomeSymbol = false
end
if prompt_useUserAtHost == nil then
prompt_useUserAtHost = false
end
if prompt_singleLine == nil then
prompt_singleLine = false
end
if prompt_type == 'folder' then if prompt_type == 'folder' then
cwd = get_folder_name(cwd) cwd = get_folder_name(cwd)
end end
@ -83,14 +131,13 @@ local function set_prompt_filter()
cr = ' ' cr = ' '
end end
if env ~= nil then if env ~= nil then env = "("..env..") " else env = "" end
prompt_lambSymbol = "("..env..") "..prompt_lambSymbol
end
prompt = uah_color .. "{uah}" .. cwd_color .. "{cwd}{git}{hg}{svn}" .. lamb_color .. cr .. "{lamb} \x1b[0m" prompt = get_uah_color() .. "{uah}" .. get_cwd_color() .. "{cwd}{git}{hg}{svn}" .. get_lamb_color() .. cr .. "{lamb} \x1b[0m"
uah_value = string.gsub(prompt, "{uah}", uah) prompt = string.gsub(prompt, "{uah}", uah)
new_value = string.gsub(uah_value, "{cwd}", cwd) prompt = string.gsub(prompt, "{cwd}", cwd)
clink.prompt.value = string.gsub(new_value, "{lamb}", prompt_lambSymbol) prompt = string.gsub(prompt, "{env}", env)
clink.prompt.value = string.gsub(prompt, "{lamb}", prompt_lambSymbol)
end end
local function percent_prompt_filter() local function percent_prompt_filter()
@ -347,19 +394,19 @@ local function git_prompt_filter()
-- Colors for git status -- Colors for git status
local colors = { local colors = {
clean = clean_color, clean = get_clean_color(),
dirty = dirty_color, dirty = get_dirty_color(),
conflict = conflict_color conflict = get_conflict_color(),
nostatus = unknown_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 cmderGitStatusOptIn then
if git_dir then if git_dir then
-- if we're inside of git repo then try to detect current branch -- if we're inside of git repo then try to detect current branch
local branch = get_git_branch(git_dir) local branch = get_git_branch(git_dir)
local color
if branch then 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()
@ -381,7 +428,6 @@ local function git_prompt_filter()
else else
if git_dir then if git_dir then
local branch = get_git_branch(git_dir) local branch = get_git_branch(git_dir)
local color
if branch then if branch then
color = colors.nostatus color = colors.nostatus
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..verbatim(branch)..")") clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..verbatim(branch)..")")
@ -404,9 +450,9 @@ local function hg_prompt_filter()
if hg_dir then if hg_dir then
-- Colors for mercurial status -- Colors for mercurial status
local colors = { local colors = {
clean = clean_color, clean = get_clean_color(),
dirty = dirty_color, dirty = get_dirty_color(),
nostatus = nostatus_color nostatus = get_unknown_color()
} }
local pipe = io.popen("hg branch 2>&1") local pipe = io.popen("hg branch 2>&1")
@ -439,9 +485,9 @@ end
local function svn_prompt_filter() local function svn_prompt_filter()
-- Colors for svn status -- Colors for svn status
local colors = { local colors = {
clean = clean_color, clean = get_clean_color(),
dirty = dirty_color, dirty = get_dirty_color(),
nostatus = nostatus_color nostatus = get_unknown_color()
} }
if get_svn_dir() then if get_svn_dir() then

View File

@ -43,4 +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[1;30;40m" -- Light Grey = No VCS Status Branch Color unknown_color = "\x1b[1;37;40m" -- White = No VCS Status Branch Color

4
vendor/sources.json vendored
View File

@ -6,8 +6,8 @@
}, },
{ {
"name": "clink", "name": "clink",
"version": "1.1.45", "version": "1.2.5",
"url": "https://github.com/chrisant996/clink/releases/download/v1.1.45/clink.1.1.45.1c3985.zip" "url": "https://github.com/chrisant996/clink/releases/download/v1.2.5/clink.1.2.5.5dd017.zip"
}, },
{ {
"name": "conemu-maximus5", "name": "conemu-maximus5",