" ====================
" Deoplete
" ====================

let g:deoplete#enable_at_startup = 1      "enable deoplete at vim startup
let g:deoplete#auto_complete_delay = 0
let g:deoplete#auto_complete_start_length = 1
let g:deoplete#enable_camel_case = 0
let g:deoplete#enable_ignore_case = 0   "let matcher ignore case
let g:deoplete#enable_refresh_always = 0
let g:deoplete#enable_smart_case = 1
let g:deoplete#file#enable_buffer_path = 1
let g:deoplete#enable_fuzzy_completion = 1   "fuzzy match
let g:deoplete#max_list = 1000

let g:deoplete#sources = {}
let g:deoplete#sources._ = ['file', 'neosnippet']

let g:deoplete#omni_patterns = {}
let g:deoplete#omni_patterns.html = '<[^>]*'
let g:deoplete#omni_patterns.xml  = '<[^>]*'
let g:deoplete#omni_patterns.md   = '<[^>]*'
let g:deoplete#omni_patterns.css   = '^\s\+\w\+\|\w\+[):;]\?\s\+\w*\|[@!]'
let g:deoplete#omni_patterns.go = '\h\w*\.\?'
" let g:deoplete#omni_patterns.go = '[^.[:digit:] *\t]\.\w*' " deopleteでnsを出すため
let g:deoplete#omni_patterns.javascript = '\h\w*\.\?'
" let g:deoplete#omni_patterns.javascript = '[^. \t]\.\%(\h\w*\)\?' " deopleteでnsを出すため
" let g:go_snippet_engine = "neosnippet"


" see https://gist.github.com/zchee/c314e63ae8b6bea50bb4

" ====================
" ALE
" ====================
" Write this in your vimrc file
let g:ale_lint_on_text_changed = 'never'
" You can disable this option too
" if you don't want linters to run on opening a file
let g:ale_lint_on_enter = 0

" ====================
" NeoComplete
" ====================

" " Disable AutoComplPop.
" let g:acp_enableAtStartup = 0
"
" let g:neocomplete#enable_at_startup = 1
" " Use smartcase.
" let g:neocomplete#enable_smart_case = 1
" " Use camel case completion.
" let g:neocomplete#enable_camel_case_completion = 1
" " let g:neocomplete#sources#syntax#min_keyword_length = 3
" let g:neocomplete#force_overwrite_completefunc=1
"
" if !exists('g:neocomplete#force_omni_input_patterns')
"   let g:neocomplete#force_omni_input_patterns = {}
" endif
" let g:neocomplete#force_omni_input_patterns.javascript = '\h\w*\.\?'
" let g:neocomplete#force_omni_input_patterns.go = '\h\w*\.\?'
"
" if !exists('g:neocomplete#sources#omni#input_patterns')
"   let g:neocomplete#sources#omni#input_patterns = {}
" endif
" let g:neocomplete#sources#omni#input_patterns.javascript = '\h\w*\.\?'
" let g:neocomplete#sources#omni#input_patterns.go = '\h\w*\.\?'

" ====================
" NeoCompletecaceh
" ====================

" " for Neocomplecache
" let g:acp_enableAtStartup = 0
" " neocomplcacheを有効化
" let g:neocomplcache_enable_at_startup = 1
" " smarrt case有効化。 大文字が入力されるまで大文字小文字の区別を無視する
" let g:neocomplcache_enable_smart_case = 1
" " _(アンダーバー)区切りの補完を有効化
" let g:neocomplcache_enable_underbar_completion = 0
" " シンタックスをキャッシュするときの最小文字長を3に
" let g:neocomplcache_min_syntax_length = 3
" " -入力による候補番号の表示
" let g:neocomplcache_enable_quick_match = 1
" " 補完候補の一番先頭を選択状態にする(AutoComplPopと似た動作)
" let g:neocomplcache_enable_auto_select = 1
" " ポップアップメニューで表示される候補の数。初期値は100
" let g:neocomplcache_max_list = 20
"
" " Golang completion
" if !exists('g:neocomplcache_omni_patterns')
"   let g:neocomplcache_omni_patterns = {}
" endif
" let g:neocomplcache_omni_patterns.go = '\h\w*\.\?'
" let g:neocomplcache_omni_patterns.javascript = '\h\w*\.\?'

" ====================
" Tern
" ====================

let g:jsx_ext_required = 1
let g:tern#command = ["tern"]
let g:tern#arguments = ["--persistent"]
let tern_show_argument_hints = 'on_move'
let tern_show_signature_in_pum = 1
let tern#is_show_argument_hints_enabled = 1