Commit Graph

392 Commits

Author SHA1 Message Date
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
e17be2f81c Revert "Don't pass extra include path to libclang"
This reverts commit 7bdff8941c.
2014-04-02 15:41:48 -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
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
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
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
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
e8d1a4cef8 Working around a Vim bug that causes flickering.
If the user had a hidden buffer and a recent version of Vim, the screen would
flicker every time the user typed. This was caused by a Vim bug.

On every key press, we end up calling GetUnsavedAndCurrentBufferData(), which
calls GetBufferOption( buffer_object, 'ft' ). If the buffer_object represents a
hidden buffer, Vim would flicker.

This would happen because we'd call "buffer_object.options[ 'ft' ]" in recent
versions of Vim, and that line of code causes Vim to flicker. I don't know why.
We're extracting the 'ft' value without going through buffer_object.options, and
that works just fine.

Fixes #669.
2014-01-06 15:00:51 -08:00
Strahinja Val Markovic
96b28b93a1 Optimizing overlap correction for common case
Most of the time there's nothing after the cursor.
2014-01-05 12:16:53 -08:00
Strahinja Val Markovic
a18807d31e Candidate overlap with buffer text improved
Now, "foobar.h" will be changed to insert "foo" if the text after the cursor is
"bar.h". This already worked for "foobar" and "bar", but the overlap search
would stop before a non-word character. This has now been resolved.
2014-01-05 12:07:15 -08:00
Strahinja Val Markovic
91368c09ea Handling vim.error from omnifunc
If the omnifunc encounters a syntax error, we need to handle this without
showing a traceback to the user.
2014-01-04 16:17:44 -08:00
Strahinja Val Markovic
e424d75c42 Preventing traceback for detailed diagnostic
Previously we'd show a Python traceback if the user asked for a detailed
diagnostic in a file that wasn't supported by Clang (something written in Python
perhaps). Now we show an nice, far less scary message informing the user of
this.

Fixes #748.
2014-01-02 14:24:17 -08:00
Strahinja Val Markovic
b3f70a6c95 Forwarding args for SafePopen to Popen directly 2013-12-24 18:53:23 -08:00
Strahinja Val Markovic
7fac081bea Merge branch 'fix-omnisharp-launch' of https://github.com/nop00/YouCompleteMe into nop00-fix-omnisharp-launch 2013-12-24 18:47:45 -08:00