Commit Graph

2204 Commits

Author SHA1 Message Date
micbou
67d2a0fbf8
Fix error when filetype is a number
The VimExpressionToPythonType function automatically convert a number
represented as a string to an integer. This causes an error when used to
evaluate a filetype set to a number as the result is split on the dot character
to get a list of filetypes and an integer cannot be split. Use vim.eval and
ToUnicode instead.
2017-11-26 16:44:35 +01:00
zzbot
31abb9cee5 Auto merge of #2828 - micbou:get-buffer-number-for-filename, r=bstaletic
[READY] Change GetBufferNumberForFilename default behavior

While I was looking at PR https://github.com/Valloric/YouCompleteMe/pull/2827, I noticed that the default behavior of `GetBufferNumberForFilename` is to create a buffer for the given filename if no buffer already exists for that filename. This behavior is rather unexpected given the name of that function. In fact, `GetBufferNumberForFilename` is almost always called with the `open_file_if_needed` parameter (renamed `create_buffer_if_needed` for clarity) sets to `False`. This really suggests that the default value should be `False` instead of `True`.

In addition, that default behavior may lead to performance issues when the server returns diagnostics for a lot of files with no corresponding buffers since this will create a buffer for each one of these files.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2828)
<!-- Reviewable:end -->
2017-11-17 01:27:25 -08:00
micbou
664d2c99d9
Change GetBufferNumberForFilename default behavior
If no buffer exists for a given filename, the GetBufferNumberForFilename
function will create a buffer for that file by default. This behavior is
unexpected given the name of that function and may lead to performance issues
when ycmd returns diagnostics for a lot of files with no corresponding buffers.
The default behavior for that function should be to not create a buffer.
2017-11-17 00:52:40 +01:00
zzbot
bade99f5e9 Auto merge of #2816 - micbou:update-7zip-requirement, r=bstaletic
[READY] Update 7-Zip requirement to 16.04 or later

There are some issues with [7-Zip 9.20](http://www.7-zip.org/download.html) when extracting files from the Clang installer. See https://github.com/Valloric/YouCompleteMe/issues/2756 and https://github.com/Valloric/YouCompleteMe/issues/2811.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2816)
<!-- Reviewable:end -->
2017-10-27 01:16:54 -07:00
micbou
75ecccef90
Update 7-Zip requirement to 16.04 or later 2017-10-26 14:40:38 +02:00
zzbot
b4ab6da86d Auto merge of #2813 - micbou:fix-bare-except-statements, r=puremourning
[READY] Fix bare except statement

See PR https://github.com/Valloric/ycmd/pull/863.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2813)
<!-- Reviewable:end -->
2017-10-23 12:57:30 -07:00
micbou
84998b5b5f
Fix bare except statement
Use Exception to catch all exceptions instead of a bare except statement.
2017-10-23 21:05:16 +02:00
zzbot
ac054410c4 Auto merge of #2812 - AsmCoder110:patch-1, r=micbou
Simple typo fix.

A typo in the ReadMe.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2812)
<!-- Reviewable:end -->
2017-10-22 03:08:52 -07:00
Yogendra Singh
a806f32825 Simple typo fix. 2017-10-22 14:36:56 +05:30
zzbot
cd41727462 Auto merge of #2802 - micbou:auto-insert-wrap, r=bstaletic
[READY] Mention auto-insert wrapping bug in the FAQ

Prior to version 8.0.0127, Vim would insert the first suggestion when leaving completion while auto-wrapping text. See issue https://github.com/vim/vim/issues/1312 and [the corresponding patch](73fd498886). This would cause issues #771 and #2789 when using YCM.

We mention this bug in the FAQ and suggest to update to Vim 8.0.0127 or later.

Closes https://github.com/Valloric/YouCompleteMe/issues/771.
Closes https://github.com/Valloric/YouCompleteMe/issues/2789.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2802)
<!-- Reviewable:end -->
2017-10-14 08:11:30 -07:00
zzbot
48e3f2c968 Auto merge of #2804 - micbou:update-ycmd, r=puremourning
[READY] Update ycmd

