Commit Graph

262 Commits

Author SHA1 Message Date
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