Permalink
Commits on Jan 23, 2013
Commits on Jan 22, 2013
  1. Fix header regexp.

    Rip-Rip committed Jan 22, 2013
  2. Update the kinds dictionnary.

    Rip-Rip committed Jan 22, 2013
Commits on Jan 20, 2013
  1. Merge: [cindex.py] Add cache for CompletionChunk spellings

    tobig committed Dec 21, 2012
    Most of the CompletionChunks represent braces, colons or other one
    character spellings. There is no need to call libclang, to figure out
    how to write a colon. Instead we use an internal cache to retrieve the
    correct spelling. As function calls from python are very expensive and
    this is a performance critical part of auto completion this patch makes
    formatting of auto completion results a lot faster.
    
    Formatting time changes from 0.57 to 0.45 seconds
    
    https://llvm.org/svn/llvm-project/cfe/trunk@172901
  2. Merge: [cindex.py] Replace CachedProperty with our own implementation

    tobig committed Dec 21, 2012
    This is a very performance critical point for auto completion. The
    manual implementation gives a large speedup. As it does not complicate
    the code a lot, I figured it is worth the change. If anybody understands
    why the CachedProperty is here so much slower, I am very interested in
    working on an improvement of CachedProperty.
    
    Formatting time changes from 0.72 to 0.57 seconds.
    
    https://llvm.org/svn/llvm-project/cfe/trunk@172900
  3. Merge: [cindex.py]: Speed up lookup of the completion kind

    tobig committed Dec 21, 2012
    We can directly the number of the kind instead of going through the
    completionChunkKindMap.
    
    Formatting time changes from 0.84 to 0.72 seconds.
    
    https://llvm.org/svn/llvm-project/cfe/trunk@17289
  4. Merge: Fix a copypasto bug. Also rename the parameter in question to not

    tobig committed Jan 19, 2013
    shadow the 'file' builtin, and fix up a docstring a little.
    
    Hat tip to Sebastian Kreft Carreno at Google for noticing the bug.
    
    https://llvm.org/svn/llvm-project/cfe/trunk@169887
Commits on Jan 19, 2013
  1. Merge branch 'perf'

    Rip-Rip committed Jan 19, 2013
    Conflicts:
    	plugin/libclang.py
  2. Use get() to retrieve the translation unit.

    Rip-Rip committed Jan 19, 2013
    While I cannot show any performance improvement, I'll argue that the
    complexity of retrieving a translation unit is now two times faster.
    
    The python "in" keyword has to walk to the datastructure once, and we
    walk a second time to retrieve it. We only walk it once now.
Commits on Jan 18, 2013
  1. Do not filter before going through all the chunks of a result.

    Rip-Rip committed Jan 18, 2013
    This save some ms: from 0.147s to 0.137s
Commits on Jan 17, 2013
Commits on Jan 15, 2013
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 libclang.so as soon as it can be found in
    the system library path. No further configuration is required in
    .vimrc.
  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
    slow.
    
    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://github.com/tobig/clang_com…

    Rip-Rip committed Jan 12, 2013
    …plete into tobig
    
    Conflicts:
    	plugin/libclang.py
  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.