Commit Graph

701 Commits

Author SHA1 Message Date
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
nop
93fa3ad7e7 Small stylistic changes 2013-12-03 17:34:10 +01:00
Jamie Liu
f58b06adde Add -include to INCLUDE_FLAGS
The -include flag forces the inclusion of a single file, and is used by
(at least) the Linux kernel's build system.
2013-12-03 00:43:42 -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
Val Markovic
447ce97147 Merge pull request #699 from nop00/fix-omnisharp-shutdown
Check auto_stop_csharp_server when shutting down
2013-11-29 17:54:40 -08:00
nop00
3da6f5c197 Unit tests for Omnisharp's smarter solution finder 2013-11-29 22:13:04 +01:00
Strahinja Val Markovic
b085ca7c0b Filtering out "too mary errors emitted" diags
Because they're completely useless and incredibly annoying.
2013-11-25 13:33:49 -08:00
Dan Schmidt
457d2a5eac Add -isysroot to list of INCLUDE_FLAGS. 2013-11-23 09:13:41 -05:00
nop
389e3bfe4c Check auto_stop_csharp_server when shutting down
Check auto_stop_csharp_server instead of auto_start_csharp_server when
shutting down
2013-11-21 17:10:37 +01:00
nop
aa7801b850 Omnisharp: smarter solution file finder
When loading the Omnisharp server, YCM tries to find a suitable solution
file to feed it. Instead of giving up when finding multiple solution
files, it now tries to find one named like the edited files' folder at
the solution level, e.g. if we have bla/Project.sln and we are editing
bla/Project/Folder/Whatever/File.cs, we use bla/Project.sln.
2013-11-21 15:31:38 +01:00
Strahinja Val Markovic
cf6211055e Removing the server_idle_suicide_seconds option
This option existed so that the user can tweak it if they found the default idle
timeout too short, for instance if they leave their machine on over the weekend.

This use case is now covered by the new YcmdKeepalive system that pings ycmd
every 10 minutes as long as Vim is running. This prevents ycmd shutting down if
one leaves their Vim instance alone for a long time.

Thus the old option is useless now; ycmd now shuts down after 3 hours of
inactivity, which should only ever happen when its corresponding Vim instance
has shut down abnormally.
2013-11-20 12:33:57 -08:00
Strahinja Val Markovic
5ae3a573b9 Workaround for annoying clang bug with pragma once
Fixes #216
2013-11-17 17:59:39 -08:00
Strahinja Val Markovic
757602becf Workaround for header flags with compilation db 2013-11-17 14:17:20 -08:00
Strahinja Val Markovic
76f9c42d6e Minor whitespace fix 2013-11-17 13:46:14 -08:00
Strahinja Val Markovic
1f23171c08 Test for exception on no flags from extra conf 2013-11-17 13:45:39 -08:00
Strahinja Val Markovic
19a5bf0500 Notifying user if no flags come from extra conf 2013-11-17 13:32:43 -08:00
Strahinja Val Markovic
2caf90637d Better handling of bad flags from extra conf 2013-11-17 13:10:16 -08:00
Strahinja Val Markovic
64078f20a0 Added the g:ycm_use_ultisnips_completer option
This can be used to turn off UltiSnips completion candidates.

