]>
git.rmz.io Git - dotfiles.git/blob - vim/ycm_extra_conf.py
b4202ef2c8cd69ac15f977c4acd1581a01a0ae06
7 def findCompilationDatabaseFolder(dir='.'):
8 dirs
= [path
.dirname(f
) for f
in glob(dir + '/**/compile_commands.json',
13 def generateQtFlags():
14 flags
= ['-isystem', '/usr/include/qt/']
15 for p
in glob('/usr/include/qt/*/'):
16 flags
+= ['-isystem', p
]
20 def isHeader(filename
):
21 ext
= path
.splitext(filename
)[1]
22 return ext
in ['.hpp', '.h']
25 def GetCompilationInfoForFile(database
, filename
):
26 if isHeader(filename
):
27 basename
= path
.splitext(filename
)[0]
28 for ext
in ['.cpp', '.c']:
29 cpp_file
= basename
+ ext
30 if path
.exists(cpp_file
):
31 compilation_info
= database
.GetCompilationInfoForFile(
33 if compilation_info
.compiler_flags_
:
34 return compilation_info
36 return database
.GetCompilationInfoForFile(filename
)
39 def FlagsForFile(filename
, **kwargs
):
40 client_data
= kwargs
['client_data']
41 cwd
= client_data
['getcwd()']
50 # '-Wno-variadic-macros',
55 folders
= findCompilationDatabaseFolder(cwd
)
61 print("Multiple compilation databases found!")
63 print("Selecting first: %s" % (folder
))
66 database
= ycm_core
.CompilationDatabase(folder
)
67 compilation_info
= GetCompilationInfoForFile(database
, filename
)
68 if not compilation_info
:
70 flags
= list(compilation_info
.compiler_flags_
)
76 '-isystem', '/usr/include',
77 '-isystem', '/usr/local/include',
79 '-I', cwd
+ '/include',
81 flags
+= generateQtFlags()
84 'flags': flags
+ extra_flags
,