Commit Graph

786 Commits

Author SHA1 Message Date
Ben Jackson
134b06b65e Fix GoTo lists arriving at the wrong column.
Vim's QuickFix lists require 1-based columns, which is what is returned
from ycmd's commands.

 As noted in the comments, the Vim documentation for setqflist is
somewhat vague about this "byte offset", but it is confirmed to mean
"1-based column number" both in testing and in :help getqflist.
2016-01-04 23:04:13 +00:00
micbou
7fda494026 Add quotes in notifications
Add quotes for Vim commands and options in notifications.
2016-01-03 12:13:00 +01:00
micbou
da095cb93b Update notifications when ycmd server crashed
Tell the user to run the YcmToggleLogs command if the server crashed.
2016-01-02 21:16:00 +01:00
micbou
f015d518a3 Fix traceback when v:completed_item is empty
Check if the Vim variable v:completed_item is not empty before
accessing one of its keys. Prevent a traceback when the ycmd server
crashed.
2015-12-27 18:46:05 +01:00
Ben Jackson
0b07b7467d Add tests for YouCompleteMe.ValidateParseRequest
Most of the code is mocking boilerplate but it shows that the behaviour is as
defined in the comments.
2015-12-24 21:06:44 +00:00
Ben Jackson
6029a672ee Prevent postcomplete_tests.py from leaving mock object lying around
Previously, running postcomplete_tests.py could lead to MagicMock objects being
left around within the ycm modules. This lead to random test failures in other
modules.

Further, by using mock.patch appropriately, tests withing postcomplete_tests.py
no longer rely on mocking performed by previous tests (and can be successfully
run individually)
2015-12-21 19:38:56 +00:00
Ben Jackson
861546fac0 Display errors raised by OnFileReadyToParse in non-diagnostics filetypes 2015-12-20 17:27:17 +00:00
Homu
14083d939d Auto merge of #1821 - micbou:ycm-issue-1818, r=vheon
Set buffer filetypes for UltiSnips

Currently, only `all` snippets are displayed by YCM because UltiSnips is called without setting the buffer filetypes. See issue #1818.

This is fixed by using UltiSnips methods `reset_buffer_filetypes` and `add_buffer_filetypes`.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/1821)
<!-- Reviewable:end -->
2015-12-11 02:55:11 +09:00
micbou
aa73ea0175 Set buffer filetypes for UltiSnips
This fixes #1818.
2015-12-10 00:20:25 +01:00
Kenny Kaye
163238992c Document YcmGetErrorCount and YcmGetWarningCount functions 2015-12-05 09:12:28 -08:00
Kenny Kaye
dafc36ba37 Expose functions to get error and warning counts 2015-12-04 14:45:11 -08:00
micbou
37f3f1530e Handle scalar response from subcommands
When the ycmd server returns a scalar (boolean, number, string, etc.)
from a subcommand, print it to the user.
2015-11-29 20:03:02 +01:00
micbou
13aeaa37a8 Handle boolean responses from ycmd
Fix ServerReady, ServerRunning, and ServerTerminated subcommands from
C♯ completer.
2015-11-28 16:48:24 +01:00
Homu
2de2f0df8d Auto merge of #1760 - micbou:ycm-toggle-logs, r=Valloric
Introducing :YcmToggleLogs command

Two approaches were proposed in PR #1753:
- open the stdout and stderr logfiles in Vim windows or close them if already opened: `:YcmToggleLogs`;
- open one of the logfiles in the preview window by specifying it as an argument in the command: `:YcmShowLog <stdout|stderr>`.

This PR merges both approaches by adding an optional argument (`Stdout` or `Stderr`) to the first approach. When no argument is given, both logfiles are opened (or closed if already opened).

With this approach, we cannot use the preview window because only one such window is allowed by Vim. So, we simulate it by adding properties specific to the preview window (horizontal split, height, etc.)

Since they are multiple ways to open a file in Vim, I added a generic function `OpenFilename` for this. It makes easy to customize the way logfiles are opened and could be useful for new features.

Tests were a pain to add and I am not sure of the way I implemented them. If someone could review them. There is some refactoring of the Vim mock.

I updated the documentation and the contribution guidelines. I added a new instruction when creating an issue: adding the output of the `:YcmDebugInfo` command. We often ask it in the issues.