Fixes #596.
2013-11-15 16:22:20 -08:00
Strahinja Val Markovic
d41a011198 Deleting some dead code 2013-11-15 15:48:55 -08:00
Strahinja Val Markovic
450403044b Adding new g:ycm_path_to_python_interpreter option
Fixes #663
2013-11-14 10:50:53 -08:00
Strahinja Val Markovic
0226ba4c90 ycmd using Vim stdin on Windows
This resolves YCM crash problems. Fixes #637.
2013-11-07 14:53:15 -08:00
Strahinja Val Markovic
4aa207c2ad Checking for 'pythonw' only on Windows
On Mac OS X, checking for pythonw can return a path to an ancient 2.4 version of
Python in some cases. We don't want that.
2013-11-05 15:30:34 -08:00
Strahinja Val Markovic
207a0779c3 Ensuring filename is a plain Python string
We don't want to send a unicode string to the user's ycm_extra_conf.py file.
This should fix problems with sending the filename to YCM's CompilationDatabase
API.
2013-11-05 10:28:40 -08:00
Strahinja Val Markovic
aa0ccdb925 Better client notice when ycmd crashes
Now we only show the last 30 lines of stderr instead of everything in it which
was not very useful. We also tell the user about :YcmRestartServer.
2013-11-04 11:15:03 -08:00
Strahinja Val Markovic
9ea0c39279 Forcing requests to ycmd to ignore local proxies
Fixes #641
2013-11-04 10:34:42 -08:00
Strahinja Val Markovic
ca90d10ff7 Minor logic refactor for path to Python func 2013-11-01 10:53:16 -07:00
Strahinja Val Markovic
7bfb4c3402 Use a thread pool that doesn't join workers
By default, a ThreadPoolExecutor will wait at Python interpreter shutdown for
all the threads to stop by themselves before letting the interpreter shut down.

We don't want that for the network requests thread pool, it causes a shutdown
latency if there are outstanding requests. Killing the threads in our pool is
perfectly safe so we can avoid the latency by introducing an
UnsafeThreadPoolExecutor.
2013-10-30 18:08:35 -07:00
Sascha G.
2ea2444e66 Upping ycmd max request size to 1000kb 2013-10-30 22:50:58 +01:00
Tom Vincent
15b7e7683a Blacklist vimwiki filetype
[vimwiki][] has a markdown-like syntax, which doesn't bode well with YCM
(flickering "pattern not found" messages, performance hits with long prose).

[vimwiki]: https://github.com/vimwiki/vimwiki
2013-10-30 01:35:17 +00:00
Strahinja Val Markovic
9734c473e2 Upping ycmd max request size to 500kb
Fixes #624
2013-10-29 12:16:46 -07:00
Strahinja Val Markovic
f91790e2ee Only importing ycm_core in ycmd
I'm not sure, but it seems that loading both ycm_client_support and ycm_core
into the same process is causing random ycmd crashes.
2013-10-28 12:17:18 -07:00
Strahinja Val Markovic
6e782508b3 Now possible to sent Vim data to FlagsForFile func
Fixes #612.
2013-10-26 16:22:43 -07:00
Strahinja Val Markovic
dda1a83c09 Turning off the omnisharp server after test 2013-10-26 12:30:49 -07:00
Strahinja Val Markovic
63534e1a6f Fixing some cs completer subcommands failing
The subcommand would execute correctly, but since there would be no return
statement, it would hit the bottom of the function and raise an error.
2013-10-26 12:28:10 -07:00
Strahinja Val Markovic
3795f4f11c Split server tests into multiple files 2013-10-26 12:15:56 -07:00
Strahinja Val Markovic
17d149e899 ycmd loads default options when none provided 2013-10-25 13:26:33 -07:00
Strahinja Val Markovic
2b8ee37bf5 ycmd uses a random free port when running vim-free
Previously the default was 6666, which was temporary.
2013-10-25 13:11:13 -07:00
Strahinja Val Markovic
77b8adf0a9 Minor refactoring for readability 2013-10-24 20:24:08 -07:00
Strahinja Val Markovic
2a42e2ccdf Better way of locating the Python 2.6/2.7 bin
It appears we can't trust sys.executable on some Unix machines as well.

