" 参考:https://github.com/XVimProject/XVim2/blob/master/Documents/FeatureList.md
"   :https://github.com/XVimProject/XVim/blob/master/Documents/Developers/MenuActionList.txt
"   :https://qiita.com/zebult/items/d2393526e73e01cdac94
"   :https://github.com/zebult/dotfiles/blob/master/.xvimrc

" --------------------------------------------------------------
" Search
set hlsearch
set ignorecase
set smartcase
set wrapscan
"set gdefault

" Edit
"set expandtab

" Display(GUI固有ではない)
set number
set wrap
set laststatus=2

set clipboard=unnamed,unnamedplus

" --------------------------------------------------------------
" Mappings

noremap H 0
noremap L $
noremap 0 H
noremap $ L

noremap <Left> <Nop>
noremap <Down> <Nop>
noremap <Up> <Nop>
noremap <Right> <Nop>

nnoremap Y y$

nnoremap + <C-a>
nnoremap - <C-x>

nnoremap s <Nop>
nnoremap sj <C-w>j
nnoremap sk <C-w>k
nnoremap sl <C-w>l
nnoremap sh <C-w>h
nnoremap sw <C-w>w
nnoremap sr <C-w>r
nnoremap sJ <C-w>J
nnoremap sK <C-w>K
nnoremap sL <C-w>L
nnoremap sH <C-w>H
nnoremap ss :<C-u>sp<CR>
nnoremap sv :<C-u>vs<CR>

inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>

" 補完を選択できなくなるためコメントアウト
"inoremap <Left> <Nop>
"inoremap <Down> <Nop>
"inoremap <Up> <Nop>
"inoremap <Right> <Nop>

nnoremap <Space>r :run<CR>
nnoremap <Space>n :xcmenucmd Run Without Building<CR>
nnoremap <Space>b :xcmenucmd Build<CR>
nnoremap <Space>. :xcmenucmd Stop<CR>
nnoremap <Space>c :xcmenucmd Clean Build Folder<CR>

nnoremap <Space><Space> :xccmd toggleBreakpointAtCurrentLine<CR>
nnoremap sc :xcmenucmd Continue<CR>
nnoremap so :xcmenucmd Step Over<CR>
nnoremap si :xcmenucmd Step Into<CR>

nnoremap <Space>i :xccmd indentSelection<CR>
vnoremap <Space>i :xccmd indentSelection<CR>
nnoremap <Space>/ :xcmenucmd Toggle Comments<CR>
vnoremap <Space>/ :xcmenucmd Toggle Comments<CR>

nnoremap <Space>o :xccmd openQuickly<CR>
nnoremap <Space>d :xcmenucmd Show Document Items<CR>
nnoremap <Space>f :xccmd findInWorkspace<CR>
nnoremap <Space>h :xccmd toggleNavigatorsVisibility<CR>
nnoremap <Space>j :xccmd toggleDebuggerVisibility<CR>
nnoremap <Space>k :xccmd toggleToolbarShown<CR>
nnoremap <Space>l :xcmenucmd Show Inspectors<CR>