I suggest fetching the `ycm-toggle-logs` branch of my repository to test yourself this command.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/1760)
<!-- Reviewable:end -->
2015-11-17 12:29:56 +09:00
micbou
6f36c3ff82 Improve :YcmToggleLogs behavior
If already opened logfiles are not visible (hidden buffers or in another
tab), close them and open new ones. It fixes the issue where the command
seems to do nothing even though it actually close the non-visible logfiles.
2015-11-11 14:32:01 +01:00
micbou
2eb75ced81 Update buffers-related tests
Mock buffers as a list of buffers where each buffer is represented
as a dictionary containing its filename, its number, and optionally
its associated window.
Test buffer visibility instead of existence.
Mock Vim wipeout command.
Refactor Vim mocks.
2015-11-11 14:18:26 +01:00
Ben Jackson
90dc6fdae5 Correct import of argparse 2015-11-08 23:09:41 +00:00
Ben Jackson
0639200153 Run tests on OS X
We import the scripts from ycmd with a couple of modifications:
 - don't set YCM_CORES=1 as we didn't before, and this makes the build a lot faster
 - don't install gcc-4.8 as we didn't before
 - install argparse as it is not available in python2.6
2015-11-08 22:07:45 +00:00
micbou
cbe3e04745 Add :YcmToggleLogs command 2015-11-08 18:43:52 +01:00
micbou
f23cbae2a8 Add tests for Vim file and buffer operations
Refactor Vim mocking.
2015-11-08 18:43:52 +01:00
micbou
186aa6b671 Remove g:ycm_server_use_vim_stdout option
This option does not work like expected. Logs are not written to the
console. It also makes the ycmd server unresponsive on Windows.
2015-10-27 18:19:22 +01:00
Davit Samvelyan
cb3325970e Refactoring 2015-10-14 11:37:33 +04:00
Davit Samvelyan
a0495a994e Fix for rare crash when trying to jump to file which has .swp 2015-10-13 18:46:20 +04:00
micbou
87854f0245 Move PathToPythonInterpreter function to YCM
Create a module for paths.
2015-10-09 18:53:24 +02:00
Ben Jackson
958d8f1eb5 Support subcommands which return detailed info
We display the detailed info text in the preview window. Vim's preview window is
designed to display actual files, not scratch data. Our approach is to open a
temporary file, even though that file is never written. This way, all of Vim's
existing settings for the preview window (and people's configured mappings) just
work. This is also consistent with showing the documentation in the preview
window during completion.

Other plugins have more complicated functions for this (such as eclim), or
Scratch.vim, but this approach is simple and doesn't require external
dependencies or additional settings.

Tests:

This required fixing a sort-of-bug in which the mock'd Vim module was always
only set once, and could not be changed outside of the module which created it.
This meant that it wasn't easy to have arbitrary tests, because it was dependent
on the order in which the tests execute as to whether the return from
MockVimModule() was actually the one in use.

The solution was to make the mock'd vim module a singleton, and use mock's
patch decorator to assign new MagicMock() instances to those methods in the vim
module which a particular test is interested in.
2015-09-20 21:30:23 +01:00
Spencer G. Jones
bb21150798 Fix merge test failure 2015-09-13 08:57:09 -06:00
Spencer G. Jones
2a41101955 Merge remote-tracking branch 'origin/master' into CsAddImport 2015-09-13 08:49:28 -06:00
Homu
a4f7d02a3b Auto merge of #1676 - micbou:fix-it-chunks-sorting, r=Valloric
Correct FixIt chunks sorting

While playing with FixIts in C++, I found the following issue. When fixing the third line in the code:
```cpp
template<int Value> struct CT { template<typename> struct Inner; };

CT<10 >> 2> ct; // expected-warning{{require parentheses}}
```
the following result is obtained:
```cpp
CT<1(0 >> 2)> ct; // expected-warning{{require parentheses}}
```
which is obviously wrong.

The issue is YouCompleteMe does not replace the chunks in the right order. It starts by adding the closing parenthesis, add one to the delta and inserts the opening parenthesis in the wrong place cause of the delta.

We actually use the expression `str(line) + ',' + str(column)` to sort the chunks by line then column whereas it should simply be `(line, column)`.

This PR fixes this issue, adds two tests which are failing in the current version, refactors the `_HandleFixitResponse` function and cleans up code.
2015-09-13 13:48:54 +09:00
Ben Jackson
5cfd6376c6 Show docs from clang completer in preview window
We add the detailed_info (which is the function definiton)
followed by the brief comment
2015-09-12 20:51:04 +01:00
micbou
8c17995bee Correct FixIt chunks sorting 2015-09-12 18:14:06 +02:00
micbou
17f5f20cd6 Add chunks sorting tests 2015-09-12 18:14:05 +02:00
micbou
2c72a3c598 Clean code in vimsupport tests 2015-09-12 18:14:04 +02:00
micbou
33316d8bf8 Refactor _HandleFixitResponse function 2015-09-12 18:13:54 +02:00
Spencer G. Jones
28e318c0bb fixup! To determine which completion prompted CompleteDone, look at the new variable if vim is recent enough. 2015-09-10 09:18:48 -06:00
Spencer G. Jones
af4aaa1d17 fixup! To determine which completion prompted CompleteDone, look at the new variable if vim is recent enough. 2015-09-09 09:08:41 -06:00
Spencer G. Jones
9f134c4dd0 To determine which completion prompted CompleteDone, look at the new variable if vim is recent enough. 2015-09-09 08:27:15 -06: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
Spencer G. Jones
7e9333a9c2 VimVersionAtLeast was not "at least" for minor/major version differences 2015-08-28 08:26:04 -06:00
Ben Jackson
fa32819d4f Pass cwd to completer for filename completions 2015-08-26 23:41:40 +01:00
Ben Jackson
258951ece4 If errors are returned in addition to completion suggestions, print them 2015-08-17 01:13:20 +01:00
Ben Jackson
98c4d712b4 YouCompleteMe client support for FixIt subcommands 2015-08-05 22:09:07 +01:00
micbou
0fd842a29e Set stdin to PIPE on Windows only when necessary
Executing the check_core_version.py script with SafePopen and stdin to
PIPE raises an error in Vim on Windows. Since the stdin option is only
useful when starting the ycmd server, it is only set in this case.
2015-07-02 20:47:13 +02:00
Strahinja Val Markovic
8505544d23 Deleting obsolete code 2015-07-02 08:38:27 -07:00
Strahinja Val Markovic
9de61988ac Fix bad formatting for YcmCompleter message
Fixes #1522
2015-06-30 14:24:05 -07:00
Strahinja Val Markovic
ecb4252322 Minor formatting fixes 2015-06-30 13:52:47 -07:00
micbou
69eee2097f Redraw the screen before displaying a message
This avoids the infamous "Press ENTER or type command to continue"
prompt when editing a new C-family file.
2015-06-20 05:57:01 +02:00
Andrea Cedraro
fbdf7cc85e Reverse if logic in UpdateDiagnosticInterface 2015-06-15 16:08:56 +02:00
Andrea Cedraro
3dd24201f3 Revert "Revert "Check the server end point for available completer""
This reverts commit f5e2fc6958.
2015-06-15 16:08:56 +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
77947accf3 Disable completion if any of current filetypes is disable
Fixes #1531
2015-06-12 13:04:03 +02:00
Strahinja Val Markovic
f5e2fc6958 Revert "Check the server end point for available completer"
This reverts commit d7684470a2.

Fixes #1529
2015-06-11 12:37:40 -07:00
Andrea Cedraro
d7684470a2 Check the server end point for available completer
Previously we were checking if the `hook.py` file existed for the given
filetype. ycmd has an endpoint for checking if given a filetype a
semantic completer is available. To avoid redundant requests we cache
those requests for every filetype. A semantic engine cannot be added
*after* the ycmd server is started so to avoid redundant requests we
cache those requests for every filetype and we clear the cache at server
setup, in this way if we issue a `YcmRestartServer` command the server
will be setup again and if a semantic completer is available we can use
it. Should fix #1284.
2015-06-09 13:09:25 +02:00
Strahinja Val Markovic
a70bf21d29 Updating to latest ycmd
This required changing the HMAC calculation logic.
2015-04-17 15:01:29 -07:00
Sidney San Martín
0e9324d012 Fix spurious warning about missing newline at EOF
C requires a newline at the end of any file, and clang may warn if it's
missing. Vim always saves one to disk, and we should mimic this.
2015-04-15 00:38:05 -07:00
Andrea Cedraro
3c63d22c59 Add new-or-existing-tab as ycm_goto_buffer_command method
resolves #1398
2015-03-26 12:10:46 +01:00
Ben Jackon
2215bcdeb5 Support completer commands that return text …
This is required to allow the ycmd GetType and GetParent subcommands to echo
their reults in vim. The apporach is to display any text returned from a
subcommand in the 'message' property assuming that the command is not a known
'GoTo' command.
2015-03-19 13:31:24 +00:00
Strahinja Val Markovic
74668373f8 Updating to latest ycmd 2015-03-06 17:07:58 -08:00
Strahinja Val Markovic
4436d515d3 Updating to latest ycmd 2015-01-30 10:21:35 -08:00
Strahinja Val Markovic
ba6e1408fd Updating to latest ycmd 2015-01-22 10:14:28 -08:00
Strahinja Val Markovic
2fafab88c4 Ignoring the new "already being parsed" message
This exception comes from ycmd and is not something the user can do
anything about, so let's rather not show it.
2014-12-10 13:46:10 -08:00
Strahinja Val Markovic
def392d24c Fix Vim E885: not possible to change sign
Clang will sometimes give a diagnostic for line 0, and Vim borks on
placing signs for line 0.
2014-10-29 10:16:38 -07:00
Strahinja Val Markovic
fe24f02005 Minor refactoring 2014-10-29 10:02:41 -07:00
Strahinja Val Markovic
ecd2041d9b Updating to latest ycmd
Also required an ABI version bump (some internal names were changed).
2014-10-13 15:14:56 -07:00
Strahinja Val Markovic
33b5b1eb02 Minor refactoring & stylistic changes. 2014-09-19 12:30:15 -07:00
Stanislav Seletskiy
3fcc63127f
Fix handling of signs placed by other plugins
It appears to address numerous amount of issues, including: #812, #801, #887.

Proposed solution uses dummy sign which is placed before updating
diagnostic signs and unplaced afterwards, which eliminates any
flickering. Also, it not just unplace all, it unplaces only that marks
that are changed, so performance should not be an issue in case of many
diagnostic messages.

It's common solution that can be found in some vim plugins that manage
signatures.

Signed-off-by: Stanislav Seletskiy <s.seletskiy@gmail.com>
2014-09-19 03:38:10 +07:00
Strahinja Val Markovic
24bbcf8811 Fix KeyError on no 'no_proxy' env var 2014-09-11 15:19:26 -07:00
Matthias Bilger
d3adb3faf1 Append to no_proxy instead of overwrite
Overwriting no_proxy may cause some trouble for other plugins using network in environments with proxy exceptions, e.g. vim-fugitive
2014-09-11 07:22:27 +02:00
Strahinja Val Markovic
feca403431 Now extracting PHP functions.
Needed special support because of 'contained' syntax arg.

Fixes #1143
Related #1058
2014-09-02 10:53:38 -07:00
Strahinja Val Markovic
15d305ab11 'Function' syntax group now correctly configured 2014-09-02 10:34:26 -07:00
Strahinja Val Markovic
2a704bc668 Custom identifier support now done.
This commit is the YCM-client part of the support. The ycmd support is
already done.

We now need per-language identifier regexes in ycmd (see
identifier_utils.py). There's some for HTML, CSS and the generic regex
that was used for everything until now.  Pull requests welcome for other
languages.

Fixes #86.
2014-08-28 11:39:10 -07:00
Strahinja Val Markovic
57b1ae129c Added a unicode test for OverlapLength() 2014-08-28 11:39:10 -07:00
Strahinja Val Markovic
c032cf30c0 Removing default server_location. 2014-08-22 11:25:58 -07:00
Strahinja Val Markovic
32e3494d6e Handling os.getcwd() throwing an exception.
This can happen if the CWD has been deleted.

Fixes #1129
2014-08-20 13:40:17 -07:00
Strahinja Val Markovic
a5b750703f Comment update 2014-08-19 13:59:33 -07:00
Strahinja Val Markovic
f1ebf51fcb Fix traceback on quote in filename
Fixes #1109
2014-07-31 10:30:03 -07:00
Val Markovic
fd324cbcbb Merge pull request #1070 from evansb/master
Fix unicode-character filename bug.
2014-07-21 15:31:45 -07:00
Evan Sebastian
d18d515b29 Fix unicode-character filename bug.
Issued here https://github.com/Valloric/YouCompleteMe/issues/1069
To reproduce:
1. Create any file with unicode character on its filename, e.g `Ω.c`
2. Open the file and start adding codes until >5 lines (i.e ycm start compiling)
3. YCM will crash due to unicode encoding error. See issue referenced above for complete log.
2014-07-07 22:52:17 +07:00
Alexandre Fonseca
09379b3ff6 Allow '*' in ycm_filetype_specific_completion_to_disable.
I love YCM's auto popup with keyword completion when power typing but
would rather not have semantic completion activate unless I really want
it to (most semantic completers are somewhat slow and sometimes end up
breaking my flow). When in API exploration mode, I don't mind having
to press C-Space to force completion and wait a bit more.

Unless I'm mistaken, the current code does not allow wildcards in the
specification of filetypes on which to disable automatic semantic
completion. This change allows the use of '*' to disable automatic
semantic completion in all files.
2014-06-30 15:36:37 +02:00
Strahinja Val Markovic
6cd929c829 Further support for diag line_num < 1
Fixes #1028
2014-06-09 10:18:03 -07:00
Strahinja Val Markovic
afbc7869a7 Fix off-by-one error with location list diags 2014-06-09 10:04:07 -07:00
Strahinja Val Markovic
0cdb588207 Updating to latest ycmd
Diagnostic & completion 'kind' changed in the REST API.
2014-06-03 14:49:53 -07:00
Strahinja Val Markovic
e9a318fc7c Update to latest ycmd
Upstream completions API changed.
2014-06-02 15:15:45 -07:00
Strahinja Val Markovic
748afecc4a Handle libclang diags for line_num 0
Fixes #978
2014-05-29 13:25:43 -07:00
Strahinja Val Markovic
09d4723fcc Updating to latest ycmd
Top-level 'filetypes' property not needed in request data anymore.
2014-05-29 10:42:46 -07: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
8615e408b4 Updating to latest ycmd 2014-05-28 11:24:33 -07:00
Strahinja Val Markovic
5d647fec99 Removing erroneous whitespace 2014-05-28 10:20:54 -07:00
Strahinja Val Markovic
6fa49582ed Fix missing param in OmniCompletionRequest 2014-05-28 00:05:50 -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
876eaf9c33 OmniCompleter requests now have buffer data
RequestWrap needs buffer data to produce computed properties.
2014-05-27 15:34:46 -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
3d733dca2d :YcmCompleter<TAB> now won't print traceback
If there's no semantic completer set for the current filetype,
:YcmCompleter<TAB> would print an ugly traceback. Ugh.

Fixes #989.
2014-05-22 14:12:51 -07:00
Val Markovic
b49ceecedb Merge pull request #987 from fcelda/ycmd_ipv4
Use IPv4 to connect to ycmd
2014-05-22 12:20:48 -07:00
Strahinja Val Markovic
4344ee70a8 run_tests.sh only runs YCM tests, not ycmd ones 2014-05-21 13:41:31 -07:00
Jan Vcelak
5916226f06 use IPv4 to connect to ycmd 2014-05-21 22:40:47 +02:00
Strahinja Val Markovic
26ab52e7a7 Removing clang_includes; now in ycmd repo 2014-05-21 13:10:57 -07:00
David\ Beitey
3bef7977a9 Enable Function syntax for keyword seeding 2014-05-21 13:33:45 +10:00
Strahinja Val Markovic
ec6966236c GoTo commands now work when spaces in filenames
Fixes #977
2014-05-19 12:37:30 -07:00
Strahinja Val Markovic
68f3577b87 Faster drawing of red diagnostic underlines
The new version of the regex executes faster.

Fixes #968.
2014-05-19 11:10:03 -07:00
Strahinja Val Markovic
d7195f6f19 Fixing race condition on server crash
Crash handling code tried to read stderr log file, but the file can be deleted
by the server befor we get to look at it. In such a case, we post a different
error message (without the log output).

Point is we do our best to get the error output if the user doesn't have
g:ycm_server_keep_logfiles set. If we can't get the logfile, oh well. We tell
the user to set that flag if they care.

Fixes #974.
2014-05-16 19:26:46 -07:00
Strahinja Val Markovic
a69bbb3009 Updating code to work with new ycmd location 2014-05-13 13:09:19 -07:00
Strahinja Val Markovic
abfba7a1aa Moved ycmd-related files to third_party/ycmd
This is in preparation of splitting ycmd into a separate project.
2014-05-12 17:00:43 -07:00
Strahinja Val Markovic
7eaafd7ff8 Using OmniSharp from new directory 2014-05-12 16:30:54 -07:00
Strahinja Val Markovic
ea8ef9c34a Moved OmniSharpServer to third_party folder 2014-05-12 16:14:29 -07:00
Strahinja Val Markovic
1ead914c4e Fixing OmniCompleter to use 1-based start_column
Fixes #963.
2014-05-12 12:54:19 -07:00
Strahinja Val Markovic
d56ec1ea7a ycmd's JSON interface now uses 1-based indices
This makes far more sense because editors manipulate user-level errors/warnings
on a 1-based system, not a 0-based one.
2014-05-09 15:57:04 -07:00
Strahinja Val Markovic
4529bda5c2 Remove unused import 2014-05-09 12:36:36 -07:00
Strahinja Val Markovic
8fd6296f49 Refactored cs_completer tests some more
Common server-wait code is in a helper func now.
2014-05-09 12:19:22 -07:00
Strahinja Val Markovic
52fdf2d09f Formatting fixes 2014-05-09 12:08:29 -07:00
Strahinja Val Markovic
a4da9ee686 Refactoring tests to use new helper methods
Plus minor formatting fixes.
2014-05-09 12:06:56 -07:00
Strahinja Val Markovic
72d91957fc Formatting fixes 2014-05-09 12:04:15 -07:00
Val Markovic
7aa68d93b6 Merge pull request #956 from mispencer/CsharpErrorDisplay
Support for diagnostic for C#
2014-05-09 12:01:43 -07:00
Strahinja Val Markovic
9691bd9236 Encoding the x-ycm-hmac header value as base64.
We need to respect RFC 5987.
2014-05-09 10:37:20 -07:00
Strahinja Val Markovic
ec65950a9b Fixing tests
Tests read the default hmac_secret from default_settings.json, and that value is
read as a unicode object by the json parser, not str.
2014-05-09 10:22:00 -07:00
Strahinja Val Markovic
8e40315258 Helper test func for stopping OmniSharp server. 2014-05-08 15:41:07 -07:00
Spencer G. Jones
465019b197 Support for SyntaxErrors in CSharp completer 2014-05-08 15:40:50 -06:00
Strahinja Val Markovic
a1feadece0 indentation fix 2014-05-05 11:11:57 -07:00
Strahinja Val Markovic
ccf0a2ed4d More secure comparison of HMAC strings
To avoid timing attacks. The implementation of SecureCompareStrings is pulled
directly from python 3.4 sources.
2014-05-05 10:35:31 -07:00
Strahinja Val Markovic
b56858d2b0 Error handler now also sets HMAC header. 2014-04-25 12:03:39 -07:00
Strahinja Val Markovic
e965e02847 Client/server communication now uses HMAC for auth
This is to prevent a convoluted exploit that can trigger remote code execution.
2014-04-25 11:07:08 -07:00
Strahinja Val Markovic
479ad62555 Prevent setsid() failure from taking down ycmd 2014-04-10 13:02:49 -07:00
Strahinja Val Markovic
e48c5b7f9a Revert "Remove clang_includes folder"
This reverts commit cca4785fb6.
2014-04-02 15:41:51 -07:00
Strahinja Val Markovic
e17be2f81c Revert "Don't pass extra include path to libclang"
This reverts commit 7bdff8941c.
2014-04-02 15:41:48 -07:00
Strahinja Val Markovic
9865d479e1 Revert "Add libclang builtin headers for LLVM release 3.3 and 3.4"
This reverts commit 2f84503a99.
2014-04-02 15:41:45 -07:00
Strahinja Val Markovic
cc488d6e3c Revert "Add builtin includes for AppleClang 5.1"
This reverts commit c62bb98f4f.
2014-04-02 15:41:41 -07:00
Val Markovic
f054fcfc0a Merge pull request #910 from nickhutchinson/fix-libclang-includes
Fix libclang's #include search path
2014-04-01 21:16:09 -07:00
Marc Burns
6df96fcccf Use OnWindows from utils instead of ad-hoc platform check. 2014-04-01 20:29:20 -04:00
Nicholas Hutchinson
c62bb98f4f Add builtin includes for AppleClang 5.1
Copied from Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib
2014-04-01 21:27:54 +01:00
Nicholas Hutchinson
2f84503a99 Add libclang builtin headers for LLVM release 3.3 and 3.4
Copied from the ./lib/clang/3.X/include directories of the prebuilt binary releases at llvm.org, specifically
http://llvm.org/releases/3.3/clang+llvm-3.3-amd64-Ubuntu-12.04.2.tar.gz and http://llvm.org/releases/3.4/clang+llvm-3.4-x86_64-linux-gnu-ubuntu-13.10.tar.xz.

These headers don't appear to be arch dependent, so we should be good.
2014-04-01 19:34:52 +01:00
Marc Burns
8f116b849a Detach from controlling terminal to avoid receiving SIGINT. 2014-04-01 04:18:22 -04:00
Spencer G. Jones
439450d3bd CSharp GoTo was off by one column and line 2014-03-31 08:54:46 -06:00
Nicholas Hutchinson
7bdff8941c Don't pass extra include path to libclang 2014-03-27 08:07:56 +00:00
Val Markovic
136b80cd88 Merge pull request #903 from Valloric/watchdog-fix
ycmd watchog timer now wiser about machine sleep
2014-03-26 12:52:56 -07:00
Nicholas Hutchinson
cca4785fb6 Remove clang_includes folder 2014-03-26 10:03:20 +00:00
Val Markovic
9d388ef4b3 Merge pull request #845 from davits/master
Added options to choose GoTo commands buffer...
2014-03-24 12:59:35 -07:00
Davit Samvelyan
b4b94429dd reverted back to the GetBufferOption 2014-03-23 12:33:27 +04:00
Davit Samvelyan
b9109af709 Added check for Vim 'hidden' option when trying to open result in the same buffer 2014-03-22 14:24:16 +04:00
Strahinja Val Markovic
90e097efa4 Implementing the new GoToImprecise command
Same as GoTo, but trades correctness for speed. See the docs for details.
2014-03-21 12:37:01 -07:00
Strahinja Val Markovic
9cf566bd8f Renamed GoToDefinitionElseDeclaration to GoTo
The old name still works for the sake of backwards compatibility.
2014-03-21 11:34:00 -07:00
Strahinja Val Markovic
4adf71969d ycmd watchog timer now wiser about machine sleep
We now make sure we don't terminate ycmd if we skipped a watchdog wakeup
time. If we skipped a check, that means the machine probably went to sleep and
the client might still actually be up. In such cases, we give it one more wait
interval to contact us before we die.
2014-03-20 15:44:35 -07:00
Spencer G. Jones
81973caf05 Call OmniSharpServer correctly in Cygwin
Cygwin should not call OmniSharpServer with mono
Update OmniSharpServer submodule for new client path mode parameter
Pass client path mode to OmniSharpServer on run
2014-03-20 08:40:43 -06:00
Strahinja Val Markovic
bf0a499093 Fixing more unicode-related issues.
This is getting really tedious really fast.
2014-03-19 15:13:35 -07:00
Strahinja Val Markovic
2f051ee9f1 YCM client now sends utf-8 encoded JSON.
Previously, we'd just use json.dumps() to dump out JSON. By default,
ensure_ascii is set to true and non-ASCII chars are encoded as \uXXXX.

Problems seem to happen with other text in the data then not being utf8. I'm not
sure why, still can't repro. This should go away now that we explicitly build a
unicode string which we then encode as utf8.

Hopefully fixes #821.
2014-03-19 13:16:49 -07:00
Strahinja Val Markovic
7a4f5a4a53 Minor var naming changes 2014-03-19 10:27:34 -07:00
Val Markovic
321355b041 Merge pull request #860 from aslater/master
Revised fix for ycmd terminate race condition
2014-03-05 17:02:19 -08:00
unknown
b4728f3f93 fixed some comments and opened the logfiles in ascii rather than binary mode 2014-03-04 22:59:34 -06:00
Strahinja Val Markovic
bdec814af9 Resolving a minor lint error 2014-03-04 10:24:21 -08:00
davits
40dc235136 Combined same_buffer and buffer_command options. 2014-03-04 14:47:43 +04:00
unknown
875d6cf282 fix Travis-CI failures 2014-03-03 20:18:44 -06:00
davits
8c6857bf91 missing space 2014-03-03 10:26:06 +04:00
unknown
404c167525 Removed communicate call. Moved log file handling to the server daemon 2014-03-02 00:14:14 -06:00
Strahinja Val Markovic
0d9c11d329 Adding 'mail' filetype (mutt) to blacklist
Fixes #847
2014-03-01 10:15:25 -08:00
Spencer G. Jones
2d9c41f527 Expose OmniSharp's ReloadSolution command 2014-02-28 11:46:55 -07:00
unknown
a4e28157c4 Added call to communicate() after terminating server 2014-02-26 22:23:29 -06:00
davits
0102d23bfe Added options to choose whether GoTo commands result should be opened in the new buffer and in which one. 2014-02-23 17:50:51 +04:00
Val Markovic
55663847ba Merge pull request #824 from mispencer/OmnisharpServerUpdate
Update OmniSharpServer to latest to resolve port issues on windows as non-admin
2014-02-19 13:40:52 -08:00
Spencer G. Jones
ec96a021a4 Refactor cs_completer to reduce complexity 2014-02-19 11:32:00 -07:00
Spencer G. Jones
5b5e182194 Use new Omnisharp Server ready command 2014-02-19 10:45:01 -07:00
Spencer G. Jones
2bf3bd5cac Update OmniSharpServer to latest to pickup cf35aeab and 53ea4d7fb5 2014-02-19 10:41:11 -07:00
Val Markovic
784ebd68b5 Merge pull request #776 from davits/master
Fix for Issue #630
2014-02-18 12:20:20 -08:00
Strahinja Val Markovic
18be5c254a Increasing worker thread count to 30
If it takes a while to compile the user's C++ file, the YCM client/server may
run out of threads. Vim gets laggy then.

This is a stopgap measure until I think of something better.
2014-02-07 12:46:45 -08:00
davits
00ae628443 Added ordering of system path completion entries 2014-02-03 11:43:30 +04:00
davits
8619099756 Fixed completions ordering, this time for real :) 2014-02-01 17:32:09 +04:00
davits
8520c5f5ac Added tests for filename_completer, fixed ordering of completions 2014-02-01 17:14:45 +04:00
Strahinja Val Markovic
825b3055e5 Force ignoring of SIGINT for YCM client
This reduces fallout of pressing ctrl-c in Vim.
2014-01-29 10:18:07 -08:00
Strahinja Val Markovic
9f3a3e3019 Fixing a race condition in Completer
Since we use one thread per request, one thread could change the
completions_cache while the other one was depending on the data in it.
2014-01-28 16:31:32 -08:00
Strahinja Val Markovic
6faf0e9c20 Removed unused variable 2014-01-28 14:58:58 -08:00
Val Markovic
d156214f76 Merge pull request #780 from rxwen/master
flush the options_file before start the ycmd server
2014-01-21 10:06:00 -08:00
Strahinja Val Markovic
47a0048f34 Fixing str/unicode mismatch
Sending a unicode filepath to CompilationDatabase doesn't work and causes
exceptions; it has to be a (utf-8 encoded) str object.
2014-01-17 10:18:29 -08:00
Strahinja Val Markovic
433b3b64f0 Decoding completion strings to utf8 for Vim
Fixes #761
Fixes #775
2014-01-15 11:25:57 -08:00
rxwen
5fc4a00b7c There is no way for a dictionary to return None for non-existing key if
a default value is provided
2014-01-14 23:22:48 +08:00
rxwen
62949c42ed flush the options_file before start the ycmd server
- There are cases on windows that the ycmd will read an empty options
  file. So, flush the options file before start the ycmd server
