Commit Graph

250 Commits

Author SHA1 Message Date
micbou
981a07ded7
Handle keyboard interruption from Vim 2016-09-13 00:53:31 +02:00
micbou
aca0f21a3d
Trigger BufferVisit event only when buffer has changed
When selecting candidates during completion, Vim jumps to the preview
window (if enabled) and jumps back to the actual buffer, triggering
twice the BufEnter autocommand event. This results in YCM sending
two BufferVisit and one FileReadyToParse event notifications to
ycmd, which is completely unnecessary since the current buffer
did not change. We improve this by only sending these events when the
entered buffer allowed to be completed has changed.
2016-09-07 11:21:41 +02:00
micbou
805911b56b Use SetQuickFixList for GoTo* subcommands
Open the quickfix window to full width at the bottom of the screen with
its height set to fit all entries. This behavior can be overridden by
using the YcmQuickFixOpened autocommand.
Add a new section for autocommands in the documentation.
Update GoTo and ReplaceChunks tests.
2016-06-13 00:25:12 +02:00
micbou
e52d252d08 Revert "Don't run the plugin when in diff mode"
This reverts commit a6d5979b08.
2016-04-09 12:09:10 +02:00
Val Markovic
eb8a24f23d Addressing review comments 2016-02-29 10:26:50 -08:00
Val Markovic
b04870c824 VimL support for py3 2016-02-28 13:54:49 -08:00
micbou
3cf6fa86f5 Rewrite SetUpPython function
Do not create YouCompleteMe object if setup failed. Use a try/except
block to prevent backtraces in Vim.
2016-02-24 17:56:31 +01:00
Val Markovic
f986bf19db Updating to latest ycmd 2016-02-22 09:50:15 -08:00
Davit Samvelyan
4d97437872 Moved parse request and diagnostics handling to python.
Moved File parse request handling and diagnostic extraction flow into
python to simplify flow and allow easier addition of new parse request
handlers such as semantic highlighter.
Refactored base_test to patch separate vimsupport functions instead of
the whole module, and interfering the test results afterwards.
Added new tests for diagnostic sign place/unplace and error/warning
count extraction API.
2016-02-21 14:47:54 +04:00
Andrea Cedraro
ad4091635e Add comment expaning why we defer setting the omnifunc 2015-12-31 00:12:38 +01:00
Andrea Cedraro
b4beed4939 Defer setting the omnifunc only the first time
Fix #1769
2015-12-30 14:41:38 +01:00
Ben Jackson
861546fac0 Display errors raised by OnFileReadyToParse in non-diagnostics filetypes 2015-12-20 17:27:17 +00:00
Kenny Kaye
bb8490e6c7 Properly namespace vim warning/error getters 2015-12-05 09:24:15 -08:00
Kenny Kaye
dafc36ba37 Expose functions to get error and warning counts 2015-12-04 14:45:11 -08:00
micbou
9ce4e31718 Do not capitalize :YcmToggleLogs argument
stdout and stderr names are rarely capitalized.
2015-11-11 14:15:01 +01:00
micbou
cbe3e04745 Add :YcmToggleLogs command 2015-11-08 18:43:52 +01:00
micbou
290a65219f Define Vim commands only if setup is successful 2015-10-12 15:27:30 +02:00
micbou
87854f0245 Move PathToPythonInterpreter function to YCM
Create a module for paths.
2015-10-09 18:53:24 +02:00
Spencer G. Jones
9f568be39a fixup! Add CompleteDone hook, with namespace insertion for C# 2015-08-31 10:51:23 -06:00
Spencer G. Jones
dd27184970 Add CompleteDone hook, with namespace insertion for C#
Add a new vim hook on CompleteDone. This hook is called when a
completions is selected.

