Commit Graph

2213 Commits

Author SHA1 Message Date
Andrea Cedraro
240184eb72 Document find first executable for ycm_python_binary_path 2016-06-15 23:29:14 +02:00
Homu
871387bd2a Auto merge of #2190 - micbou:goto-set-quickfix-list, r=Valloric
[READY] Use SetQuickFixList function for GoTo* subcommands

From discussion in PR #2101, we reuse the `SetQuickFixList` function for the `GoTo*` subcommands. This automatically makes the quickfix window height equal to the number of locations.

Unfortunately, there is no Vim option to change the default height (10) of the quickfix window so we can't really use the heuristic `min(number of Locations, default height)` because users would not be able to change the default height (and we don't want to add another option). However, there are still solutions to set a default height. For instance, a user could add the following line in its vimrc:
```viml
autocmd FileType qf exe "20wincmd _"
```
to set the default height to 20. This will override YCM behavior.

I didn't reproduce the `lazyredraw` boilerplate from `youcompleteme#OpenGoToList`. I guess it was used to avoid flickering but I didn't experienced any without it. In addition, it was not properly implemented because the `lazyredraw` state was not preserved if the option was already set.
I also threw away the `cclose` command. It resets the quickfix window to its default position if already opened, which I think is not a desirable behavior.

Closes #2101.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2190)
<!-- Reviewable:end -->
2016-06-13 07:51:31 +09:00
micbou
805911b56b Use SetQuickFixList for GoTo* subcommands
Open the quickfix window to full width at the bottom of the screen with
its height set to fit all entries. This behavior can be overridden by
using the YcmQuickFixOpened autocommand.
Add a new section for autocommands in the documentation.
Update GoTo and ReplaceChunks tests.
2016-06-13 00:25:12 +02:00
Homu
80079ec3c2 Auto merge of #2204 - micbou:mono-install-readme, r=Valloric
[READY] Add instructions to install Mono in README

Closes #2188.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2204)
<!-- Reviewable:end -->
2016-06-12 04:29:55 +09:00
micbou
6b6f326ffc Update Vim documentation 2016-06-11 05:19:22 +02:00
micbou
4bbda99cc0 Minor changes to README
Add capital letters to languages when appropriate.
Be more specific with the tools needed in the PATH when using the
--all option.
2016-06-11 05:18:19 +02:00
micbou
93381b1d72 Add instructions to install Mono in README 2016-06-11 05:17:49 +02:00
Homu
454a564510 Auto merge of #2128 - 3e4:patch-2, r=Valloric
Add warning about Python 2.7.11 bug to FAQ

# 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

[Please explain **in detail** why the changes in this PR are needed.]

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

There is a bug in vim with Python 2.7.11 on Windows. Adding information in the FAQ.

This is a modification of this pull request: https://github.com/Valloric/YouCompleteMe/pull/2122.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2128)
<!-- Reviewable:end -->
2016-06-11 05:49:18 +09:00
Homu
7f21fb6092 Auto merge of #2196 - svanburen:patch-2, r=micbou
Update vim documentation with html2vimdoc

# 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

Regenerated vim documentation with html2vimdoc.py to match README.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="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2196)
<!-- Reviewable:end -->
2016-06-03 05:42:49 +09:00
Stefan VanBuren
a05c500bb9 Update vim documentation with html2vimdoc 2016-06-02 16:37:11 -04:00
Homu
d4ffa42a1c Auto merge of #2193 - svanburen:patch-1, r=micbou
Update go installation details to match others

# 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
The golang details in the README are different than details for other additional languages. Adding a link to the golang download page and updating the wording makes the languages look the same.
[Please explain **in detail** why the changes in this PR are needed.]