Fixes #607.
2013-10-24 20:21:03 -07:00
Strahinja Val Markovic
a0f85f0b6c The ycm_temp dir is now accessible by all
Fixes #606
2013-10-24 10:26:55 -07:00
Strahinja Val Markovic
4af2ba0faa Option "shutdown_secs" is now "suicide_secs"
Calling the option server_idle_suicide_seconds should be easier to understand.
2013-10-23 12:33:27 -07:00
Strahinja Val Markovic
b2aa5e3d3f Moving client-only settings out of settings JSON
Since these options are only used on the client, they shouldn't be in
default_settings.json.
2013-10-23 12:30:13 -07:00
Strahinja Val Markovic
262d8aad03 New ycmd watchdog kills server when idle too long
Defaults are kill server after 12 hours of inactivity; the reason why it's 12
hours and not less is because we don't want to kill the server when the user
just left his machine (and Vim) on during the night.
2013-10-23 12:21:33 -07:00
Strahinja Val Markovic
78107361b3 Killing some dead code 2013-10-22 13:48:15 -07:00
Strahinja Val Markovic
5b76bcf8b7 GetDetailedDiagnostic actually takes 2 params
The Completer class version of the func only took 1 by mistake.
2013-10-22 13:46:24 -07:00
Strahinja Val Markovic
ce96a47098 Printing server PID in YcmDebugInfo 2013-10-22 10:53:31 -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
9d8fdac518 Minor cleanup of Completer comments 2013-10-18 12:35:40 -07:00
Strahinja Val Markovic
f6ca040cf7 Nth attempt at correct shutdown procedure.
If we install an explicit signal handler for SIGTERM and SIGINT and then call
sys.exit ourselves, atexit handlers are run. If we don't call sys.exit from the
handler, ycmd never shuts down. So fixed... I think. We'll see.

Fixes #577... again.
2013-10-17 22:15:17 -07:00
Strahinja Val Markovic
a5fb6b7509 Removing unsupported signal() calls on Windows
SIGQUIT and SIGHUP are not supported.

For details, see Python docs: http://docs.python.org/2/library/signal.html#signal.signal
2013-10-17 20:16:44 -07:00
Strahinja Val Markovic
6e9a16e90e Signal handler must take 2 params
Otherwise we get a TypeError
2013-10-17 20:14:56 -07:00
Strahinja Val Markovic
acae8e4e9d Tweaked the request retries logic.
We now send more retry requests that are less spaced apart.
2013-10-17 14:45:53 -07:00
Strahinja Val Markovic
40464f6e0d Resolving issues with event requests timing out
It appears that the issue comes from sending a None timeout to Requests. It
seems it's a bug in Requests/urllib3. So we just pick an arbitrary long timeout
of 30s as the default.
2013-10-17 14:21:37 -07:00
Strahinja Val Markovic
5070835d01 Ensuring server cleanup on OS signals
atexit won't run registered functions for SIGTERM which we send to the server.
This prevents clean shutdown.

Also making sure that the server logfiles are deleted as well.
2013-10-17 12:21:59 -07:00
Strahinja Val Markovic
b4d5b4ffbb More logging for extra conf store 2013-10-17 12:21:33 -07:00
Strahinja Val Markovic
5b37a2e36d Don't print traceback when no detailed diagnostic
We should only print the message.
2013-10-16 14:37:42 -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
016434e846 Deleting some dead code 2013-10-14 20:46:42 -07:00
Strahinja Val Markovic
98f549aeae More robust way of picking an unused local port
Fixes #584.
2013-10-14 20:38:45 -07:00
Strahinja Val Markovic
b903867cdd ycm_core now imported after extra conf preload 2013-10-14 15:29:00 -07:00
Strahinja Val Markovic
bc607724f0 Ensuring ident completion works always
A bug turned it off when omni completion was available.

