aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/YouCompleteMe/ycm_extra_conf.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/contrib/YouCompleteMe/ycm_extra_conf.py b/contrib/YouCompleteMe/ycm_extra_conf.py
index 249220bb2b..65b5b29099 100644
--- a/contrib/YouCompleteMe/ycm_extra_conf.py
+++ b/contrib/YouCompleteMe/ycm_extra_conf.py
@@ -26,6 +26,9 @@ def GetCompilationInfoForFile(filename):
if IsHeaderFile(filename):
basename = os.path.splitext(filename)[0]
c_file = basename + '.c'
+ # for pure headers (no c file), default to main.c
+ if not os.path.exists(c_file):
+ c_file = os.path.join(DirectoryOfThisScript(), 'main.c')
if os.path.exists(c_file):
compilation_info = database.GetCompilationInfoForFile(c_file)
if compilation_info.compiler_flags_:
@@ -38,7 +41,14 @@ def FlagsForFile(filename):
compilation_info = GetCompilationInfoForFile(filename)
if not compilation_info:
return None
+ # Add flags not needed for clang-the-binary,
+ # but needed for libclang-the-library (YCM uses this last one).
+ flags = (list(compilation_info.compiler_flags_)
+ if compilation_info.compiler_flags_
+ else [])
+ extra_flags = ['-Wno-newline-eof']
+ final_flags = flags + extra_flags
return {
- 'flags': compilation_info.compiler_flags_,
+ 'flags': final_flags,
'do_cache': True
}