├── .config ├── .config ├── configstore │ ├── first-run_kap.json │ ├── first-run_kap-2.1.2.json │ ├── update-notifier-firebase-tools.json │ ├── update-notifier-npm.json │ └── firebase-tools.json ├── git │ └── ignore ├── nvim │ └── init.vim └── xbuild │ └── pkgconfig-cache-2.xml ├── README.md ├── .profile ├── .bash_profile ├── .vimrc ├── CodeSnippets ├── BDDBC3AC-BCDB-4A15-B7ED-D3AF6453FB20.codesnippet ├── 642C7A18-A2F6-4C20-80A1-795399C26715.codesnippet ├── D395445E-CFC6-4C45-91A4-6CE614728A40.codesnippet └── C49D674E-A918-4889-92AB-70747B474F4C.codesnippet ├── .bashrc ├── Brewfile ├── lessconfig.sh ├── config.sh └── .git-completion.bash /.config/.config: -------------------------------------------------------------------------------- 1 | /Users/satorusasozaki/dotfiles/.config -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfile 2 | My dotfiles 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.config/configstore/first-run_kap.json: -------------------------------------------------------------------------------- 1 | { 2 | "firstRun": false 3 | } -------------------------------------------------------------------------------- /.config/configstore/first-run_kap-2.1.2.json: -------------------------------------------------------------------------------- 1 | { 2 | "firstRun": false 3 | } -------------------------------------------------------------------------------- /.config/configstore/update-notifier-firebase-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "optOut": false, 3 | "lastUpdateCheck": 1520279005145 4 | } -------------------------------------------------------------------------------- /.config/git/ignore: -------------------------------------------------------------------------------- 1 | # Automatically created by GitHub for Mac 2 | # To make edits, delete these initial comments, or else your changes may be lost! 3 | 4 | 404: Not Found 5 | -------------------------------------------------------------------------------- /.config/configstore/update-notifier-npm.json: -------------------------------------------------------------------------------- 1 | { 2 | "optOut": false, 3 | "lastUpdateCheck": 1525405186737, 4 | "update": { 5 | "latest": "6.0.0", 6 | "current": "5.6.0", 7 | "type": "major", 8 | "name": "npm" 9 | } 10 | } -------------------------------------------------------------------------------- /.profile: -------------------------------------------------------------------------------- 1 | 2 | export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 3 | 4 | [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 5 | 6 | # For Go 7 | #export WAYGO_RESOURCES=/Users/satoru/.go/src/github.com/waygo/resources 8 | -------------------------------------------------------------------------------- /.bash_profile: -------------------------------------------------------------------------------- 1 | #if [ -f `brew --prefix`/etc/bash_completion ]; then 2 | # . `brew --prefix`/etc/bash_completion 3 | # echo OK 4 | #fi 5 | if [ -f ~/.bashrc ]; then 6 | source ~/.bashrc 7 | fi 8 | # for Ruby 9 | [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 10 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | " REQUIRED. This makes vim invoke Latex-Suite when you open a tex file. 2 | filetype plugin on 3 | 4 | " IMPORTANT: win32 users will need to have 'shellslash' set so that latex 5 | " can be called correctly. 6 | set shellslash 7 | 8 | " IMPORTANT: grep will sometimes skip displaying the file name if you 9 | " search in a singe file. This will confuse Latex-Suite. Set your grep 10 | " program to always generate a file-name. 11 | set grepprg=grep\ -nH\ $* 12 | 13 | " OPTIONAL: This enables automatic indentation as you type. 14 | filetype indent on 15 | 16 | " OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults to 17 | " 'plaintex' instead of 'tex', which results in vim-latex not being loaded. 18 | " The following changes the default filetype back to 'tex': 19 | let g:tex_flavor='latex' 20 | 21 | -------------------------------------------------------------------------------- /CodeSnippets/BDDBC3AC-BCDB-4A15-B7ED-D3AF6453FB20.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | print 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | print("Error: <#comment#>") 13 | IDECodeSnippetIdentifier 14 | BDDBC3AC-BCDB-4A15-B7ED-D3AF6453FB20 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Swift 17 | IDECodeSnippetSummary 18 | Print error 19 | IDECodeSnippetTitle 20 | Error 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | # show git branch 2 | # https://github.com/jimeh/git-aware-prompt 3 | export GITAWAREPROMPT=~/dotfiles/.bash/git-aware-prompt 4 | source "${GITAWAREPROMPT}/main.sh" 5 | export PS1="\[\033[32m\]\W \[$txtylw\]\$git_branch\[\033[0m\]$ \[\033[0m\]" 6 | source ~/.git-completion.bash 7 | alias ls='ls -G' 8 | alias open='open . -a xcode' 9 | export LSCOLORS=gxfxcxdxbxegedabagacad 10 | export PATH=/usr/local/bin:$PATH 11 | 12 | # for golang 13 | export GOPATH=~/.go 14 | export PATH=$PATH:$GOPATH/bin 15 | 16 | # for Ruby 17 | export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 18 | 19 | alias wink='cd /Users/satorusasozaki/Dropbox/Development/SunsetHQ/say && open . -a xcode' 20 | alias sunsethq='cd /Users/satorusasozaki/Dropbox/Development/sunsethq && ls' 21 | alias poppy='cd /Users/satorusasozaki/Dropbox/Development/Poppy && ls' 22 | # Make git editor to neovim 23 | export VISUAL=vim 24 | export EDITOR="$VISUAL" 25 | export JEKYLL_ENV="staging" 26 | 27 | export HOMEBREW_CASK_OPTS="--appdir=/Applications" 28 | -------------------------------------------------------------------------------- /CodeSnippets/642C7A18-A2F6-4C20-80A1-795399C26715.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | print 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | print("\(type(of: self)).\(#function)") 13 | IDECodeSnippetIdentifier 14 | 642C7A18-A2F6-4C20-80A1-795399C26715 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Swift 17 | IDECodeSnippetSummary 18 | Print method name and class 19 | IDECodeSnippetTitle 20 | Method name and class 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /CodeSnippets/D395445E-CFC6-4C45-91A4-6CE614728A40.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | print 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | print("<#label#>: \(<#variable#>)") 13 | IDECodeSnippetIdentifier 14 | D395445E-CFC6-4C45-91A4-6CE614728A40 15 | IDECodeSnippetLanguage 16 | Xcode.SourceCodeLanguage.Swift 17 | IDECodeSnippetSummary 18 | Print variable with label 19 | IDECodeSnippetTitle 20 | Variable with label 21 | IDECodeSnippetUserSnippet 22 | 23 | IDECodeSnippetVersion 24 | 2 25 | 26 | 27 | -------------------------------------------------------------------------------- /CodeSnippets/C49D674E-A918-4889-92AB-70747B474F4C.codesnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDECodeSnippetCompletionPrefix 6 | guard 7 | IDECodeSnippetCompletionScopes 8 | 9 | CodeBlock 10 | 11 | IDECodeSnippetContents 12 | guard let <#unwrapped#> = <#optional#> else { 13 | print("Error: ") 14 | return 15 | } 16 | IDECodeSnippetIdentifier 17 | C49D674E-A918-4889-92AB-70747B474F4C 18 | IDECodeSnippetLanguage 19 | Xcode.SourceCodeLanguage.Swift 20 | IDECodeSnippetSummary 21 | Unwrap an optional value with guard 22 | IDECodeSnippetTitle 23 | Guard unwrapping 24 | IDECodeSnippetUserSnippet 25 | 26 | IDECodeSnippetVersion 27 | 2 28 | 29 | 30 | -------------------------------------------------------------------------------- /Brewfile: -------------------------------------------------------------------------------- 1 | # https://github.com/Homebrew/homebrew-bundle 2 | # specify a directory to install 3 | cask_args appdir: '/Applications' 4 | # install packages 5 | tap 'caskroom/homebrew-cask' || true 6 | tap 'caskroom/versions' || true 7 | brew 'git' 8 | brew 'bash-completion' 9 | brew 'tree' 10 | brew 'node' 11 | # need to install java before jenkins 12 | cask 'java' 13 | brew 'jenkins' 14 | brew 'wget' 15 | # Casks 16 | cask 'vlc' 17 | cask 'google-chrome' 18 | cask 'dropbox' 19 | cask 'alfred' 20 | cask 'evernote' 21 | cask 'flux' 22 | cask 'skype' 23 | cask 'virtualbox' 24 | cask 'slack' 25 | cask 'spotify' 26 | cask 'kindle' 27 | cask '1password' 28 | #cask 'iterm2-nightly' 29 | cask 'calibre' 30 | cask 'dash' 31 | cask 'atom' 32 | cask 'edgeview' 33 | cask 'google-drive' 34 | cask 'firefox' 35 | cask 'skitch' 36 | cask 'licecap' 37 | cask 'macdown' #markdown viewer 38 | cask 'sublime' 39 | # To convert mov to gif 40 | # https://gist.github.com/dergachev/4627207 41 | cask 'xquartz' 42 | cask 'fluid' 43 | brew 'gifsicle' 44 | 45 | # for indigo theme 46 | # https://github.com/sergiokopplin/indigo 47 | # http://bundler.io/ 48 | 49 | # for react native to run the facebook F8 app 50 | # https://github.com/fbsamples/f8app 51 | brew 'watchman' # https://facebook.github.io/watchman/docs/install.html 52 | brew 'flow' # http://www.flowtype.org/ 53 | brew 'mongodb' # https://www.mongodb.org/downloads#production 54 | 55 | # A command to download mac store app 56 | # http://www.softantenna.com/wp/mac/mas-cli/ 57 | # https://github.com/argon/mas 58 | tap 'argon/mas' 59 | brew 'mas' 60 | # run download_apps later on 61 | 62 | #go 63 | brew 'go' 64 | 65 | # python 66 | brew 'python' 67 | brew 'python3' 68 | 69 | brew 'carthage' 70 | 71 | # for my blog, install jekyll and bundler 72 | # https://github.com/sergiokopplin/indigo 73 | brew 'yarn' # To edit app.css in Jekyll theme duo 74 | brew cask keybase 75 | brew mpg123 76 | brew ffmpeg #to convert mov to mp4 77 | -------------------------------------------------------------------------------- /lessconfig.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # After downloading Xcode 4 | sudo xcodebuild -license # agree with license 5 | xcode-select --install # Install command line tool 6 | 7 | # Setup estonian ID at the end. 8 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 9 | export HOMEBREW_CASK_OPTS="--appdir=/Applications" 10 | 11 | brew list 'git' || brew install 'git' 12 | brew list 'bash-completion' || brew install 'bash-completion' 13 | brew list 'tree' || brew install 'tree' 14 | 15 | brew list 'mpg123' || brew install 'mpg123' 16 | 17 | # Casks 18 | brew cask list 'iterm2' || brew cask install 'iterm2' 19 | brew cask list 'alfred' || brew cask install 'alfred' 20 | brew cask list 'dropbox' || brew cask install 'dropbox' 21 | brew cask list '1password' || brew cask install '1password' 22 | brew cask list 'google-chrome' || brew cask install 'google-chrome' 23 | brew cask list 'evernote' || brew cask install 'evernote' 24 | brew cask list 'slack' || brew cask install 'slack' 25 | brew cask list 'atom' || brew cask install 'atom' 26 | #brew cask list 'vlc' || brew cask install 'vlc' 27 | brew cask list 'skype' || brew cask install 'skype' 28 | brew cask list 'spotify' || brew cask install 'spotify' 29 | #brew cask list 'kindle' || brew cask install 'kindle' 30 | 31 | # Jenkins 32 | #brew cask list 'java' || brew cask install 'java' 33 | #brew list 'wget' || brew install 'wget' 34 | 35 | brew list 'mas' || brew install 'mas' 36 | #mas install 417375580 # BetterSnapTool 37 | mas install 410628904 # Wunderlist 38 | mas install 441258766 # magnet 39 | #mas install 961632517 # Be Focused Pro 40 | #mas install 1003160018 # quip 41 | mas install 1028905953 # Betternet Unlimited VPN Proxy 42 | 43 | mkdir ~/dotfiles/.bash/ 44 | cd ~/dotfiles/.bash/ 45 | git clone git://github.com/jimeh/git-aware-prompt.git 46 | 47 | # Move code snippets to Xcode 48 | cp -R ~/dotfiles/CodeSnippets ~/Library/Developer/Xcode/UserData/ 49 | 50 | brew list 'ruby' || brew install 'ruby' 51 | sudo gem install 'cocoapods' 52 | sudo gem install 'jekyll' 53 | 54 | # Make symlinks 55 | ln -sf ~/dotfiles/.vimrc ~/.vimrc 56 | ln -sf ~/dotfiles/.bash_profile ~/.bash_profile 57 | ln -sf ~/dotfiles/.bashrc ~/.bashrc 58 | ln -sf ~/dotfiles/Brewfile ~/Brewfile 59 | ln -sf ~/dotfiles/.config ~/.config 60 | ln -sf ~/dotfiles/.git-completion.bash ~/.git-completion.bash 61 | -------------------------------------------------------------------------------- /.config/configstore/firebase-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "analytics-uuid": "61e27478-aeb9-45dc-a94a-028e4f783e15", 3 | "motd": { 4 | "minVersion": "3.0.5" 5 | }, 6 | "motd.fetched": 1520279006243, 7 | "usage": true, 8 | "user": { 9 | "azp": "563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com", 10 | "aud": "563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com", 11 | "sub": "106822220920666843641", 12 | "hd": "eversummer.io", 13 | "email": "sato@eversummer.io", 14 | "email_verified": true, 15 | "at_hash": "nG0cjucGYIv_iTnd04hOng", 16 | "exp": 1519693880, 17 | "iss": "accounts.google.com", 18 | "iat": 1519690280 19 | }, 20 | "tokens": { 21 | "expires_at": 1520304199869, 22 | "refresh_token": "1/yEQP1ywDETcjxKHCcfYMJ5jVj18ENQYuqR1m6RyaBgU", 23 | "scopes": [ 24 | "email", 25 | "https://www.googleapis.com/auth/cloud-platform", 26 | "https://www.googleapis.com/auth/cloudplatformprojects.readonly", 27 | "https://www.googleapis.com/auth/firebase", 28 | "openid" 29 | ], 30 | "access_token": "ya29.Glx2BfDkesvj-f9w6W4Uh7iz8mDjoYc_OdMefvhODZjp9Un8iUOi56Ws__WrCCYfkUDRdTyQWJz2Zj5_7K_CM_XQtPp5yZAL00EVfJMuzySiQEolxn3eMrlwPi9g0Q", 31 | "token_type": "Bearer", 32 | "expires_in": 3600, 33 | "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgzOWI5MjRiYjY1OWYwNzM1OGZkZjgyODhjZTU5ZjE4OWM0MDI4ZjQifQ.eyJhenAiOiI1NjM1ODQzMzU4NjktZmdyaGdtZDQ3YnFuZWtpajVpOGI1cHIwM2hvODQ5ZTYuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI1NjM1ODQzMzU4NjktZmdyaGdtZDQ3YnFuZWtpajVpOGI1cHIwM2hvODQ5ZTYuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDY4MjIyMjA5MjA2NjY4NDM2NDEiLCJoZCI6ImV2ZXJzdW1tZXIuaW8iLCJlbWFpbCI6InNhdG9AZXZlcnN1bW1lci5pbyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdF9oYXNoIjoia1RieHZlY0c0aUJUT1dtVVlib09MZyIsImV4cCI6MTUyMDMwNDE5OSwiaXNzIjoiYWNjb3VudHMuZ29vZ2xlLmNvbSIsImlhdCI6MTUyMDMwMDU5OX0.Lju8RXN30wF38HmzTigebxnNfMc5fzu0GFMSOrh6cP_J6mmRYGfTCZmpMXwK_2a_6AIni9VEQWlURxojR9HRfIbP_H2N3vM8_AeXzc15cWJBs5NE1zFhtsT6UA6VYEnUc_E_aQaEni4keyBvSOkrkn41IaBsktUeVra1DM3uCeRYNcvYeXwA00w3Q54DafFCeBlmV65NgH81YwApm3w-XMryLMzwviJVFSwKHUUeZdZYlqMQCYLp66FG13M1EzjZf1OBWKrv5Z7lpIiNRmIRzaJUe99C78YZBG-yBiQZEDojiyQ1RIiD6qe5IEFekOL2em-v7EJLL6Yk6jY6UEbe7g" 34 | }, 35 | "activeProjects": { 36 | "/Users/satorusasozaki/Dropbox/Development/Firebase/functions-firecast": "winks-283e6", 37 | "/Users/satorusasozaki/Dropbox/Development/Firebase": "sendvideoviaurl", 38 | "/Users/satorusasozaki/Dropbox/Development/Firebase/functions-samples/quickstarts/thumbnails": "staging" 39 | } 40 | } -------------------------------------------------------------------------------- /config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # After downloading Xcode 4 | sudo xcodebuild -license # agree with license 5 | xcode-select --install # Install command line tool 6 | 7 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 8 | export HOMEBREW_CASK_OPTS="--appdir=/Applications" 9 | 10 | brew install 'git' 11 | brew install 'bash-completion' 12 | brew install 'tree' 13 | brew install 'node' 14 | brew install 'mpg123' 15 | 16 | # Jenkins 17 | brew cask install 'java' 18 | brew install 'jenkins' 19 | brew install 'wget' 20 | 21 | # Casks 22 | brew cask install 'vlc' 23 | brew cask install 'google-chrome' 24 | brew cask install 'dropbox' 25 | brew cask install 'alfred' 26 | brew cask install 'evernote' 27 | brew cask install 'skype' 28 | brew cask install 'virtualbox' 29 | brew cask install 'slack' 30 | brew cask install 'spotify' 31 | brew cask install 'kindle' 32 | brew cask install '1password' 33 | brew cask install 'iterm2' 34 | brew cask install 'calibre' 35 | brew cask install 'dash' 36 | brew cask install 'atom' 37 | brew cask install 'edgeview' 38 | brew cask install 'google-drive' 39 | brew cask install 'firefox' 40 | brew cask install 'skitch' 41 | brew cask install 'licecap' 42 | brew cask install 'macdown' 43 | brew cask install 'keybase' 44 | 45 | # To convert mov to gif 46 | # https://gist.github.com/dergachev/4627207 47 | brew cask install 'xquartz' 48 | brew cask install 'fluid' 49 | brew install 'gifsicle' 50 | 51 | # for react native to run the facebook F8 app 52 | # https://github.com/fbsamples/f8app 53 | brew install 'watchman' # https://facebook.github.io/watchman/docs/install.html 54 | brew install 'flow' # http://www.flowtype.org/ 55 | brew install 'mongodb' # https://www.mongodb.org/downloads#production 56 | 57 | brew install 'go' 58 | brew install 'python' 59 | brew install 'python3' 60 | 61 | brew install 'mas' 62 | mas install 417375580 # BetterSnapTool 63 | mas install 823766827 # OneDrive 64 | mas install 539883307 # LINE 65 | mas install 410628904 # Wunderlist 66 | mas install 961632517 # Be Focused Pro 67 | mas install 404478020 # OmniOutliner 68 | mas install 775737590 # ai writer 69 | mas install 1003160018 # quip 70 | mas install 1028905953 # betternet 71 | 72 | # Config github 73 | git config --global user.name satorusasozaki 74 | git config --global user.email sasozakisatoru@gmail.com 75 | 76 | # TODO clone git://github.com/jimeh/git-aware-prompt.git to dotfiles/.bash/ 77 | 78 | # Make symlinks 79 | ln -sf ~/dotfiles/.vimrc ~/.vimrc 80 | ln -sf ~/dotfiles/.bash_profile ~/.bash_profile 81 | ln -sf ~/dotfiles/.bashrc ~/.bashrc 82 | ln -sf ~/dotfiles/Brewfile ~/Brewfile 83 | ln -sf ~/dotfiles/.config ~/.config 84 | ln -sf ~/dotfiles/.git-completion.bash ~/.git-completion.bash 85 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | if has('vim_starting') 2 | if &compatible 3 | set nocompatible " Be iMproved 4 | endif 5 | 6 | " Required: 7 | set runtimepath+=~/.vim/bundle/neobundle.vim/ 8 | endif 9 | 10 | " Required: 11 | call neobundle#begin(expand('~/.vim/bundle/')) 12 | 13 | " Let NeoBundle manage NeoBundle 14 | " Required: 15 | NeoBundleFetch 'Shougo/neobundle.vim' 16 | 17 | " My Bundles here: 18 | " Refer to |:NeoBundle-examples|. 19 | " Note: You don't set neobundle setting in .gvimrc! 20 | 21 | " Neobundle 22 | NeoBundle 'tpope/vim-fugitive' 23 | NeoBundle 'gregsexton/gitv.git' 24 | NeoBundle 'chriskempson/base16-vim' 25 | NeoBundle 'scrooloose/nerdtree' 26 | NeoBundle 'Xuyuanp/nerdtree-git-plugin' 27 | NeoBundle 'plasticboy/vim-markdown' 28 | NeoBundle 'cakebaker/scss-syntax.vim' 29 | NeoBundle 'mustache/vim-mustache-handlebars' 30 | NeoBundle 'othree/html5.vim' 31 | NeoBundle 'kien/ctrlp.vim' 32 | NeoBundle 'rking/ag.vim' 33 | NeoBundle 'bling/vim-airline' 34 | 35 | call neobundle#end() 36 | 37 | " Required: 38 | filetype plugin indent on 39 | 40 | " If there are uninstalled bundles found on startup, 41 | " this will conveniently prompt you to install them. 42 | NeoBundleCheck 43 | 44 | " colorsss 45 | colorscheme base16-ocean 46 | set background=dark 47 | 48 | """"" 49 | " END OF NEO BUNDLE 50 | """"" 51 | 52 | " Show programming syntax 53 | syntax on 54 | 55 | " Show lines 56 | set number 57 | 58 | " config to soft tab 59 | set softtabstop=2 shiftwidth=2 expandtab 60 | 61 | " Set outside file 62 | set autoread 63 | 64 | "Copy indent from current line when starting a new line 65 | set autoindent 66 | "when we autoindent, backspace will delete the entire tab width, not just individual spaces 67 | set smarttab 68 | set smartindent 69 | 70 | 71 | " Always show status 72 | set laststatus=2 73 | 74 | "searching 75 | set hlsearch " highlight matches 76 | set incsearch " incremental searching 77 | set ignorecase " searches are case insensitive... 78 | set smartcase " ... unless they contain at least one capital letter 79 | 80 | " Remap arrow keys 81 | noremap 82 | noremap 83 | noremap 84 | noremap 85 | " Remap arrow keys for insert mode 86 | inoremap 87 | inoremap 88 | inoremap 89 | inoremap 90 | " Remap arrow keys for visual mode 91 | vnoremap 92 | vnoremap 93 | vnoremap 94 | vnoremap 95 | 96 | " Nerdtree 97 | let g:nerdtree_tabs_open_on_gui_startup=0 98 | nmap ,n :NERDTreeToggle 99 | nmap ,m :NERDTreeFind 100 | 101 | let g:vim_markdown_folding_disabled=1 102 | 103 | let g:ctrlp_custom_ignore = { 104 | \ 'dir' : '(node_modules|virtualenv)' 105 | \} 106 | 107 | " Spell Check toggle 108 | "let g:myLangList=["nospell","en_gb"] 109 | "function! ToggleSpell() 110 | " if !exists( "b:myLang" ) 111 | " if &spell 112 | " let b:myLang=index(g:myLangList, &spelllang) 113 | " else 114 | " let b:myLang=0 115 | " endif 116 | " endif 117 | " let b:myLang=b:myLang+1 118 | " if b:myLang>=len(g:myLangList) | let b:myLang=0 | endif 119 | " if b:myLang==0 120 | " setlocal nospell 121 | " else 122 | " execute "setlocal spell spelllang=".get(g:myLangList, b:myLang) 123 | " endif 124 | " echo "spell checking language:" g:myLangList[b:myLang] 125 | "endfunction 126 | "command! ToggleSpell call ToggleSpell() 127 | "nmap :call ToggleSpell() 128 | " 129 | ""Spell suggestion under cursor 130 | "nnoremap :cal SpellSuggest() 131 | "function! SpellSuggest() 132 | " let s = substitute(system("echo ".expand("")." | aspell -a -W2 | grep '^&'"), "^.*:\\s\\(.*\\)\\n", "\\1,", "") 133 | " if s != "" 134 | " let slength = strlen(s) 135 | " let end = 0 136 | " let i = 0 137 | " while end != slength 138 | " let i = i + 1 139 | " let w = matchstr(s, "^\\%(.\\{-}\\zs[^ ,]\\+\\ze,\\)\\{".i."}") 140 | " echon "(".i.")".w." " 141 | " let end = matchend(s, w.",") 142 | " endwhile 143 | " echo "" 144 | " let c = input("Replace with: ") 145 | " if c =~ "^[1-9]\\d*$" && c > 0 && c <= i 146 | " execute "normal! ciw".matchstr(s, "^\\%(.\\{-}\\zs[^ ,]\\+\\ze,\\)\\{".c."}") 147 | " endif 148 | " else 149 | " echo "No suggestions" 150 | " endif 151 | "endfunction 152 | "command! SpellSuggest call SpellSuggest() 153 | -------------------------------------------------------------------------------- /.config/xbuild/pkgconfig-cache-2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | -------------------------------------------------------------------------------- /.git-completion.bash: -------------------------------------------------------------------------------- 1 | # bash/zsh completion support for core Git. 2 | # 3 | # Copyright (C) 2006,2007 Shawn O. Pearce 4 | # Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). 5 | # Distributed under the GNU General Public License, version 2.0. 6 | # 7 | # The contained completion routines provide support for completing: 8 | # 9 | # *) local and remote branch names 10 | # *) local and remote tag names 11 | # *) .git/remotes file names 12 | # *) git 'subcommands' 13 | # *) git email aliases for git-send-email 14 | # *) tree paths within 'ref:path/to/file' expressions 15 | # *) file paths within current working directory and index 16 | # *) common --long-options 17 | # 18 | # To use these routines: 19 | # 20 | # 1) Copy this file to somewhere (e.g. ~/.git-completion.bash). 21 | # 2) Add the following line to your .bashrc/.zshrc: 22 | # source ~/.git-completion.bash 23 | # 3) Consider changing your PS1 to also show the current branch, 24 | # see git-prompt.sh for details. 25 | # 26 | # If you use complex aliases of form '!f() { ... }; f', you can use the null 27 | # command ':' as the first command in the function body to declare the desired 28 | # completion style. For example '!f() { : git commit ; ... }; f' will 29 | # tell the completion to use commit completion. This also works with aliases 30 | # of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '". 31 | 32 | case "$COMP_WORDBREAKS" in 33 | *:*) : great ;; 34 | *) COMP_WORDBREAKS="$COMP_WORDBREAKS:" 35 | esac 36 | 37 | # __gitdir accepts 0 or 1 arguments (i.e., location) 38 | # returns location of .git repo 39 | __gitdir () 40 | { 41 | if [ -z "${1-}" ]; then 42 | if [ -n "${__git_dir-}" ]; then 43 | echo "$__git_dir" 44 | elif [ -n "${GIT_DIR-}" ]; then 45 | test -d "${GIT_DIR-}" || return 1 46 | echo "$GIT_DIR" 47 | elif [ -d .git ]; then 48 | echo .git 49 | else 50 | git rev-parse --git-dir 2>/dev/null 51 | fi 52 | elif [ -d "$1/.git" ]; then 53 | echo "$1/.git" 54 | else 55 | echo "$1" 56 | fi 57 | } 58 | 59 | # The following function is based on code from: 60 | # 61 | # bash_completion - programmable completion functions for bash 3.2+ 62 | # 63 | # Copyright © 2006-2008, Ian Macdonald 64 | # © 2009-2010, Bash Completion Maintainers 65 | # 66 | # 67 | # This program is free software; you can redistribute it and/or modify 68 | # it under the terms of the GNU General Public License as published by 69 | # the Free Software Foundation; either version 2, or (at your option) 70 | # any later version. 71 | # 72 | # This program is distributed in the hope that it will be useful, 73 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 74 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 75 | # GNU General Public License for more details. 76 | # 77 | # You should have received a copy of the GNU General Public License 78 | # along with this program; if not, write to the Free Software Foundation, 79 | # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 80 | # 81 | # The latest version of this software can be obtained here: 82 | # 83 | # http://bash-completion.alioth.debian.org/ 84 | # 85 | # RELEASE: 2.x 86 | 87 | # This function can be used to access a tokenized list of words 88 | # on the command line: 89 | # 90 | # __git_reassemble_comp_words_by_ref '=:' 91 | # if test "${words_[cword_-1]}" = -w 92 | # then 93 | # ... 94 | # fi 95 | # 96 | # The argument should be a collection of characters from the list of 97 | # word completion separators (COMP_WORDBREAKS) to treat as ordinary 98 | # characters. 99 | # 100 | # This is roughly equivalent to going back in time and setting 101 | # COMP_WORDBREAKS to exclude those characters. The intent is to 102 | # make option types like --date= and : easy to 103 | # recognize by treating each shell word as a single token. 104 | # 105 | # It is best not to set COMP_WORDBREAKS directly because the value is 106 | # shared with other completion scripts. By the time the completion 107 | # function gets called, COMP_WORDS has already been populated so local 108 | # changes to COMP_WORDBREAKS have no effect. 109 | # 110 | # Output: words_, cword_, cur_. 111 | 112 | __git_reassemble_comp_words_by_ref() 113 | { 114 | local exclude i j first 115 | # Which word separators to exclude? 116 | exclude="${1//[^$COMP_WORDBREAKS]}" 117 | cword_=$COMP_CWORD 118 | if [ -z "$exclude" ]; then 119 | words_=("${COMP_WORDS[@]}") 120 | return 121 | fi 122 | # List of word completion separators has shrunk; 123 | # re-assemble words to complete. 124 | for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do 125 | # Append each nonempty word consisting of just 126 | # word separator characters to the current word. 127 | first=t 128 | while 129 | [ $i -gt 0 ] && 130 | [ -n "${COMP_WORDS[$i]}" ] && 131 | # word consists of excluded word separators 132 | [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ] 133 | do 134 | # Attach to the previous token, 135 | # unless the previous token is the command name. 136 | if [ $j -ge 2 ] && [ -n "$first" ]; then 137 | ((j--)) 138 | fi 139 | first= 140 | words_[$j]=${words_[j]}${COMP_WORDS[i]} 141 | if [ $i = $COMP_CWORD ]; then 142 | cword_=$j 143 | fi 144 | if (($i < ${#COMP_WORDS[@]} - 1)); then 145 | ((i++)) 146 | else 147 | # Done. 148 | return 149 | fi 150 | done 151 | words_[$j]=${words_[j]}${COMP_WORDS[i]} 152 | if [ $i = $COMP_CWORD ]; then 153 | cword_=$j 154 | fi 155 | done 156 | } 157 | 158 | if ! type _get_comp_words_by_ref >/dev/null 2>&1; then 159 | _get_comp_words_by_ref () 160 | { 161 | local exclude cur_ words_ cword_ 162 | if [ "$1" = "-n" ]; then 163 | exclude=$2 164 | shift 2 165 | fi 166 | __git_reassemble_comp_words_by_ref "$exclude" 167 | cur_=${words_[cword_]} 168 | while [ $# -gt 0 ]; do 169 | case "$1" in 170 | cur) 171 | cur=$cur_ 172 | ;; 173 | prev) 174 | prev=${words_[$cword_-1]} 175 | ;; 176 | words) 177 | words=("${words_[@]}") 178 | ;; 179 | cword) 180 | cword=$cword_ 181 | ;; 182 | esac 183 | shift 184 | done 185 | } 186 | fi 187 | 188 | __gitcompappend () 189 | { 190 | local x i=${#COMPREPLY[@]} 191 | for x in $1; do 192 | if [[ "$x" == "$3"* ]]; then 193 | COMPREPLY[i++]="$2$x$4" 194 | fi 195 | done 196 | } 197 | 198 | __gitcompadd () 199 | { 200 | COMPREPLY=() 201 | __gitcompappend "$@" 202 | } 203 | 204 | # Generates completion reply, appending a space to possible completion words, 205 | # if necessary. 206 | # It accepts 1 to 4 arguments: 207 | # 1: List of possible completion words. 208 | # 2: A prefix to be added to each possible completion word (optional). 209 | # 3: Generate possible completion matches for this word (optional). 210 | # 4: A suffix to be appended to each possible completion word (optional). 211 | __gitcomp () 212 | { 213 | local cur_="${3-$cur}" 214 | 215 | case "$cur_" in 216 | --*=) 217 | ;; 218 | *) 219 | local c i=0 IFS=$' \t\n' 220 | for c in $1; do 221 | c="$c${4-}" 222 | if [[ $c == "$cur_"* ]]; then 223 | case $c in 224 | --*=*|*.) ;; 225 | *) c="$c " ;; 226 | esac 227 | COMPREPLY[i++]="${2-}$c" 228 | fi 229 | done 230 | ;; 231 | esac 232 | } 233 | 234 | # Variation of __gitcomp_nl () that appends to the existing list of 235 | # completion candidates, COMPREPLY. 236 | __gitcomp_nl_append () 237 | { 238 | local IFS=$'\n' 239 | __gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }" 240 | } 241 | 242 | # Generates completion reply from newline-separated possible completion words 243 | # by appending a space to all of them. 244 | # It accepts 1 to 4 arguments: 245 | # 1: List of possible completion words, separated by a single newline. 246 | # 2: A prefix to be added to each possible completion word (optional). 247 | # 3: Generate possible completion matches for this word (optional). 248 | # 4: A suffix to be appended to each possible completion word instead of 249 | # the default space (optional). If specified but empty, nothing is 250 | # appended. 251 | __gitcomp_nl () 252 | { 253 | COMPREPLY=() 254 | __gitcomp_nl_append "$@" 255 | } 256 | 257 | # Generates completion reply with compgen from newline-separated possible 258 | # completion filenames. 259 | # It accepts 1 to 3 arguments: 260 | # 1: List of possible completion filenames, separated by a single newline. 261 | # 2: A directory prefix to be added to each possible completion filename 262 | # (optional). 263 | # 3: Generate possible completion matches for this word (optional). 264 | __gitcomp_file () 265 | { 266 | local IFS=$'\n' 267 | 268 | # XXX does not work when the directory prefix contains a tilde, 269 | # since tilde expansion is not applied. 270 | # This means that COMPREPLY will be empty and Bash default 271 | # completion will be used. 272 | __gitcompadd "$1" "${2-}" "${3-$cur}" "" 273 | 274 | # use a hack to enable file mode in bash < 4 275 | compopt -o filenames +o nospace 2>/dev/null || 276 | compgen -f /non-existing-dir/ > /dev/null 277 | } 278 | 279 | # Execute 'git ls-files', unless the --committable option is specified, in 280 | # which case it runs 'git diff-index' to find out the files that can be 281 | # committed. It return paths relative to the directory specified in the first 282 | # argument, and using the options specified in the second argument. 283 | __git_ls_files_helper () 284 | { 285 | if [ "$2" == "--committable" ]; then 286 | git -C "$1" diff-index --name-only --relative HEAD 287 | else 288 | # NOTE: $2 is not quoted in order to support multiple options 289 | git -C "$1" ls-files --exclude-standard $2 290 | fi 2>/dev/null 291 | } 292 | 293 | 294 | # __git_index_files accepts 1 or 2 arguments: 295 | # 1: Options to pass to ls-files (required). 296 | # 2: A directory path (optional). 297 | # If provided, only files within the specified directory are listed. 298 | # Sub directories are never recursed. Path must have a trailing 299 | # slash. 300 | __git_index_files () 301 | { 302 | local dir="$(__gitdir)" root="${2-.}" file 303 | 304 | if [ -d "$dir" ]; then 305 | __git_ls_files_helper "$root" "$1" | 306 | while read -r file; do 307 | case "$file" in 308 | ?*/*) echo "${file%%/*}" ;; 309 | *) echo "$file" ;; 310 | esac 311 | done | sort | uniq 312 | fi 313 | } 314 | 315 | __git_heads () 316 | { 317 | local dir="$(__gitdir)" 318 | if [ -d "$dir" ]; then 319 | git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ 320 | refs/heads 321 | return 322 | fi 323 | } 324 | 325 | __git_tags () 326 | { 327 | local dir="$(__gitdir)" 328 | if [ -d "$dir" ]; then 329 | git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ 330 | refs/tags 331 | return 332 | fi 333 | } 334 | 335 | # __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments 336 | # presence of 2nd argument means use the guess heuristic employed 337 | # by checkout for tracking branches 338 | __git_refs () 339 | { 340 | local i hash dir="$(__gitdir "${1-}")" track="${2-}" 341 | local format refs 342 | if [ -d "$dir" ]; then 343 | case "$cur" in 344 | refs|refs/*) 345 | format="refname" 346 | refs="${cur%/*}" 347 | track="" 348 | ;; 349 | *) 350 | for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do 351 | if [ -e "$dir/$i" ]; then echo $i; fi 352 | done 353 | format="refname:short" 354 | refs="refs/tags refs/heads refs/remotes" 355 | ;; 356 | esac 357 | git --git-dir="$dir" for-each-ref --format="%($format)" \ 358 | $refs 359 | if [ -n "$track" ]; then 360 | # employ the heuristic used by git checkout 361 | # Try to find a remote branch that matches the completion word 362 | # but only output if the branch name is unique 363 | local ref entry 364 | git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \ 365 | "refs/remotes/" | \ 366 | while read -r entry; do 367 | eval "$entry" 368 | ref="${ref#*/}" 369 | if [[ "$ref" == "$cur"* ]]; then 370 | echo "$ref" 371 | fi 372 | done | sort | uniq -u 373 | fi 374 | return 375 | fi 376 | case "$cur" in 377 | refs|refs/*) 378 | git ls-remote "$dir" "$cur*" 2>/dev/null | \ 379 | while read -r hash i; do 380 | case "$i" in 381 | *^{}) ;; 382 | *) echo "$i" ;; 383 | esac 384 | done 385 | ;; 386 | *) 387 | echo "HEAD" 388 | git for-each-ref --format="%(refname:short)" -- \ 389 | "refs/remotes/$dir/" 2>/dev/null | sed -e "s#^$dir/##" 390 | ;; 391 | esac 392 | } 393 | 394 | # __git_refs2 requires 1 argument (to pass to __git_refs) 395 | __git_refs2 () 396 | { 397 | local i 398 | for i in $(__git_refs "$1"); do 399 | echo "$i:$i" 400 | done 401 | } 402 | 403 | # __git_refs_remotes requires 1 argument (to pass to ls-remote) 404 | __git_refs_remotes () 405 | { 406 | local i hash 407 | git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \ 408 | while read -r hash i; do 409 | echo "$i:refs/remotes/$1/${i#refs/heads/}" 410 | done 411 | } 412 | 413 | __git_remotes () 414 | { 415 | local d="$(__gitdir)" 416 | test -d "$d/remotes" && ls -1 "$d/remotes" 417 | git --git-dir="$d" remote 418 | } 419 | 420 | __git_list_merge_strategies () 421 | { 422 | git merge -s help 2>&1 | 423 | sed -n -e '/[Aa]vailable strategies are: /,/^$/{ 424 | s/\.$// 425 | s/.*:// 426 | s/^[ ]*// 427 | s/[ ]*$// 428 | p 429 | }' 430 | } 431 | 432 | __git_merge_strategies= 433 | # 'git merge -s help' (and thus detection of the merge strategy 434 | # list) fails, unfortunately, if run outside of any git working 435 | # tree. __git_merge_strategies is set to the empty string in 436 | # that case, and the detection will be repeated the next time it 437 | # is needed. 438 | __git_compute_merge_strategies () 439 | { 440 | test -n "$__git_merge_strategies" || 441 | __git_merge_strategies=$(__git_list_merge_strategies) 442 | } 443 | 444 | __git_complete_revlist_file () 445 | { 446 | local pfx ls ref cur_="$cur" 447 | case "$cur_" in 448 | *..?*:*) 449 | return 450 | ;; 451 | ?*:*) 452 | ref="${cur_%%:*}" 453 | cur_="${cur_#*:}" 454 | case "$cur_" in 455 | ?*/*) 456 | pfx="${cur_%/*}" 457 | cur_="${cur_##*/}" 458 | ls="$ref:$pfx" 459 | pfx="$pfx/" 460 | ;; 461 | *) 462 | ls="$ref" 463 | ;; 464 | esac 465 | 466 | case "$COMP_WORDBREAKS" in 467 | *:*) : great ;; 468 | *) pfx="$ref:$pfx" ;; 469 | esac 470 | 471 | __gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" 2>/dev/null \ 472 | | sed '/^100... blob /{ 473 | s,^.* ,, 474 | s,$, , 475 | } 476 | /^120000 blob /{ 477 | s,^.* ,, 478 | s,$, , 479 | } 480 | /^040000 tree /{ 481 | s,^.* ,, 482 | s,$,/, 483 | } 484 | s/^.* //')" \ 485 | "$pfx" "$cur_" "" 486 | ;; 487 | *...*) 488 | pfx="${cur_%...*}..." 489 | cur_="${cur_#*...}" 490 | __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" 491 | ;; 492 | *..*) 493 | pfx="${cur_%..*}.." 494 | cur_="${cur_#*..}" 495 | __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" 496 | ;; 497 | *) 498 | __gitcomp_nl "$(__git_refs)" 499 | ;; 500 | esac 501 | } 502 | 503 | 504 | # __git_complete_index_file requires 1 argument: 505 | # 1: the options to pass to ls-file 506 | # 507 | # The exception is --committable, which finds the files appropriate commit. 508 | __git_complete_index_file () 509 | { 510 | local pfx="" cur_="$cur" 511 | 512 | case "$cur_" in 513 | ?*/*) 514 | pfx="${cur_%/*}" 515 | cur_="${cur_##*/}" 516 | pfx="${pfx}/" 517 | ;; 518 | esac 519 | 520 | __gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_" 521 | } 522 | 523 | __git_complete_file () 524 | { 525 | __git_complete_revlist_file 526 | } 527 | 528 | __git_complete_revlist () 529 | { 530 | __git_complete_revlist_file 531 | } 532 | 533 | __git_complete_remote_or_refspec () 534 | { 535 | local cur_="$cur" cmd="${words[1]}" 536 | local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0 537 | if [ "$cmd" = "remote" ]; then 538 | ((c++)) 539 | fi 540 | while [ $c -lt $cword ]; do 541 | i="${words[c]}" 542 | case "$i" in 543 | --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;; 544 | --all) 545 | case "$cmd" in 546 | push) no_complete_refspec=1 ;; 547 | fetch) 548 | return 549 | ;; 550 | *) ;; 551 | esac 552 | ;; 553 | -*) ;; 554 | *) remote="$i"; break ;; 555 | esac 556 | ((c++)) 557 | done 558 | if [ -z "$remote" ]; then 559 | __gitcomp_nl "$(__git_remotes)" 560 | return 561 | fi 562 | if [ $no_complete_refspec = 1 ]; then 563 | return 564 | fi 565 | [ "$remote" = "." ] && remote= 566 | case "$cur_" in 567 | *:*) 568 | case "$COMP_WORDBREAKS" in 569 | *:*) : great ;; 570 | *) pfx="${cur_%%:*}:" ;; 571 | esac 572 | cur_="${cur_#*:}" 573 | lhs=0 574 | ;; 575 | +*) 576 | pfx="+" 577 | cur_="${cur_#+}" 578 | ;; 579 | esac 580 | case "$cmd" in 581 | fetch) 582 | if [ $lhs = 1 ]; then 583 | __gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_" 584 | else 585 | __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" 586 | fi 587 | ;; 588 | pull|remote) 589 | if [ $lhs = 1 ]; then 590 | __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" 591 | else 592 | __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" 593 | fi 594 | ;; 595 | push) 596 | if [ $lhs = 1 ]; then 597 | __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" 598 | else 599 | __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" 600 | fi 601 | ;; 602 | esac 603 | } 604 | 605 | __git_complete_strategy () 606 | { 607 | __git_compute_merge_strategies 608 | case "$prev" in 609 | -s|--strategy) 610 | __gitcomp "$__git_merge_strategies" 611 | return 0 612 | esac 613 | case "$cur" in 614 | --strategy=*) 615 | __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}" 616 | return 0 617 | ;; 618 | esac 619 | return 1 620 | } 621 | 622 | __git_commands () { 623 | if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}" 624 | then 625 | printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}" 626 | else 627 | git help -a|egrep '^ [a-zA-Z0-9]' 628 | fi 629 | } 630 | 631 | __git_list_all_commands () 632 | { 633 | local i IFS=" "$'\n' 634 | for i in $(__git_commands) 635 | do 636 | case $i in 637 | *--*) : helper pattern;; 638 | *) echo $i;; 639 | esac 640 | done 641 | } 642 | 643 | __git_all_commands= 644 | __git_compute_all_commands () 645 | { 646 | test -n "$__git_all_commands" || 647 | __git_all_commands=$(__git_list_all_commands) 648 | } 649 | 650 | __git_list_porcelain_commands () 651 | { 652 | local i IFS=" "$'\n' 653 | __git_compute_all_commands 654 | for i in $__git_all_commands 655 | do 656 | case $i in 657 | *--*) : helper pattern;; 658 | applymbox) : ask gittus;; 659 | applypatch) : ask gittus;; 660 | archimport) : import;; 661 | cat-file) : plumbing;; 662 | check-attr) : plumbing;; 663 | check-ignore) : plumbing;; 664 | check-mailmap) : plumbing;; 665 | check-ref-format) : plumbing;; 666 | checkout-index) : plumbing;; 667 | column) : internal helper;; 668 | commit-tree) : plumbing;; 669 | count-objects) : infrequent;; 670 | credential) : credentials;; 671 | credential-*) : credentials helper;; 672 | cvsexportcommit) : export;; 673 | cvsimport) : import;; 674 | cvsserver) : daemon;; 675 | daemon) : daemon;; 676 | diff-files) : plumbing;; 677 | diff-index) : plumbing;; 678 | diff-tree) : plumbing;; 679 | fast-import) : import;; 680 | fast-export) : export;; 681 | fsck-objects) : plumbing;; 682 | fetch-pack) : plumbing;; 683 | fmt-merge-msg) : plumbing;; 684 | for-each-ref) : plumbing;; 685 | hash-object) : plumbing;; 686 | http-*) : transport;; 687 | index-pack) : plumbing;; 688 | init-db) : deprecated;; 689 | local-fetch) : plumbing;; 690 | ls-files) : plumbing;; 691 | ls-remote) : plumbing;; 692 | ls-tree) : plumbing;; 693 | mailinfo) : plumbing;; 694 | mailsplit) : plumbing;; 695 | merge-*) : plumbing;; 696 | mktree) : plumbing;; 697 | mktag) : plumbing;; 698 | pack-objects) : plumbing;; 699 | pack-redundant) : plumbing;; 700 | pack-refs) : plumbing;; 701 | parse-remote) : plumbing;; 702 | patch-id) : plumbing;; 703 | prune) : plumbing;; 704 | prune-packed) : plumbing;; 705 | quiltimport) : import;; 706 | read-tree) : plumbing;; 707 | receive-pack) : plumbing;; 708 | remote-*) : transport;; 709 | rerere) : plumbing;; 710 | rev-list) : plumbing;; 711 | rev-parse) : plumbing;; 712 | runstatus) : plumbing;; 713 | sh-setup) : internal;; 714 | shell) : daemon;; 715 | show-ref) : plumbing;; 716 | send-pack) : plumbing;; 717 | show-index) : plumbing;; 718 | ssh-*) : transport;; 719 | stripspace) : plumbing;; 720 | symbolic-ref) : plumbing;; 721 | unpack-file) : plumbing;; 722 | unpack-objects) : plumbing;; 723 | update-index) : plumbing;; 724 | update-ref) : plumbing;; 725 | update-server-info) : daemon;; 726 | upload-archive) : plumbing;; 727 | upload-pack) : plumbing;; 728 | write-tree) : plumbing;; 729 | var) : infrequent;; 730 | verify-pack) : infrequent;; 731 | verify-tag) : plumbing;; 732 | *) echo $i;; 733 | esac 734 | done 735 | } 736 | 737 | __git_porcelain_commands= 738 | __git_compute_porcelain_commands () 739 | { 740 | test -n "$__git_porcelain_commands" || 741 | __git_porcelain_commands=$(__git_list_porcelain_commands) 742 | } 743 | 744 | # Lists all set config variables starting with the given section prefix, 745 | # with the prefix removed. 746 | __git_get_config_variables () 747 | { 748 | local section="$1" i IFS=$'\n' 749 | for i in $(git --git-dir="$(__gitdir)" config --name-only --get-regexp "^$section\..*" 2>/dev/null); do 750 | echo "${i#$section.}" 751 | done 752 | } 753 | 754 | __git_pretty_aliases () 755 | { 756 | __git_get_config_variables "pretty" 757 | } 758 | 759 | __git_aliases () 760 | { 761 | __git_get_config_variables "alias" 762 | } 763 | 764 | # __git_aliased_command requires 1 argument 765 | __git_aliased_command () 766 | { 767 | local word cmdline=$(git --git-dir="$(__gitdir)" \ 768 | config --get "alias.$1") 769 | for word in $cmdline; do 770 | case "$word" in 771 | \!gitk|gitk) 772 | echo "gitk" 773 | return 774 | ;; 775 | \!*) : shell command alias ;; 776 | -*) : option ;; 777 | *=*) : setting env ;; 778 | git) : git itself ;; 779 | \(\)) : skip parens of shell function definition ;; 780 | {) : skip start of shell helper function ;; 781 | :) : skip null command ;; 782 | \'*) : skip opening quote after sh -c ;; 783 | *) 784 | echo "$word" 785 | return 786 | esac 787 | done 788 | } 789 | 790 | # __git_find_on_cmdline requires 1 argument 791 | __git_find_on_cmdline () 792 | { 793 | local word subcommand c=1 794 | while [ $c -lt $cword ]; do 795 | word="${words[c]}" 796 | for subcommand in $1; do 797 | if [ "$subcommand" = "$word" ]; then 798 | echo "$subcommand" 799 | return 800 | fi 801 | done 802 | ((c++)) 803 | done 804 | } 805 | 806 | __git_has_doubledash () 807 | { 808 | local c=1 809 | while [ $c -lt $cword ]; do 810 | if [ "--" = "${words[c]}" ]; then 811 | return 0 812 | fi 813 | ((c++)) 814 | done 815 | return 1 816 | } 817 | 818 | # Try to count non option arguments passed on the command line for the 819 | # specified git command. 820 | # When options are used, it is necessary to use the special -- option to 821 | # tell the implementation were non option arguments begin. 822 | # XXX this can not be improved, since options can appear everywhere, as 823 | # an example: 824 | # git mv x -n y 825 | # 826 | # __git_count_arguments requires 1 argument: the git command executed. 827 | __git_count_arguments () 828 | { 829 | local word i c=0 830 | 831 | # Skip "git" (first argument) 832 | for ((i=1; i < ${#words[@]}; i++)); do 833 | word="${words[i]}" 834 | 835 | case "$word" in 836 | --) 837 | # Good; we can assume that the following are only non 838 | # option arguments. 839 | ((c = 0)) 840 | ;; 841 | "$1") 842 | # Skip the specified git command and discard git 843 | # main options 844 | ((c = 0)) 845 | ;; 846 | ?*) 847 | ((c++)) 848 | ;; 849 | esac 850 | done 851 | 852 | printf "%d" $c 853 | } 854 | 855 | __git_whitespacelist="nowarn warn error error-all fix" 856 | 857 | _git_am () 858 | { 859 | local dir="$(__gitdir)" 860 | if [ -d "$dir"/rebase-apply ]; then 861 | __gitcomp "--skip --continue --resolved --abort" 862 | return 863 | fi 864 | case "$cur" in 865 | --whitespace=*) 866 | __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" 867 | return 868 | ;; 869 | --*) 870 | __gitcomp " 871 | --3way --committer-date-is-author-date --ignore-date 872 | --ignore-whitespace --ignore-space-change 873 | --interactive --keep --no-utf8 --signoff --utf8 874 | --whitespace= --scissors 875 | " 876 | return 877 | esac 878 | } 879 | 880 | _git_apply () 881 | { 882 | case "$cur" in 883 | --whitespace=*) 884 | __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" 885 | return 886 | ;; 887 | --*) 888 | __gitcomp " 889 | --stat --numstat --summary --check --index 890 | --cached --index-info --reverse --reject --unidiff-zero 891 | --apply --no-add --exclude= 892 | --ignore-whitespace --ignore-space-change 893 | --whitespace= --inaccurate-eof --verbose 894 | " 895 | return 896 | esac 897 | } 898 | 899 | _git_add () 900 | { 901 | case "$cur" in 902 | --*) 903 | __gitcomp " 904 | --interactive --refresh --patch --update --dry-run 905 | --ignore-errors --intent-to-add 906 | " 907 | return 908 | esac 909 | 910 | # XXX should we check for --update and --all options ? 911 | __git_complete_index_file "--others --modified --directory --no-empty-directory" 912 | } 913 | 914 | _git_archive () 915 | { 916 | case "$cur" in 917 | --format=*) 918 | __gitcomp "$(git archive --list)" "" "${cur##--format=}" 919 | return 920 | ;; 921 | --remote=*) 922 | __gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}" 923 | return 924 | ;; 925 | --*) 926 | __gitcomp " 927 | --format= --list --verbose 928 | --prefix= --remote= --exec= 929 | " 930 | return 931 | ;; 932 | esac 933 | __git_complete_file 934 | } 935 | 936 | _git_bisect () 937 | { 938 | __git_has_doubledash && return 939 | 940 | local subcommands="start bad good skip reset visualize replay log run" 941 | local subcommand="$(__git_find_on_cmdline "$subcommands")" 942 | if [ -z "$subcommand" ]; then 943 | if [ -f "$(__gitdir)"/BISECT_START ]; then 944 | __gitcomp "$subcommands" 945 | else 946 | __gitcomp "replay start" 947 | fi 948 | return 949 | fi 950 | 951 | case "$subcommand" in 952 | bad|good|reset|skip|start) 953 | __gitcomp_nl "$(__git_refs)" 954 | ;; 955 | *) 956 | ;; 957 | esac 958 | } 959 | 960 | _git_branch () 961 | { 962 | local i c=1 only_local_ref="n" has_r="n" 963 | 964 | while [ $c -lt $cword ]; do 965 | i="${words[c]}" 966 | case "$i" in 967 | -d|-m) only_local_ref="y" ;; 968 | -r) has_r="y" ;; 969 | esac 970 | ((c++)) 971 | done 972 | 973 | case "$cur" in 974 | --set-upstream-to=*) 975 | __gitcomp_nl "$(__git_refs)" "" "${cur##--set-upstream-to=}" 976 | ;; 977 | --*) 978 | __gitcomp " 979 | --color --no-color --verbose --abbrev= --no-abbrev 980 | --track --no-track --contains --merged --no-merged 981 | --set-upstream-to= --edit-description --list 982 | --unset-upstream 983 | " 984 | ;; 985 | *) 986 | if [ $only_local_ref = "y" -a $has_r = "n" ]; then 987 | __gitcomp_nl "$(__git_heads)" 988 | else 989 | __gitcomp_nl "$(__git_refs)" 990 | fi 991 | ;; 992 | esac 993 | } 994 | 995 | _git_bundle () 996 | { 997 | local cmd="${words[2]}" 998 | case "$cword" in 999 | 2) 1000 | __gitcomp "create list-heads verify unbundle" 1001 | ;; 1002 | 3) 1003 | # looking for a file 1004 | ;; 1005 | *) 1006 | case "$cmd" in 1007 | create) 1008 | __git_complete_revlist 1009 | ;; 1010 | esac 1011 | ;; 1012 | esac 1013 | } 1014 | 1015 | _git_checkout () 1016 | { 1017 | __git_has_doubledash && return 1018 | 1019 | case "$cur" in 1020 | --conflict=*) 1021 | __gitcomp "diff3 merge" "" "${cur##--conflict=}" 1022 | ;; 1023 | --*) 1024 | __gitcomp " 1025 | --quiet --ours --theirs --track --no-track --merge 1026 | --conflict= --orphan --patch 1027 | " 1028 | ;; 1029 | *) 1030 | # check if --track, --no-track, or --no-guess was specified 1031 | # if so, disable DWIM mode 1032 | local flags="--track --no-track --no-guess" track=1 1033 | if [ -n "$(__git_find_on_cmdline "$flags")" ]; then 1034 | track='' 1035 | fi 1036 | __gitcomp_nl "$(__git_refs '' $track)" 1037 | ;; 1038 | esac 1039 | } 1040 | 1041 | _git_cherry () 1042 | { 1043 | __gitcomp_nl "$(__git_refs)" 1044 | } 1045 | 1046 | _git_cherry_pick () 1047 | { 1048 | local dir="$(__gitdir)" 1049 | if [ -f "$dir"/CHERRY_PICK_HEAD ]; then 1050 | __gitcomp "--continue --quit --abort" 1051 | return 1052 | fi 1053 | case "$cur" in 1054 | --*) 1055 | __gitcomp "--edit --no-commit --signoff --strategy= --mainline" 1056 | ;; 1057 | *) 1058 | __gitcomp_nl "$(__git_refs)" 1059 | ;; 1060 | esac 1061 | } 1062 | 1063 | _git_clean () 1064 | { 1065 | case "$cur" in 1066 | --*) 1067 | __gitcomp "--dry-run --quiet" 1068 | return 1069 | ;; 1070 | esac 1071 | 1072 | # XXX should we check for -x option ? 1073 | __git_complete_index_file "--others --directory" 1074 | } 1075 | 1076 | _git_clone () 1077 | { 1078 | case "$cur" in 1079 | --*) 1080 | __gitcomp " 1081 | --local 1082 | --no-hardlinks 1083 | --shared 1084 | --reference 1085 | --quiet 1086 | --no-checkout 1087 | --bare 1088 | --mirror 1089 | --origin 1090 | --upload-pack 1091 | --template= 1092 | --depth 1093 | --single-branch 1094 | --branch 1095 | " 1096 | return 1097 | ;; 1098 | esac 1099 | } 1100 | 1101 | _git_commit () 1102 | { 1103 | case "$prev" in 1104 | -c|-C) 1105 | __gitcomp_nl "$(__git_refs)" "" "${cur}" 1106 | return 1107 | ;; 1108 | esac 1109 | 1110 | case "$cur" in 1111 | --cleanup=*) 1112 | __gitcomp "default scissors strip verbatim whitespace 1113 | " "" "${cur##--cleanup=}" 1114 | return 1115 | ;; 1116 | --reuse-message=*|--reedit-message=*|\ 1117 | --fixup=*|--squash=*) 1118 | __gitcomp_nl "$(__git_refs)" "" "${cur#*=}" 1119 | return 1120 | ;; 1121 | --untracked-files=*) 1122 | __gitcomp "all no normal" "" "${cur##--untracked-files=}" 1123 | return 1124 | ;; 1125 | --*) 1126 | __gitcomp " 1127 | --all --author= --signoff --verify --no-verify 1128 | --edit --no-edit 1129 | --amend --include --only --interactive 1130 | --dry-run --reuse-message= --reedit-message= 1131 | --reset-author --file= --message= --template= 1132 | --cleanup= --untracked-files --untracked-files= 1133 | --verbose --quiet --fixup= --squash= 1134 | " 1135 | return 1136 | esac 1137 | 1138 | if git rev-parse --verify --quiet HEAD >/dev/null; then 1139 | __git_complete_index_file "--committable" 1140 | else 1141 | # This is the first commit 1142 | __git_complete_index_file "--cached" 1143 | fi 1144 | } 1145 | 1146 | _git_describe () 1147 | { 1148 | case "$cur" in 1149 | --*) 1150 | __gitcomp " 1151 | --all --tags --contains --abbrev= --candidates= 1152 | --exact-match --debug --long --match --always 1153 | " 1154 | return 1155 | esac 1156 | __gitcomp_nl "$(__git_refs)" 1157 | } 1158 | 1159 | __git_diff_algorithms="myers minimal patience histogram" 1160 | 1161 | __git_diff_common_options="--stat --numstat --shortstat --summary 1162 | --patch-with-stat --name-only --name-status --color 1163 | --no-color --color-words --no-renames --check 1164 | --full-index --binary --abbrev --diff-filter= 1165 | --find-copies-harder 1166 | --text --ignore-space-at-eol --ignore-space-change 1167 | --ignore-all-space --ignore-blank-lines --exit-code 1168 | --quiet --ext-diff --no-ext-diff 1169 | --no-prefix --src-prefix= --dst-prefix= 1170 | --inter-hunk-context= 1171 | --patience --histogram --minimal 1172 | --raw --word-diff 1173 | --dirstat --dirstat= --dirstat-by-file 1174 | --dirstat-by-file= --cumulative 1175 | --diff-algorithm= 1176 | " 1177 | 1178 | _git_diff () 1179 | { 1180 | __git_has_doubledash && return 1181 | 1182 | case "$cur" in 1183 | --diff-algorithm=*) 1184 | __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}" 1185 | return 1186 | ;; 1187 | --*) 1188 | __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex 1189 | --base --ours --theirs --no-index 1190 | $__git_diff_common_options 1191 | " 1192 | return 1193 | ;; 1194 | esac 1195 | __git_complete_revlist_file 1196 | } 1197 | 1198 | __git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff 1199 | tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc codecompare 1200 | " 1201 | 1202 | _git_difftool () 1203 | { 1204 | __git_has_doubledash && return 1205 | 1206 | case "$cur" in 1207 | --tool=*) 1208 | __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}" 1209 | return 1210 | ;; 1211 | --*) 1212 | __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex 1213 | --base --ours --theirs 1214 | --no-renames --diff-filter= --find-copies-harder 1215 | --relative --ignore-submodules 1216 | --tool=" 1217 | return 1218 | ;; 1219 | esac 1220 | __git_complete_revlist_file 1221 | } 1222 | 1223 | __git_fetch_recurse_submodules="yes on-demand no" 1224 | 1225 | __git_fetch_options=" 1226 | --quiet --verbose --append --upload-pack --force --keep --depth= 1227 | --tags --no-tags --all --prune --dry-run --recurse-submodules= 1228 | " 1229 | 1230 | _git_fetch () 1231 | { 1232 | case "$cur" in 1233 | --recurse-submodules=*) 1234 | __gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}" 1235 | return 1236 | ;; 1237 | --*) 1238 | __gitcomp "$__git_fetch_options" 1239 | return 1240 | ;; 1241 | esac 1242 | __git_complete_remote_or_refspec 1243 | } 1244 | 1245 | __git_format_patch_options=" 1246 | --stdout --attach --no-attach --thread --thread= --no-thread 1247 | --numbered --start-number --numbered-files --keep-subject --signoff 1248 | --signature --no-signature --in-reply-to= --cc= --full-index --binary 1249 | --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix= 1250 | --inline --suffix= --ignore-if-in-upstream --subject-prefix= 1251 | --output-directory --reroll-count --to= --quiet --notes 1252 | " 1253 | 1254 | _git_format_patch () 1255 | { 1256 | case "$cur" in 1257 | --thread=*) 1258 | __gitcomp " 1259 | deep shallow 1260 | " "" "${cur##--thread=}" 1261 | return 1262 | ;; 1263 | --*) 1264 | __gitcomp "$__git_format_patch_options" 1265 | return 1266 | ;; 1267 | esac 1268 | __git_complete_revlist 1269 | } 1270 | 1271 | _git_fsck () 1272 | { 1273 | case "$cur" in 1274 | --*) 1275 | __gitcomp " 1276 | --tags --root --unreachable --cache --no-reflogs --full 1277 | --strict --verbose --lost-found 1278 | " 1279 | return 1280 | ;; 1281 | esac 1282 | } 1283 | 1284 | _git_gc () 1285 | { 1286 | case "$cur" in 1287 | --*) 1288 | __gitcomp "--prune --aggressive" 1289 | return 1290 | ;; 1291 | esac 1292 | } 1293 | 1294 | _git_gitk () 1295 | { 1296 | _gitk 1297 | } 1298 | 1299 | __git_match_ctag() { 1300 | awk "/^${1//\//\\/}/ { print \$1 }" "$2" 1301 | } 1302 | 1303 | _git_grep () 1304 | { 1305 | __git_has_doubledash && return 1306 | 1307 | case "$cur" in 1308 | --*) 1309 | __gitcomp " 1310 | --cached 1311 | --text --ignore-case --word-regexp --invert-match 1312 | --full-name --line-number 1313 | --extended-regexp --basic-regexp --fixed-strings 1314 | --perl-regexp 1315 | --files-with-matches --name-only 1316 | --files-without-match 1317 | --max-depth 1318 | --count 1319 | --and --or --not --all-match 1320 | " 1321 | return 1322 | ;; 1323 | esac 1324 | 1325 | case "$cword,$prev" in 1326 | 2,*|*,-*) 1327 | if test -r tags; then 1328 | __gitcomp_nl "$(__git_match_ctag "$cur" tags)" 1329 | return 1330 | fi 1331 | ;; 1332 | esac 1333 | 1334 | __gitcomp_nl "$(__git_refs)" 1335 | } 1336 | 1337 | _git_help () 1338 | { 1339 | case "$cur" in 1340 | --*) 1341 | __gitcomp "--all --info --man --web" 1342 | return 1343 | ;; 1344 | esac 1345 | __git_compute_all_commands 1346 | __gitcomp "$__git_all_commands $(__git_aliases) 1347 | attributes cli core-tutorial cvs-migration 1348 | diffcore gitk glossary hooks ignore modules 1349 | namespaces repository-layout tutorial tutorial-2 1350 | workflows 1351 | " 1352 | } 1353 | 1354 | _git_init () 1355 | { 1356 | case "$cur" in 1357 | --shared=*) 1358 | __gitcomp " 1359 | false true umask group all world everybody 1360 | " "" "${cur##--shared=}" 1361 | return 1362 | ;; 1363 | --*) 1364 | __gitcomp "--quiet --bare --template= --shared --shared=" 1365 | return 1366 | ;; 1367 | esac 1368 | } 1369 | 1370 | _git_ls_files () 1371 | { 1372 | case "$cur" in 1373 | --*) 1374 | __gitcomp "--cached --deleted --modified --others --ignored 1375 | --stage --directory --no-empty-directory --unmerged 1376 | --killed --exclude= --exclude-from= 1377 | --exclude-per-directory= --exclude-standard 1378 | --error-unmatch --with-tree= --full-name 1379 | --abbrev --ignored --exclude-per-directory 1380 | " 1381 | return 1382 | ;; 1383 | esac 1384 | 1385 | # XXX ignore options like --modified and always suggest all cached 1386 | # files. 1387 | __git_complete_index_file "--cached" 1388 | } 1389 | 1390 | _git_ls_remote () 1391 | { 1392 | __gitcomp_nl "$(__git_remotes)" 1393 | } 1394 | 1395 | _git_ls_tree () 1396 | { 1397 | __git_complete_file 1398 | } 1399 | 1400 | # Options that go well for log, shortlog and gitk 1401 | __git_log_common_options=" 1402 | --not --all 1403 | --branches --tags --remotes 1404 | --first-parent --merges --no-merges 1405 | --max-count= 1406 | --max-age= --since= --after= 1407 | --min-age= --until= --before= 1408 | --min-parents= --max-parents= 1409 | --no-min-parents --no-max-parents 1410 | " 1411 | # Options that go well for log and gitk (not shortlog) 1412 | __git_log_gitk_options=" 1413 | --dense --sparse --full-history 1414 | --simplify-merges --simplify-by-decoration 1415 | --left-right --notes --no-notes 1416 | " 1417 | # Options that go well for log and shortlog (not gitk) 1418 | __git_log_shortlog_options=" 1419 | --author= --committer= --grep= 1420 | --all-match --invert-grep 1421 | " 1422 | 1423 | __git_log_pretty_formats="oneline short medium full fuller email raw format:" 1424 | __git_log_date_formats="relative iso8601 rfc2822 short local default raw" 1425 | 1426 | _git_log () 1427 | { 1428 | __git_has_doubledash && return 1429 | 1430 | local g="$(git rev-parse --git-dir 2>/dev/null)" 1431 | local merge="" 1432 | if [ -f "$g/MERGE_HEAD" ]; then 1433 | merge="--merge" 1434 | fi 1435 | case "$cur" in 1436 | --pretty=*|--format=*) 1437 | __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases) 1438 | " "" "${cur#*=}" 1439 | return 1440 | ;; 1441 | --date=*) 1442 | __gitcomp "$__git_log_date_formats" "" "${cur##--date=}" 1443 | return 1444 | ;; 1445 | --decorate=*) 1446 | __gitcomp "full short no" "" "${cur##--decorate=}" 1447 | return 1448 | ;; 1449 | --*) 1450 | __gitcomp " 1451 | $__git_log_common_options 1452 | $__git_log_shortlog_options 1453 | $__git_log_gitk_options 1454 | --root --topo-order --date-order --reverse 1455 | --follow --full-diff 1456 | --abbrev-commit --abbrev= 1457 | --relative-date --date= 1458 | --pretty= --format= --oneline 1459 | --show-signature 1460 | --cherry-pick 1461 | --graph 1462 | --decorate --decorate= 1463 | --walk-reflogs 1464 | --parents --children 1465 | $merge 1466 | $__git_diff_common_options 1467 | --pickaxe-all --pickaxe-regex 1468 | " 1469 | return 1470 | ;; 1471 | esac 1472 | __git_complete_revlist 1473 | } 1474 | 1475 | # Common merge options shared by git-merge(1) and git-pull(1). 1476 | __git_merge_options=" 1477 | --no-commit --no-stat --log --no-log --squash --strategy 1478 | --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit 1479 | --verify-signatures --no-verify-signatures --gpg-sign 1480 | --quiet --verbose --progress --no-progress 1481 | " 1482 | 1483 | _git_merge () 1484 | { 1485 | __git_complete_strategy && return 1486 | 1487 | case "$cur" in 1488 | --*) 1489 | __gitcomp "$__git_merge_options 1490 | --rerere-autoupdate --no-rerere-autoupdate --abort" 1491 | return 1492 | esac 1493 | __gitcomp_nl "$(__git_refs)" 1494 | } 1495 | 1496 | _git_mergetool () 1497 | { 1498 | case "$cur" in 1499 | --tool=*) 1500 | __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}" 1501 | return 1502 | ;; 1503 | --*) 1504 | __gitcomp "--tool=" 1505 | return 1506 | ;; 1507 | esac 1508 | } 1509 | 1510 | _git_merge_base () 1511 | { 1512 | case "$cur" in 1513 | --*) 1514 | __gitcomp "--octopus --independent --is-ancestor --fork-point" 1515 | return 1516 | ;; 1517 | esac 1518 | __gitcomp_nl "$(__git_refs)" 1519 | } 1520 | 1521 | _git_mv () 1522 | { 1523 | case "$cur" in 1524 | --*) 1525 | __gitcomp "--dry-run" 1526 | return 1527 | ;; 1528 | esac 1529 | 1530 | if [ $(__git_count_arguments "mv") -gt 0 ]; then 1531 | # We need to show both cached and untracked files (including 1532 | # empty directories) since this may not be the last argument. 1533 | __git_complete_index_file "--cached --others --directory" 1534 | else 1535 | __git_complete_index_file "--cached" 1536 | fi 1537 | } 1538 | 1539 | _git_name_rev () 1540 | { 1541 | __gitcomp "--tags --all --stdin" 1542 | } 1543 | 1544 | _git_notes () 1545 | { 1546 | local subcommands='add append copy edit list prune remove show' 1547 | local subcommand="$(__git_find_on_cmdline "$subcommands")" 1548 | 1549 | case "$subcommand,$cur" in 1550 | ,--*) 1551 | __gitcomp '--ref' 1552 | ;; 1553 | ,*) 1554 | case "$prev" in 1555 | --ref) 1556 | __gitcomp_nl "$(__git_refs)" 1557 | ;; 1558 | *) 1559 | __gitcomp "$subcommands --ref" 1560 | ;; 1561 | esac 1562 | ;; 1563 | add,--reuse-message=*|append,--reuse-message=*|\ 1564 | add,--reedit-message=*|append,--reedit-message=*) 1565 | __gitcomp_nl "$(__git_refs)" "" "${cur#*=}" 1566 | ;; 1567 | add,--*|append,--*) 1568 | __gitcomp '--file= --message= --reedit-message= 1569 | --reuse-message=' 1570 | ;; 1571 | copy,--*) 1572 | __gitcomp '--stdin' 1573 | ;; 1574 | prune,--*) 1575 | __gitcomp '--dry-run --verbose' 1576 | ;; 1577 | prune,*) 1578 | ;; 1579 | *) 1580 | case "$prev" in 1581 | -m|-F) 1582 | ;; 1583 | *) 1584 | __gitcomp_nl "$(__git_refs)" 1585 | ;; 1586 | esac 1587 | ;; 1588 | esac 1589 | } 1590 | 1591 | _git_pull () 1592 | { 1593 | __git_complete_strategy && return 1594 | 1595 | case "$cur" in 1596 | --recurse-submodules=*) 1597 | __gitcomp "$__git_fetch_recurse_submodules" "" "${cur##--recurse-submodules=}" 1598 | return 1599 | ;; 1600 | --*) 1601 | __gitcomp " 1602 | --rebase --no-rebase 1603 | $__git_merge_options 1604 | $__git_fetch_options 1605 | " 1606 | return 1607 | ;; 1608 | esac 1609 | __git_complete_remote_or_refspec 1610 | } 1611 | 1612 | __git_push_recurse_submodules="check on-demand" 1613 | 1614 | __git_complete_force_with_lease () 1615 | { 1616 | local cur_=$1 1617 | 1618 | case "$cur_" in 1619 | --*=) 1620 | ;; 1621 | *:*) 1622 | __gitcomp_nl "$(__git_refs)" "" "${cur_#*:}" 1623 | ;; 1624 | *) 1625 | __gitcomp_nl "$(__git_refs)" "" "$cur_" 1626 | ;; 1627 | esac 1628 | } 1629 | 1630 | _git_push () 1631 | { 1632 | case "$prev" in 1633 | --repo) 1634 | __gitcomp_nl "$(__git_remotes)" 1635 | return 1636 | ;; 1637 | --recurse-submodules) 1638 | __gitcomp "$__git_push_recurse_submodules" 1639 | return 1640 | ;; 1641 | esac 1642 | case "$cur" in 1643 | --repo=*) 1644 | __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}" 1645 | return 1646 | ;; 1647 | --recurse-submodules=*) 1648 | __gitcomp "$__git_push_recurse_submodules" "" "${cur##--recurse-submodules=}" 1649 | return 1650 | ;; 1651 | --force-with-lease=*) 1652 | __git_complete_force_with_lease "${cur##--force-with-lease=}" 1653 | return 1654 | ;; 1655 | --*) 1656 | __gitcomp " 1657 | --all --mirror --tags --dry-run --force --verbose 1658 | --quiet --prune --delete --follow-tags 1659 | --receive-pack= --repo= --set-upstream 1660 | --force-with-lease --force-with-lease= --recurse-submodules= 1661 | " 1662 | return 1663 | ;; 1664 | esac 1665 | __git_complete_remote_or_refspec 1666 | } 1667 | 1668 | _git_rebase () 1669 | { 1670 | local dir="$(__gitdir)" 1671 | if [ -f "$dir"/rebase-merge/interactive ]; then 1672 | __gitcomp "--continue --skip --abort --edit-todo" 1673 | return 1674 | elif [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then 1675 | __gitcomp "--continue --skip --abort" 1676 | return 1677 | fi 1678 | __git_complete_strategy && return 1679 | case "$cur" in 1680 | --whitespace=*) 1681 | __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" 1682 | return 1683 | ;; 1684 | --*) 1685 | __gitcomp " 1686 | --onto --merge --strategy --interactive 1687 | --preserve-merges --stat --no-stat 1688 | --committer-date-is-author-date --ignore-date 1689 | --ignore-whitespace --whitespace= 1690 | --autosquash --fork-point --no-fork-point 1691 | --autostash 1692 | " 1693 | 1694 | return 1695 | esac 1696 | __gitcomp_nl "$(__git_refs)" 1697 | } 1698 | 1699 | _git_reflog () 1700 | { 1701 | local subcommands="show delete expire" 1702 | local subcommand="$(__git_find_on_cmdline "$subcommands")" 1703 | 1704 | if [ -z "$subcommand" ]; then 1705 | __gitcomp "$subcommands" 1706 | else 1707 | __gitcomp_nl "$(__git_refs)" 1708 | fi 1709 | } 1710 | 1711 | __git_send_email_confirm_options="always never auto cc compose" 1712 | __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" 1713 | 1714 | _git_send_email () 1715 | { 1716 | case "$prev" in 1717 | --to|--cc|--bcc|--from) 1718 | __gitcomp " 1719 | $(git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null) 1720 | " 1721 | return 1722 | ;; 1723 | esac 1724 | 1725 | case "$cur" in 1726 | --confirm=*) 1727 | __gitcomp " 1728 | $__git_send_email_confirm_options 1729 | " "" "${cur##--confirm=}" 1730 | return 1731 | ;; 1732 | --suppress-cc=*) 1733 | __gitcomp " 1734 | $__git_send_email_suppresscc_options 1735 | " "" "${cur##--suppress-cc=}" 1736 | 1737 | return 1738 | ;; 1739 | --smtp-encryption=*) 1740 | __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}" 1741 | return 1742 | ;; 1743 | --thread=*) 1744 | __gitcomp " 1745 | deep shallow 1746 | " "" "${cur##--thread=}" 1747 | return 1748 | ;; 1749 | --to=*|--cc=*|--bcc=*|--from=*) 1750 | __gitcomp " 1751 | $(git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null) 1752 | " "" "${cur#--*=}" 1753 | return 1754 | ;; 1755 | --*) 1756 | __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to 1757 | --compose --confirm= --dry-run --envelope-sender 1758 | --from --identity 1759 | --in-reply-to --no-chain-reply-to --no-signed-off-by-cc 1760 | --no-suppress-from --no-thread --quiet 1761 | --signed-off-by-cc --smtp-pass --smtp-server 1762 | --smtp-server-port --smtp-encryption= --smtp-user 1763 | --subject --suppress-cc= --suppress-from --thread --to 1764 | --validate --no-validate 1765 | $__git_format_patch_options" 1766 | return 1767 | ;; 1768 | esac 1769 | __git_complete_revlist 1770 | } 1771 | 1772 | _git_stage () 1773 | { 1774 | _git_add 1775 | } 1776 | 1777 | __git_config_get_set_variables () 1778 | { 1779 | local prevword word config_file= c=$cword 1780 | while [ $c -gt 1 ]; do 1781 | word="${words[c]}" 1782 | case "$word" in 1783 | --system|--global|--local|--file=*) 1784 | config_file="$word" 1785 | break 1786 | ;; 1787 | -f|--file) 1788 | config_file="$word $prevword" 1789 | break 1790 | ;; 1791 | esac 1792 | prevword=$word 1793 | c=$((--c)) 1794 | done 1795 | 1796 | git --git-dir="$(__gitdir)" config $config_file --name-only --list 2>/dev/null 1797 | } 1798 | 1799 | _git_config () 1800 | { 1801 | case "$prev" in 1802 | branch.*.remote|branch.*.pushremote) 1803 | __gitcomp_nl "$(__git_remotes)" 1804 | return 1805 | ;; 1806 | branch.*.merge) 1807 | __gitcomp_nl "$(__git_refs)" 1808 | return 1809 | ;; 1810 | branch.*.rebase) 1811 | __gitcomp "false true" 1812 | return 1813 | ;; 1814 | remote.pushdefault) 1815 | __gitcomp_nl "$(__git_remotes)" 1816 | return 1817 | ;; 1818 | remote.*.fetch) 1819 | local remote="${prev#remote.}" 1820 | remote="${remote%.fetch}" 1821 | if [ -z "$cur" ]; then 1822 | __gitcomp_nl "refs/heads/" "" "" "" 1823 | return 1824 | fi 1825 | __gitcomp_nl "$(__git_refs_remotes "$remote")" 1826 | return 1827 | ;; 1828 | remote.*.push) 1829 | local remote="${prev#remote.}" 1830 | remote="${remote%.push}" 1831 | __gitcomp_nl "$(git --git-dir="$(__gitdir)" \ 1832 | for-each-ref --format='%(refname):%(refname)' \ 1833 | refs/heads)" 1834 | return 1835 | ;; 1836 | pull.twohead|pull.octopus) 1837 | __git_compute_merge_strategies 1838 | __gitcomp "$__git_merge_strategies" 1839 | return 1840 | ;; 1841 | color.branch|color.diff|color.interactive|\ 1842 | color.showbranch|color.status|color.ui) 1843 | __gitcomp "always never auto" 1844 | return 1845 | ;; 1846 | color.pager) 1847 | __gitcomp "false true" 1848 | return 1849 | ;; 1850 | color.*.*) 1851 | __gitcomp " 1852 | normal black red green yellow blue magenta cyan white 1853 | bold dim ul blink reverse 1854 | " 1855 | return 1856 | ;; 1857 | diff.submodule) 1858 | __gitcomp "log short" 1859 | return 1860 | ;; 1861 | help.format) 1862 | __gitcomp "man info web html" 1863 | return 1864 | ;; 1865 | log.date) 1866 | __gitcomp "$__git_log_date_formats" 1867 | return 1868 | ;; 1869 | sendemail.aliasesfiletype) 1870 | __gitcomp "mutt mailrc pine elm gnus" 1871 | return 1872 | ;; 1873 | sendemail.confirm) 1874 | __gitcomp "$__git_send_email_confirm_options" 1875 | return 1876 | ;; 1877 | sendemail.suppresscc) 1878 | __gitcomp "$__git_send_email_suppresscc_options" 1879 | return 1880 | ;; 1881 | sendemail.transferencoding) 1882 | __gitcomp "7bit 8bit quoted-printable base64" 1883 | return 1884 | ;; 1885 | --get|--get-all|--unset|--unset-all) 1886 | __gitcomp_nl "$(__git_config_get_set_variables)" 1887 | return 1888 | ;; 1889 | *.*) 1890 | return 1891 | ;; 1892 | esac 1893 | case "$cur" in 1894 | --*) 1895 | __gitcomp " 1896 | --system --global --local --file= 1897 | --list --replace-all 1898 | --get --get-all --get-regexp 1899 | --add --unset --unset-all 1900 | --remove-section --rename-section 1901 | --name-only 1902 | " 1903 | return 1904 | ;; 1905 | branch.*.*) 1906 | local pfx="${cur%.*}." cur_="${cur##*.}" 1907 | __gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_" 1908 | return 1909 | ;; 1910 | branch.*) 1911 | local pfx="${cur%.*}." cur_="${cur#*.}" 1912 | __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "." 1913 | __gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_" 1914 | return 1915 | ;; 1916 | guitool.*.*) 1917 | local pfx="${cur%.*}." cur_="${cur##*.}" 1918 | __gitcomp " 1919 | argprompt cmd confirm needsfile noconsole norescan 1920 | prompt revprompt revunmerged title 1921 | " "$pfx" "$cur_" 1922 | return 1923 | ;; 1924 | difftool.*.*) 1925 | local pfx="${cur%.*}." cur_="${cur##*.}" 1926 | __gitcomp "cmd path" "$pfx" "$cur_" 1927 | return 1928 | ;; 1929 | man.*.*) 1930 | local pfx="${cur%.*}." cur_="${cur##*.}" 1931 | __gitcomp "cmd path" "$pfx" "$cur_" 1932 | return 1933 | ;; 1934 | mergetool.*.*) 1935 | local pfx="${cur%.*}." cur_="${cur##*.}" 1936 | __gitcomp "cmd path trustExitCode" "$pfx" "$cur_" 1937 | return 1938 | ;; 1939 | pager.*) 1940 | local pfx="${cur%.*}." cur_="${cur#*.}" 1941 | __git_compute_all_commands 1942 | __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_" 1943 | return 1944 | ;; 1945 | remote.*.*) 1946 | local pfx="${cur%.*}." cur_="${cur##*.}" 1947 | __gitcomp " 1948 | url proxy fetch push mirror skipDefaultUpdate 1949 | receivepack uploadpack tagopt pushurl 1950 | " "$pfx" "$cur_" 1951 | return 1952 | ;; 1953 | remote.*) 1954 | local pfx="${cur%.*}." cur_="${cur#*.}" 1955 | __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "." 1956 | __gitcomp_nl_append "pushdefault" "$pfx" "$cur_" 1957 | return 1958 | ;; 1959 | url.*.*) 1960 | local pfx="${cur%.*}." cur_="${cur##*.}" 1961 | __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_" 1962 | return 1963 | ;; 1964 | esac 1965 | __gitcomp " 1966 | add.ignoreErrors 1967 | advice.commitBeforeMerge 1968 | advice.detachedHead 1969 | advice.implicitIdentity 1970 | advice.pushNonFastForward 1971 | advice.resolveConflict 1972 | advice.statusHints 1973 | alias. 1974 | am.keepcr 1975 | apply.ignorewhitespace 1976 | apply.whitespace 1977 | branch.autosetupmerge 1978 | branch.autosetuprebase 1979 | browser. 1980 | clean.requireForce 1981 | color.branch 1982 | color.branch.current 1983 | color.branch.local 1984 | color.branch.plain 1985 | color.branch.remote 1986 | color.decorate.HEAD 1987 | color.decorate.branch 1988 | color.decorate.remoteBranch 1989 | color.decorate.stash 1990 | color.decorate.tag 1991 | color.diff 1992 | color.diff.commit 1993 | color.diff.frag 1994 | color.diff.func 1995 | color.diff.meta 1996 | color.diff.new 1997 | color.diff.old 1998 | color.diff.plain 1999 | color.diff.whitespace 2000 | color.grep 2001 | color.grep.context 2002 | color.grep.filename 2003 | color.grep.function 2004 | color.grep.linenumber 2005 | color.grep.match 2006 | color.grep.selected 2007 | color.grep.separator 2008 | color.interactive 2009 | color.interactive.error 2010 | color.interactive.header 2011 | color.interactive.help 2012 | color.interactive.prompt 2013 | color.pager 2014 | color.showbranch 2015 | color.status 2016 | color.status.added 2017 | color.status.changed 2018 | color.status.header 2019 | color.status.nobranch 2020 | color.status.unmerged 2021 | color.status.untracked 2022 | color.status.updated 2023 | color.ui 2024 | commit.status 2025 | commit.template 2026 | core.abbrev 2027 | core.askpass 2028 | core.attributesfile 2029 | core.autocrlf 2030 | core.bare 2031 | core.bigFileThreshold 2032 | core.compression 2033 | core.createObject 2034 | core.deltaBaseCacheLimit 2035 | core.editor 2036 | core.eol 2037 | core.excludesfile 2038 | core.fileMode 2039 | core.fsyncobjectfiles 2040 | core.gitProxy 2041 | core.ignoreStat 2042 | core.ignorecase 2043 | core.logAllRefUpdates 2044 | core.loosecompression 2045 | core.notesRef 2046 | core.packedGitLimit 2047 | core.packedGitWindowSize 2048 | core.pager 2049 | core.preferSymlinkRefs 2050 | core.preloadindex 2051 | core.quotepath 2052 | core.repositoryFormatVersion 2053 | core.safecrlf 2054 | core.sharedRepository 2055 | core.sparseCheckout 2056 | core.symlinks 2057 | core.trustctime 2058 | core.warnAmbiguousRefs 2059 | core.whitespace 2060 | core.worktree 2061 | diff.autorefreshindex 2062 | diff.external 2063 | diff.ignoreSubmodules 2064 | diff.mnemonicprefix 2065 | diff.noprefix 2066 | diff.renameLimit 2067 | diff.renames 2068 | diff.statGraphWidth 2069 | diff.submodule 2070 | diff.suppressBlankEmpty 2071 | diff.tool 2072 | diff.wordRegex 2073 | diff.algorithm 2074 | difftool. 2075 | difftool.prompt 2076 | fetch.recurseSubmodules 2077 | fetch.unpackLimit 2078 | format.attach 2079 | format.cc 2080 | format.coverLetter 2081 | format.headers 2082 | format.numbered 2083 | format.pretty 2084 | format.signature 2085 | format.signoff 2086 | format.subjectprefix 2087 | format.suffix 2088 | format.thread 2089 | format.to 2090 | gc. 2091 | gc.aggressiveWindow 2092 | gc.auto 2093 | gc.autopacklimit 2094 | gc.packrefs 2095 | gc.pruneexpire 2096 | gc.reflogexpire 2097 | gc.reflogexpireunreachable 2098 | gc.rerereresolved 2099 | gc.rerereunresolved 2100 | gitcvs.allbinary 2101 | gitcvs.commitmsgannotation 2102 | gitcvs.dbTableNamePrefix 2103 | gitcvs.dbdriver 2104 | gitcvs.dbname 2105 | gitcvs.dbpass 2106 | gitcvs.dbuser 2107 | gitcvs.enabled 2108 | gitcvs.logfile 2109 | gitcvs.usecrlfattr 2110 | guitool. 2111 | gui.blamehistoryctx 2112 | gui.commitmsgwidth 2113 | gui.copyblamethreshold 2114 | gui.diffcontext 2115 | gui.encoding 2116 | gui.fastcopyblame 2117 | gui.matchtrackingbranch 2118 | gui.newbranchtemplate 2119 | gui.pruneduringfetch 2120 | gui.spellingdictionary 2121 | gui.trustmtime 2122 | help.autocorrect 2123 | help.browser 2124 | help.format 2125 | http.lowSpeedLimit 2126 | http.lowSpeedTime 2127 | http.maxRequests 2128 | http.minSessions 2129 | http.noEPSV 2130 | http.postBuffer 2131 | http.proxy 2132 | http.sslCipherList 2133 | http.sslVersion 2134 | http.sslCAInfo 2135 | http.sslCAPath 2136 | http.sslCert 2137 | http.sslCertPasswordProtected 2138 | http.sslKey 2139 | http.sslVerify 2140 | http.useragent 2141 | i18n.commitEncoding 2142 | i18n.logOutputEncoding 2143 | imap.authMethod 2144 | imap.folder 2145 | imap.host 2146 | imap.pass 2147 | imap.port 2148 | imap.preformattedHTML 2149 | imap.sslverify 2150 | imap.tunnel 2151 | imap.user 2152 | init.templatedir 2153 | instaweb.browser 2154 | instaweb.httpd 2155 | instaweb.local 2156 | instaweb.modulepath 2157 | instaweb.port 2158 | interactive.singlekey 2159 | log.date 2160 | log.decorate 2161 | log.showroot 2162 | mailmap.file 2163 | man. 2164 | man.viewer 2165 | merge. 2166 | merge.conflictstyle 2167 | merge.log 2168 | merge.renameLimit 2169 | merge.renormalize 2170 | merge.stat 2171 | merge.tool 2172 | merge.verbosity 2173 | mergetool. 2174 | mergetool.keepBackup 2175 | mergetool.keepTemporaries 2176 | mergetool.prompt 2177 | notes.displayRef 2178 | notes.rewrite. 2179 | notes.rewrite.amend 2180 | notes.rewrite.rebase 2181 | notes.rewriteMode 2182 | notes.rewriteRef 2183 | pack.compression 2184 | pack.deltaCacheLimit 2185 | pack.deltaCacheSize 2186 | pack.depth 2187 | pack.indexVersion 2188 | pack.packSizeLimit 2189 | pack.threads 2190 | pack.window 2191 | pack.windowMemory 2192 | pager. 2193 | pretty. 2194 | pull.octopus 2195 | pull.twohead 2196 | push.default 2197 | push.followTags 2198 | rebase.autosquash 2199 | rebase.stat 2200 | receive.autogc 2201 | receive.denyCurrentBranch 2202 | receive.denyDeleteCurrent 2203 | receive.denyDeletes 2204 | receive.denyNonFastForwards 2205 | receive.fsckObjects 2206 | receive.unpackLimit 2207 | receive.updateserverinfo 2208 | remote.pushdefault 2209 | remotes. 2210 | repack.usedeltabaseoffset 2211 | rerere.autoupdate 2212 | rerere.enabled 2213 | sendemail. 2214 | sendemail.aliasesfile 2215 | sendemail.aliasfiletype 2216 | sendemail.bcc 2217 | sendemail.cc 2218 | sendemail.cccmd 2219 | sendemail.chainreplyto 2220 | sendemail.confirm 2221 | sendemail.envelopesender 2222 | sendemail.from 2223 | sendemail.identity 2224 | sendemail.multiedit 2225 | sendemail.signedoffbycc 2226 | sendemail.smtpdomain 2227 | sendemail.smtpencryption 2228 | sendemail.smtppass 2229 | sendemail.smtpserver 2230 | sendemail.smtpserveroption 2231 | sendemail.smtpserverport 2232 | sendemail.smtpuser 2233 | sendemail.suppresscc 2234 | sendemail.suppressfrom 2235 | sendemail.thread 2236 | sendemail.to 2237 | sendemail.validate 2238 | showbranch.default 2239 | status.relativePaths 2240 | status.showUntrackedFiles 2241 | status.submodulesummary 2242 | submodule. 2243 | tar.umask 2244 | transfer.unpackLimit 2245 | url. 2246 | user.email 2247 | user.name 2248 | user.signingkey 2249 | web.browser 2250 | branch. remote. 2251 | " 2252 | } 2253 | 2254 | _git_remote () 2255 | { 2256 | local subcommands="add rename remove set-head set-branches set-url show prune update" 2257 | local subcommand="$(__git_find_on_cmdline "$subcommands")" 2258 | if [ -z "$subcommand" ]; then 2259 | __gitcomp "$subcommands" 2260 | return 2261 | fi 2262 | 2263 | case "$subcommand" in 2264 | rename|remove|set-url|show|prune) 2265 | __gitcomp_nl "$(__git_remotes)" 2266 | ;; 2267 | set-head|set-branches) 2268 | __git_complete_remote_or_refspec 2269 | ;; 2270 | update) 2271 | __gitcomp "$(__git_get_config_variables "remotes")" 2272 | ;; 2273 | *) 2274 | ;; 2275 | esac 2276 | } 2277 | 2278 | _git_replace () 2279 | { 2280 | __gitcomp_nl "$(__git_refs)" 2281 | } 2282 | 2283 | _git_reset () 2284 | { 2285 | __git_has_doubledash && return 2286 | 2287 | case "$cur" in 2288 | --*) 2289 | __gitcomp "--merge --mixed --hard --soft --patch" 2290 | return 2291 | ;; 2292 | esac 2293 | __gitcomp_nl "$(__git_refs)" 2294 | } 2295 | 2296 | _git_revert () 2297 | { 2298 | local dir="$(__gitdir)" 2299 | if [ -f "$dir"/REVERT_HEAD ]; then 2300 | __gitcomp "--continue --quit --abort" 2301 | return 2302 | fi 2303 | case "$cur" in 2304 | --*) 2305 | __gitcomp "--edit --mainline --no-edit --no-commit --signoff" 2306 | return 2307 | ;; 2308 | esac 2309 | __gitcomp_nl "$(__git_refs)" 2310 | } 2311 | 2312 | _git_rm () 2313 | { 2314 | case "$cur" in 2315 | --*) 2316 | __gitcomp "--cached --dry-run --ignore-unmatch --quiet" 2317 | return 2318 | ;; 2319 | esac 2320 | 2321 | __git_complete_index_file "--cached" 2322 | } 2323 | 2324 | _git_shortlog () 2325 | { 2326 | __git_has_doubledash && return 2327 | 2328 | case "$cur" in 2329 | --*) 2330 | __gitcomp " 2331 | $__git_log_common_options 2332 | $__git_log_shortlog_options 2333 | --numbered --summary 2334 | " 2335 | return 2336 | ;; 2337 | esac 2338 | __git_complete_revlist 2339 | } 2340 | 2341 | _git_show () 2342 | { 2343 | __git_has_doubledash && return 2344 | 2345 | case "$cur" in 2346 | --pretty=*|--format=*) 2347 | __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases) 2348 | " "" "${cur#*=}" 2349 | return 2350 | ;; 2351 | --diff-algorithm=*) 2352 | __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}" 2353 | return 2354 | ;; 2355 | --*) 2356 | __gitcomp "--pretty= --format= --abbrev-commit --oneline 2357 | --show-signature 2358 | $__git_diff_common_options 2359 | " 2360 | return 2361 | ;; 2362 | esac 2363 | __git_complete_revlist_file 2364 | } 2365 | 2366 | _git_show_branch () 2367 | { 2368 | case "$cur" in 2369 | --*) 2370 | __gitcomp " 2371 | --all --remotes --topo-order --current --more= 2372 | --list --independent --merge-base --no-name 2373 | --color --no-color 2374 | --sha1-name --sparse --topics --reflog 2375 | " 2376 | return 2377 | ;; 2378 | esac 2379 | __git_complete_revlist 2380 | } 2381 | 2382 | _git_stash () 2383 | { 2384 | local save_opts='--keep-index --no-keep-index --quiet --patch' 2385 | local subcommands='save list show apply clear drop pop create branch' 2386 | local subcommand="$(__git_find_on_cmdline "$subcommands")" 2387 | if [ -z "$subcommand" ]; then 2388 | case "$cur" in 2389 | --*) 2390 | __gitcomp "$save_opts" 2391 | ;; 2392 | *) 2393 | if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then 2394 | __gitcomp "$subcommands" 2395 | fi 2396 | ;; 2397 | esac 2398 | else 2399 | case "$subcommand,$cur" in 2400 | save,--*) 2401 | __gitcomp "$save_opts" 2402 | ;; 2403 | apply,--*|pop,--*) 2404 | __gitcomp "--index --quiet" 2405 | ;; 2406 | show,--*|drop,--*|branch,--*) 2407 | ;; 2408 | show,*|apply,*|drop,*|pop,*|branch,*) 2409 | __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \ 2410 | | sed -n -e 's/:.*//p')" 2411 | ;; 2412 | *) 2413 | ;; 2414 | esac 2415 | fi 2416 | } 2417 | 2418 | _git_submodule () 2419 | { 2420 | __git_has_doubledash && return 2421 | 2422 | local subcommands="add status init deinit update summary foreach sync" 2423 | if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then 2424 | case "$cur" in 2425 | --*) 2426 | __gitcomp "--quiet --cached" 2427 | ;; 2428 | *) 2429 | __gitcomp "$subcommands" 2430 | ;; 2431 | esac 2432 | return 2433 | fi 2434 | } 2435 | 2436 | _git_svn () 2437 | { 2438 | local subcommands=" 2439 | init fetch clone rebase dcommit log find-rev 2440 | set-tree commit-diff info create-ignore propget 2441 | proplist show-ignore show-externals branch tag blame 2442 | migrate mkdirs reset gc 2443 | " 2444 | local subcommand="$(__git_find_on_cmdline "$subcommands")" 2445 | if [ -z "$subcommand" ]; then 2446 | __gitcomp "$subcommands" 2447 | else 2448 | local remote_opts="--username= --config-dir= --no-auth-cache" 2449 | local fc_opts=" 2450 | --follow-parent --authors-file= --repack= 2451 | --no-metadata --use-svm-props --use-svnsync-props 2452 | --log-window-size= --no-checkout --quiet 2453 | --repack-flags --use-log-author --localtime 2454 | --ignore-paths= --include-paths= $remote_opts 2455 | " 2456 | local init_opts=" 2457 | --template= --shared= --trunk= --tags= 2458 | --branches= --stdlayout --minimize-url 2459 | --no-metadata --use-svm-props --use-svnsync-props 2460 | --rewrite-root= --prefix= --use-log-author 2461 | --add-author-from $remote_opts 2462 | " 2463 | local cmt_opts=" 2464 | --edit --rmdir --find-copies-harder --copy-similarity= 2465 | " 2466 | 2467 | case "$subcommand,$cur" in 2468 | fetch,--*) 2469 | __gitcomp "--revision= --fetch-all $fc_opts" 2470 | ;; 2471 | clone,--*) 2472 | __gitcomp "--revision= $fc_opts $init_opts" 2473 | ;; 2474 | init,--*) 2475 | __gitcomp "$init_opts" 2476 | ;; 2477 | dcommit,--*) 2478 | __gitcomp " 2479 | --merge --strategy= --verbose --dry-run 2480 | --fetch-all --no-rebase --commit-url 2481 | --revision --interactive $cmt_opts $fc_opts 2482 | " 2483 | ;; 2484 | set-tree,--*) 2485 | __gitcomp "--stdin $cmt_opts $fc_opts" 2486 | ;; 2487 | create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\ 2488 | show-externals,--*|mkdirs,--*) 2489 | __gitcomp "--revision=" 2490 | ;; 2491 | log,--*) 2492 | __gitcomp " 2493 | --limit= --revision= --verbose --incremental 2494 | --oneline --show-commit --non-recursive 2495 | --authors-file= --color 2496 | " 2497 | ;; 2498 | rebase,--*) 2499 | __gitcomp " 2500 | --merge --verbose --strategy= --local 2501 | --fetch-all --dry-run $fc_opts 2502 | " 2503 | ;; 2504 | commit-diff,--*) 2505 | __gitcomp "--message= --file= --revision= $cmt_opts" 2506 | ;; 2507 | info,--*) 2508 | __gitcomp "--url" 2509 | ;; 2510 | branch,--*) 2511 | __gitcomp "--dry-run --message --tag" 2512 | ;; 2513 | tag,--*) 2514 | __gitcomp "--dry-run --message" 2515 | ;; 2516 | blame,--*) 2517 | __gitcomp "--git-format" 2518 | ;; 2519 | migrate,--*) 2520 | __gitcomp " 2521 | --config-dir= --ignore-paths= --minimize 2522 | --no-auth-cache --username= 2523 | " 2524 | ;; 2525 | reset,--*) 2526 | __gitcomp "--revision= --parent" 2527 | ;; 2528 | *) 2529 | ;; 2530 | esac 2531 | fi 2532 | } 2533 | 2534 | _git_tag () 2535 | { 2536 | local i c=1 f=0 2537 | while [ $c -lt $cword ]; do 2538 | i="${words[c]}" 2539 | case "$i" in 2540 | -d|-v) 2541 | __gitcomp_nl "$(__git_tags)" 2542 | return 2543 | ;; 2544 | -f) 2545 | f=1 2546 | ;; 2547 | esac 2548 | ((c++)) 2549 | done 2550 | 2551 | case "$prev" in 2552 | -m|-F) 2553 | ;; 2554 | -*|tag) 2555 | if [ $f = 1 ]; then 2556 | __gitcomp_nl "$(__git_tags)" 2557 | fi 2558 | ;; 2559 | *) 2560 | __gitcomp_nl "$(__git_refs)" 2561 | ;; 2562 | esac 2563 | 2564 | case "$cur" in 2565 | --*) 2566 | __gitcomp " 2567 | --list --delete --verify --annotate --message --file 2568 | --sign --cleanup --local-user --force --column --sort 2569 | --contains --points-at 2570 | " 2571 | ;; 2572 | esac 2573 | } 2574 | 2575 | _git_whatchanged () 2576 | { 2577 | _git_log 2578 | } 2579 | 2580 | __git_main () 2581 | { 2582 | local i c=1 command __git_dir 2583 | 2584 | while [ $c -lt $cword ]; do 2585 | i="${words[c]}" 2586 | case "$i" in 2587 | --git-dir=*) __git_dir="${i#--git-dir=}" ;; 2588 | --git-dir) ((c++)) ; __git_dir="${words[c]}" ;; 2589 | --bare) __git_dir="." ;; 2590 | --help) command="help"; break ;; 2591 | -c|--work-tree|--namespace) ((c++)) ;; 2592 | -*) ;; 2593 | *) command="$i"; break ;; 2594 | esac 2595 | ((c++)) 2596 | done 2597 | 2598 | if [ -z "$command" ]; then 2599 | case "$cur" in 2600 | --*) __gitcomp " 2601 | --paginate 2602 | --no-pager 2603 | --git-dir= 2604 | --bare 2605 | --version 2606 | --exec-path 2607 | --exec-path= 2608 | --html-path 2609 | --man-path 2610 | --info-path 2611 | --work-tree= 2612 | --namespace= 2613 | --no-replace-objects 2614 | --help 2615 | " 2616 | ;; 2617 | *) __git_compute_porcelain_commands 2618 | __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;; 2619 | esac 2620 | return 2621 | fi 2622 | 2623 | local completion_func="_git_${command//-/_}" 2624 | declare -f $completion_func >/dev/null && $completion_func && return 2625 | 2626 | local expansion=$(__git_aliased_command "$command") 2627 | if [ -n "$expansion" ]; then 2628 | words[1]=$expansion 2629 | completion_func="_git_${expansion//-/_}" 2630 | declare -f $completion_func >/dev/null && $completion_func 2631 | fi 2632 | } 2633 | 2634 | __gitk_main () 2635 | { 2636 | __git_has_doubledash && return 2637 | 2638 | local g="$(__gitdir)" 2639 | local merge="" 2640 | if [ -f "$g/MERGE_HEAD" ]; then 2641 | merge="--merge" 2642 | fi 2643 | case "$cur" in 2644 | --*) 2645 | __gitcomp " 2646 | $__git_log_common_options 2647 | $__git_log_gitk_options 2648 | $merge 2649 | " 2650 | return 2651 | ;; 2652 | esac 2653 | __git_complete_revlist 2654 | } 2655 | 2656 | if [[ -n ${ZSH_VERSION-} ]]; then 2657 | echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2 2658 | 2659 | autoload -U +X compinit && compinit 2660 | 2661 | __gitcomp () 2662 | { 2663 | emulate -L zsh 2664 | 2665 | local cur_="${3-$cur}" 2666 | 2667 | case "$cur_" in 2668 | --*=) 2669 | ;; 2670 | *) 2671 | local c IFS=$' \t\n' 2672 | local -a array 2673 | for c in ${=1}; do 2674 | c="$c${4-}" 2675 | case $c in 2676 | --*=*|*.) ;; 2677 | *) c="$c " ;; 2678 | esac 2679 | array[${#array[@]}+1]="$c" 2680 | done 2681 | compset -P '*[=:]' 2682 | compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 2683 | ;; 2684 | esac 2685 | } 2686 | 2687 | __gitcomp_nl () 2688 | { 2689 | emulate -L zsh 2690 | 2691 | local IFS=$'\n' 2692 | compset -P '*[=:]' 2693 | compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 2694 | } 2695 | 2696 | __gitcomp_file () 2697 | { 2698 | emulate -L zsh 2699 | 2700 | local IFS=$'\n' 2701 | compset -P '*[=:]' 2702 | compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 2703 | } 2704 | 2705 | _git () 2706 | { 2707 | local _ret=1 cur cword prev 2708 | cur=${words[CURRENT]} 2709 | prev=${words[CURRENT-1]} 2710 | let cword=CURRENT-1 2711 | emulate ksh -c __${service}_main 2712 | let _ret && _default && _ret=0 2713 | return _ret 2714 | } 2715 | 2716 | compdef _git git gitk 2717 | return 2718 | fi 2719 | 2720 | __git_func_wrap () 2721 | { 2722 | local cur words cword prev 2723 | _get_comp_words_by_ref -n =: cur words cword prev 2724 | $1 2725 | } 2726 | 2727 | # Setup completion for certain functions defined above by setting common 2728 | # variables and workarounds. 2729 | # This is NOT a public function; use at your own risk. 2730 | __git_complete () 2731 | { 2732 | local wrapper="__git_wrap${2}" 2733 | eval "$wrapper () { __git_func_wrap $2 ; }" 2734 | complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \ 2735 | || complete -o default -o nospace -F $wrapper $1 2736 | } 2737 | 2738 | # wrapper for backwards compatibility 2739 | _git () 2740 | { 2741 | __git_wrap__git_main 2742 | } 2743 | 2744 | # wrapper for backwards compatibility 2745 | _gitk () 2746 | { 2747 | __git_wrap__gitk_main 2748 | } 2749 | 2750 | __git_complete git __git_main 2751 | __git_complete gitk __gitk_main 2752 | 2753 | # The following are necessary only for Cygwin, and only are needed 2754 | # when the user has tab-completed the executable name and consequently 2755 | # included the '.exe' suffix. 2756 | # 2757 | if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then 2758 | __git_complete git.exe __git_main 2759 | fi 2760 | --------------------------------------------------------------------------------