2014-01-14 22:05:03 +08:00
Tom Vincent
685b1007b6 Blacklist Pandoc file type
Pandoc enhances Markdown and therefore is used for prose, which doesn't suit YCM
well.
2014-01-14 11:59:31 +00: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
e9b3916862 More unicode conversions on the client 2014-01-13 10:00:05 -08:00
Sun Yuanhui
436a834758 fix Issue #761 2014-01-13 21:06:21 +08:00
Strahinja Val Markovic
db4c25c97a Clang builtin headers now included with -isystem 2014-01-12 12:36:44 -08:00
Strahinja Val Markovic
5c90ef8c9f Fix module.map to not include missing header
This is actually a clang bug that's still present upstream at the time of
writing; the module.map refers to an "anm_neon.h" file that doesn't actually
exist in the folder.

Fixes #769
2014-01-12 12:24:35 -08:00
Strahinja Val Markovic
f30857df22 Updating to clang 3.4 builtin headers 2014-01-11 12:26:29 -08:00
Strahinja Val Markovic
46cf9734e8 Documenting issues with sign unplacing 2014-01-10 14:44:15 -08:00
Strahinja Val Markovic
9d06a3e54c Revert "Only removing our signs in buffer, no all"
This reverts commit 182848050e.

The reason we are reverting this is because removing signs in a loop causes
flicker. The only non-flicker approach is to remove all signs in a buffer with
"sign unplace buffer=<buffer-num>".

