Commits on Jan 15, 2013
  1. Only enable the Warmup cache when debug is enabled for now.

    Rip-Rip committed Jan 15, 2013
    The code doesn't seems to be executed in background, but at exit time...
Commits on Jan 13, 2013
  1. Automatically use libclang if available

    tobig committed Jan 12, 2013
    If the user did not request anything specific, we first try to use
    libclang and only fall back to the clang executable if libclang could
    not be found. Error messages are only printed in debugging mode or
    if the user explicitly requested libclang.
    This patch allows us to use as soon as it can be found in
    the system library path. No further configuration is required in
  2. libclang: Rework handling of builtin includes

    tobig committed Jan 12, 2013
    If libclang is installed in some non-default location, it sometimes
    fails to find the path to the builtin includes. This will cause an error
    when including these headers which again blocks precompiled header
    caching. Even though autocompletion often still works, it is annoyingly
    We now check explicitly if the builtin includes are available. If they
    are not we try to find them ourselves. Only if this does not work, we
    warn the user and ask him to report a problem.
  3. Catch Exception when loading libclang fails

    tobig committed Jan 12, 2013
    Instead of passing on the exception, we now provide a proper error
    message to the user and fall back to the clang executable.
  4. Always initialize g:clang_library_path

    tobig committed Jan 12, 2013
    Like this we can avoid special cases in the later code path
  5. Do not provide the clang/gcc autoloader any more

    tobig committed Jan 12, 2013
    The clang and gcc autoloaders are not necessary any more to optain the
    system include paths. Due to the previous commit, the include paths are
    now correctly added by the clang driver. libclang always used internally
    the clang driver and never had problems finding the system include paths.
    We remove these options as incorrectly derived include paths can cause
    all kind of spurious problems.
    We now print the following message, if someone manually adds 'clang' or
    'gcc' to the auto_user_options:
      'gcc' in clang_auto_user_options is deprecated.
  6. Use the clang driver instead of 'clang -cc1'

    tobig committed Jan 12, 2013
    By using the clang driver all system include paths are automatically
    available and there is no need to recover in any way.
  7. Fix merge error

    tobig committed Jan 13, 2013
Commits on Jan 12, 2013
  1. Merge branch 'print_command_line' of git://…

    Rip-Rip committed Jan 12, 2013
    …plete into tobig
  2. Revert "Don't allow duplicate entry in the completion popup."

    Rip-Rip committed Jan 12, 2013
    This reverts commit 53462d9.
    That was causing issues when snippets were disabled.
Commits on Jan 6, 2013
  1. Use a context manager to handle working directory changes. Needs pyth…

    Arnaud-de-Grandmaison committed Dec 4, 2012
    …on 2.6.
    Python 2.5 can be supported if we add the appropriate import from future.
Commits on Dec 3, 2012
Commits on Nov 21, 2012
  1. Merge pull request #213 from tobig/update_cindexpy

    Rip-Rip committed Nov 21, 2012
    Update up to clang from 01/11/2012
Commits on Nov 18, 2012
  1. Merge: [] Add Cursor.get_arguments()

    tobig committed Nov 18, 2012
    Patch provided by Matthias Kleine <>
  2. Merge: Fix compatibility with older

    tobig committed Nov 18, 2012
    The issue is that we were calling clang_getCompletionBriefComment
    unconditionally.  New we check if this function is available before
    calling it.
Commits on Sep 11, 2012
  1. Merge branch 'tobig-master'

    Rip-Rip committed Sep 11, 2012
Commits on Sep 5, 2012
  1. libclang: Do not check for strict compatibility

    tobig committed Sep 5, 2012
    libclang now allows to remove the compatibility check. This is done on
    our own risk and no upstream support is provided. My tests have shown
    that with this patch, we can provide code completion back to clang 2.8
    and error highlighting at least back to 3.0.
  2. Merge: [] Make the use of a compatibilty check explicit

    tobig committed Sep 5, 2012
    At the moment, we implictly check compatibility between the python
    bindings and libclang, as the python bindings will fail to load in
    case a method we use in libclang is not available.
    This patch makes the use of this compatibility check explicit and
    introduces a flag to optionally disable the check. This will allow us to
    further harden the compatibility check, but it also gives the user the
    possibility to disable the compatibility check to evaluate compatibility
    with older libclang versions.
    I added documentation that makes clear the python bindings are only
    tested with the libclang version they have been shipped with
  3. Merge: [] Allow to configure the path of libclang

    tobig committed Sep 5, 2012
    By calling cindex.Config.set_library_path(path) or
    cindex.Config.set_library_file(file) it is possible to specify from
    where we load libclang. This fixes an open FIXME.
    We also point the user to these functions, in case libclang can not be
    loaded sucessfully.
    This merge removes the last difference between our python bindings and
    the official ones. There is no need any more to use sys.argv to secretly
    forward the library path.
  4. Merge: Add helper to initialize libclang functions

    tobig committed Sep 5, 2012
    The helper allows us to define how the initialization of functions
    should behave. We use this patch to provide an informative error
    message, in case a function is not available:
    "LibclangError: /home/grosser/Projekte/llvm/install/lib/
    undefined symbol: clang_method_added_in_2020. Please ensure that your
    python bindings are compatible with your version."
    This patch also ensures that no spelling mistakes slip into the library
    initialization. At the moment, there are a couple of 'argtype' ->
    'argtypes' mispellings that have been overlooked.
  5. Merge: [] Cache the number of chunks in CompletionString

    tobig committed Sep 5, 2012
    Without this patch, lib.clang_getNumCompletionChunks is called at
    each _iteration_ of a 'for chunk in CompletionString' loop. Now we
    call it just once.
  6. Merged: Add CachedProperty to CompletionChunk

    tobig committed Aug 19, 2012
    Suggested by:  Francisco Lopes  <>
  7. Merge: Use spaces, not tabs for indentation

    tobig committed Aug 18, 2012
    Reported by: Francisco Lopes  <>