Include the following changes:
 - PR https://github.com/Valloric/ycmd/pull/785: automatically find Rust sources through rustup;
 - PR https://github.com/Valloric/ycmd/pull/835: do not return canonical type if identical to type in C-family languages;
 - PR https://github.com/Valloric/ycmd/pull/837: improve support of system Boost and system libclang on Gentoo;
 - PR https://github.com/Valloric/ycmd/pull/840: improve Red Hat and CentOS detection;
 - PR https://github.com/Valloric/ycmd/pull/842: consider header file entries in compilation database;
 - PR https://github.com/Valloric/ycmd/pull/843: improve completion of include statements in C-family languages;
 - PR https://github.com/Valloric/ycmd/pull/851: rename completer options in installation script;
 - PR https://github.com/Valloric/ycmd/pull/855: only include one macOS toolchain.

Update documentation according to PRs https://github.com/Valloric/ycmd/pull/785 and https://github.com/Valloric/ycmd/pull/851.

Close https://github.com/Valloric/YouCompleteMe/pull/2379.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2804)
<!-- Reviewable:end -->
2017-10-10 13:40:43 -07:00
micbou
81be23b59e
Update Rust documentation
Mention rustup to get the Rust source code.
2017-10-10 21:26:47 +02:00
micbou
8429ff28ee
Rename completer options in documentation 2017-10-10 20:25:41 +02:00
micbou
dae2b303e7
Update ycmd
Include the following changes:
 - automatically find Rust sources through rustup;
 - do not return canonical type if identical to type in C-family languages;
 - improve support of system Boost and system libclang on Gentoo;
 - improve Red Hat and CentOS detection;
 - consider header file entries in compilation database;
 - improve completion of include statements in C-family languages;
 - rename completer options in installation script;
 - only include one macOS toolchain.
2017-10-10 20:10:56 +02:00
micbou
24690b44b0
Mention auto-insert wrapping bug in the FAQ 2017-10-08 11:42:43 +02:00
zzbot
6f8fc43365 Auto merge of #2798 - micbou:improve-user-notification-startup, r=puremourning
[READY] Improve server crash notification at startup

Instead of notifying the user if the server crashed immediately after starting it (which is unlikely to work because the server process is necessarily up at this point), do it during polling.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2798)
<!-- Reviewable:end -->
2017-10-06 00:33:41 -07:00
micbou
2b8e86797c
Improve server crash notification at startup
Notify the user if the server crashed during server polling at startup.
2017-10-05 13:12:23 +02:00
zzbot
b5c8e57962 Auto merge of #2797 - micbou:echo-diagnostic-async, r=Valloric
[READY] Echo diagnostic asynchronously

If there is a diagnostic on the current line while updating diagnostics, echo it on the command line. Here's a demo:

![echo-diagnostic-async](https://user-images.githubusercontent.com/10026824/31182114-4e784200-a923-11e7-831b-e613d126fd8b.gif)

Without this change, users have to move the cursor up and down to see the message on the command line.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2797)
<!-- Reviewable:end -->
2017-10-04 11:30:50 -07:00
micbou
880f8700b3
Echo diagnostic asynchronously 2017-10-04 16:59:47 +02:00
zzbot
16fd9fac90 Auto merge of #2792 - Kentoseth:master, r=micbou
Added instructions for cmake3

- Updated Linux64 instructions for older systems where cmake(2.8) might be causing compilation issues.
- Using cmake3 may likely address issues (in certain scenarios)

# PR Prelude

Thank you for working on YCM! :)

**Please complete these steps and check these boxes (by putting an `x` inside
the brackets) _before_ filing your PR:**

- [x] I have read and understood YCM's [CONTRIBUTING][cont] document.
- [x] I have read and understood YCM's [CODE_OF_CONDUCT][code] document.
- [ ] I have included tests for the changes in my PR. If not, I have included a
  rationale for why I haven't.
- [x] **I understand my PR may be closed if it becomes obvious I didn't
  actually perform all of these steps.**

# Why this change is necessary and useful