When forcing semantic completion with the keybind, C# completions can
return a list of importable types. These types are from namespaces which
havn't been imported, and thus are not valid to use without also adding
their namespace's import statement. This change makes YCM automatically
insert the necessary using statement to import that namespace on
completion completion. In the case there are multiple possible
namespaces, it prompts you to choose one.
2015-08-28 10:05:46 -06:00
micbou
037bd0f6f1 Fix trigger issues
Fix the following cases where the completion is not triggered for
the next typed character:
 - moving vertically in insert mode,
 - removing a character and entering insert mode.
2015-08-03 22:32:57 +02:00
Strahinja Val Markovic
5796f52797 Whitespace fixes 2015-07-02 14:32:27 -07:00
Strahinja Val Markovic
98d687a5e0 Updating to latest ycmd
Related to Valloric/ycmd#171
2015-07-01 17:52:51 -07:00
Andrea Cedraro
7bc05a37b5 Fix check condition for setting omnifunction 2015-06-18 14:08:06 +02:00
Andrea Cedraro
4104f7be82 Push check for NativeFiletypeCompletionUsable down
Another way in which the commit d768447 forced the client to wait for
the server to start was the UpdateDiagnosticNotifications call from the
FileReadyToParse which is called right after a buffer is loaded. In any
way if we don't have any previous FileReadyToParse request done for the
current file we bail out, so we we can wait for a FileReadyToParse
response to be available before asking if a completer is usable for the
current filetype.

ref: #1529
2015-06-15 16:08:56 +02:00
Andrea Cedraro
30036ca8e2 Defer setting the omnifunc.
When we enter a new buffer we need to know if the ycmd server has a
native completer for the current filetype, this means that when we start
vim we need to know if the server has a completer available for the
buffer which means that we have to wait for the server to be up and
running. To mitigate this defer the setting of the omnifunction closer
to its need which is when we enter insert mode; this should give room
for the ycmd server to start before we ask for anything or at least
should reduce the time waiting.

ref: #1529
2015-06-15 16:08:50 +02:00
Frankie Robertson
63a7aa9daf Remap <Nul> to <C-Space> regardless of gui_running since it is an unreliable way of detecting terminals in neovim 2015-06-03 14:33:56 +03:00
Andrea Cedraro
e28c709b99 Disable on large file
closes #1238
2014-12-05 10:32:52 +01:00
Spencer G. Jones
ac3a48de70 Unlike the other functions, youcompleteme#EnableCursorMovedAutocommands and youcompleteme#DisableCursorMovedAutocommands are not overwriting. This causes an error if the file is reloaded. 2014-10-14 11:11:33 -06:00
Strahinja Val Markovic
7cb41a20ac Moved some code around 2014-09-15 12:39:05 -07:00
Husak Kristijan
8e14914602 Remove commands for lock and unlock. 2014-09-15 12:37:18 -07:00
Husak Kristijan
abdf38a055 Change function names and make them public. 2014-09-15 12:37:17 -07:00
Husak Kristijan
2be6adda06 Add functionality for disabling and enabling Ycm autocompletion. 2014-09-15 12:37:17 -07:00
Strahinja Val Markovic
733de48efc Better handling of issues during python setup
Fixes #1151
2014-09-04 13:12:37 -07:00
vphilippon
5382ade94f Close Preview Window after insertion, fixed.
Remove s:searched_and_results_found. No more need for it.
2014-07-25 20:01:26 -04:00
Strahinja Val Markovic
666cf3859a Better detection of shortmess 'c' availability
Also noting that the annoying messages during completion go away with Vim
7.3.314.

Related to #642.
2014-05-28 15:48:49 -07:00
Strahinja Val Markovic
9100044afc Refactored completion request creation
- OmniCompleter is now more similar to other Completers.
- CompletionRequest doesn't store start_column anymore.
- Calling BuildRequestData only once per request.
2014-05-27 17:38:34 -07:00
Strahinja Val Markovic
4cf9cfcdff Updating to latest ycmd
Since ycmd doesn't need 'query', 'start_column' and 'line_value' params, we
don't send them anymore.
2014-05-27 14:30:22 -07:00
Strahinja Val Markovic
655523447c Now importing ycmd's third_party folders as well 2014-05-14 10:56:37 -07:00
Strahinja Val Markovic
a09527b380 More fixes for separate ycmd 2014-05-14 10:35:49 -07:00
Strahinja Val Markovic
a69bbb3009 Updating code to work with new ycmd location 2014-05-13 13:09:19 -07:00
Spencer G. Jones
465019b197 Support for SyntaxErrors in CSharp completer 2014-05-08 15:40:50 -06:00
Mathias Stearn
a1be7dc64c Only adjust updatetime if above 2000.
Goal is to lower it so don't raise it if already low.

