[libvirt] [PATCH 2/2] Add YouCompleteMe support

Andrea Bolognani abologna at redhat.com
Fri Apr 28 14:20:50 UTC 2017


YouCompleteMe[1] is a vim plugin that implements semantic
code completion using libclang.

For non-trivial projects such as libvirt, the plugin needs
some help figuring out where to find the various header
files: generate its configuration file at configure time
so that the plugin works out of the box.

[1] http://valloric.github.io/YouCompleteMe/
---
 .gitignore            |  1 +
 .ycm_extra_conf.py.in | 45 +++++++++++++++++++++++++++++++++++++++++++++
 configure.ac          |  1 +
 3 files changed, 47 insertions(+)
 create mode 100644 .ycm_extra_conf.py.in

diff --git a/.gitignore b/.gitignore
index e690c99..e2eaff1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,6 +36,7 @@
 .lvimrc
 .memdump
 .sc-start-sc_*
+.ycm_extra_conf.py
 /ABOUT-NLS
 /AUTHORS
 /ChangeLog
diff --git a/.ycm_extra_conf.py.in b/.ycm_extra_conf.py.in
new file mode 100644
index 0000000..96c8a47
--- /dev/null
+++ b/.ycm_extra_conf.py.in
@@ -0,0 +1,45 @@
+flags = [
+  '-I at abs_top_builddir@',
+  '-I at abs_top_srcdir@',
+  '-I at abs_top_builddir@/gnulib/lib',
+  '-I at abs_top_srcdir@/gnulib/lib',
+  '-I at abs_top_builddir@/include',
+  '-I at abs_top_srcdir@/include',
+  '-I at abs_top_builddir@/src',
+  '-I at abs_top_srcdir@/src',
+  '-I at abs_top_builddir@/src/access',
+  '-I at abs_top_srcdir@/src/access',
+  '-I at abs_top_builddir@/src/admin',
+  '-I at abs_top_srcdir@/src/admin',
+  '-I at abs_top_builddir@/src/bhyve',
+  '-I at abs_top_srcdir@/src/bhyve',
+  '-I at abs_top_builddir@/src/conf',
+  '-I at abs_top_srcdir@/src/conf',
+  '-I at abs_top_builddir@/src/libxl',
+  '-I at abs_top_srcdir@/src/libxl',
+  '-I at abs_top_builddir@/src/locking',
+  '-I at abs_top_srcdir@/src/locking',
+  '-I at abs_top_builddir@/src/logging',
+  '-I at abs_top_srcdir@/src/logging',
+  '-I at abs_top_builddir@/src/lxc',
+  '-I at abs_top_srcdir@/src/lxc',
+  '-I at abs_top_builddir@/src/qemu',
+  '-I at abs_top_srcdir@/src/qemu',
+  '-I at abs_top_builddir@/src/remote',
+  '-I at abs_top_srcdir@/src/remote',
+  '-I at abs_top_builddir@/src/rpc',
+  '-I at abs_top_srcdir@/src/rpc',
+  '-I at abs_top_builddir@/src/secret',
+  '-I at abs_top_srcdir@/src/secret',
+  '-I at abs_top_builddir@/src/security',
+  '-I at abs_top_srcdir@/src/security',
+  '-I at abs_top_builddir@/src/util',
+  '-I at abs_top_srcdir@/src/util',
+  '-I at abs_top_builddir@/src/vmx',
+  '-I at abs_top_srcdir@/src/vmx',
+  '-I at abs_top_builddir@/src/xenconfig',
+  '-I at abs_top_srcdir@/src/xenconfig',
+]
+
+def FlagsForFile(filename, **kwargs):
+  return { 'flags': flags, 'do_cache': True }
diff --git a/configure.ac b/configure.ac
index 752d787..fa63406 100644
--- a/configure.ac
+++ b/configure.ac
@@ -880,6 +880,7 @@ AC_CONFIG_FILES([\
         gnulib/lib/Makefile \
         gnulib/tests/Makefile \
         .color_coded \
+        .ycm_extra_conf.py \
         libvirt.pc \
         libvirt-qemu.pc \
         libvirt-lxc.pc \
-- 
2.7.4




More information about the libvir-list mailing list