summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShougo <Shougo.Matsu@gmail.com>2016-06-26 11:09:05 +0900
committerGitHub <noreply@github.com>2016-06-26 11:09:05 +0900
commit1a84c857dc4481bcf6af01cdf5c20396aa9dff1a (patch)
tree8dc487db0d8f515fdf6d3dd5713e5a42dbb18703
parente40029e3281d314ee95c10b6adbd7a4cc91afae1 (diff)
parent2af84d10e2c9d6c70bc0d8bd97c964e47b6a2b08 (diff)
downloaddeoplete.nvim-1a84c857dc4481bcf6af01cdf5c20396aa9dff1a.zip
Merge pull request #296 from Shougo/refactor
Refactor
-rw-r--r--autoload/deoplete.vim45
-rw-r--r--autoload/deoplete/handler.vim (renamed from autoload/deoplete/handlers.vim)8
-rw-r--r--autoload/deoplete/init.vim19
-rw-r--r--autoload/deoplete/mapping.vim41
-rw-r--r--autoload/deoplete/mappings.vim71
-rw-r--r--doc/deoplete.txt49
-rw-r--r--rplugin/python3/deoplete/deoplete.py24
-rw-r--r--rplugin/python3/deoplete/filter/base.py (renamed from rplugin/python3/deoplete/filters/base.py)0
-rw-r--r--rplugin/python3/deoplete/filter/converter_auto_delimiter.py (renamed from rplugin/python3/deoplete/filters/converter_auto_delimiter.py)0
-rw-r--r--rplugin/python3/deoplete/filter/converter_auto_paren.py (renamed from rplugin/python3/deoplete/filters/converter_auto_paren.py)0
-rw-r--r--rplugin/python3/deoplete/filter/converter_remove_overlap.py (renamed from rplugin/python3/deoplete/filters/converter_remove_overlap.py)0
-rw-r--r--rplugin/python3/deoplete/filter/converter_remove_paren.py (renamed from rplugin/python3/deoplete/filters/converter_remove_paren.py)0
-rw-r--r--rplugin/python3/deoplete/filter/converter_truncate_abbr.py (renamed from rplugin/python3/deoplete/filters/converter_truncate_abbr.py)0
-rw-r--r--rplugin/python3/deoplete/filter/converter_truncate_menu.py (renamed from rplugin/python3/deoplete/filters/converter_truncate_menu.py)0
-rw-r--r--rplugin/python3/deoplete/filter/matcher_full_fuzzy.py (renamed from rplugin/python3/deoplete/filters/matcher_full_fuzzy.py)0
-rw-r--r--rplugin/python3/deoplete/filter/matcher_fuzzy.py (renamed from rplugin/python3/deoplete/filters/matcher_fuzzy.py)0
-rw-r--r--rplugin/python3/deoplete/filter/matcher_head.py (renamed from rplugin/python3/deoplete/filters/matcher_head.py)0
-rw-r--r--rplugin/python3/deoplete/filter/matcher_length.py (renamed from rplugin/python3/deoplete/filters/matcher_length.py)0
-rw-r--r--rplugin/python3/deoplete/filter/sorter_rank.py (renamed from rplugin/python3/deoplete/filters/sorter_rank.py)0
-rw-r--r--rplugin/python3/deoplete/filter/sorter_word.py (renamed from rplugin/python3/deoplete/filters/sorter_word.py)0
-rw-r--r--rplugin/python3/deoplete/source/base.py (renamed from rplugin/python3/deoplete/sources/base.py)0
-rw-r--r--rplugin/python3/deoplete/source/buffer.py (renamed from rplugin/python3/deoplete/sources/buffer.py)0
-rw-r--r--rplugin/python3/deoplete/source/dictionary.py (renamed from rplugin/python3/deoplete/sources/dictionary.py)0
-rw-r--r--rplugin/python3/deoplete/source/file.py (renamed from rplugin/python3/deoplete/sources/file.py)0
-rw-r--r--rplugin/python3/deoplete/source/member.py (renamed from rplugin/python3/deoplete/sources/member.py)0
-rw-r--r--rplugin/python3/deoplete/source/omni.py (renamed from rplugin/python3/deoplete/sources/omni.py)0
-rw-r--r--rplugin/python3/deoplete/source/tag.py (renamed from rplugin/python3/deoplete/sources/tag.py)0
-rw-r--r--rplugin/python3/deoplete/tests/test_filter.py2
28 files changed, 138 insertions, 121 deletions
diff --git a/autoload/deoplete.vim b/autoload/deoplete.vim
index c6d58d6..96975fd 100644
--- a/autoload/deoplete.vim
+++ b/autoload/deoplete.vim
@@ -31,4 +31,49 @@ function! deoplete#enable_logging(level, logfile) abort "{{{
\ 'deoplete_enable_logging', a:level, a:logfile)
endfunction"}}}
+function! deoplete#manual_complete(...) abort "{{{
+ if deoplete#initialize()
+ return
+ endif
+
+ " Start complete.
+ return (pumvisible() ? "\<C-e>" : '')
+ \ . "\<C-r>=deoplete#mapping#_rpcnotify_wrapper("
+ \ . string(get(a:000, 0, [])) . ")\<CR>"
+endfunction"}}}
+function! deoplete#close_popup() abort "{{{
+ let g:deoplete#_context.position = getpos('.')
+ return pumvisible() ? "\<C-y>" : ''
+endfunction"}}}
+function! deoplete#smart_close_popup() abort "{{{
+ let g:deoplete#_context.position = getpos('.')
+ return pumvisible() ? "\<C-e>" : ''
+endfunction"}}}
+function! deoplete#cancel_popup() abort "{{{
+ let g:deoplete#_context.position = getpos('.')
+ return pumvisible() ? "\<C-e>" : ''
+endfunction"}}}
+function! deoplete#refresh() abort "{{{
+ let g:deoplete#_context.refresh = 1
+ if g:deoplete#_context.event ==# 'Manual'
+ let g:deoplete#_context.event = 'Refresh'
+ endif
+ return pumvisible() ? "\<C-e>" : ''
+endfunction"}}}
+
+function! deoplete#undo_completion() abort "{{{
+ if !exists('v:completed_item') || empty(v:completed_item)
+ return ''
+ endif
+
+ let input = deoplete#util#get_input('')
+ if strridx(input, v:completed_item.word) !=
+ \ len(input) - len(v:completed_item.word)
+ return ''
+ endif
+
+ return deoplete#mapping#smart_close_popup() .
+ \ repeat("\<C-h>", strchars(v:completed_item.word))
+endfunction"}}}
+
" vim: foldmethod=marker
diff --git a/autoload/deoplete/handlers.vim b/autoload/deoplete/handler.vim
index 3a714ee..fb27120 100644
--- a/autoload/deoplete/handlers.vim
+++ b/autoload/deoplete/handler.vim
@@ -1,10 +1,10 @@
"=============================================================================
-" FILE: handlers.vim
+" FILE: handler.vim
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
" License: MIT license
"=============================================================================
-function! deoplete#handlers#_init() abort "{{{
+function! deoplete#handler#_init() abort "{{{
augroup deoplete
autocmd!
autocmd InsertLeave * call s:on_insert_leave()
@@ -45,14 +45,14 @@ function! s:completion_begin(event) abort "{{{
\ 'g:deoplete#_omni_patterns'))
if pattern != '' && &l:omnifunc != ''
\ && context.input =~# '\%('.pattern.'\)$'
- call deoplete#mappings#_set_completeopt()
+ call deoplete#mapping#_set_completeopt()
call feedkeys("\<C-x>\<C-o>", 'n')
return
endif
endfor
endfor
- call deoplete#mappings#_set_completeopt()
+ call deoplete#mapping#_set_completeopt()
call rpcnotify(g:deoplete#_channel_id,
\ 'deoplete_auto_completion_begin', context)
endfunction"}}}
diff --git a/autoload/deoplete/init.vim b/autoload/deoplete/init.vim
index 1ecaea4..6768e9c 100644
--- a/autoload/deoplete/init.vim
+++ b/autoload/deoplete/init.vim
@@ -32,21 +32,6 @@ function! deoplete#init#_initialize() abort "{{{
return 1
endif
- if &completeopt !~# 'noinsert\|noselect'
- let save_completeopt = &completeopt
- try
- set completeopt+=noselect
- catch
- call deoplete#util#print_error(
- \ 'deoplete.nvim does not work with this version.')
- call deoplete#util#print_error(
- \ 'Please update neovim to latest version.')
- return 1
- finally
- let &completeopt = save_completeopt
- endtry
- endif
-
try
if !exists('g:loaded_remote_plugins')
runtime! plugin/rplugin.vim
@@ -72,7 +57,7 @@ function! deoplete#init#_initialize() abort "{{{
return 1
endif
- call deoplete#mappings#_init()
+ call deoplete#mapping#_init()
call deoplete#init#_variables()
let s:is_enabled = g:deoplete#enable_at_startup
@@ -83,7 +68,7 @@ function! deoplete#init#_initialize() abort "{{{
endif
endfunction"}}}
function! deoplete#init#_enable() abort "{{{
- call deoplete#handlers#_init()
+ call deoplete#handler#_init()
let s:is_enabled = 1
endfunction"}}}
function! deoplete#init#_disable() abort "{{{
diff --git a/autoload/deoplete/mapping.vim b/autoload/deoplete/mapping.vim
new file mode 100644
index 0000000..ad191c1
--- /dev/null
+++ b/autoload/deoplete/mapping.vim
@@ -0,0 +1,41 @@
+"=============================================================================
+" FILE: mapping.vim
+" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
+" License: MIT license
+"=============================================================================
+
+function! deoplete#mapping#_init() abort "{{{
+ inoremap <silent> <Plug>(deoplete_start_complete)
+ \ <C-r>=deoplete#mapping#_do_complete(g:deoplete#_context)<CR>
+ inoremap <silent> <Plug>(deoplete_auto_refresh)
+ \ <C-r>=deoplete#mapping#refresh()<CR>
+endfunction"}}}
+
+function! deoplete#mapping#_do_complete(context) abort "{{{
+ if b:changedtick == get(a:context, 'changedtick', -1)
+ \ && mode() ==# 'i'
+ call complete(a:context.complete_position + 1, a:context.candidates)
+ endif
+
+ return ''
+endfunction"}}}
+function! deoplete#mapping#_set_completeopt() abort "{{{
+ if exists('g:deoplete#_saved_completeopt')
+ return
+ endif
+ let g:deoplete#_saved_completeopt = &completeopt
+ set completeopt-=longest
+ set completeopt+=menuone
+ set completeopt-=menu
+ if &completeopt !~# 'noinsert\|noselect'
+ set completeopt+=noselect
+ endif
+endfunction"}}}
+function! deoplete#mapping#_rpcnotify_wrapper(sources) abort "{{{
+ call rpcrequest(g:deoplete#_channel_id,
+ \ 'deoplete_manual_completion_begin',
+ \ deoplete#init#_context('Manual', a:sources))
+ return ''
+endfunction"}}}
+
+" vim: foldmethod=marker
diff --git a/autoload/deoplete/mappings.vim b/autoload/deoplete/mappings.vim
index c4fc223..30432a0 100644
--- a/autoload/deoplete/mappings.vim
+++ b/autoload/deoplete/mappings.vim
@@ -4,84 +4,27 @@
" License: MIT license
"=============================================================================
-function! deoplete#mappings#_init() abort "{{{
- inoremap <silent> <Plug>(deoplete_start_complete)
- \ <C-r>=deoplete#mappings#_do_complete(g:deoplete#_context)<CR>
- inoremap <silent> <Plug>(deoplete_auto_refresh)
- \ <C-r>=deoplete#mappings#refresh()<CR>
-endfunction"}}}
-
-function! deoplete#mappings#_do_complete(context) abort "{{{
- if b:changedtick == get(a:context, 'changedtick', -1)
- \ && mode() ==# 'i'
- call complete(a:context.complete_position + 1, a:context.candidates)
- endif
-
- return ''
-endfunction"}}}
-function! deoplete#mappings#_set_completeopt() abort "{{{
- if exists('g:deoplete#_saved_completeopt')
- return
- endif
- let g:deoplete#_saved_completeopt = &completeopt
- set completeopt-=longest
- set completeopt+=menuone
- set completeopt-=menu
- if &completeopt !~# 'noinsert\|noselect'
- set completeopt+=noselect
- endif
-endfunction"}}}
+" For compatibility.
function! deoplete#mappings#manual_complete(...) abort "{{{
- if deoplete#initialize()
- return
- endif
-
- " Start complete.
- return (pumvisible() ? "\<C-e>" : '')
- \ . "\<C-r>=deoplete#mappings#_rpcnotify_wrapper("
- \ . string(get(a:000, 0, [])) . ")\<CR>"
-endfunction"}}}
-function! deoplete#mappings#_rpcnotify_wrapper(sources) abort "{{{
- call rpcrequest(g:deoplete#_channel_id,
- \ 'deoplete_manual_completion_begin',
- \ deoplete#init#_context('Manual', a:sources))
- return ''
+ return call('deoplete#manual_complete', a:000)
endfunction"}}}
function! deoplete#mappings#close_popup() abort "{{{
- let g:deoplete#_context.position = getpos('.')
- return pumvisible() ? "\<C-y>" : ''
+ return deoplete#close_popup()
endfunction"}}}
function! deoplete#mappings#smart_close_popup() abort "{{{
- let g:deoplete#_context.position = getpos('.')
- return pumvisible() ? "\<C-e>" : ''
+ return deoplete#smart_close_popup()
endfunction"}}}
function! deoplete#mappings#cancel_popup() abort "{{{
- let g:deoplete#_context.position = getpos('.')
- return pumvisible() ? "\<C-e>" : ''
+ return deoplete#cancel_popup()
endfunction"}}}
function! deoplete#mappings#refresh() abort "{{{
- let g:deoplete#_context.refresh = 1
- if g:deoplete#_context.event ==# 'Manual'
- let g:deoplete#_context.event = 'Refresh'
- endif
- return pumvisible() ? "\<C-e>" : ''
+ return deoplete#refresh()
endfunction"}}}
function! deoplete#mappings#undo_completion() abort "{{{
- if !exists('v:completed_item') || empty(v:completed_item)
- return ''
- endif
-
- let input = deoplete#util#get_input('')
- if strridx(input, v:completed_item.word) !=
- \ len(input) - len(v:completed_item.word)
- return ''
- endif
-
- return deoplete#mappings#smart_close_popup() .
- \ repeat("\<C-h>", strchars(v:completed_item.word))
+ return deoplete#undo_completion()
endfunction"}}}
" vim: foldmethod=marker
diff --git a/doc/deoplete.txt b/doc/deoplete.txt
index 8b91d75..39e9821 100644
--- a/doc/deoplete.txt
+++ b/doc/deoplete.txt
@@ -131,7 +131,7 @@ g:deoplete#auto_complete_start_length
g:deoplete#disable_auto_complete
It controls whether you invalidate automatic completion. If
it is 1, automatic completion becomes invalid, but can use the
- manual completion by |deoplete#mappings#manual_complete()|.
+ manual completion by |deoplete#manual_complete()|.
Default value: 0
@@ -288,7 +288,7 @@ g:deoplete#omni#input_patterns
\ ['[^. *\t]\.\w*', '[a-zA-Z_]\w*::']
let g:deoplete#omni#input_patterns.java = '[^. *\t]\.\w*'
let g:deoplete#omni#input_patterns.php =
- \ '\w+|[^. \t]->\w*\|\w+::\w*'
+ \ '\w+|[^. \t]->\w*|\w+::\w*'
<
Default value: in g:deoplete#omni#_input_patterns
@@ -420,8 +420,8 @@ deoplete#enable_logging({level}, {logfile})
------------------------------------------------------------------------------
KEY MAPPINGS *deoplete-key-mappings*
- *deoplete#mappings#manual_complete()*
-deoplete#mappings#manual_complete([{sources}])
+ *deoplete#manual_complete()*
+deoplete#manual_complete([{sources}])
Use this function with |:inoremap| <expr> (|:map-expression|).
It calls the completion of deoplete. You can use it with
custom completion setups.
@@ -434,38 +434,37 @@ deoplete#mappings#manual_complete([{sources}])
typically.
>
inoremap <silent><expr> <Tab>
- \ pumvisible() ? "\<C-n>" :
- \ deoplete#mappings#manual_complete()
+ \ pumvisible() ? "\<C-n>" : deoplete#manual_complete()
<
- *deoplete#mappings#smart_close_popup()*
-deoplete#mappings#smart_close_popup()
+ *deoplete#smart_close_popup()*
+deoplete#smart_close_popup()
Insert candidate and re-generate popup menu for deoplete.
>
inoremap <expr><C-h>
- \ deoplete#mappings#smart_close_popup()."\<C-h>"
+ \ deoplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS>
- \ deoplete#mappings#smart_close_popup()."\<C-h>"
+ \ deoplete#smart_close_popup()."\<C-h>"
<
Note: This mapping is conflicted with |SuperTab| or |endwise|
plugins.
Note: This key mapping is for <C-h> or <BS> keymappings.
- *deoplete#mappings#close_popup()*
-deoplete#mappings#close_popup()
+ *deoplete#close_popup()*
+deoplete#close_popup()
Insert candidate and close popup menu for deoplete.
- *deoplete#mappings#undo_completion()*
-deoplete#mappings#undo_completion()
+ *deoplete#undo_completion()*
+deoplete#undo_completion()
Undo inputted candidate. >
- inoremap <expr><C-g> deoplete#mappings#undo_completion()
+ inoremap <expr><C-g> deoplete#undo_completion()
<
- *deoplete#mappings#refresh()*
-deoplete#mappings#refresh()
+ *deoplete#refresh()*
+deoplete#refresh()
Refresh the candidates.
>
- inoremap <expr><C-l> deoplete#mappings#refresh()
+ inoremap <expr><C-l> deoplete#refresh()
<
==============================================================================
EXAMPLES *deoplete-examples*
@@ -476,13 +475,13 @@ EXAMPLES *deoplete-examples*
let g:deoplete#enable_smart_case = 1
" <C-h>, <BS>: close popup and delete backword char.
- inoremap <expr><C-h> deoplete#mappings#smart_close_popup()."\<C-h>"
- inoremap <expr><BS> deoplete#mappings#smart_close_popup()."\<C-h>"
+ inoremap <expr><C-h> deoplete#smart_close_popup()."\<C-h>"
+ inoremap <expr><BS> deoplete#smart_close_popup()."\<C-h>"
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function() abort
- return deoplete#mappings#close_popup() . "\<CR>"
+ return deoplete#close_popup() . "\<CR>"
endfunction
<
==============================================================================
@@ -583,10 +582,10 @@ converter_truncate_menu
CREATE SOURCE *deoplete-create-source*
To create source, you should read default sources implementation in
-rplugin/python3/deoplete/sources/*.py.
+rplugin/python3/deoplete/source/*.py.
-The files in rplugin/python3/deoplete/sources/*.py are automatically loaded
-and deoplete creates new Source class object.
+The files are automatically loaded and deoplete creates new Source class
+object.
Source class must extend Base class in ".base".
Note: The sources must be created by Python3 language.
@@ -1027,7 +1026,7 @@ new line, you should map <CR>. >
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function() abort
- return deoplete#mappings#close_popup() . "\<CR>"
+ return deoplete#close_popup() . "\<CR>"
endfunction
Q: I want to use "vim-lua-ftplugin".
diff --git a/rplugin/python3/deoplete/deoplete.py b/rplugin/python3/deoplete/deoplete.py
index fd27021..bbb730a 100644
--- a/rplugin/python3/deoplete/deoplete.py
+++ b/rplugin/python3/deoplete/deoplete.py
@@ -8,8 +8,8 @@ from deoplete.util import \
error, globruntime, charpos2bytepos, \
bytepos2charpos, get_custom, get_syn_name, get_buffer_config
-import deoplete.sources
-import deoplete.filters
+import deoplete.source
+import deoplete.filter
import deoplete.util
from deoplete import logger
@@ -20,8 +20,8 @@ import copy
import traceback
import time
-deoplete.sources # silence pyflakes
-deoplete.filters # silence pyflakes
+deoplete.source # silence pyflakes
+deoplete.filter # silence pyflakes
class Deoplete(logger.LoggingMixin):
@@ -242,13 +242,17 @@ class Deoplete(logger.LoggingMixin):
def load_sources(self, context):
# Load sources from runtimepath
for path in globruntime(context['runtimepath'],
- 'rplugin/python3/deoplete/sources/base.py'
+ 'rplugin/python3/deoplete/source/base.py'
) + globruntime(
context['runtimepath'],
- 'rplugin/python3/deoplete/sources/*.py'):
+ 'rplugin/python3/deoplete/source/*.py'
+ ) + globruntime(
+ context['runtimepath'],
+ 'rplugin/python3/deoplete/sources/*.py'
+ ):
filename = os.path.basename(path)[: -3]
module = importlib.machinery.SourceFileLoader(
- 'deoplete.sources.' + filename, path).load_module()
+ 'deoplete.source.' + filename, path).load_module()
self.debug(path)
if not hasattr(module, 'Source') or filename in self.__sources:
continue
@@ -277,13 +281,13 @@ class Deoplete(logger.LoggingMixin):
def load_filters(self, context):
# Load filters from runtimepath
for path in globruntime(context['runtimepath'],
- 'rplugin/python3/deoplete/filters/base.py'
+ 'rplugin/python3/deoplete/filter/base.py'
) + globruntime(
context['runtimepath'],
- 'rplugin/python3/deoplete/filters/*.py'):
+ 'rplugin/python3/deoplete/filter/*.py'):
filename = os.path.basename(path)[: -3]
module = importlib.machinery.SourceFileLoader(
- 'deoplete.filters.' + filename, path).load_module()
+ 'deoplete.filter.' + filename, path).load_module()
if hasattr(module, 'Filter') and filename not in self.__filters:
filter = module.Filter(self.__vim)
self.__filters[filter.name] = filter
diff --git a/rplugin/python3/deoplete/filters/base.py b/rplugin/python3/deoplete/filter/base.py
index 8de16bc..8de16bc 100644
--- a/rplugin/python3/deoplete/filters/base.py
+++ b/rplugin/python3/deoplete/filter/base.py
diff --git a/rplugin/python3/deoplete/filters/converter_auto_delimiter.py b/rplugin/python3/deoplete/filter/converter_auto_delimiter.py
index 200359e..200359e 100644
--- a/rplugin/python3/deoplete/filters/converter_auto_delimiter.py
+++ b/rplugin/python3/deoplete/filter/converter_auto_delimiter.py
diff --git a/rplugin/python3/deoplete/filters/converter_auto_paren.py b/rplugin/python3/deoplete/filter/converter_auto_paren.py
index cd14ceb..cd14ceb 100644
--- a/rplugin/python3/deoplete/filters/converter_auto_paren.py
+++ b/rplugin/python3/deoplete/filter/converter_auto_paren.py
diff --git a/rplugin/python3/deoplete/filters/converter_remove_overlap.py b/rplugin/python3/deoplete/filter/converter_remove_overlap.py
index 7d60015..7d60015 100644
--- a/rplugin/python3/deoplete/filters/converter_remove_overlap.py
+++ b/rplugin/python3/deoplete/filter/converter_remove_overlap.py
diff --git a/rplugin/python3/deoplete/filters/converter_remove_paren.py b/rplugin/python3/deoplete/filter/converter_remove_paren.py
index 1e7a463..1e7a463 100644
--- a/rplugin/python3/deoplete/filters/converter_remove_paren.py
+++ b/rplugin/python3/deoplete/filter/converter_remove_paren.py
diff --git a/rplugin/python3/deoplete/filters/converter_truncate_abbr.py b/rplugin/python3/deoplete/filter/converter_truncate_abbr.py
index bad8a34..bad8a34 100644
--- a/rplugin/python3/deoplete/filters/converter_truncate_abbr.py
+++ b/rplugin/python3/deoplete/filter/converter_truncate_abbr.py
diff --git a/rplugin/python3/deoplete/filters/converter_truncate_menu.py b/rplugin/python3/deoplete/filter/converter_truncate_menu.py
index 6ddddaa..6ddddaa 100644
--- a/rplugin/python3/deoplete/filters/converter_truncate_menu.py
+++ b/rplugin/python3/deoplete/filter/converter_truncate_menu.py
diff --git a/rplugin/python3/deoplete/filters/matcher_full_fuzzy.py b/rplugin/python3/deoplete/filter/matcher_full_fuzzy.py
index be296ce..be296ce 100644
--- a/rplugin/python3/deoplete/filters/matcher_full_fuzzy.py
+++ b/rplugin/python3/deoplete/filter/matcher_full_fuzzy.py
diff --git a/rplugin/python3/deoplete/filters/matcher_fuzzy.py b/rplugin/python3/deoplete/filter/matcher_fuzzy.py
index b88bb8c..b88bb8c 100644
--- a/rplugin/python3/deoplete/filters/matcher_fuzzy.py
+++ b/rplugin/python3/deoplete/filter/matcher_fuzzy.py
diff --git a/rplugin/python3/deoplete/filters/matcher_head.py b/rplugin/python3/deoplete/filter/matcher_head.py
index a92443e..a92443e 100644
--- a/rplugin/python3/deoplete/filters/matcher_head.py
+++ b/rplugin/python3/deoplete/filter/matcher_head.py
diff --git a/rplugin/python3/deoplete/filters/matcher_length.py b/rplugin/python3/deoplete/filter/matcher_length.py
index 2a4ec17..2a4ec17 100644
--- a/rplugin/python3/deoplete/filters/matcher_length.py
+++ b/rplugin/python3/deoplete/filter/matcher_length.py
diff --git a/rplugin/python3/deoplete/filters/sorter_rank.py b/rplugin/python3/deoplete/filter/sorter_rank.py
index 32a72cc..32a72cc 100644
--- a/rplugin/python3/deoplete/filters/sorter_rank.py
+++ b/rplugin/python3/deoplete/filter/sorter_rank.py
diff --git a/rplugin/python3/deoplete/filters/sorter_word.py b/rplugin/python3/deoplete/filter/sorter_word.py
index f4fc5a4..f4fc5a4 100644
--- a/rplugin/python3/deoplete/filters/sorter_word.py
+++ b/rplugin/python3/deoplete/filter/sorter_word.py
diff --git a/rplugin/python3/deoplete/sources/base.py b/rplugin/python3/deoplete/source/base.py
index 5e36030..5e36030 100644
--- a/rplugin/python3/deoplete/sources/base.py
+++ b/rplugin/python3/deoplete/source/base.py
diff --git a/rplugin/python3/deoplete/sources/buffer.py b/rplugin/python3/deoplete/source/buffer.py
index 836bd06..836bd06 100644
--- a/rplugin/python3/deoplete/sources/buffer.py
+++ b/rplugin/python3/deoplete/source/buffer.py
diff --git a/rplugin/python3/deoplete/sources/dictionary.py b/rplugin/python3/deoplete/source/dictionary.py
index a8a79a6..a8a79a6 100644
--- a/rplugin/python3/deoplete/sources/dictionary.py
+++ b/rplugin/python3/deoplete/source/dictionary.py
diff --git a/rplugin/python3/deoplete/sources/file.py b/rplugin/python3/deoplete/source/file.py
index 02ba643..02ba643 100644
--- a/rplugin/python3/deoplete/sources/file.py
+++ b/rplugin/python3/deoplete/source/file.py
diff --git a/rplugin/python3/deoplete/sources/member.py b/rplugin/python3/deoplete/source/member.py
index 34a1f2b..34a1f2b 100644
--- a/rplugin/python3/deoplete/sources/member.py
+++ b/rplugin/python3/deoplete/source/member.py
diff --git a/rplugin/python3/deoplete/sources/omni.py b/rplugin/python3/deoplete/source/omni.py
index 5cb6fb6..5cb6fb6 100644
--- a/rplugin/python3/deoplete/sources/omni.py
+++ b/rplugin/python3/deoplete/source/omni.py
diff --git a/rplugin/python3/deoplete/sources/tag.py b/rplugin/python3/deoplete/source/tag.py
index 41d6e5a..41d6e5a 100644
--- a/rplugin/python3/deoplete/sources/tag.py
+++ b/rplugin/python3/deoplete/source/tag.py
diff --git a/rplugin/python3/deoplete/tests/test_filter.py b/rplugin/python3/deoplete/tests/test_filter.py
index 2effbb0..38c3dc2 100644
--- a/rplugin/python3/deoplete/tests/test_filter.py
+++ b/rplugin/python3/deoplete/tests/test_filter.py
@@ -2,7 +2,7 @@ from unittest import TestCase
from nose.tools import eq_
from deoplete.util import (
fuzzy_escape, charwidth, strwidth, truncate, truncate_skipping)
-from deoplete.filters.converter_remove_overlap import overlap_length
+from deoplete.filter.converter_remove_overlap import overlap_length
class FilterTestCase(TestCase):