Closes #834
2014-04-16 14:50:20 -04:00
Strahinja Val Markovic
1a33f34ec0 Adding the g:ycm_open_loclist_on_ycm_diags option 2014-01-29 10:59:15 -08:00
Strahinja Val Markovic
b1bba2e201 Changing copyright headers from me to Google
When I initially released this project, I released it under my own copyright. I
have since then worked on it in my 20% time at Google (and want to continue
doing this) and my life becomes much simpler if the copyright is Google's.

From the perspective of how this project is run and managed, **NOTHING**
changes. YCM is not a Google product, merely a project run by someone who just
happens to work for Google.

Please note that the license of the project is **NOT** changing.

People sending in future pull requests will have to sign the Google
[CLA](https://developers.google.com/open-source/cla/individual) (you can sign
online at the bottom of that page) before those pull requests could be merged
in. People who sent in pull requests that were merged in the past will get an
email from me asking them to sign the CLA as well.
2014-01-13 11:08:43 -08:00
Strahinja Val Markovic
9c443dabd8 Not matching catch against error message
That fails if a different locale is loaded because Vim localizes error messages.

Fixes #767
2014-01-11 11:55:40 -08:00
Strahinja Val Markovic
808d88bf55 Prevent error echos during completion, if possible
Related to #642.
2014-01-10 15:01:30 -08:00
Strahinja Val Markovic
209d22cfdb DiagnosticInterface now uses server diag objects 2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
65e6b55268 Now showing red squiggle under diagnostic location 2014-01-06 15:24:05 -08:00
Strahinja Val Markovic
c9e9a640ac Echoing diag text on when cursor on diag line 2014-01-06 15:24:05 -08:00
Strahinja Val Markovic
6c01881e1a Replaced Syntastic support with YCM-native code
Currently, the only supported Syntastic features are the error signs in the
gutter. Other features will be added in the future.
2014-01-06 15:24:05 -08:00
Strahinja Val Markovic
afb70bf65e Revert "Not using Syntastic lazy redraw anymore"
This reverts commit 4d8fea4b2d.