This is a non-code PR adding instructions to the README.md file for situations where `cmake` may be the issue. The instructions simply specify that under certain scenarios, using `cmake3` instead of `cmake` may address the compilation-issues of YCM (eg. on older systems like Ubuntu 14.04). A reference to this issue can be found under the discussion here: [link](https://github.com/Valloric/YouCompleteMe/issues/2729#issuecomment-332961003)

[cont]: https://github.com/Valloric/YouCompleteMe/blob/master/CONTRIBUTING.md
[code]: https://github.com/Valloric/YouCompleteMe/blob/master/CODE_OF_CONDUCT.md

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2792)
<!-- Reviewable:end -->
2017-09-29 04:48:57 -07:00
Moe
af17ae4f07 Grammar/formatting adjusted
- Grammar errors addressed
- Formatting issues addressed
2017-09-29 13:43:54 +02:00
Moe
c85612f464 Added instructions for cmake3
- Updated Linux64 instructions for older systems where cmake(2.8) might be causing compilation issues.
- Using cmake3 may likely address issues (in certain scenarios)
2017-09-28 23:50:37 +02:00
zzbot
32f1eae9cb Auto merge of #2788 - micbou:options-file, r=bstaletic
[READY] Close options file before starting server

See PR https://github.com/Valloric/ycmd/pull/841.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2788)
<!-- Reviewable:end -->
2017-09-23 15:07:41 -07:00
micbou
ee25d5b8eb
Close options file before starting server
On Windows, the options file cannot be deleted while it is still open by
another process. Close the file before starting the server. Do not explicitly
flush the file as closing implies flushing.
2017-09-23 14:13:02 +02:00
zzbot
712c417529 Auto merge of #2787 - micbou:improve-path-to-python-interpreter, r=puremourning
[READY] Improve path to python interpreter error handling

YCM returns the cryptic error `YouCompleteMe unavailable: [Errno 2] No such file or directory` when the Python interpreter path used to start the server doesn't exist. See issues https://github.com/Valloric/YouCompleteMe/issues/2773 and https://github.com/Valloric/YouCompleteMe/issues/2775.

This PR improves that by using the `FindExecutable` and `GetExecutable` functions from ycmd to check if the Python interpreter path exists (and is an executable) and by returning a much more helpful message if it doesn't. We use `FindExecutable` instead of `GetExecutable` on the `g:ycm_server_python_interpreter` option so that the user can specify a Python path with just the executable name (e.g. `python`, `python2`, `python3`).

This also fixes a Python traceback in Vim that occurs when, after successfully starting the server, the `g:ycm_server_python_interpreter` option is set to an invalid path and the server is restarted with `:YcmRestartServer`. Steps to reproduce are:
 - start Vim with a working YCM;
 - type `:let g:ycm_server_python_interpreter = '/invalid/python/path'`;
 - type `:YcmRestartServer`.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2787)
<!-- Reviewable:end -->
2017-09-21 14:07:27 -07:00
micbou
5d78e4c2c0
Improve path to python interpreter error handling 2017-09-21 21:17:32 +02:00
zzbot
3b89d12a0b Auto merge of #2782 - micbou:remove-obsolete-notes, r=bstaletic
[READY] Remove obsolete notes in documentation

Both notes are obsolete: [libclang correctly returns the type for `auto` since version 3.8](https://github.com/Valloric/ycmd/pull/353) and diagnostics are automatically refreshed after applying a fix-it since PR https://github.com/Valloric/YouCompleteMe/pull/2636.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2782)
<!-- Reviewable:end -->
2017-09-19 11:15:12 -07:00
micbou
8817bc1f25
Remove obsolete notes in documentation 2017-09-18 00:02:27 +02:00
zzbot
b358b5ba8a Auto merge of #2781 - micbou:location-list, r=bstaletic
[READY] Do not open location list at the bottom of screen

The location list is specific to the current window so it should be opened inside the current window (default behavior), not to full width at the bottom of the screen (with `:botright`).

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2781)
<!-- Reviewable:end -->
2017-09-17 12:26:29 -07:00
micbou
d61944098a
Do not open location list at the bottom of screen
The location list is specific to the current window so it should be opened
inside the current window, not to full width at the bottom of the screen.
2017-09-17 20:34:52 +02:00
zzbot
70fa708048 Auto merge of #2779 - laurence6:master, r=micbou
Update ycmd for racer 2.0.10