[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="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2193)
<!-- Reviewable:end -->
2016-06-03 00:11:46 +09:00
Stefan VanBuren
6f418a84d1 Added go-install to other sections 2016-06-01 15:50:22 -04:00
Stefan VanBuren
efe0fcf00b Update go installation details to match others 2016-06-01 15:25:43 -04:00
Homu
8b1fba22cc Auto merge of #2183 - Valloric:update, r=micbou
[READY] Updating to latest ycmd

We want to merge this soon to get @micbou's wonderful https://github.com/Valloric/ycmd/pull/499 PR out.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2183)
<!-- Reviewable:end -->
2016-05-25 17:24:19 +09:00
Val Markovic
468d34f168 Updating to latest ycmd 2016-05-24 18:55:09 -07:00
Homu
fa58393547 Auto merge of #2171 - micbou:fix-readme-links, r=vheon
[READY] Fix broken links in README TOC

Fixes #2166.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2171)
<!-- Reviewable:end -->
2016-05-17 02:43:19 +09:00
micbou
68815a4e4e Fix broken links in README TOC 2016-05-16 17:54:22 +02:00
Homu
6a81436bd8 Auto merge of #2157 - micbou:find-python-libs, r=Valloric
[READY] Update Travis configuration

Update ycmd to include PR Valloric/ycmd#481 and update Travis configuration according to this PR.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2157)
<!-- Reviewable:end -->
2016-05-11 05:05:36 +09:00
micbou
dfd62c4c44 Update Travis configuration 2016-05-10 20:42:23 +02:00
Homu
e0f2da0885 Auto merge of #2160 - micbou:open-file-encoding, r=Valloric
[READY] Fix LookupError exception when opening a file

Fixes #2159.

I think the issue is caused by `locale.getpreferredencoding()` returning an empty string on some configurations (especially on OS X with Python 2). This is [the value used by default when no encoding is specified](https://docs.python.org/2/library/io.html?highlight=open#io.open). The same error is raised if we do:
```python
open( 'some_file', encoding = '' )
```

For references, similar issues: https://github.com/Valloric/ycmd/issues/395, https://github.com/Valloric/ycmd/issues/419

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2160)
<!-- Reviewable:end -->
2016-05-11 02:01:22 +09:00
micbou
b0786d5c4f Fix LookupError exception when opening a file
Open the file in binary mode in CheckFilename function.
Use ReadFile helper in syntax_parse tests.
2016-05-10 16:30:04 +02:00
Homu
401f9a5ac2 Auto merge of #2108 - puremourning:unicode, r=valloric
[READY] Fixes for multi-byte errors

# 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

There are a number of recent errors with unicode (most of which caused by the server, see PR https://github.com/Valloric/ycmd/pull/455. In testing I fixed a number of client-side tracebacks also.

This is by no means a comprehensive set of fixes for the client - I have simply fixed those that I came across in testing.

Summary:
 - fixes for errors when typing in c-sharp files due to the completion done handler
 - fixes for FixIts to apply correctly with multi-byte characters
 - fixes for unicode characters in return from the omni completer

[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="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2108)
<!-- Reviewable:end -->
2016-05-09 01:58:25 +09:00
Ben Jackson
e73426187d Add tests for omni completer GetCompletions 2016-05-08 15:47:58 +01:00
Ben Jackson
81db1c0b23 Add --no-flake8 to YCM run_tests.py 2016-05-08 15:32:36 +01:00
Ben Jackson
4d7b386a37 Fix a number of multi-byte errors and tracebacks
- Correct FixIts when there are unicode characters
- Fix errors in CompleteDone handler
- Fix tracebacks when omnifunc returns unicode chars
2016-05-08 15:32:36 +01:00
Homu
73584b2978 Auto merge of #2151 - micbou:avoid-eval-vim-globals, r=Valloric
[READY] Avoid evaluating Vim globals in Python

### Problem

See the commit message and issue #2127.

### How to reproduce

Make Vim to use Python 3 for YCM by either using Vim with only Python 3 support or by editing the `s:UsingPython2` function in `autoload/youcompleteme.vim` to always return 0.
Create the following `vimrc`:
```
set nocompatible

set runtimepath+=~/.vim/bundle/YouCompleteMe

set encoding=utf8

filetype plugin indent on

let g:dummy_variable = '€'[0]
```
and start Vim with it. The following error will occur:
```
YouCompleteMe unavailable: 'utf-8' codec can't decode byte 0xe2 in position 0: unexpected end of data
```
with the traceback in `:messages`:
```python
Traceback (most recent call last):
  File "<string>", line 24, in <module>
  File "C:\\Users\\micbou\\.vim\\bundle\\YouCompleteMe\\autoload\..\python\ycm\setup.py", line 49, in SetUpYCM
    base.LoadJsonDefaultsIntoVim()
  File "C:\\Users\\micbou\\.vim\\bundle\\YouCompleteMe\\autoload\..\python\ycm\base.py", line 60, in LoadJsonDefaultsIntoVim
    vimsupport.LoadDictIntoVimGlobals( vim_defaults, overwrite = False )
  File "C:\\Users\\micbou\\.vim\\bundle\\YouCompleteMe\\autoload\..\python\ycm\vimsupport.py", line 305, in LoadDictIntoVimGlobals
    extend_option ) )
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 0: unexpected end of data
```

### Solution

Do not evaluate the Vim globals when loading the YCM default options into Vim and when building the options for the ycmd server.

Depending on the number of global variables and custom YCM options, this may be slower or faster than the current code but by a negligible margin (~1ms).

Fixes #2127 and #2150.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2151)
<!-- Reviewable:end -->
2016-05-07 19:10:32 +09:00
micbou
b923431d7d Avoid evaluating Vim globals in Python
On Python 3, evaluating a Vim expression will raise a unicode exception
if it contains an invalid sequence of bytes for the current encoding.
We can't really do anything about it because this is the way Vim and
Python 3 interact. However, we can prevent this situation to occur by
not evaluating Vim data that we have no control over: in particular,
the Vim globals. This is done by:
 - adding one by one the YCM default options instead of extending the
   Vim globals with them;
 - only evaluating the Vim global variable names (and not their values)
   when building the YCM options for the ycmd server.
2016-05-06 20:14:10 +02:00
Homu
87f0f7e16d Auto merge of #2142 - micbou:check-core, r=vheon
[READY] Add error messages when ycmd crashed

See PR Valloric/ycmd#467.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2142)
<!-- Reviewable:end -->
2016-05-03 09:04:52 +09:00
micbou
d2beb20766 Update to latest ycmd 2016-05-03 01:24:36 +02:00
micbou
b440f682a8 Add error messages when ycmd crashed
Display an error message to the user depending on the status code
returned by the ycmd server.
Remove ycm_core checks in plugin/youcompleteme.vim. These checks are
now done by the ycmd server.
Do not start a separate process to check the core version but rely on
ycmd returning a specific exit code. This slightly improves the Vim
startup time.
2016-05-02 23:08:32 +02:00
Homu
cb5756943f Auto merge of #2140 - Valloric:ubuntu-fix, r=micbou
[READY] Starting ycmd with Python used to build it

Note: depends on Valloric/ycmd#466 being merged and the ycmd submodule
ref then being updated.

Fixes #2136

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2140)
<!-- Reviewable:end -->
2016-04-28 11:43:25 +09:00
Val Markovic
8fe90b43c4 Starting ycmd with Python used to build it
Note: depends on Valloric/ycmd#466 being merged and the ycmd submodule
ref then being updated.

Fixes #2136
2016-04-27 19:42:00 -07:00
3e4
68d81e47f0 Link fixed and format corrected
In response to https://github.com/Valloric/YouCompleteMe/pull/2128#issuecomment-212183780
2016-04-20 10:10:04 +09:00
3e4
e0a3f724e8 Add warning about Python 2.7.11 bug to FAQ
There is a bug in vim with Python 2.7.11 on Windows. Adding information in the FAQ.
2016-04-20 08:48:46 +09:00
Homu
7f419101fe Auto merge of #2120 - micbou:travis-pyenv, r=vheon
[READY] Fix pyenv setup on Travis

See PR Valloric/ycmd#460.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2120)
<!-- Reviewable:end -->
2016-04-18 01:42:48 +09:00
micbou
80a2b0078a Fix pyenv setup on Travis 2016-04-17 11:01:12 +02:00
Homu
f53b272801 Auto merge of #2118 - micbou:travis, r=Valloric
[READY] Fix and improve pyenv setup in Travis script

See PR Valloric/ycmd#459.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2118)
<!-- Reviewable:end -->
2016-04-16 17:34:55 +09:00
micbou
514fc71e35 Fix and improve pyenv setup in Travis script 2016-04-15 12:17:21 +02:00
Homu
f67033c990 Auto merge of #2106 - micbou:vimdiff, r=puremourning
[READY] Do not disable YCM when Vim is started in diff mode

Since we don't really know why YCM is disabled when Vim is started in diff mode (the [relevant commit](a6d5979b08) is 4 years old) and I couldn't find any issues with YCM enabled in this mode, I propose to revert this commit.

See issue #2104 and [relevant thread on ycm-users list](https://groups.google.com/forum/?hl=en#!topic/ycm-users/cdqPJH5QrBs).

Fixes issue #2104.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2106)
<!-- Reviewable:end -->
2016-04-10 11:40:09 +09:00
Homu
63b8198b11 Auto merge of #2097 - micbou:fix-post-complete-test, r=Valloric
[READY] Fix PostComplete test

A refactoring of PostComplete tests made the `GetCompletionsUserMayHaveCompleted_ReturnEmptyIfPendingMatches_OldVim` test identical to
`GetCompletionsUserMayHaveCompleted_ReturnEmptyIfPendingMatches_NewVim`. Revert to original test.

This PR also updates the tests with small changes. See the commit message.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2097)
<!-- Reviewable:end -->
2016-04-09 23:21:06 +09:00
micbou
e52d252d08 Revert "Don't run the plugin when in diff mode"
This reverts commit a6d5979b08.
2016-04-09 12:09:10 +02:00
Homu
63690467ea Auto merge of #2099 - micbou:clang-documentation, r=vheon
[READY] Update Clang version in documentation

Since PR Valloric/ycmd#353, Clang version must be at least 3.8.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2099)
<!-- Reviewable:end -->
2016-04-08 05:59:28 +09:00
micbou
4824b8fd4b Update Clang version in documentation 2016-04-07 11:16:01 +02:00
Homu
9f92f530d4 Auto merge of #2095 - micbou:typescript-refactor-rename-documentation, r=puremourning
[READY] Add TypeScript RefactorRename subcommand to documentation

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2095)
<!-- Reviewable:end -->
2016-04-07 10:39:01 +09:00
micbou
638550384e Update PostComplete tests
Move with-statement patch as decorator when possible.
Use single quote everywhere instead of double quote (for consistency).
Remove empty lines.
2016-04-07 00:42:43 +02:00
micbou
4b9e16f14d Fix PostComplete test
ReturnEmptyIfPendingMatches_OldVim test was identical to
ReturnEmptyIfPendingMatches_NewVim.
2016-04-07 00:42:43 +02:00
micbou
5a938ec82f Add TypeScript RefactorRename to documentation 2016-04-06 05:33:19 +02:00
Homu
41e4886489 Auto merge of #2093 - Valloric:ycmd-update, r=micbou
Updating to latest ycmd

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/2093)
<!-- Reviewable:end -->
2016-04-06 12:30:21 +09:00
Val Markovic
d7cbd8d91b Updating to latest ycmd 2016-04-04 18:30:59 -07:00
Lifepillar
bf63188066 Support lazy loading with :packadd.
Vim recently has introduced a new feature called 'packages', which
permits, among the rest, to disable automatic loading a plugin at
startup. Plugins that are disabled at startup may be manually loaded
during a session using :packadd (see :h packages, :h :packadd). Of
course, a plugin that is loaded after startup cannot rely on VimEnter
events.

In order to support lazy loading YCM, check whether YCM is sourced
during startup or at a later time. In the former case, define an
autocommand as before; in the latter case, enable YCM immediately.
2016-03-26 21:30:24 +02:00