aboutsummaryrefslogtreecommitdiff
path: root/contrib/YouCompleteMe/ycm_extra_conf.py
diff options
context:
space:
mode:
authorJulian Orth <ju.orth@gmail.com>2014-03-12 17:12:24 +0100
committerThiago de Arruda <tpadilha84@gmail.com>2014-03-14 20:37:03 -0300
commit7740bdecea93bc892776a07239db8b3a39b1a90f (patch)
treed903111374a1d6f1dadab47bba53153da6073787 /contrib/YouCompleteMe/ycm_extra_conf.py
parentc3a88eb8ea6098077b9b4c39d7d8c2b62daf7c5d (diff)
downloadrneovim-7740bdecea93bc892776a07239db8b3a39b1a90f.tar.gz
rneovim-7740bdecea93bc892776a07239db8b3a39b1a90f.tar.bz2
rneovim-7740bdecea93bc892776a07239db8b3a39b1a90f.zip
add .vimrc and src/.ycm_extra_conf.py
Diffstat (limited to 'contrib/YouCompleteMe/ycm_extra_conf.py')
-rw-r--r--contrib/YouCompleteMe/ycm_extra_conf.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/contrib/YouCompleteMe/ycm_extra_conf.py b/contrib/YouCompleteMe/ycm_extra_conf.py
new file mode 100644
index 0000000000..9fd2ba8b8d
--- /dev/null
+++ b/contrib/YouCompleteMe/ycm_extra_conf.py
@@ -0,0 +1,43 @@
+# .ycm_extra_conf.py for nvim source code.
+import os, ycm_core
+
+
+def DirectoryOfThisScript():
+ return os.path.dirname(os.path.abspath(__file__))
+
+
+def GetDatabase():
+ compilation_database_folder = DirectoryOfThisScript() + '/../build'
+ if os.path.exists(compilation_database_folder):
+ return ycm_core.CompilationDatabase(compilation_database_folder)
+ return None
+
+
+def IsHeaderFile(filename):
+ extension = os.path.splitext(filename)[1]
+ return extension == '.h'
+
+
+def GetCompilationInfoForFile(filename):
+ database = GetDatabase()
+ if not database:
+ return None
+ if IsHeaderFile(filename):
+ basename = os.path.splitext(filename)[0]
+ replacement_file = basename + '.c'
+ if os.path.exists(replacement_file):
+ compilation_info = database.GetCompilationInfoForFile(replacement_file)
+ if compilation_info.compiler_flags_:
+ return compilation_info
+ return None
+ return database.GetCompilationInfoForFile(filename)
+
+
+def FlagsForFile(filename):
+ compilation_info = GetCompilationInfoForFile(filename)
+ if not compilation_info:
+ return None
+ return {
+ 'flags': compilation_info.compiler_flags_,
+ 'do_cache': True
+ }