Fixes #583.
2013-10-14 13:29:28 -07:00
Strahinja Val Markovic
a534a58477 Checking if ultisnips data present before using it
Mentioned in issue #583, but it's not the root cause.
2013-10-14 12:32:18 -07:00
Strahinja Val Markovic
c3fcaf2b29 Strict 0.5s time budget for completion requests
Vim still loves to block the main GUI thread on occasion when asking for
completions... to counteract this stupidity, we enforce a hard budget of 0.5s
for all completion requests. If the server doesn't respond by then (it should,
unless something really bad happened), we give up.
2013-10-14 11:08:15 -07:00
Strahinja Val Markovic
a04ae37ead Client & server threads increased from 4 to 10 2013-10-11 20:12:04 -07:00
Strahinja Val Markovic
f6432e1498 Releasing Python's GIL in C++ code where possible
Without this, all requests to the server become effectively serialized.
2013-10-11 19:27:04 -07:00
Strahinja Val Markovic
3ae10395ea Preventing Vim thread block on file save
Syntastic would run SyntasticCheck on file save, which would unconditionally
call _latest_file_parse_request.Response() and thus block until the request
returned from the server. We don't want that, so we throw in an explicit check
for the request being ready.
2013-10-11 19:09:21 -07:00
Strahinja Val Markovic
db45e243dd Getting path to python exe on Windows correctly
Fixes #581.
2013-10-11 11:11:02 -07:00
Strahinja Val Markovic
78e3607b00 We now only run extra conf preload for global file
This changes functionality, but since this is an undocumented, non-public API,
it's fine. The reason this is required is because of issue #579; if we try to
run extra conf preload on non-global extra conf, we might not have the
permission to load it. The global extra conf is something the user explicitly
has to set so it's always fine to load that.
2013-10-10 12:55:49 -07:00
Strahinja Val Markovic
7a73eb14d8 Fix problems with unknown extra conf at ycmd start
Fixes #579.
2013-10-10 11:32:20 -07:00
Strahinja Val Markovic
8ce07f508c <c-space> again filters the semantic completions
Fixes #576.
2013-10-09 20:20:34 -07:00
Strahinja Val Markovic
98ef568359 Refactored the popen call for ycmd
Also removed shell = true in the other branch that calls popen
2013-10-09 19:28:27 -07:00
Strahinja Val Markovic
9482ad189e Using full path to Python in popen call
This is the root of the problem in issue #577.

Fixes #577.
2013-10-09 19:18:36 -07:00
Strahinja Val Markovic
a25ed01a7c Starting ycmd without shell = True
This should make it easier to shut down the server on some machines.

Fixes #577.
2013-10-09 17:00:28 -07:00
Strahinja Val Markovic
70a51be209 Making the cs_completer test less flaky 2013-10-09 13:17:53 -07:00
Strahinja Val Markovic
3b057cc667 Basic integration test for the cs_completer 2013-10-08 21:30:53 -07:00
Strahinja Val Markovic
d84f2b0e8e cs_completer works again 2013-10-08 20:52:04 -07:00
Strahinja Val Markovic
7afd76b4d4 Better url joining in base_request 2013-10-08 20:49:00 -07:00
Strahinja Val Markovic
daa0d50655 Removed the logging code from Clang completer
The exceptions are already logged by Bottle so what's the point.
Also removed an outdated TODO.
2013-10-08 20:20:15 -07:00
Strahinja Val Markovic
3dbd407f7a Adding forgotten test file 2013-10-08 19:02:20 -07:00
Strahinja Val Markovic
3d55748400 Correctly handling ycm_extra_conf files now
The user is asked about loading unknown extra conf files, as they were before.
2013-10-08 16:21:43 -07:00
Strahinja Val Markovic
f0650ddc7f Minor style fixes 2013-10-07 16:53:41 -07:00
Strahinja Val Markovic
ebb1627f2e Resolving a minor TODO
/filetype_completion_available handler renamed to /semantic_completion_available
2013-10-07 16:28:40 -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
4b73739b09 Removing some obsolete todos 2013-10-07 14:21:46 -07:00
Strahinja Val Markovic
1db0e720bc Refactored the server tests for simplicity 2013-10-07 13:59:01 -07:00
Strahinja Val Markovic
ff7fa74fc9 <c-space> works again (forces semantic completion) 2013-10-07 13:09:34 -07:00
Strahinja Val Markovic
99b0f018b3 Adding a minor TODO 2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
a836f68142 Fileype completer calls InCFamilyFile correctly 2013-10-07 11:03:30 -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
915d092364 Prefixing clang version with "Clang version"
It's easier to know what that magic string is actually referring to.
2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
1bba4a38cc Ensuring the temp dir exists before returning it 2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
f0c9878f87 Ensuring we are serializing real Python objects
Trying to json.dump Vim dictionaries fails.
2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
cb98dc8537 Fixing python 2.6 compatibility
string.format() requires the number inside '{}' for Python 2.6.
2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
070d39b2a9 Adding a run_tests script
This is now also used by Travis CI.
2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
9747bbc26f Removing the sys.path changes from jedi_completer
This not needed anymore, the correct path to jedi is added to sys.path in
ycmd.py
2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
da723b1425 Moving Jedi under third_party 2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
5902a5e521 frozendict now as submodule in third_party 2013-10-07 11:03:30 -07:00
Strahinja Val Markovic
88a260d448 ycmd now uses Waitress instead of CherryPy 2013-10-07 11:03:29 -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
afa1afc49b Handling no diagnostic data from event response 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
62f813367d settings.json has integers for 1/0, not strings 2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
54255318f1 Changing line endings for settings.json to unix 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
e44fd87582 Added 'gitcommit' to filetype-completion blacklist 2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
5ef945fa0a Adding 'qf' (quickfix) filetype to ignore list 2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
7248979bb4 We now handle the starting FileReadyToParse event
The problem was that when you start vim like "vim foo.cc", the FileReadyToParse
event is sent to the server before it's actually started up. Basically, a race
condition.