Since the commit we are reverting didn't resolve #669, we are reverting it to
fix #593 (again).
2013-12-27 10:54:36 -08:00
Strahinja Val Markovic
4d8fea4b2d Not using Syntastic lazy redraw anymore
This gets rid of the annoying flashing (issue #669), but reverts the workaround
for a rare Vim crash bug (issue #593). We can't have both. Update to latest Vim
to not get the crash bug.

Fixes #669.
2013-12-10 10:16:38 -08:00
Strahinja Val Markovic
e0c7db4ac5 Fix issue with omnifunc mode persisting
This can happen when the user inserts a candidate string like "operator[]" which
doesn't end with an identifier char. A very obscure bug, but a bug nonetheless.
2013-12-03 14:39:31 -08:00
Strahinja Val Markovic
6c3a48be7a Typing after <c-space> in g:ycm_auto_trigger works
We'd show the user the menu, but then we'd hide it as soon as the user tried to
type to filter the candidates.

Fixes #704
2013-12-03 12:55:05 -08:00
Strahinja Val Markovic
aeb2c5c227 Adding the g:ycm_auto_trigger option
Toggling this option off turns off the identifier completer and the semantic
triggers.

Fixes #597
2013-12-02 16:37:59 -08:00
Strahinja Val Markovic
06b5411fb3 Revert "Add possibility to disable identifier completion engine"
This reverts commit 44d5747d23.

Conflicts:
	README.md
2013-11-17 14:44:43 -08:00
Jan Vcelak
44d5747d23 Add possibility to disable identifier completion engine
Setting negative value of 'g:ycm_min_num_of_chars_for_completion'
disables identifier completion.
2013-11-17 23:05:49 +01:00
Strahinja Val Markovic
3ffae48a35 Always ignoring 'qf' buffers
Fixes #643.
2013-11-16 10:31:34 -08:00
Strahinja Val Markovic
38f571db1f C-family filetypes now Syntastic passive mode
This is needed so that Syntastic doesn't call :SyntasticCheck (and thus YCM
code) on file save unnecessarily. We call :SyntasticCheck ourselves often
enough.
2013-10-29 13:00:36 -07:00
Strahinja Val Markovic
f46bc7335e Setting Syntastic option to work around a vim bug
See https://github.com/scrooloose/syntastic/issues/834 for details.
2013-10-29 11:33:08 -07:00
Strahinja Val Markovic
6d9969fa9c Surfacing ycmd server PID to user scripts
To get the PID, call function youcompleteme#ServerPid().
2013-10-22 10:51:37 -07:00
Strahinja Val Markovic
18002e17df Better handling of crashed ycmd; restart command
Previously the YCM Vim client would go bonkers when ycmd crashed. Now the user
can continue using Vim just without YCM functionality.

Also added a :YcmRestartServer command to let the user restart ycmd if it
crashed. With a little luck, this will be rarely necessary.
2013-10-15 15:27:54 -07:00
Strahinja Val Markovic
436017bd4d Now using new ycm_client_support shared lib
This means we can now load just ycm_client_support (which is a much smaller
library) into Vim and ycm_core into ycmd. Since ycm_client_support never depends
on libclang.so, we never have to load that into Vim which makes things much,
much easier.
2013-10-15 14:15:04 -07:00
Strahinja Val Markovic
5000d2e4ae NativeFiletypeCompletionAvailable now a local call
It used to block on the server to get the data. Now it doesn't anymore. This
speeds up Vim startup.
2013-10-07 16:10:48 -07:00
Strahinja Val Markovic
c7be1f1b47 Omni completion works again 2013-10-07 15:47:48 -07:00
Strahinja Val Markovic
ff7fa74fc9 <c-space> works again (forces semantic completion) 2013-10-07 13:09:34 -07:00
Strahinja Val Markovic
a9d7105e1b YCM now working on new buffers with ft set
We used to demand a name be set for the buffer.

Fixes #568.
2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
8bc888d711 Vim now loads most defaults from the json file 2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
534f6f57d4 Fix issue with slow cursor moving in Python
This happened when moving the cursor in normal mode. The problem was that we
were calling SyntasticCheck on every cursor move because YCM would think that
the FileReadyToParse event processing returned diagnostics... but YCM only
integrates with Syntastic for C-family files.

Fixed by only triggering SyntasticCheck in C-family files.
2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
c43327d176 YcmShowDetailedDiagnostic works again 2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
159a8ecdfa YcmDiags and ForceCompilation work again 2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
c274b7d4f8 Fixing the diagnostic-related race conditions
Now, every FileReadyToParse event returns diagnostics, if any. This is instead
of the previous system where the diagnostics were being fetched in a different
request (this caused race conditions).
2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
b9bb788a2a Diagnostics work again... somewhat.
There appear to be timing issues for the diag requests. Somehow, we're sending
out-of-date diagnostics and then not updating the UI when things change.

That needs to be fixed.
2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
9d0a6c96d7 Event and completion request are now async
This results in a much snappier Vim.
2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
5dd6782970 Vim doesn't execute extra conf preload
This is executed inside the server now, as it should be.
2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
446d02f66e Subcommand name completion works again 2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
fe0c0a1607 GoTo commands work again 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
4c6a69b432 The UltiSnips completer works again 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
1730660555 A (barely) working version of ycmd + client
Still a lot of work to do.
2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
02b88dccf1 extra conf store now vim-free 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
Strahinja Val Markovic
bd374a7096 Completer access now through CompletionRequest
This will make it easier to put Completers in the server.
2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
a26243092f Now more explicit about accessing user options
We don't inspect the Vim process anymore when we want an option; we parse the
options on startup and then use that data structure.
2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
496fe8f7a3 Reordering some YCM init logic 2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
9d34fad24f Now parsing file on every normal mode cursor move
This is still fast & efficient because if we detect that the buffer hasn't been
changed (by examining b:changedtick), the parse doesn't proceed.

In effect, we now make sure we parse the file after every change to the buffer
as soon as that change happens. This means that compilation error feedback will
now be much, MUCH quicker.
2013-08-16 14:49:00 -07:00
Val Markovic
bce44ef0fc Merge pull request #510 from svermeulen/CursorHoldError
Bug fix, was triggering an error in the command line edit window (ie. th...
2013-08-15 14:30:51 -07:00
svermeulen
ea819684d8 Bug fix, was triggering an error in the command line edit window (ie. the window you get by hitting c-f in command line) after not moving the cursor for a few seconds (ie. when CursorHold event is fired) 2013-08-15 17:19:17 -03:00
Strahinja Val Markovic
96d4874fe0 Ensuring b:ycm_changedtick always exists
Fixes #503 (I hope).
2013-08-13 10:03:34 -07:00
Strahinja Val Markovic
d35b39a20c Now parsing file on insert mode leave as well
We used to do it on buffer enter and cursor hold. Doing it on insert leave too
produces much quicker compilation error feedback when editing C-family code
because the user doesn't have to wait for the next cursor hold event.
2013-08-12 20:11:41 -07:00
Strahinja Val Markovic
60c9908d25 Ensure g:ycm_changedtick is always set.
Fixes #493.
2013-08-07 16:54:14 -07:00
Strahinja Val Markovic
360a70b1b3 Deleting some dead code 2013-08-05 13:36:11 -07:00
Strahinja Val Markovic
4db6fb8d7f Revert to old way of tracking insert mode change
b:changedtick is incremented by the feedkeys() call which screws us up and
there doesn't seem to be a way around it that's worth the hassle.
2013-08-03 18:42:16 -07:00
Strahinja Val Markovic
fc3a303ace Only parsing file if changes detected
Previously we would do it on every CursorHold, buffer changed or not.

Fixes #485.
2013-08-03 15:48:03 -07:00
Strahinja Val Markovic
edae6fd0a2 Using b:changedtick for change detection
For now, doing it just for detecting whether a change was made on move in insert
mode.

Using b:changedtick instead of our homebrew way of detecting the changed should
be both faster and more robust.
2013-08-03 15:05:25 -07:00
Strahinja Val Markovic
451acc0073 Adding OnVimLeave support to Completer class 2013-07-07 11:00:45 -07:00
Strahinja Val Markovic
16b6f877c6 Don't call SyntasticCheck if not syntastic checker
If the user forced YCM to not register itself as the Syntastic checker, we
should not be calling SyntasticCheck since that would slow down everything.

Fixes #416
2013-07-01 10:46:49 -07:00
Strahinja Val Markovic
e740bac1f6 Better completion in the middle of a word
For instance (`|` represents the cursor):
  1. Buffer state: `foo.|bar`
  2. A completion candidate of `zoobar` is shown and the user selects it.
  3. Buffer state: `foo.zoobar|bar` instead of `foo.zoo|bar` which is what the
  user wanted.

This commit resolves that issue.

It could be argued that the user actually wants the final buffer state to be
`foo.zoobar|` (the cursor at the end), but that would be much more difficult
to implement and is probably not worth doing.

Fixes #374.
2013-06-09 19:00:49 -07:00
Strahinja Val Markovic
381b86d595 Fixing python tests broken in rename 2013-05-19 20:06:14 -07:00
Strahinja Val Markovic
faa225fdc4 Moving everything under pytho/ycm 2013-05-19 19:44:42 -07:00