# PR Prelude

Thank you for working on YCM! :)

**Please complete these steps and check these boxes (by putting an `x` inside
the brackets) _before_ filing your PR:**

- [x] I have read and understood YCM's [CONTRIBUTING][cont] document.
- [x] I have read and understood YCM's [CODE_OF_CONDUCT][code] document.
- [x] I have included tests for the changes in my PR. If not, I have included a
  rationale for why I haven't.
- [x] **I understand my PR may be closed if it becomes obvious I didn't
  actually perform all of these steps.**

# Why this change is necessary and useful

racer in racerd is updated from 2.0.6 to 2.0.10. Some bugs were fixed.

[Changelog of racer](https://github.com/racer-rust/racer/blob/master/CHANGELOG.md)

[cont]: https://github.com/Valloric/YouCompleteMe/blob/master/CONTRIBUTING.md
[code]: https://github.com/Valloric/YouCompleteMe/blob/master/CODE_OF_CONDUCT.md

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2779)
<!-- Reviewable:end -->
2017-09-16 08:18:28 -07:00
Laurence
573fead83a Update ycmd for racer 2.0.10 2017-09-15 22:43:17 -04:00
zzbot
9ca755a7ce Auto merge of #2768 - micbou:update-ycmd, r=micbou
[READY] Update ycmd

This new version of ycmd includes the following changes:

 - PR Valloric/ycmd#795: add option to make relative paths in flags from extra conf absolute;
 - PR Valloric/ycmd#802: fix compilation on Haiku;
 - PR Valloric/ycmd#804: add libclang detection on FreeBSD;
 - PR Valloric/ycmd#808: write python used during build before installing completers;
 - PR Valloric/ycmd#810: support unknown languages from tags;
 - PR Valloric/ycmd#811: update Universal Ctags languages list;
 - PR Valloric/ycmd#814: resolve symlinks in extra conf glob patterns;
 - PR Valloric/ycmd#815: update JediHTTP;
 - PR Valloric/ycmd#816: update Boost to 1.65.0;
 - PR Valloric/ycmd#819: filter and sort candidates when query is empty;
 - PR Valloric/ycmd#820: improve LLVM root path search for prebuilt binaries;
 - PR Valloric/ycmd#822: inline critical utility functions;
 - PR Valloric/ycmd#824: do not sort header paths in filename completer;
 - PR Valloric/ycmd#825: implement partial sorting;
 - PR Valloric/ycmd#830: add max_num_candidates option;
 - PR Valloric/ycmd#831: fix multiline comments and strings issues;
 - PR Valloric/ycmd#832: update Clang to 5.0.0.

The `g:ycm_max_num_candidates` and `g:ycm_max_num_identifier_candidates` options are added to the documentation.

The link to ycmd extra conf is updated.

Fixes #2562.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2768)
<!-- Reviewable:end -->
2017-09-10 08:07:04 -07:00
micbou
c5bec8f690
Expect GetCompletions_Cache_List_Unicode test to fail
This test is expected to fail since we now filter and sort candidates on empty
query.
2017-09-10 16:33:24 +02:00
micbou
ed9f0b9449
Update extra conf link in documentation 2017-09-10 16:33:24 +02:00
micbou
70121844fe
Add maximum number candidates options to documentation 2017-09-10 16:33:24 +02:00
micbou
c5284f95e5
Update ycmd
Include following changes:
 - add option to make relative paths in flags from extra
   conf absolute;
 - fix compilation on Haiku;
 - add libclang detection on FreeBSD;
 - write python used during build before installing
   completers;
 - support unknown languages from tags;
 - update Universal Ctags languages list;
 - resolve symlinks in extra conf glob patterns;
 - update JediHTTP;
 - update Boost to 1.65.0;
 - filter and sort candidates when query is empty;
 - improve LLVM root path search for prebuilt binaries;
 - inline critical utility functions;
 - do not sort header paths in filename completer;
 - implement partial sorting;
 - add max_num_candidates option;
 - fix multiline comments and strings issues;
 - update Clang to 5.0.0.