We _really_ don't want to miss that event. For C++ files, it tells the server to
start compiling the file.

So now PostDataToHandlerAsync in BaseRequest will retry the request 3 times
(with exponential backoff) before failing, thus giving the server time to boot.
2013-10-07 11:03:29 -07:00
Strahinja Val Markovic
9742302cbd 'get_completions' handler is now 'completions' 2013-10-07 11:03:28 -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
fe94ed6b1c Removing an outdate TODO 2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
6c53bad58f No more threading in completers!
The server is multi-threaded and will spawn a new thread for each new request.
Thus, the completers need not manage their own threads or even provide async
APIs; we _want_ them to block because now were implementing the request-response
networking API.

The client gets the async API through the network (i.e., it can do something
else while the request is pending).
2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
e38d145a47 Added debug info about the server
Location where running + logfiles location
2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
3ca758a581 Getting debug info works again 2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
c9b4e9ed3a Minor code style changes 2013-10-07 11:03:28 -07:00
Strahinja Val Markovic
1027de73fb Using a constant for server error instead of 500 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
718e9974b7 Resolving symlinks in GoTo target filepath 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
a6a364de41 Fix bug in cache clear clang completer subcommand 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
4a95c2fc7c GoTo commands for clang completer work again 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
fe0c0a1607 GoTo commands work again 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
13b86563f0 Minor code formatting changes 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
5b4b3ed281 LOGGER now set to None by default
Init happens in test setup func or Main
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
bf5708c422 NativeFiletypeCompletionAvailable works again 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
bdd769d043 default_settings.json now actually has defaults 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
4ac5466d80 Renaming server.py to ycmd.py 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
dd2445db06 Passing user options as file to server
This is a much better idea than starting the server in a default state, and then
resetting the state with a POST request.
2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
10469d318d Passing user options to server now 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
387621d957 Moving SendCommandRequest into appropriate module 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
c01bc0481a Refactoring the server tests to use a helper func
This makes the tests smaller, less repetitive and easier to maintain.
2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
3b9b9ed036 Ident completer loads syntax keywords again 2013-10-07 11:03:27 -07:00
Strahinja Val Markovic
c527cda436 Only calling Shutdown on valid Completers 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
c29dc44b38 Whitespace fix 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
9a4707f2c6 Ignoring failed event notifications
These happen rarely and are not a big deal when they do. We still log them to
the Vim message area, but we don't annoy the user with the default, in-your-face
Python traceback.
2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
17716ff51f Whitespace fix 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
088eb4d0d2 Cleaner server shutdown
Listening for VimLeave was sub-optimal. popen.terminate() is much cleaner.
2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
f51a687297 Server now shuts down cleanly on VimClose 2013-10-07 11:03:26 -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
fba4477ca3 Deleting a stray 'print' statement
This was put in for debugging at some point.
2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
1d29a9a3bd Updating Jedi to v0.7.0 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
f5ad981f67 Converting Jedi unicode data to strings 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
9698bf8789 Bump ycm_core.so API version 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
08a9ff59b6 Using os.getcwd instead of getcwd from vimscript 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
b6c311c4dd Code typo fix 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
6acc381262 Identifier completer now fully decoupled from Vim 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
a7c609efd7 More python unicode object support in ycm_core 2013-10-07 11:03:26 -07:00
Strahinja Val Markovic
3f0b719846 Encoding data to utf8 if 'unicode' object
ycm_core only deals with utf8 and the functions only accept python string
objects.
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
28c3d9648c Deleting some dead code 2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
6d29f429bb Adding the frozendict module
Upstream: https://github.com/slezica/python-frozendict
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
1d224eb8b4 Indentation fix 2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
cb74119353 Minor code style fixes 2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
22256f361d ShouldUseNow now takes a current_line param
This is now used instead of examining the vim.current.line property.
2013-10-07 11:03:25 -07:00
Strahinja Val Markovic
a077f85ecd extra conf path handling now OS-agnostic
It used to work incorrectly on Windows.

