Strahinja Val Markovic
a7c609efd7
More python unicode object support in ycm_core
2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
29bb90a6b4
Decoupling completers from Vim; still WIP & broken
...
Note to self: squash this commit before merging into master.
2013-10-07 11:03:25 -07:00
Val Markovic
ee12530df0
Merge pull request #548 from vitalyster/trans_unit
...
Fix 'vector subscription out of range' MSVC assertions
2013-09-09 10:35:36 -07:00
Vitaly Takmazov
aadf5dd2b7
Fix class casting
2013-09-07 22:56:24 +04:00
Strahinja Val Markovic
96e4930684
Only setting -isystem on Mac OS X
2013-09-07 10:50:28 -07:00
Vitaly Takmazov
79b3e97abe
Fix 'vector subscription out of range' MSVC assertions
2013-09-07 15:14:13 +04:00
vitalyster
142f19c130
Fix MSVC compilation
2013-09-07 13:40:11 +04:00
Strahinja Val Markovic
df0be9fb2c
Fixing compilation on Cygwin
...
Fixes #529 .
2013-08-31 18:02:06 -07:00
Strahinja Val Markovic
d2fe03f072
Refactoring a big test into smaller tests
2013-08-30 14:46:33 -07:00
Strahinja Val Markovic
62462b48bc
Ident collector handles escaped starting quotes
...
Previously, it would consider \"foo\"bar" as a slash and a "foo\"bar" string and
this would screw up tracking of quotes in the file.
Fix #535 .
2013-08-30 14:38:23 -07:00
Shani H Pribadi
7cc399a017
Fix boost compilation issue with glibc 2.18
2013-08-25 14:36:15 -07:00
Strahinja Val Markovic
6fcd1e5e2a
Updating to Boost 1.54
2013-08-25 14:35:47 -07:00
Strahinja Val Markovic
60d4d28297
Adding a script for easy BoostParts updating
2013-08-25 14:34:02 -07:00
Strahinja Val Markovic
c2ec0e146a
Minor whitespace changes
2013-08-25 13:12:41 -07:00
Strahinja Val Markovic
46fbff5008
Should compile on MinGW-64 now
...
Fixes #489 .
2013-08-25 13:05:47 -07:00
Shani H Pribadi
527d98028b
Fix boost compilation issue with glibc 2.18
2013-08-17 13:36:57 -07:00
Strahinja Val Markovic
938e2391e2
Fixing bizarre compilation error on recent clang
2013-08-16 14:49:00 -07:00
Strahinja Val Markovic
76aa87cb22
Ensuring TUs expire when compilation flags change.
2013-08-16 14:49:00 -07:00
Strahinja Val Markovic
0f7d9ec131
Some minor refactoring of TU store
2013-08-16 14:49:00 -07:00
Strahinja Val Markovic
a215f933a9
Refactoring out TU storage into own class
...
This makes the code more readable, maintainable and robust since we're now
encapsulating the mutex to filename_to_translation_unit_.
2013-08-16 14:49:00 -07:00
Strahinja Val Markovic
221bb65489
Renaming DEV_FLAGS to USE_DEV_FLAGS
2013-08-12 20:48:49 -07:00
Strahinja Val Markovic
ce136cd5b6
Dev flags are now off by default
...
"Dev" flags are -Werror, -Wextra, -Wall and -Wc++98-compat. People who are
compiling YCM as users and not developers (99.99999% of all YCM compilations)
don't care about those flags and were just burdened by their inclusion by
default.
Fixes #502 .
2013-08-12 20:36:15 -07:00
Strahinja Val Markovic
16d1365d12
Better smart-case query-candidate matching
...
Previously, "Foo" would match "Foo" but not "FOO". Now it matches both. Bottom
line, an uppercase char matches only uppercase chars but lowercase chars can
match either. We used to insist that lowercase chars in the query match
lowercase chars in the candidate strings IF the query also had uppercase
letters; this was dumb and a poor user experience.
Fixes #501 .
2013-08-12 19:49:43 -07:00
Cody P Schafer
0768fc607d
Use debian6 package for 32bit llvm+clang, ubuntu one is actually 64bit
...
Fixes #474
2013-07-27 17:52:50 -07:00
Strahinja Val Markovic
493d0437ed
Fixing compilation on Cygwin
...
Fixes #473 .
2013-07-27 12:47:53 -07:00
Ricky Nelson
e6cb81a0b2
fixed build problem with threads on SmartOS
2013-07-08 13:56:51 +00:00
Strahinja Val Markovic
3d02f0aba3
Using correct platform clang libs for linux
2013-06-19 21:47:21 -07:00
Strahinja Val Markovic
cc179638b1
Use -j instead of -y on linux for tar
2013-06-19 21:20:01 -07:00
Strahinja Val Markovic
2061848c1a
Using the new 3.3 clang binaries in CMakeLists.txt
2013-06-19 21:09:43 -07:00
Pavel Novy
438e3d6b3a
Fixed compilation under MSVC(11)
...
- compile both libs with /UNICODE and /MP
- moved shared flags & defines to root CMakeLists.txt
- fixed resolving EXTERNAL_LIBCLANG_PATH on Windows
- postbuild copy of libclang.dll
- change PATH_TO_LLVM_ROOT & EXTERNAL_LIBCLANG_PATH to PATH variables instead of BOOL options (for cmake-gui)
2013-06-13 11:26:25 +02:00
Strahinja Val Markovic
a45e4a8d3e
Revert "Not using libc++ on FreeBSD."
...
This reverts commit b451674f88
.
2013-05-30 12:58:45 -07:00
Strahinja Val Markovic
b5ffac655b
code style fixes
2013-05-29 22:23:19 -07:00
Strahinja Val Markovic
612ab6e43a
Fixing possible issue with remove()
on StringVec
...
There is not remove() on StringVec so we need to make sure we are always
handling a list.
Fixes #347 .
2013-05-29 19:05:38 -07:00
Strahinja Val Markovic
b451674f88
Not using libc++ on FreeBSD.
...
Fixes #349 .
2013-05-28 14:01:46 -07:00
Strahinja Val Markovic
454a961318
The identifier completer now reads tags files
...
See the docs for details. Fixes #135 .
2013-05-26 13:33:40 -07:00
Strahinja Val Markovic
747c2a8b6d
Xcode needs special testdata folder handling
2013-05-26 11:59:27 -07:00
Strahinja Val Markovic
6059e68c4f
More tweaks for building with Xcode
2013-05-26 11:58:20 -07:00
Strahinja Val Markovic
fd3cf1e56d
Adding Boost.Assign to BoostParts
2013-05-26 11:58:20 -07:00
Strahinja Val Markovic
34b997c4d6
Not adding -Werror and friends for Xcode
2013-05-26 11:58:20 -07:00
svermeulen
273a51059b
Added missing include to build on win32
2013-05-26 14:01:15 -03:00
Strahinja Val Markovic
2805b0fe85
Better thread safety in IdentifierCompleter
...
Everything that needs access to filetype_map_ has been split into a new class
called IdentifierDatabase. This class is thread-safe. Previously, multiple
threads could access filetype_map_ at the same time, some reading things from
it, others writing to it. WTF was I doing? My best guess is that I introduced
this vile stupidity when I added the second thread to IdentifierCompleter;
previously it was impossible for multiple threads to stomp on filetype_map_
because only one thread ever accessed it. I changed that some time ago and
forgot to protect filetype_map_.
Idiot.
2013-05-25 11:43:14 -07:00
Strahinja Val Markovic
0649d11bf4
Some docs for CandidateRepository
2013-05-25 11:02:53 -07:00
Strahinja Val Markovic
45cbc7da7f
Calling PrepareClangFlags is not needed anymore
...
ycm_extra_conf.py files used to import clang_helpers and then use the
PrepareClangFlags function; this is now unnecessary since the logic from that
function has been moved to flags.py. The old PrepareClangFlags function is still
there (it just returns the flags it gets) for the sake of backwards
compatibility with old ycm_extra_conf.py files.
2013-05-19 10:48:23 -07:00
Stanislav Golovanov
837a1ab889
Fix FilterAndSortCandidates behavior
...
FilterAndSortCandidates(completions, 'word', '') should
return a dict, not a list.
2013-05-09 21:33:10 +04:00
Strahinja Val Markovic
88bff3f5cf
Making -fPIC the default
...
Fixes #211
2013-05-05 10:00:32 -07:00
Strahinja Val Markovic
7f676f85ae
Code style fixes
2013-05-05 09:47:56 -07:00
Stanislav Golovanov
6b018db10f
fix compiling with clang on Windows
...
This fixes a Visual Studio problem when it cant correctly select
bind and make_shared boost methods due to Argument-dependent name lookup.
Relevant to #19
2013-04-29 21:41:49 +04:00
Strahinja Val Markovic
387102a99f
Fix ranking bug with ALL_CAPS variables
...
GetWordBoundaryChars would return "allcaps" for "ALL_CAPS" instead of "ac". This
would manifest as ranking (for instance) "STDIN_FILENO" ahead of "stdin" for
query "std", which is terrible.
This bug has been present in YCM for many months, but no one noticed the issue.
Fixes #272 .
2013-04-28 13:21:13 -07:00
Strahinja Val Markovic
a80739ad6f
Not adding -Wc++98-compat on FreeBSD
...
Fixes #260
2013-04-27 11:07:53 -07:00
Strahinja Val Markovic
67e4495273
Stopgap for unicode chars in filename strings
...
Such filenames still can't be matched against, but at least we won't throw an
exception when it happens.
Fixes #279 , relevant to #278
2013-04-27 10:54:28 -07:00
Strahinja Val Markovic
cb7ee5e3c1
ycm_extra_conf.py file now in the public domain
...
It was never supposed to be licensed under the GPL since it's effectively
example code (that's also used for YCM compilation flags, but still).
No one has ever edited this file except me, Strahinja Val Markovic, and thus I
can release it into the public domain.
2013-04-26 15:25:19 -07:00
Strahinja Val Markovic
c3b7e55762
FilterAndSortCandidates returns all on empty query
...
Previously it returned an empty list. It makes mores sense to return the input
list of candidates because conceptually everything matches an empty query.
2013-04-20 13:27:55 -07:00
Strahinja Val Markovic
484c5f7241
Travis CI config file & related required changes
2013-04-18 23:38:29 -07:00
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
1fce7ccec2
Adding the Boost Atomic and Lockfree libraries
2013-03-16 11:00:13 -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
5d97e709f5
Adding the any_of.hpp file to BoostParts
...
Fixes #171 , fixes #170
2013-03-02 08:39:03 -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
719b497daa
More reliable way of adding -fPIC.
...
Fixes #162
2013-02-27 19:43:41 -08:00
Strahinja Val Markovic
a6a238bcf6
Deleting outdated comment
2013-02-24 14:46:58 -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
cdcfae4b41
Bringing back the Boost.Chrono workaround
...
Fixes #124
2013-02-16 17:10:01 -08: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
f42c6a5d98
Adding the forgotten boost/utility.hpp
2013-02-16 12:25:29 -08:00
Strahinja Val Markovic
0a46a6ec12
Updating to Boost 1.53
2013-02-16 12:25:28 -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