2017-09-10 16:33:24 +02:00
zzbot
b27b369880 Auto merge of #2769 - micbou:run-flake8-and-nose-as-modules, r=bstaletic
[READY] Run flake8 and nose as modules

See PR https://github.com/Valloric/ycmd/pull/829.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2769)
<!-- Reviewable:end -->
2017-09-10 07:25:52 -07:00
Ben Jackson
3c6e8f28be Merge pull request #2770 from micbou/fix-typo-in-docs
[READY] Fix typo in documentation
2017-09-10 14:58:59 +01:00
micbou
a0f110622f
Fix typo in documentation 2017-09-10 12:07:07 +02:00
micbou
750d3e5ecc
Run flake8 and nose as modules
Running flake8 and nose as modules in run_tests.py make sure that we start
these tools with the same Python as the one executing the script.
2017-09-10 11:59:43 +02:00
zzbot
dd1cb5abdb Auto merge of #2763 - micbou:update-clear-compilation-flag-cache-docs, r=vheon
[READY] Update ClearCompilationFlagCache docs

Update the documentation for the `ClearCompilationFlagCache` subcommand by taking into account that:
 - the `do_cache` parameter is set to `True` by default;
 - the flags from the compilation database are also cached;
 - restarting the server clears the cache.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2763)
<!-- Reviewable:end -->
2017-09-05 15:39:27 -07:00
zzbot
5b8c9b27ec Auto merge of #2764 - micbou:fix-directory-creation-travis, r=bstaletic
[READY] Fix Linux builds on Travis

Travis complains that the `/home/travis/bin` folder already exist when creating it. Use `mkdir` with the `-p` option.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2764)
<!-- Reviewable:end -->
2017-09-05 13:21:00 -07:00
micbou
743f2e7b96
Fix pyenv setup on Travis
Travis complains that the /home/travis/.pyenv folder already exists. Remove it
before installing pyenv.
2017-09-05 20:39:22 +02:00
micbou
dda721ec07
Fix directory creation on Linux Travis
Travis complains that the /home/travis/bin folder already exists when creating
it. Use mkdir with the -p option.
2017-09-05 20:39:13 +02:00
micbou
f185b4ef12
Update ClearCompilationFlagCache docs 2017-09-05 14:17:39 +02:00
zzbot
65765ef32b Auto merge of #2752 - micbou:improve-server-logs-message, r=micbou
[READY] Improve error message when server crashes

This PR improves the error message displayed to the user when the server unexpectedly crashes by giving the exact command to type to open the server logfile.

We could go further by automatically opening the server logfile but this is too disruptive in my opinion.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2752)
<!-- Reviewable:end -->
2017-08-24 11:51:08 -07:00
micbou
031edea89e
Improve error message when server crashes
Give the exact command that the user needs to type to open the server logfile
when the server unexpectedly crashes.
2017-08-18 18:15:20 +02:00
zzbot
9a76fd2e9a Auto merge of #2750 - micbou:no-stderr-read, r=Valloric
[READY] Do not read server standard error

When the ycmd server crashes, we read its standard error and log the result. Unfortunately, this blocks Vim if a sub-server is still running after the crash (e.g. JediHTTP). In that case, the only way to unblock Vim is to manually kill the sub-server.

We could fix the issue by writing some (non-trivial) code that reads ycmd `stderr` without blocking but instead we simply don't read it at all. The drawback is small: [ycmd immediately redirects its `stdout` and `stderr` to logfiles at startup](ff255aed4a/ycmd/__main__.py (L150-L153)). In other words, reading its `stderr` is only useful if ycmd crashed before the redirection. This is something that should never happen.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2750)
<!-- Reviewable:end -->
2017-08-18 04:41:58 -07:00
micbou
bdac8ed43e
Do not read server stderr
Reading ycmd stderr blocks Vim if a subserver process is still up even if ycmd
is not running.
2017-08-17 20:16:54 +02:00