Strahinja Val Markovic
ad32584a10
Now reparsing clang files on buffer enter
...
This creates an auto PCH that speeds up code completion.
2012-07-23 18:45:00 -07:00
Strahinja Val Markovic
cfede619f2
Added flag to turn off clang completion if desired
2012-07-23 11:15:25 -07:00
Strahinja Val Markovic
cdb8dfc86b
Loading .ycm_clang_options files now
...
These files can contain flags that are passed to clang.
2012-07-22 15:19:28 -07:00
Strahinja Val Markovic
b703138cac
Adding Boost.Filesystem to BoostParts
2012-07-22 15:09:50 -07:00
Strahinja Val Markovic
6f0dc0b21d
Explicitly calling OnBufferVisit for first file
2012-07-21 15:33:59 -07:00
Strahinja Val Markovic
b53ea06d5f
Using 'dup':1 to save expensive dup eliminition
...
Since we are never going to return duplicate candidates to Vim we might as well
save some performance by forcing Vim to not search for duplicates
2012-07-21 12:17:29 -07:00
Strahinja Val Markovic
7bf18c7c5c
Improving IdentifierCompleter performance
...
We limit the number of candidates returned to Vim to 20 and also make sure that
we are not returning any duplicate candidates. This provides a noticeable
improvement in latency.
2012-07-21 12:06:18 -07:00
Strahinja Val Markovic
0f7f32d96f
Updating to boost 1.50
2012-07-21 11:37:40 -07:00
Strahinja Val Markovic
ad859ee002
Using the pyeval func introduced in vim 7.3.584
...
This makes the whole plugin much faster since we now don't need to serialize and
deserialize the return values from python funcs before we can use them in Vim.
Oh God I've been waiting for something like this for so long... using this also
forces us to demand vim 7.3.584 or higher.
2012-07-21 10:10:19 -07:00
Strahinja Val Markovic
964c42068e
Splitting the UnsavedFile struct into its own file
2012-07-21 09:09:29 -07:00
Strahinja Val Markovic
44b671c2c0
ClangCompleter now returs extra data
...
This data is used to show more information about the completions in the
completion menu.
2012-07-19 21:17:39 -07:00
Strahinja Val Markovic
e56080ea56
Using libc++ with clang from now on
...
This also applies a patch to gtest that resolves an issue with building gtest
with libc++. The patch was taken from here:
https://groups.google.com/d/topic/googletestframework/F1B9LArL9_U/discussion
2012-07-19 21:15:25 -07:00
Strahinja Val Markovic
f76ee24316
Now only showing available completion strings
2012-07-16 20:51:21 -07:00
Strahinja Val Markovic
bcb65ec43f
Refactored the task building code for simplicity
2012-07-16 20:23:17 -07:00
Strahinja Val Markovic
be41be5323
Can now ignore filetypes plugin-wide
2012-07-16 14:44:50 -07:00
Strahinja Val Markovic
ae474483e7
Whitespace fix
2012-07-16 14:35:24 -07:00
Strahinja Val Markovic
c9e1706fa1
ClangCompleter now async and caches Clang data
...
First off, we don't block the GUI thread anymore for ClangCompleter (that was
always temporary). Secondly, now ClangCompleter will cache the data coming from
clang so that query-based filtering of members is fast.
2012-07-15 20:49:56 -07:00
Strahinja Val Markovic
a04c3322cc
No results for empty query (IdentifierCompleter)
2012-07-15 19:44:35 -07:00
Strahinja Val Markovic
52d8a1236b
If query empty, Results sorted lexicographically
...
This change was also the root cause of the crash bug I spent two days tracking
down. The problem was that the new bool member was not added to the custom copy
ctor... since we don't really need a custom copy ctor for Result, we're going
with the compiler-provided one.
2012-07-15 19:40:24 -07:00
Strahinja Val Markovic
ca861d9f0c
Creating a new Completer Python base class
...
Common logic for the IdentifierCompleter and ClangCompleter (from the python
plugin) is now in the base class.
2012-07-15 18:11:26 -07:00
Strahinja Val Markovic
20f0d2a280
Removing some unused aliases
2012-07-12 20:55:00 -07:00
Strahinja Val Markovic
ce23b5ca55
Moving the LatestTask typedef to Future.h
2012-07-12 20:54:40 -07:00
Strahinja Val Markovic
81811964c3
Improving UnsavedFile operator==
2012-07-12 20:54:08 -07:00
Strahinja Val Markovic
27e1400558
ClangComplete now sorts completions based on query
2012-07-11 22:41:32 -07:00
Strahinja Val Markovic
52b1b9f660
More forward decls instead of includes
2012-07-11 22:14:28 -07:00
Strahinja Val Markovic
dad2fc31bb
Replacing a header file with a forward decl
2012-07-11 22:10:37 -07:00
Strahinja Val Markovic
be0085aca9
CandidateRepository is used for Candidate storage
...
This will make it easy to use the same Candidates for both the
IdentifierCompleter and the ClangCompleter, thereby reducing memory consumption
and increasing performance.
2012-07-11 22:08:04 -07:00
Strahinja Val Markovic
f25c3d90f7
Removing unused file
2012-07-11 21:41:39 -07:00
Strahinja Val Markovic
e78e0400d9
Renamed CompletionSystem to IdentifierCompleter
2012-07-10 23:30:44 -07:00
Strahinja Val Markovic
39ecf76798
Renamed ClangComplete to ClangCompleter
2012-07-10 23:28:58 -07:00
Strahinja Val Markovic
545792c055
Renaming Completer to IdentifierCompleter
2012-07-10 23:13:12 -07:00
Strahinja Val Markovic
39ceebbb1e
Where possible, using native objects, not vim.eval
2012-07-10 20:50:03 -07:00
Strahinja Val Markovic
ab0b349207
Sending the contents of all the modified buffers
...
Initially, we were sending only the contents of the current buffer.
2012-07-10 20:27:46 -07:00
Strahinja Val Markovic
5de395d9bb
Storing the completion start column in Vim script
...
This way we don't have to recalculate it every time we call CandidatesForQuery
2012-07-10 15:39:59 -07:00
Strahinja Val Markovic
94288108d8
Initial, rough kinda working version ClangComplete
...
Many things need to be ironed out still.
2012-07-10 15:26:07 -07:00
Strahinja Val Markovic
1df2a5d360
Using cmake_cxx_flags instead of add_definitions
2012-07-09 13:58:56 -07:00
Strahinja Val Markovic
0a553bf23c
Building in c++11 mode where available
2012-07-08 17:55:14 -07:00
Strahinja Val Markovic
30c9637992
Using the vector indexing suite from Boost.Python
...
This removes the need for a special overload for AddCandidatesToDatabase. Also,
the GetFuture function now provides a more sensible API with the list being
returned instead of accepted as an out parameter.
2012-07-08 15:34:44 -07:00
Strahinja Val Markovic
9a82319c77
Initial version of the ClangComplete class
2012-07-08 11:54:57 -07:00
Strahinja Val Markovic
fb5d25fc81
The cpp file's header should be included first
2012-07-06 14:06:21 -07:00
Strahinja Val Markovic
174687c4bc
Renaming ConcurrentStack to ConcurrentLatestValue
2012-07-06 12:14:25 -07:00
Strahinja Val Markovic
8da18e0319
Removing more llvm cruft files
2012-07-05 20:58:10 -07:00
Strahinja Val Markovic
1d1d72b039
Tweaking gitignore some more
2012-07-05 20:57:15 -07:00
Strahinja Val Markovic
c809d396d1
Removing more unwanted files
2012-07-05 20:31:42 -07:00
Strahinja Val Markovic
3880bd0093
Ignoring some llvm files we don't care about
2012-07-05 20:20:29 -07:00
Strahinja Val Markovic
65ac7dcd7b
We DO want clang to be tracked in our in-tree llvm
...
The llvm gitignore file removes all clang files from revision control. Not what
we want in our case.
2012-07-05 18:24:45 -07:00
Strahinja Val Markovic
6ea344fcbb
Removing ds_store files
2012-07-05 18:23:12 -07:00
Strahinja Val Markovic
ac1f40b9af
Renaming our gtest targets to gtest_ycm
...
llvm also has a copy of gtest in its source tree. This causes cmake to bork
since it sees several different targets with the same name (gtest and
gtest_main). So we have to rename our versions of gtest and gtest_main to
something else... We're just appending _ycm now.
This will cause pain when we want to update gtest in the future from upstream,
but I don't see a better way of handling this.
2012-07-05 17:59:32 -07:00
Strahinja Val Markovic
5f4da9324a
Adding llvm/clang to our CMakeLists files
...
The indexer target now depends on libclang. This
will force cmake to build the required parts of
llvm and clang.
2012-07-05 17:58:49 -07:00
Strahinja Val Markovic
1f51a89d39
Adding more llvm/clang files
...
These were ignored by git accidentally. We want ALL OF THEM since they all came
in the llvm/clang source distribution.
2012-07-05 17:55:45 -07:00