From d99f082a390a498e2b35870cb1a8d0cfb054a5d4 Mon Sep 17 00:00:00 2001 From: Manu343726 Date: Fri, 13 Jul 2018 14:29:58 +0200 Subject: [PATCH] Update YCM config to work with header-onlies of the lib --- .ycm_extra_conf.py.in | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.ycm_extra_conf.py.in b/.ycm_extra_conf.py.in index ff2f63c..b8f8a79 100644 --- a/.ycm_extra_conf.py.in +++ b/.ycm_extra_conf.py.in @@ -99,12 +99,23 @@ def IsHeaderFile( filename ): extension = os.path.splitext( filename )[ 1 ] return extension in [ '.h', '.hxx', '.hpp', '.hh' ] -def ReplacementFile( headerfile, source_extension ): +def SrcFromHeader(headerfile, source_extension): file_path, file_name = os.path.split(headerfile) name, _ = os.path.splitext(file_name) relative_path = os.path.relpath(file_path, INCLUDE_DIR) return os.path.join(SRC_DIR, relative_path, name + source_extension) +def FindAnySrcFile(): + return os.path.join(SRC_DIR, "utils", "demangle.cpp") + +def ReplacementFile( headerfile, source_extension ): + src_from_header = SrcFromHeader(headerfile, source_extension) + + if os.path.isfile(src_from_header): + return src_from_header + else: + return FindAnySrcFile() + def GetCompilationInfoForFile( filename ): # The compilation_commands.json file generated by CMake does not have entries # for header files. So we do our best by asking the db for flags for a