mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
21611: Added Firefox completion support.
This commit is contained in:
parent
243539fa30
commit
821c0fd80d
@ -1,3 +1,7 @@
|
||||
2005-08-15 Felix Rosencrantz <f.rosencrantz@gmail.com>
|
||||
|
||||
* 21611: Completion/X/Command/_mozilla: Added Firefox support.
|
||||
|
||||
2005-08-15 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* 21610: Src/system.h, Src/Zle/zle_hist.c, Src/Zle/zle_keymap.c,
|
||||
|
@ -1,37 +1,42 @@
|
||||
#compdef mozilla mozilla-firefox mozilla-xremote-client
|
||||
#compdef mozilla mozilla-firefox mozilla-xremote-client firefox
|
||||
|
||||
local curcontext="$curcontext" state line expl ret=1 suf
|
||||
typeset -A opt_args
|
||||
|
||||
local popts="-installer -CreateProfile -P -ProfileWizard -ProfileManager -SelectProfile"
|
||||
local -a mozopts
|
||||
|
||||
if [[ $service = *remote* ]]; then
|
||||
state=remote
|
||||
else
|
||||
_x_arguments -C \
|
||||
if [[ $service != *firefox* ]]; then
|
||||
mozopts=(
|
||||
"($popts)-installer[start with 4.x migration window]"
|
||||
"($popts)-CreateProfile:profile"
|
||||
"($popts)-ProfileWizard[start with profile wizard]"
|
||||
"($popts)-SelectProfile[start with profile selection dialog]"
|
||||
'-splash[enable splash screen]'
|
||||
'-chat[start with IRC client]'
|
||||
'-news[start with news]'
|
||||
'-venkman[start with JavaScript debugger]'
|
||||
'-terminal[start with command line terminal]'
|
||||
'-mail[start with mail]'
|
||||
'-compose[start with messenger compose]:URL:_urls'
|
||||
)
|
||||
fi
|
||||
_x_arguments -C $mozopts \
|
||||
'-height[height of startup window]:height' \
|
||||
'(-)'{-h,-help}'[show usage message]' \
|
||||
"($popts)-installer[start with 4.x migration window]" \
|
||||
'-width[width of startup window]:width' \
|
||||
'(-)'{-v,-version}'[show the version number and build date]' \
|
||||
"($popts)-CreateProfile:profile" \
|
||||
"($popts)-P[start with profile]:profile:compadd ~/.mozilla/*/*.slt(\:h\:t)" \
|
||||
"($popts)-ProfileWizard[start with profile wizard]" \
|
||||
"($popts)-P[start with profile]:profile:->profile" \
|
||||
"($popts)-ProfileManager[start with profile manager]" \
|
||||
"($popts)-SelectProfile[start with profile selection dialog]" \
|
||||
'-UILocale:locale' \
|
||||
'-contentLocale:locale' \
|
||||
'-remote[execute a command in an existing Mozilla]:remote command:->remote' \
|
||||
'-splash[enable splash screen]' \
|
||||
'-chat[start with IRC client]' \
|
||||
'-news[start with news]' \
|
||||
'-jsconsole[start with JavaScript Console]' \
|
||||
'-venkman[start with JavaScript debugger]' \
|
||||
'-terminal[start with command line terminal]' \
|
||||
'-edit[start with editor]:URL:_urls' \
|
||||
'-chrome[load the specified chrome]:URL:_urls' \
|
||||
'-mail[start with mail]' \
|
||||
'-compose[start with messenger compose]:URL:_urls' \
|
||||
'*:location:->urls' && ret=0
|
||||
fi
|
||||
|
||||
@ -104,4 +109,26 @@ if [[ "$state" = "urls" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $state == "profile" ]]; then
|
||||
if [[ $service == *firefox* ]]; then
|
||||
local -a profiles text profiledir
|
||||
case "$OSTYPE" in
|
||||
darwin*) profiledir=~/"Library/Application Support/Firefox" ;;
|
||||
*) profiledir=~/.mozilla/firefox/ ;;
|
||||
esac
|
||||
profiles=(${(f)"$(< ${profiledir}/profiles.ini)"})
|
||||
profiles=(${(M)${profiles}:#(\[Profile|(Path|Name)=)*})
|
||||
text=${(F)profiles}
|
||||
profiles=(${(f)text//(#b)\[Profile([0-9]##)\]
|
||||
Name=([^
|
||||
]##|)
|
||||
Path=([^
|
||||
]##|)/$match[2]})
|
||||
profiles=(${profiles%:})
|
||||
compadd $profiles
|
||||
else
|
||||
compadd ~/.mozilla/*/*.slt(\:h\:t)
|
||||
fi
|
||||
fi
|
||||
|
||||
return ret
|
||||
|
Loading…
Reference in New Issue
Block a user