Fixes #490.
2013-08-25 10:44:45 -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
Chiel92
44786c58ef Merge https://github.com/Valloric/YouCompleteMe 2013-08-16 21:03:39 +02:00
Chiel92
3c5a720835 Some minor fixes 2013-08-16 21:00:26 +02:00
Chiel92
cd6491290f flake fix and readme update 2013-08-16 11:11:32 +02:00
Chris
039ffa5a75 OmniSharp completer error message using incorrect naming format
The not found message used to instruct users on how to install the OmniSharp completer was using an underscore while the argument to the install script uses a hyphen. The message now uses the correct naming format.
2013-08-15 21:29:27 -07:00
Chiel92
6b73f3fde4 Goto definition implemented 2013-08-15 12:17:42 +02:00
Chiel92
bba97eb38b ServerIsRunning pitfall eliminated 2013-08-15 11:50:54 +02:00
Strahinja Val Markovic
0215a5b8c5 Show server location for C# completer debug output 2013-08-14 19:21:20 -07:00
Strahinja Val Markovic
40146b923d Minor code style changes 2013-08-14 18:57:41 -07:00
Chiel92
66f4136526 minor style fixes 2013-08-14 17:02:10 +02:00
Chiel92
8f63ec9e09 Merge https://github.com/Valloric/YouCompleteMe 2013-08-14 16:35:55 +02:00
Chiel92
b2c85d7060 simple debug info added 2013-08-14 16:34:44 +02:00
Chiel92
253c5b39ac default logfiles and some refactoring 2013-08-14 15:40:43 +02:00
svermeulen
65bca8b56a Added option to control whether YCM should auto-stop the omnisharp server upon leaving Vim or leave it running. 2013-08-12 16:11:19 -03:00
Strahinja Val Markovic
cb89c3f477 Minor code style fixes 2013-07-31 21:39:34 -07:00
Strahinja Val Markovic
4374da616e Fix crash: posting Vim message from thread
Vim is not thread-safe so posting a message to Vim from a non-GUI thread causes
a crash *sometimes*. I was aware of this problem before, but didn't catch this
instance of it in code review.

