Skip to content

godoctor/godoctor.vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

godoctor.vim

Vim plugin for the godoctor. Tested with vim 7.3 and 7.4.

Install

godoctor.vim follows the standard runtime path structure, so we highly recommend to use a common and well known plugin manager to install godoctor.vim. filetype plugin indent on must also be set (add this to your ~/.vimrc).

  • Pathogen
    • git clone https://github.com/godoctor/godoctor.vim.git ~/.vim/bundle/godoctor.vim
  • vim-plug
    • Plug 'godoctor/godoctor.vim'
  • NeoBundle
    • NeoBundle 'godoctor/godoctor.vim'
  • Vundle
    • Plugin 'godoctor/godoctor.vim'
  • manual
    • git clone https://github.com/godoctor/godoctor.vim ~/.vim/godoctor.vim

    • Add these lines to ~/.vimrc

      if exists("g:did_load_filetypes")
        filetype off
        filetype plugin indent off
      endif
      set rtp+=~/.vim/godoctor.vim
      filetype plugin indent on
      syntax on
      

If godoctor is not already installed and in your $PATH, just type :GoDoctorInstall. This will install it to $GOPATH/bin, which will also need to be in your $PATH, which assumes you have $GOPATH set. git must be installed for :GoDoctorInstall to work.

We took express care not to conflict with anything in https://github.com/fatih/vim-go. This means (vim-go note aside) that it is safe to have vim-go installed alongside godoctor.vim. Notably, vim-go has :GoRename and :GoRefactor where we have :Rename and :Refactor when editing a .go file.

Getting started

With cursor in thing to rename:

:Rename <newname>

Highlighting block to extract:

:Refactor extract newfunc

Setting scope to git root

The default scope will be $PWD, if none is set explicitly with g:doctor_scope. If you would prefer to use the git root scope on every refactoring, you may do the following:

Add the following to your .vimrc:

function! s:find_git_root()
  return system('git rev-parse --show-toplevel 2> /dev/null')[:-2]
endfunction

function! DoctorScopeFunc()
  let l:gp = $GOPATH
  if l:gp == ""
    return ""
  endif

  let l:gp = l:gp."/src/"
  let l:gr = s:find_git_root()

  return substitute(l:gr, l:gp, "", "")
endfunction

Releases

No releases published

Packages

No packages published