Strahinja Val Markovic
7ff4774e96
Possible fix for random hang on Vim close
...
Reparse would take the clang lock and then possibly call Destroy while still
holding the lock. Destroy would try to take that same lock, and the mutex is not
recursive. Unpleasantness ensues.
I _think_ this is the root cause of #218 , but I can't be sure. Such is life with
threads.
Fixes #218 .
2013-04-10 19:45:50 -07:00
Matthew Wesley
a00535f078
Return an empty location instead of segfaulting
2013-04-03 14:58:37 -04:00
Strahinja Val Markovic
1676a3b2a4
Style fixes for C++
2013-04-01 19:09:37 -07:00
Strahinja Val Markovic
1f094e50d0
GoToDefinition/Declaration commands for C-family
...
These are accessible through the :YcmCompleter command. The docs have more
information.
2013-03-31 20:38:29 -07:00
Strahinja Val Markovic
c2ef3f785b
Updating comments for the string-stripping regex
2013-03-23 10:56:56 -07:00
Val Markovic
bd75efedbc
Merge pull request #186 from peter50216/master
...
C++ IdentifierUtils::RemoveIdentifierFreeText behaves incorrectly.
2013-03-23 10:55:13 -07:00
Strahinja Val Markovic
a3a3250f76
Style fixes for C++ code
2013-03-23 10:47:30 -07:00
Pi-Hsun Shih
83f8d65775
properly test the patch in IdentifierUtils::RemoveIdentifierFreeText
2013-03-21 13:53:54 +08:00
Strahinja Val Markovic
4f12febb44
Clarifying that ycm_extra_conf needs to be changed
...
Also tweaked YCM's extra conf file so that the flags variable that needs to be
changed is closer to the top of the file.
2013-03-20 18:31:49 -07:00
Strahinja Val Markovic
4cb9f17c5f
Cache deletion is now async
2013-03-16 12:10:24 -07:00
Strahinja Val Markovic
c391bdcc62
Reducing RAM consumption by deleting unused caches
...
When the user deletes a buffer, we can delete the clang caches for that file.
Fixes #184 .
2013-03-16 10:41:47 -07:00
Pi-Hsun Shih
2d11be9162
Add test for IdentifierUtils::RemoveIdentifierFreeText
2013-03-15 10:52:13 +08:00
peter50216
6a0525254e
Fix handling of escaped \ in char or string.
2013-03-14 12:41:20 +08:00
Strahinja Val Markovic
a6e83bfe76
Smart-case sensitive filtering
...
Fixes #120
2013-03-01 22:18:43 -08:00
Strahinja Val Markovic
831c122d06
Placating the compiler playing dumb about types
2013-03-01 20:34:01 -08:00
Strahinja Val Markovic
54ea5db7cc
Refactor for loop into std algo call
2013-03-01 20:15:36 -08:00
Strahinja Val Markovic
c8a9d0590e
boost::array instead of std::vector in nodelist
...
This should provide a minor performance boost & memory reduction.
2013-03-01 20:10:12 -08:00
Strahinja Val Markovic
dae3dcdd9e
Style fixes and minor refactoring
2013-03-01 20:09:55 -08:00
Strahinja Val Markovic
9e0318d229
Not using the system libclang by default
...
We used to do this but it was unsafe, as issue #167 proves. YCM has to give
libclang an include to YCM's copy of clang system headers (again, see issue #167
for details) and those headers may not be valid for a newer libclang.
If the user really wants to user the system libclang, then he can just always
call cmake himself. The installation guide in the README goes to great lengths
to explain the simple process of building YCM "by hand".
Fixes #167 .
2013-03-01 18:03:28 -08:00
Strahinja Val Markovic
eb7bec4fdd
Refactoring ClangCompleter to use ResultAnd<>
2013-02-23 17:54:04 -08:00
Strahinja Val Markovic
fb62030122
A few more clang cursorkinds supported
...
Now C-family completion will have fewer compeletion strings labeled as 'u' kind.
2013-02-23 17:34:10 -08:00
Strahinja Val Markovic
3e5ecd6015
ycm_core should be ycm_core.pyd on Windows
2013-02-23 16:10:36 -08:00
Strahinja Val Markovic
6786d4e71b
More style fixes
2013-02-23 15:57:55 -08:00
Val Markovic
ce58bc7d75
ycm_core now compiles cleanly with MSVC
2013-02-23 15:57:55 -08:00
Strahinja Val Markovic
e1584a33b0
Code style fixes
2013-02-23 15:54:44 -08:00
Strahinja Val Markovic
46297a1c30
Downloading x86 libclang for Ubuntu x86
2013-02-23 12:54:17 -08:00
Strahinja Val Markovic
fd2fd60f7c
Identifier collection now smarter about strings
...
Previously, a string like 'foo\'bar\'zoo' would make the collection process
think that "bar" is not inside a string because it wouldn't recognize that the
quotes are escaped. Now it does.
Fixes #143 .
2013-02-21 22:14:31 -08:00
Val Markovic
3a285e8a31
Merge pull request #122 from cehoffman/cygwin_support
...
Get cygwin compilation working
2013-02-19 00:13:41 -08:00
Chris Hoffman
e7774cf44b
Get cygwin compilation working
2013-02-18 23:55:54 -06:00
Strahinja Val Markovic
8f66862726
Linking with librt only on Linux
2013-02-17 10:04:40 -08:00
Rafal Jeczalik
b1c9aad19f
ycm_core needs to be linked with librt under Linux
2013-02-17 18:16:04 +01:00
Strahinja Val Markovic
e743076e14
Option to collect identifiers n comments/strings
...
Fixes #98 .
2013-02-16 14:00:46 -08:00
Strahinja Val Markovic
90dc16bb99
Destroying clang data last, after threads done
...
Otherwise this will cause issues if the clang threads are still trying to
access the clang data.
2013-02-16 12:25:29 -08:00
Strahinja Val Markovic
f01a3480f5
Making sure that clang_completer tests included
2013-02-16 12:25:29 -08:00
Strahinja Val Markovic
2ff85a5a60
Only joining threads if they are created
2013-02-16 12:25:29 -08:00
Strahinja Val Markovic
30d5a3b8a5
Wrapping boost threads in scoped_ptr
...
Boost.Thread deprecated the copy ctor for threads; this is a better approach.
2013-02-16 12:25:29 -08:00
Strahinja Val Markovic
9dfa2f4e11
Fixing thread segfault issues with new Boost 1.53
...
The answer was to use boost::move() on the functors, but since there is AFAIK no
move emulation support for Boost.Function, the fix may only work on C++11
compilers. That needs to be looked into.
2013-02-16 12:25:29 -08:00
Strahinja Val Markovic
ad8345aa35
Now checking ycm_core version for compatibility
2013-02-12 20:54:27 -08:00
Strahinja Val Markovic
786e6182ff
Initial version of omnifunc-based omni_completer
...
Still a work in progress (needs better triggering and bug fixes)
2013-02-10 20:03:56 -08:00
Strahinja Val Markovic
051fc85be4
Adding a missing include path to YCM's extra conf
2013-02-10 20:03:56 -08:00
Strahinja Val Markovic
41854ded3a
Removing an obsolete comment
2013-02-09 15:49:08 -08:00
Ola Jeppsson
57e6af6db8
Use the library path in the environment when looking up clang library.
...
Use *LD_LIBRARY_PATH when configured to build against the systems libclang.
This patch makes the install script work even when libclang is in a custom path.
Signed-off-by: Ola Jeppsson <ola.jeppsson@gmail.com>
2013-02-09 22:13:16 +01:00
Strahinja Val Markovic
61b4808513
Trying to help cmake find libclang.so on Arch
...
Fixes #11 . Also relevant to issue #28 .
2013-02-09 11:11:18 -08:00
Strahinja Val Markovic
78e11f7479
Typo fix
2013-02-07 19:29:59 -08:00
Strahinja Val Markovic
da8da52cdd
Minor tweaks to new intall process
2013-02-07 19:29:59 -08:00
Zeh Rizzatti
2f3303e050
Respects USE_CLANG_COMPLETER flag in CMake build
...
If USE_CLANG_COMPLETER is ON, will try to use the system clang, and if
the version is not the minimum required or not present, download.
2013-02-07 19:29:59 -08:00
Zeh Rizzatti
8036bb6348
Copy libclang inside the python dir
2013-02-07 19:29:59 -08:00
Zeh Rizzatti
6121d61b1b
Add friendly clang selection using cmake
2013-02-07 19:29:59 -08:00
Val Markovic
9bee28a0a8
Merge pull request #26 from spice/relative-clang-root
...
Handle relative DPATH_TO_LLVM_ROOT
2013-02-05 21:01:34 -08:00
Strahinja Val Markovic
02201c866b
Last piece of Windows support.
...
YCM should now compile cleanly on MSVC. Fixes #19 .
2013-02-05 19:40:43 -08:00
Strahinja Val Markovic
2159ed8e39
Changing an include path for readability
2013-02-05 18:31:33 -08:00
Strahinja Val Markovic
b6401ca179
Requiring python 2.5
2013-02-05 16:48:40 -08:00
Strahinja Val Markovic
dffe471a93
Comment typo fix; fixes #31
2013-02-05 12:59:37 -08:00
Alexander Bolodurin
826ec0a12b
Handle relative DPATH_TO_LLVM_ROOT
2013-02-06 01:46:48 +11:00
Strahinja Val Markovic
8b22c4372a
Fixing code style issues
2013-02-02 21:50:05 -08:00
Strahinja Val Markovic
fc1009913e
Updating to latest gmock & gtest
2013-02-02 21:47:41 -08:00
Strahinja Val Markovic
6d127c651e
Removed unused member var from LetterNode; fix #7
...
This makes XCode 4.6 happy again.
2013-02-02 21:24:46 -08:00
Strahinja Val Markovic
f3c6eba389
Throw fatal error if cmake finds python3
2013-02-02 12:22:26 -08:00
Strahinja Val Markovic
d4f0d3c314
Trying to force the use of python 2
2013-02-02 12:11:37 -08:00
Strahinja Val Markovic
fe92678221
Renaming a poorly named variable
2013-01-29 21:40:42 -08:00
Strahinja Val Markovic
594d8365b3
Forcing use of python2 for ycm_core; fixes #2
2013-01-29 21:24:04 -08:00
Strahinja Val Markovic
e8b60fd537
Adding the YcmDebugInfo command
2013-01-26 11:45:14 -08:00
Strahinja Val Markovic
90c495a9c7
Making sure clang crash recovery is turned on
2013-01-26 11:45:14 -08:00
Strahinja Val Markovic
7fc3c47101
Fixing the database-using example code
2013-01-24 19:18:09 -08:00
Strahinja Val Markovic
8cc9c9ca76
Race condition fix; caused latency on first load
...
The issue was that the user could open a C-family file and have it start
compiling in the background. While it is still compiling, he could trigger the
completion system with a member dot operator. Because the file was still
compiling for the very first time, the TranslationUnit object was yet not
created. Sadly, this meant that UpdatingTranslationUnit would return false, and
a new query request would be created, the GUI would hang until it was done
aaaaand terrible lag until the file was compiled.
This was a very rare edge case that could also only be triggered if it takes a
considerable amount of time to compile the file.
2013-01-24 18:37:44 -08:00
Strahinja Val Markovic
326d77fd43
Removing some forgotten code
2013-01-24 11:07:55 -08:00
Strahinja Val Markovic
19637cadda
Renaming ycm_clang_options to ycm_extra_conf
2013-01-24 09:59:21 -08:00
Strahinja Val Markovic
90fe31f98e
Async querying of CompilationDatabase supported
2013-01-23 17:23:51 -08:00
Strahinja Val Markovic
0b60b8d03b
More stlye formatting fixes
2013-01-23 17:23:38 -08:00
Strahinja Val Markovic
440a2c17f2
Updating docs and the example ycm_clang_options.py
2013-01-22 21:05:32 -08:00
Strahinja Val Markovic
3706750b40
astyle format update
2013-01-22 19:42:44 -08:00
Strahinja Val Markovic
ee919417af
Managing memory from the C interface better
2013-01-22 19:40:05 -08:00
Strahinja Val Markovic
970b2fb56c
Kiling a memory leak... I hate C interfaces
2013-01-22 17:29:05 -08:00
Strahinja Val Markovic
482de517ba
Better support for CompilationDatabase
...
We now use the compilation working directory for a file that is specified in the
CompilationDatabase. We don't actually change the working directory of the
process, even temporarily (that would be annoying to users); we munge the flags
coming from the database so that all the relative paths in them are resolved to
absolute ones.
2013-01-22 16:30:49 -08:00
Strahinja Val Markovic
1641bc9683
Formatting more code with astyle
2013-01-19 20:17:12 -08:00
Strahinja Val Markovic
4308130ab3
Formatting more code with astyle
2013-01-19 20:10:52 -08:00
Strahinja Val Markovic
013a56c25c
Formatting the a part of the source with astyle
2013-01-19 20:03:32 -08:00
Strahinja Val Markovic
00db8fd8b1
compilation_database.json now fully supported
2013-01-19 18:53:30 -08:00
Strahinja Val Markovic
c1119c001f
Adding CompilationDatabase support (still WIP)
2013-01-18 17:22:36 -08:00
Strahinja Val Markovic
56f96b6c08
Hide clang pragmas behind an #ifdef
2013-01-17 14:58:50 -08:00
Strahinja Val Markovic
5ac3d40691
No error when no clang support and cpp file opened
...
Previously, when the user opened a cpp/c/objc/objcpp file and clang support was
not compiled in, there would be an error message printed in vim.
2013-01-13 20:56:10 -08:00
Strahinja Val Markovic
cc53a46f54
ClangCompleter tests not built when no libclang
...
When the user doesn't want semantic completion with clang, then tests that test
those features are not included in the test binary.
2013-01-13 17:33:35 -08:00
Strahinja Val Markovic
3763dc8a78
Removing support for static linking to libclang
2013-01-13 16:45:06 -08:00
Strahinja Val Markovic
eb24fc8b34
Now using PATH_TO_LLVM_ROOT
...
This is the first step towards eliminating the in-tree copy of llvm.
2013-01-13 16:39:53 -08:00
Strahinja Val Markovic
3899d36df9
Extra comment pointing to boost bug report
2013-01-13 14:40:32 -08:00
Strahinja Val Markovic
121d88518e
Updating to boost 1.52
2013-01-13 14:38:19 -08:00
Strahinja Val Markovic
0373fb254e
We now use @loader_path on Mac for libclang
...
This makes sure that our local copy of libclang.dylib is preferred over the
system one.
2013-01-13 12:51:09 -08:00
Strahinja Val Markovic
8c709c2e57
NO_CLANG_COMPLETER inverted to USE_CLANG_COMPLETER
2013-01-12 16:38:00 -08:00
Strahinja Val Markovic
29cddc5adc
Removing unnecessary declaration
2012-09-06 14:00:33 -07:00
Strahinja Val Markovic
a6b4b7fd27
LetterHash -> LetterNodeListMap
2012-09-06 12:56:08 -07:00
Strahinja Val Markovic
ae57c9c39b
ClanUtils functions are now all in one place
...
Also, internal ClanUtils functions are now in an unnamed namespace
2012-09-06 12:09:32 -07:00
Strahinja Val Markovic
b48111bb2f
Adding a missing header
...
This compiled previously by accident.
2012-09-06 12:08:34 -07:00
Strahinja Val Markovic
607b25e16b
Lowering the visibility of some typdefs
2012-09-06 11:58:16 -07:00
Strahinja Val Markovic
909450ec13
Adding a few run-time asserts
2012-09-06 11:58:02 -07:00
Strahinja Val Markovic
fc3bc60fae
Moving the Result.h include out of Candidate.h
2012-09-06 11:37:22 -07:00
Strahinja Val Markovic
7a4fec0f3f
Small whitespace fix
2012-08-24 16:28:56 -07:00
Strahinja Val Markovic
0e65074148
Fixing compilation with no NO_CLANG_COMPLETER
2012-08-17 15:09:15 -07:00
Strahinja Val Markovic
f4d7d6ffdf
ClangCompleter can now not be compiled
...
One more thing needs to be done though: the clang_completer.py file needs to not
trigger at all when YCM has been compiled without cpp support. FIX THAT!
2012-08-17 13:32:42 -07:00
Strahinja Val Markovic
daef17feb4
Support for showing extra info for diagstics
...
This was intended to show the full clang output for a given diagnostic,
including notes. But it appears that libclang does not provide this
functionality...
2012-08-15 19:39:03 -07:00
Strahinja Val Markovic
a4d344aa36
Avoid an extra clang reparse if not needed
2012-08-13 21:06:44 -07:00