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
davits
619e1c0b83
File&Dir issue fix
2013-12-24 12:25:07 +04:00
Strahinja Val Markovic
b1d71bbb91
Better handling of unknown extra conf files
...
Previously, we'd implicitly turn off future notices about unknown extra conf
files if we already raised one exception about it. This breaks when the user
ends up not receiving the "unknown extra conf, load?" message.
Now we only turn off the notice as a result of the user saying "don't load this"
so that if the first request fails to reach them, they'll get a second (and
third etc) request about it.
Fixes #615
2013-12-21 11:19:39 -08:00
Strahinja Val Markovic
1edf22357f
Try to cleanup files only if they stil exist
...
Fixes #738
2013-12-20 13:01:48 -08:00
nop
bc9a283be6
New wrapper function around subprocess.Popen
...
New wrapper function around subprocess.Popen that handles stdin
correctly when on Windows (see issue #637 )
2013-12-11 13:41:04 +01:00
nop
c8b0f466c0
Small stylistic change
2013-12-11 10:27:29 +01:00
nop
96762e2a7e
Removed an unused import
2013-12-10 14:59:44 +01:00
nop
fd6338fa88
Fixed OmniSharp launch under Windows (again)
...
We pass shell=True to Popen so that OmniSharp is not started inside a
new visible window under Windows. And since we use shell=True, we pass
the command to execute as a string, as recommended by Python's docs
(also, it won't work when passed as a sequence anyway :) ).
2013-12-10 12:46:05 +01:00
nop
ee90d9b09b
Fix faulty logic in previous commit
...
Previous commit is 9b8781322e
2013-12-10 12:35:33 +01:00
Daniel Hahler
3e5e34b633
Only notify about a server crash once
...
Fixes #715
2013-12-09 22:27:11 +01:00
nop
9b8781322e
Small refactoring
...
Use the dedicated function to check if we're running on Windows instead
of checking the platform directly.
2013-12-05 10:25:55 +01:00
nop00
d4829f1ef9
Fix OmniSharp launch under Windows
2013-12-04 22:01:35 +01:00
Val Markovic
7f5dd0fcf0
Merge pull request #680 from nop00/master
...
Omnisharp: smarter solution file finder
2013-12-04 10:32:13 -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