Fixes #479.
2013-07-30 11:20:52 -07:00
Chiel92
60e52f1a39 style fixes 2013-07-19 12:16:16 +02:00
Chiel92
a56041156e Merge branch 'C#MultipleOmniSharps' of https://github.com/mispencer/YouCompleteMe into multiple_sln
Conflicts:
	python/ycm/completers/cs/cs_completer.py
2013-07-19 11:55:25 +02:00
Chiel92
3f23893576 Merge branch 'master' of https://github.com/Chiel92/YouCompleteMe into multiple_sln
Conflicts:
	python/ycm/completers/cs/cs_completer.py
2013-07-19 11:31:52 +02:00
Chiel92
92032d7f54 Merge branch 'master' of https://github.com/Chiel92/YouCompleteMe into multiple_sln 2013-07-19 10:25:30 +02:00
Hinidu
e6183d6402 Fix code style 2013-07-18 18:18:17 +03:00
Hinidu
642572130c Add mono to command for non-windows systems 2013-07-18 13:35:46 +03:00
Strahinja Val Markovic
7aa01b9c09 More style fixes + more status reporting to :mes 2013-07-17 19:29:43 -07:00
Strahinja Val Markovic
33a05a4b42 Minor style fixes 2013-07-17 18:30:56 -07:00
Chiel92
44eaf5a0da Merge https://github.com/Valloric/YouCompleteMe
Conflicts:
	install.sh
2013-07-16 20:59:26 +02:00
Chiel92
485457af5d Apparently tested an unsaved file -_- 2013-07-16 16:12:40 +02:00
Chiel92
3617ce69db style fixes 2013-07-16 12:33:07 +02:00
Spencer G. Jones
1a7da1650c Find a free port for OmniSharp if another OmniSharp is using the default port 2013-07-15 09:12:32 -06:00
Chiel92
e15ec6ee93 minor refactoring PR #2 2013-07-13 20:11:59 +02:00
Spencer G. Jones
3737ca2ef4 Optionally write OmniSharp stdout and stderr to log files 2013-07-12 14:46:33 -06:00
Chiel92
a6a9fa10c3 pointed submodule to newest commit 2013-07-10 11:27:55 +02:00
Strahinja Val Markovic
ddd0287436 Code style fixes 2013-07-08 16:00:06 -07:00
Strahinja Val Markovic
a011eb6aa0 Fix duplicate entries in filename completion
We could just remove the "dup: 1" part in the completion dict, but that would
leave the duplicate removal up to Vim which would be slow. Also, we might not
end up returning the correct number of results then.
2013-07-08 15:56:54 -07:00
Chiel92
3227e6dc73 checkalivestatus rename 2013-07-08 14:39:43 +02:00
Chiel92
9250f55952 minor fix 2013-07-08 11:44:06 +02:00
Chiel92
bdd95ff43f variable for csharp server port added 2013-07-08 11:39:17 +02:00
Chiel92
6ec038870b ServerIsRunning fixed and variable defaults set 2013-07-08 11:22:17 +02:00
Chiel92
34c24129d2 Merge https://github.com/Valloric/YouCompleteMe 2013-07-07 22:37:10 +02:00
Chiel92
2f207cb4c6 autostart/stop server 2013-07-07 22:36:05 +02:00
Val Markovic
f7ef1aa041 Merge pull request #424 from beards/master
fix jedi DeprecationWarning
2013-07-07 11:13:22 -07:00
Strahinja Val Markovic
451acc0073 Adding OnVimLeave support to Completer class 2013-07-07 11:00:45 -07:00
Chiel92
d2a7fe9c0e choice for multiple solutionfiles implemented 2013-07-07 13:28:28 +02:00
Chiel92
2743f96529 Starting subprocess is working now 2013-07-07 13:06:07 +02:00
simon_hsiung
a95195c8e8 fix jedi DeprecationWarning 2013-07-05 08:52:53 +00:00
Strahinja Val Markovic
cbc6c07a1a Encouraging the user to read the docs even more
Apparently we weren't encouraging enough before. Related to issue #415.
2013-07-01 11:34:25 -07:00
Strahinja Val Markovic
5496984931 Option to set min length for suggestions
Only works with the identifier completer. Fixes #387.
2013-06-29 15:43:10 -07:00
Strahinja Val Markovic
04ca6ec4de g:ycm_semantic_triggers now only adds new triggers
Fixes #164.
2013-06-29 11:53:16 -07:00
Chiel92
e453c2b772 bugfix in solutionfile detector 2013-06-29 10:41:45 +02:00
Chiel92
faa6cf3f36 several fixes 2013-06-28 21:15:05 +02:00
Chiel92
37eb1b7521 added omnisharp server as submodule 2013-06-26 11:51:52 +02:00
Chiel92
a69d827934 solution file detection ported 2013-06-21 22:26:11 +02:00
Chiel92
6dc4b38625 first throw 2013-06-13 23:34:34 +02:00
Strahinja Val Markovic
18ef728742 Updating the error message for ycm_core loading 2013-06-12 10:38: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
8fe41c7c73 Clarifying a comment. 2013-06-09 17:31:17 -07:00
Chiel92
48a4b324f4 moved vim.eval to init 2013-06-09 11:22:11 +02:00
Chiel92
1f91c59938 echoerr replaced by postvim message 2013-06-08 10:16:22 +02:00
Chiel92
a6424c22d8 displaytext and description swapped 2013-06-07 11:45:36 +02:00
Chiel92
7d7349142c completer rewritten to fit in the changed api 2013-06-04 12:14:12 +02:00
Strahinja Val Markovic
3948b6efe2 Check for empty flags list
IndexErrors are not fun.
2013-05-28 09:43:13 -07:00
Strahinja Val Markovic
973064d0bd Can now seed identifier database with keywords
By toggling the g:ycm_seed_identifiers_with_syntax option, the user can now tell
YCM to seed the identifier database with the language's keywords.

