Force filename completer on #include
This commit is contained in:
parent
7500a94cda
commit
3ae9764451
@ -89,7 +89,7 @@ let g:ycm_add_preview_to_completeopt =
|
|||||||
\ get( g:, 'ycm_add_preview_to_completeopt', 0 )
|
\ get( g:, 'ycm_add_preview_to_completeopt', 0 )
|
||||||
|
|
||||||
let g:ycm_complete_in_comments_and_strings =
|
let g:ycm_complete_in_comments_and_strings =
|
||||||
\ get( g:, 'ycm_complete_in_comments_and_strings', 0 )
|
\ get( g:, 'ycm_complete_in_comments_and_strings', 1 )
|
||||||
|
|
||||||
let g:ycm_collect_identifiers_from_comments_and_strings =
|
let g:ycm_collect_identifiers_from_comments_and_strings =
|
||||||
\ get( g:, 'ycm_collect_identifiers_from_comments_and_strings', 0 )
|
\ get( g:, 'ycm_collect_identifiers_from_comments_and_strings', 0 )
|
||||||
|
@ -331,3 +331,8 @@ def ClangAvailableForBuffer( buffer_object ):
|
|||||||
filetypes = vimsupport.FiletypesForBuffer( buffer_object )
|
filetypes = vimsupport.FiletypesForBuffer( buffer_object )
|
||||||
return any( [ filetype in CLANG_FILETYPES for filetype in filetypes ] )
|
return any( [ filetype in CLANG_FILETYPES for filetype in filetypes ] )
|
||||||
|
|
||||||
|
|
||||||
|
def InCFamilyFile():
|
||||||
|
return any( [ filetype in CLANG_FILETYPES for filetype in
|
||||||
|
vimsupport.CurrentFiletypes() ] )
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
# along with YouCompleteMe. If not, see <http://www.gnu.org/licenses/>.
|
# along with YouCompleteMe. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from completers.threaded_completer import ThreadedCompleter
|
from completers.threaded_completer import ThreadedCompleter
|
||||||
|
from completers.cpp.clang_completer import InCFamilyFile
|
||||||
import vim
|
import vim
|
||||||
import vimsupport
|
import vimsupport
|
||||||
import os
|
import os
|
||||||
@ -30,10 +31,10 @@ class FilenameCompleter( ThreadedCompleter ):
|
|||||||
General completer that provides filename and filepath completions.
|
General completer that provides filename and filepath completions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__( self ):
|
||||||
super( FilenameCompleter, self ).__init__()
|
super( FilenameCompleter, self ).__init__()
|
||||||
|
|
||||||
self._path_regex = re.compile("""
|
self._path_regex = re.compile( """
|
||||||
# 1 or more 'D:/'-like token or '/' or '~' or './' or '../'
|
# 1 or more 'D:/'-like token or '/' or '~' or './' or '../'
|
||||||
(?:[A-z]+:/|[/~]|\./|\.+/)+
|
(?:[A-z]+:/|[/~]|\./|\.+/)+
|
||||||
|
|
||||||
@ -47,9 +48,17 @@ class FilenameCompleter( ThreadedCompleter ):
|
|||||||
\\.)*$
|
\\.)*$
|
||||||
""", re.X )
|
""", re.X )
|
||||||
|
|
||||||
|
self._include_regex = re.compile( '^\s*#(?:include|import)\s*(?:"|<)$' )
|
||||||
|
|
||||||
|
|
||||||
|
def AtIncludeStatmentStart( self, start_column ):
|
||||||
|
return ( InCFamilyFile() and
|
||||||
|
self._include_regex.match( vim.current.line[ :start_column ] ) )
|
||||||
|
|
||||||
|
|
||||||
def ShouldUseNowInner( self, start_column ):
|
def ShouldUseNowInner( self, start_column ):
|
||||||
return vim.current.line[ start_column - 1 ] == '/'
|
return ( vim.current.line[ start_column - 1 ] == '/' or
|
||||||
|
self.AtIncludeStatmentStart( start_column ) )
|
||||||
|
|
||||||
|
|
||||||
def SupportedFiletypes( self ):
|
def SupportedFiletypes( self ):
|
||||||
|
@ -59,8 +59,8 @@ class YouCompleteMe( object ):
|
|||||||
def GetFiletypeCompleter( self ):
|
def GetFiletypeCompleter( self ):
|
||||||
filetypes = vimsupport.CurrentFiletypes()
|
filetypes = vimsupport.CurrentFiletypes()
|
||||||
|
|
||||||
completers = [self.GetFiletypeCompleterForFiletype( filetype )
|
completers = [ self.GetFiletypeCompleterForFiletype( filetype )
|
||||||
for filetype in filetypes ]
|
for filetype in filetypes ]
|
||||||
|
|
||||||
if not completers:
|
if not completers:
|
||||||
return None
|
return None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user