From 21769461977e2ac6936ade05d89d4c40a446d854 Mon Sep 17 00:00:00 2001 From: hophacker Date: Thu, 6 Feb 2020 19:20:50 +0800 Subject: [PATCH] clear youcomplete me --- Rakefile | 353 +++++++++++++++++++------------------ vim/vundles/project.vundle | 1 - 2 files changed, 177 insertions(+), 177 deletions(-) diff --git a/Rakefile b/Rakefile index 09a7db7..1c134e6 100644 --- a/Rakefile +++ b/Rakefile @@ -1,48 +1,59 @@ +# frozen_string_literal: true + require 'rake' require 'fileutils' require File.join(File.dirname(__FILE__), 'bin', 'yadr', 'vundle') def macos? - RUBY_PLATFORM.downcase.include?("darwin") + RUBY_PLATFORM.downcase.include?('darwin') end def linux? - RUBY_PLATFORM.downcase.include?("linux") + RUBY_PLATFORM.downcase.include?('linux') end # this has all the runcoms from this directory. task :link_files do - install_files(Dir.glob('git/*')) if want_to_install?('git configs (color, aliases)') - install_files(Dir.glob('irb/*')) if want_to_install?('irb/pry configs (more colorful)') - install_files(Dir.glob('ruby/*')) if want_to_install?('rubygems config (faster/no docs)') - install_files(Dir.glob('ctags/*')) if want_to_install?('ctags config (better js/ruby support)') + if want_to_install?('git configs (color, aliases)') + install_files(Dir.glob('git/*')) + end + if want_to_install?('irb/pry configs (more colorful)') + install_files(Dir.glob('irb/*')) + end + if want_to_install?('rubygems config (faster/no docs)') + install_files(Dir.glob('ruby/*')) + end + if want_to_install?('ctags config (better js/ruby support)') + install_files(Dir.glob('ctags/*')) + end install_files(Dir.glob('tmux/*')) if want_to_install?('tmux config') - install_files(Dir.glob('vimify/*')) if want_to_install?('vimification of command line tools') - run %{ + if want_to_install?('vimification of command line tools') + install_files(Dir.glob('vimify/*')) + end + run %( git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm - } + ) end -desc "Hook our dotfiles into system-standard positions." -task :install => [:submodule_init, :submodules] do +desc 'Hook our dotfiles into system-standard positions.' +task install: %i[submodule_init submodules] do puts - puts "======================================================" - puts "Welcome to YADR Installation." - puts "======================================================" + puts '======================================================' + puts 'Welcome to YADR Installation.' + puts '======================================================' puts install_homebrew if macos? install_rvm_binstubs - Rake::Task["link_files"].execute + Rake::Task['link_files'].execute if want_to_install?('vim configuration (highly recommended)') install_files(Dir.glob('{vim,vimrc}')) - Rake::Task["install_vundle"].execute + Rake::Task['install_vundle'].execute end - Rake::Task["install_tools"].execute - Rake::Task["install_ycm"].execute - Rake::Task["install_prezto"].execute + Rake::Task['install_tools'].execute + Rake::Task['install_prezto'].execute install_fonts @@ -50,123 +61,108 @@ task :install => [:submodule_init, :submodules] do run_bundle_config - success_msg("installed") + success_msg('installed') end task :install_prezto do - if want_to_install?('zsh enhancements & prezto') - install_prezto - end -end - -task :install_ycm do - if want_to_install?('YouCompleteMe') - run %{ - apt install cmake libpython2.7 python-dev -y - cd $HOME/.vim/bundle/YouCompleteMe/ - git submodule update --init --recursive - ./install.py - } - end + install_prezto if want_to_install?('zsh enhancements & prezto') end desc 'Install tools which are necessary for developers' task :install_tools do if macos? - run %{ + run %( brew install proxychains-ng - } + ) else - run %{ + run %( apt install proxychains - } + ) end end desc 'Updates the installation' task :update do - Rake::Task["vundle_migration"].execute if needs_migration_to_vundle? - Rake::Task["install"].execute - #TODO: for now, we do the same as install. But it would be nice - #not to clobber zsh files + Rake::Task['vundle_migration'].execute if needs_migration_to_vundle? + Rake::Task['install'].execute + # TODO: for now, we do the same as install. But it would be nice + # not to clobber zsh files end task :sync do - vundle_path = File.join('vim','bundle', 'vundle') - unless File.exists?(vundle_path) - run %{ + vundle_path = File.join('vim', 'bundle', 'vundle') + unless File.exist?(vundle_path) + run %( cd $HOME/.yadr git clone https://github.com/gmarik/vundle.git #{vundle_path} - } + ) end end task :submodule_init do - unless ENV["SKIP_SUBMODULES"] - run %{ git submodule update --init --recursive } - end + run %( git submodule update --init --recursive ) unless ENV['SKIP_SUBMODULES'] end -desc "Init and update submodules." +desc 'Init and update submodules.' task :submodules do - unless ENV["SKIP_SUBMODULES"] - puts "======================================================" - puts "Downloading YADR submodules...please wait" - puts "======================================================" + unless ENV['SKIP_SUBMODULES'] + puts '======================================================' + puts 'Downloading YADR submodules...please wait' + puts '======================================================' - run %{ + run %( cd $HOME/.yadr git submodule update --recursive git clean -df - } + ) puts end end -desc "Performs migration from pathogen to vundle" +desc 'Performs migration from pathogen to vundle' task :vundle_migration do - puts "======================================================" - puts "Migrating from pathogen to vundle vim plugin manager. " - puts "This will move the old .vim/bundle directory to" - puts ".vim/bundle.old and replacing all your vim plugins with" - puts "the standard set of plugins. You will then be able to " + puts '======================================================' + puts 'Migrating from pathogen to vundle vim plugin manager. ' + puts 'This will move the old .vim/bundle directory to' + puts '.vim/bundle.old and replacing all your vim plugins with' + puts 'the standard set of plugins. You will then be able to ' puts "manage your vim's plugin configuration by editing the " - puts "file .vim/vundles.vim" - puts "======================================================" + puts 'file .vim/vundles.vim' + puts '======================================================' - Dir.glob(File.join('vim', 'bundle','**')) do |sub_path| - run %{git config -f #{File.join('.git', 'config')} --remove-section submodule.#{sub_path}} + Dir.glob(File.join('vim', 'bundle', '**')) do |sub_path| + run %(git config -f #{File.join('.git', 'config')} --remove-section submodule.#{sub_path}) # `git rm --cached #{sub_path}` FileUtils.rm_rf(File.join('.git', 'modules', sub_path)) end - FileUtils.mv(File.join('vim','bundle'), File.join('vim', 'bundle.old')) + FileUtils.mv(File.join('vim', 'bundle'), File.join('vim', 'bundle.old')) end -desc "Runs Vundle installer in a clean vim environment" +desc 'Runs Vundle installer in a clean vim environment' task :install_vundle do - puts "======================================================" - puts "Installing and updating vundles." - puts "The installer will now proceed to run PluginInstall to install vundles." - puts "======================================================" + puts '======================================================' + puts 'Installing and updating vundles.' + puts 'The installer will now proceed to run PluginInstall to install vundles.' + puts '======================================================' - puts "" + puts '' - vundle_path = File.join('vim','bundle', 'vundle') - unless File.exists?(vundle_path) - run %{ + vundle_path = File.join('vim', 'bundle', 'vundle') + unless File.exist?(vundle_path) + run %( cd $HOME/.yadr git clone https://github.com/gmarik/vundle.git #{vundle_path} - } + ) end - Vundle::update_vundle + Vundle.update_vundle end task :plugin_sync do - Vundle::plugin_sync + Vundle.plugin_sync end -task :default => 'install' +task default: 'install' private def run(cmd) @@ -175,93 +171,95 @@ def run(cmd) end def number_of_cores - if macos? - cores = run %{ sysctl -n hw.ncpu } - else - cores = run %{ nproc } - end + cores = if macos? + run %( sysctl -n hw.ncpu ) + else + run %( nproc ) + end puts cores.to_i end def run_bundle_config - return unless system("which bundle") + return unless system('which bundle') bundler_jobs = number_of_cores - 1 - puts "======================================================" - puts "Configuring Bundlers for parallel gem installation" - puts "======================================================" - run %{ bundle config --global jobs #{bundler_jobs} } + puts '======================================================' + puts 'Configuring Bundlers for parallel gem installation' + puts '======================================================' + run %( bundle config --global jobs #{bundler_jobs} ) puts end def install_rvm_binstubs - puts "======================================================" - puts "Installing RVM Bundler support. Never have to type" - puts "bundle exec again! Please use bundle --binstubs and RVM" + puts '======================================================' + puts 'Installing RVM Bundler support. Never have to type' + puts 'bundle exec again! Please use bundle --binstubs and RVM' puts "will automatically use those bins after cd'ing into dir." - puts "======================================================" - run %{ chmod +x $rvm_path/hooks/after_cd_bundler } + puts '======================================================' + run %( chmod +x $rvm_path/hooks/after_cd_bundler ) puts end def install_homebrew - run %{which brew} - unless $?.success? - puts "======================================================" + run %(which brew) + unless $CHILD_STATUS.success? + puts '======================================================' puts "Installing Homebrew, the OSX package manager...If it's" - puts "already installed, this will do nothing." - puts "======================================================" + puts 'already installed, this will do nothing.' + puts '======================================================' run %{ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"} end puts puts - puts "======================================================" - puts "Updating Homebrew." - puts "======================================================" - run %{brew update} + puts '======================================================' + puts 'Updating Homebrew.' + puts '======================================================' + run %(brew update) puts puts - puts "======================================================" - puts "Installing Homebrew packages...There may be some warnings." - puts "======================================================" - run %{brew install zsh ctags git hub tmux reattach-to-user-namespace ripgrep ghi} - run %{brew install macvim --with-override-system-vim --with-lua --with-luajit} + puts '======================================================' + puts 'Installing Homebrew packages...There may be some warnings.' + puts '======================================================' + run %(brew install zsh ctags git hub tmux reattach-to-user-namespace ripgrep ghi) + run %(brew install macvim --with-override-system-vim --with-lua --with-luajit) puts puts end def install_fonts - puts "======================================================" - puts "Installing patched fonts for Powerline/Lightline." - puts "======================================================" - run %{ cp -f $HOME/.yadr/fonts/* $HOME/Library/Fonts } if macos? - run %{ mkdir -p ~/.fonts && cp ~/.yadr/fonts/* ~/.fonts && fc-cache -vf ~/.fonts } if linux? + puts '======================================================' + puts 'Installing patched fonts for Powerline/Lightline.' + puts '======================================================' + run %( cp -f $HOME/.yadr/fonts/* $HOME/Library/Fonts ) if macos? + if linux? + run %( mkdir -p ~/.fonts && cp ~/.yadr/fonts/* ~/.fonts && fc-cache -vf ~/.fonts ) + end puts end def install_term_theme - puts "======================================================" - puts "Installing iTerm2 solarized theme." - puts "======================================================" - run %{ /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Light' dict" ~/Library/Preferences/com.googlecode.iterm2.plist } - run %{ /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Light.itermcolors' :'Custom Color Presets':'Solarized Light'" ~/Library/Preferences/com.googlecode.iterm2.plist } - run %{ /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Dark' dict" ~/Library/Preferences/com.googlecode.iterm2.plist } - run %{ /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Dark.itermcolors' :'Custom Color Presets':'Solarized Dark'" ~/Library/Preferences/com.googlecode.iterm2.plist } + puts '======================================================' + puts 'Installing iTerm2 solarized theme.' + puts '======================================================' + run %( /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Light' dict" ~/Library/Preferences/com.googlecode.iterm2.plist ) + run %( /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Light.itermcolors' :'Custom Color Presets':'Solarized Light'" ~/Library/Preferences/com.googlecode.iterm2.plist ) + run %( /usr/libexec/PlistBuddy -c "Add :'Custom Color Presets':'Solarized Dark' dict" ~/Library/Preferences/com.googlecode.iterm2.plist ) + run %( /usr/libexec/PlistBuddy -c "Merge 'iTerm2/Solarized Dark.itermcolors' :'Custom Color Presets':'Solarized Dark'" ~/Library/Preferences/com.googlecode.iterm2.plist ) # If iTerm2 is not installed or has never run, we can't autoinstall the profile since the plist is not there - if !File.exists?(File.join(ENV['HOME'], '/Library/Preferences/com.googlecode.iterm2.plist')) - puts "======================================================" - puts "To make sure your profile is using the solarized theme" - puts "Please check your settings under:" - puts "Preferences> Profiles> [your profile]> Colors> Load Preset.." - puts "======================================================" + unless File.exist?(File.join(ENV['HOME'], '/Library/Preferences/com.googlecode.iterm2.plist')) + puts '======================================================' + puts 'To make sure your profile is using the solarized theme' + puts 'Please check your settings under:' + puts 'Preferences> Profiles> [your profile]> Colors> Load Preset..' + puts '======================================================' return end # Ask the user which theme he wants to install - message = "Which theme would you like to apply to your iTerm2 profile?" + message = 'Which theme would you like to apply to your iTerm2 profile?' color_scheme = ask message, iTerm_available_themes return if color_scheme == 'None' @@ -270,26 +268,26 @@ def install_term_theme # Ask the user on which profile he wants to install the theme profiles = iTerm_profile_list - message = "I've found #{profiles.size} #{profiles.size>1 ? 'profiles': 'profile'} on your iTerm2 configuration, which one would you like to apply the Solarized theme to?" + message = "I've found #{profiles.size} #{profiles.size > 1 ? 'profiles' : 'profile'} on your iTerm2 configuration, which one would you like to apply the Solarized theme to?" profiles << 'All' selected = ask message, profiles if selected == 'All' - (profiles.size-1).times { |idx| apply_theme_to_iterm_profile_idx idx, color_scheme_file } + (profiles.size - 1).times { |idx| apply_theme_to_iterm_profile_idx idx, color_scheme_file } else apply_theme_to_iterm_profile_idx profiles.index(selected), color_scheme_file end end def iTerm_available_themes - Dir['iTerm2/*.itermcolors'].map { |value| File.basename(value, '.itermcolors')} << 'None' + Dir['iTerm2/*.itermcolors'].map { |value| File.basename(value, '.itermcolors') } << 'None' end def iTerm_profile_list - profiles=Array.new + profiles = [] begin - profiles << %x{ /usr/libexec/PlistBuddy -c "Print :'New Bookmarks':#{profiles.size}:Name" ~/Library/Preferences/com.googlecode.iterm2.plist 2>/dev/null} - end while $?.exitstatus==0 + profiles << `/usr/libexec/PlistBuddy -c "Print :'New Bookmarks':#{profiles.size}:Name" ~/Library/Preferences/com.googlecode.iterm2.plist 2>/dev/null` + end while $CHILD_STATUS.exitstatus == 0 profiles.pop profiles end @@ -297,23 +295,27 @@ end def ask(message, values) puts message while true - values.each_with_index { |val, idx| puts " #{idx+1}. #{val}" } + values.each_with_index { |val, idx| puts " #{idx + 1}. #{val}" } selection = STDIN.gets.chomp - if (Float(selection)==nil rescue true) || selection.to_i < 0 || selection.to_i > values.size+1 + if (begin + Float(selection).nil? + rescue StandardError + true + end) || selection.to_i < 0 || selection.to_i > values.size + 1 puts "ERROR: Invalid selection.\n\n" else break end end - selection = selection.to_i-1 + selection = selection.to_i - 1 values[selection] end def install_prezto puts - puts "Installing Prezto (ZSH Enhancements)..." + puts 'Installing Prezto (ZSH Enhancements)...' - run %{ ln -nfs "$HOME/.yadr/zsh/prezto" "${ZDOTDIR:-$HOME}/.zprezto" } + run %( ln -nfs "$HOME/.yadr/zsh/prezto" "${ZDOTDIR:-$HOME}/.zprezto" ) # The prezto runcoms are only going to be installed if zprezto has never been installed install_files(Dir.glob('zsh/prezto/runcoms/z*'), :symlink) @@ -323,29 +325,29 @@ def install_prezto install_files(Dir.glob('zsh/prezto-override/z*'), :symlink) puts - puts "Creating directories for your customizations" - run %{ mkdir -p $HOME/.zsh.before } - run %{ mkdir -p $HOME/.zsh.after } - run %{ mkdir -p $HOME/.zsh.prompts } + puts 'Creating directories for your customizations' + run %( mkdir -p $HOME/.zsh.before ) + run %( mkdir -p $HOME/.zsh.after ) + run %( mkdir -p $HOME/.zsh.prompts ) - if "#{ENV['SHELL']}".include? 'zsh' then - puts "Zsh is already configured as your shell of choice. Restart your session to load the new settings" + if (ENV['SHELL']).to_s.include? 'zsh' + puts 'Zsh is already configured as your shell of choice. Restart your session to load the new settings' else - puts "Setting zsh as your default shell" - if File.exists?("/usr/local/bin/zsh") - if File.readlines("/private/etc/shells").grep("/usr/local/bin/zsh").empty? - puts "Adding zsh to standard shell list" - run %{ echo "/usr/local/bin/zsh" | sudo tee -a /private/etc/shells } + puts 'Setting zsh as your default shell' + if File.exist?('/usr/local/bin/zsh') + if File.readlines('/private/etc/shells').grep('/usr/local/bin/zsh').empty? + puts 'Adding zsh to standard shell list' + run %( echo "/usr/local/bin/zsh" | sudo tee -a /private/etc/shells ) end - run %{ chsh -s /usr/local/bin/zsh } + run %( chsh -s /usr/local/bin/zsh ) else - run %{ chsh -s /bin/zsh } + run %( chsh -s /bin/zsh ) end end end -def want_to_install? (section) - if ENV["ASK"]=="true" +def want_to_install?(section) + if ENV['ASK'] == 'true' puts "Would you like to install configuration files for: #{section}? [y]es, [n]o" STDIN.gets.chomp == 'y' else @@ -356,28 +358,28 @@ end def install_files(files, method = :symlink) files.each do |f| file = f.split('/').last - source = "#{ENV["PWD"]}/#{f}" - target = "#{ENV["HOME"]}/.#{file}" + source = "#{ENV['PWD']}/#{f}" + target = "#{ENV['HOME']}/.#{file}" puts "======================#{file}==============================" puts "Source: #{source}" puts "Target: #{target}" - if File.exists?(target) && (!File.symlink?(target) || (File.symlink?(target) && File.readlink(target) != source)) + if File.exist?(target) && (!File.symlink?(target) || (File.symlink?(target) && File.readlink(target) != source)) puts "[Overwriting] #{target}...leaving original at #{target}.backup..." - run %{ mv "$HOME/.#{file}" "$HOME/.#{file}.backup" } + run %( mv "$HOME/.#{file}" "$HOME/.#{file}.backup" ) end if method == :symlink - run %{ ln -nfs "#{source}" "#{target}" } + run %( ln -nfs "#{source}" "#{target}" ) else - run %{ cp -f "#{source}" "#{target}" } + run %( cp -f "#{source}" "#{target}" ) end # Temporary solution until we find a way to allow customization # This modifies zshrc to load all of yadr's zsh extensions. # Eventually yadr's zsh extensions should be ported to prezto modules. - source_config_code = "for config_file ($HOME/.yadr/zsh/*.zsh) source $config_file" + source_config_code = 'for config_file ($HOME/.yadr/zsh/*.zsh) source $config_file' if file == 'zshrc' File.open(target, 'a+') do |zshrc| if zshrc.readlines.grep(/#{Regexp.escape(source_config_code)}/).empty? @@ -386,39 +388,38 @@ def install_files(files, method = :symlink) end end - puts "==========================================================" + puts '==========================================================' puts end end def needs_migration_to_vundle? - File.exists? File.join('vim', 'bundle', 'tpope-vim-pathogen') + File.exist? File.join('vim', 'bundle', 'tpope-vim-pathogen') end - def list_vim_submodules - result=`git submodule -q foreach 'echo $name"||"\`git remote -v | awk "END{print \\\\\$2}"\`'`.select{ |line| line =~ /^vim.bundle/ }.map{ |line| line.split('||') } + result = `git submodule -q foreach 'echo $name"||"\`git remote -v | awk "END{print \\\\\$2}"\`'`.select { |line| line =~ /^vim.bundle/ }.map { |line| line.split('||') } Hash[*result.flatten] end def apply_theme_to_iterm_profile_idx(index, color_scheme_path) - values = Array.new + values = [] 16.times { |i| values << "Ansi #{i} Color" } values << ['Background Color', 'Bold Color', 'Cursor Color', 'Cursor Text Color', 'Foreground Color', 'Selected Text Color', 'Selection Color'] - values.flatten.each { |entry| run %{ /usr/libexec/PlistBuddy -c "Delete :'New Bookmarks':#{index}:'#{entry}'" ~/Library/Preferences/com.googlecode.iterm2.plist } } + values.flatten.each { |entry| run %( /usr/libexec/PlistBuddy -c "Delete :'New Bookmarks':#{index}:'#{entry}'" ~/Library/Preferences/com.googlecode.iterm2.plist ) } - run %{ /usr/libexec/PlistBuddy -c "Merge '#{color_scheme_path}' :'New Bookmarks':#{index}" ~/Library/Preferences/com.googlecode.iterm2.plist } - run %{ defaults read com.googlecode.iterm2 } + run %( /usr/libexec/PlistBuddy -c "Merge '#{color_scheme_path}' :'New Bookmarks':#{index}" ~/Library/Preferences/com.googlecode.iterm2.plist ) + run %( defaults read com.googlecode.iterm2 ) end def success_msg(action) - puts "" - puts " _ _ _ " - puts " | | | | | | " - puts " | |___| |_____ __| | ____ " - puts " |_____ (____ |/ _ |/ ___) " - puts " _____| / ___ ( (_| | | " + puts '' + puts ' _ _ _ ' + puts ' | | | | | | ' + puts ' | |___| |_____ __| | ____ ' + puts ' |_____ (____ |/ _ |/ ___) ' + puts ' _____| / ___ ( (_| | | ' puts " (_______\_____|\____|_| " - puts "" + puts '' puts "YADR has been #{action}. Please restart your terminal and vim." end diff --git a/vim/vundles/project.vundle b/vim/vundles/project.vundle index df3bff2..d18e021 100644 --- a/vim/vundles/project.vundle +++ b/vim/vundles/project.vundle @@ -5,4 +5,3 @@ Bundle 'JazzCore/ctrlp-cmatcher' Bundle 'junegunn/fzf' Bundle "xolox/vim-misc" Bundle "xolox/vim-session" -Bundle "ycm-core/YouCompleteMe"