This is off by default because it can be noisy. Since the identifier completer
collects identifiers from buffers as the user visits them, the keywords that the
user cares about will already be in the database, regardless of the state of the
new option. So the only keywords added will be the ones the user is not using.

Meh. But people want it so there.

Fixes #142.
2013-05-27 00:08:21 -07:00
Strahinja Val Markovic
454a961318 The identifier completer now reads tags files
See the docs for details. Fixes #135.
2013-05-26 13:33:40 -07:00
Strahinja Val Markovic
38faa0e94e Adding the ClearCompilationFlagCache subcommand
With this command the user can clean the in-memory cache of the compilation
flags that the clang completer uses.
2013-05-24 14:48:46 -07:00
Strahinja Val Markovic
d9f45d576f Fix breakage of some compile_commands.json users
Depending on the user, the PrepareClangFlags rewrite of a few commits ago could
break users with an extra "clang: 'linker' input not used" (or similar) error
message because the compiler executable string was not removed from flags
upstream if the user prepended some flags to the output of PrepareClangFlags
before returning it to the caller of FlagsForFile.

Since the rewrite was supposed to be backwards compatible, this needs
to be handled.
2013-05-24 14:29:33 -07:00
Strahinja Val Markovic
11a7746753 Preventing possible TypeError with StringVec
It was possible to get a traceback if results[ 'flags' ] was a StringVec; the
code would try to perform results[ 'flags' ] += self.special_clang_flags and
this would then fail because the clang flags would be a Python list.
2013-05-22 15:47:30 -07:00
Strahinja Val Markovic
4389b1f1d8 API docs for ThreadedCompleter 2013-05-20 09:40:04 -07:00
Strahinja Val Markovic
381b86d595 Fixing python tests broken in rename 2013-05-19 20:06:14 -07:00
Strahinja Val Markovic
087cadcfaf Adding back the Jedi submodule 2013-05-19 19:47:34 -07:00
Strahinja Val Markovic
faa225fdc4 Moving everything under pytho/ycm 2013-05-19 19:44:42 -07:00