So no compatibility with other plugins for us.
2014-01-10 14:39:52 -08:00
Strahinja Val Markovic
182848050e Only removing our signs in buffer, no all
We used to remove all the signs in a buffer. Now we just remove the ones we set.
This prevents conflicts with other Vim plugins.
2014-01-10 12:54:20 -08:00
Strahinja Val Markovic
8866f798b6 Only clear the diag message echo once
Trying to clear it all the time removes other, non-YCM messages as well.

Fixes #766.
2014-01-10 12:18:24 -08:00
Strahinja Val Markovic
6e6e6043c3 Handling diags pointing to content not in file
Also handling no location_extent for diags.
2014-01-09 15:48:48 -08:00
Strahinja Val Markovic
365f67f82c Docs now mention line highlight depends on signs 2014-01-09 14:11:15 -08:00
Strahinja Val Markovic
dc01ad8240 Ensuring there are no "press enter" prompts
This is for the diagnostic echo.
2014-01-09 13:49:06 -08:00
Strahinja Val Markovic
5efd920815 Renaming and documenting the new options. 2014-01-08 19:43:21 -08:00
Strahinja Val Markovic
8090373afd Now can populate the loclist like Syntastic 2014-01-08 19:09:40 -08:00
Strahinja Val Markovic
cb359c0b6a New options for controlling the diag ui 2014-01-08 18:43:17 -08:00
Strahinja Val Markovic
c8fd002b66 Removing forgotten debug statement 2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
05552efd19 Now highlighting the full identifier for diag
Instead of just underlining the first char of an identifier, we now underline.
the full identifier.
2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
6fdddc861b Showing clang diag ranges with red squiggles 2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
209d22cfdb DiagnosticInterface now uses server diag objects 2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
a9ea9d648d Minor refactoring 2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
3ed8d9883c Diagnostic ranges now exposed to server clients
Still haven't used them in the Vim client though, but will soon.
2014-01-06 15:24:06 -08:00
Strahinja Val Markovic
e5abbdb540 Increasing API version to 8
Needed because of recent changes to Diagnostic struct etc.
2014-01-06 15:24:05 -08:00
Strahinja Val Markovic
9656fac2f4 Diagnostic struct now holds source ranges
Also, line/column/file info is now in Location. The server API is the same
currently, but will change to reflect all of this soon.
2014-01-06 15:24:05 -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