Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fork updates from ycm-core/YouCompleteMe master #32

Open
wants to merge 310 commits into
base: master
Choose a base branch
from

Conversation

github-actions[bot]
Copy link

No description provided.

puremourning and others added 30 commits August 19, 2022 22:19
Previously we would trigger completion (call complete()) on every
keystroke even if nothing had changed in the result set. The purpose of
this with the old completion system (using feedkeys) was to reduce
flicker - we closed the completion menu on every keystroke, then
re-opened it.

With the new completion system, that's not necessary as we don't close
the pum on every keystroke - only when the result set is emtpy. However,
we still called complete() on every keystroke to ensure that it's always
our own filtering etc. that gets applied.

The problem with this is that this causes a _lot_ of redraw. Every call
to complete() seems to involve a very expensive draw call, particularly
in languages with complex regex-based syntax highlighting. Profiling vim
suggests that this change roughly halves the time spend redrawing -
which is to be expected.

I think that the extremely slow redraw is a bug in either the syntax
file or vim itslef, frankly, but this is quite difficult to pin down.
For now, I think it's better to have occasionally-incorrect filtering
when deleting characters to frequently-extremely-laggy typing.
This is more of an issue now that we echo diags inline - previously we
were updating the echo'd (or virtual text) diagnostic even if diag
updates were disabled in insert mode. This was annoying.

OnCursorMoved is called for both normal and insert mode, so just don't
update in insert mode.

Also clear virtual text when going into insert moode if updates are
disabled. This feels really nice to work with, by comparison with all
the noise when it's enabled, so recommend that setting in the docs.
Perhaps we can in future make it the default.
only clear the range that we actually received
add a <plug> mapping to toggle them on/off manually.
add an option to enable/disable in insert mode
When available use the "types" list in prop_remove
… When text is inserted it can easily just be wrong and tracking the changes is monstrously complex
Inlay hints: Stop trying to be clever about clearing the right range.…
For some reason, the (wierd) way we were initialising
s:enable_inlay_hints via vim.command was causing wierdness on older vims
and neovim (i.e. where it was returning 0). Unclear why this was
happening, but using less wierd syntax seems to fix it.
…-issue

Fix passing '+10' etc on command line in older vims.
If a candidate shown in the symbol finder is too long to display the
path and line number, we would incorrectly calculate the length of the
path text property. Calculate it correctly.
Fix traceback when a long identifier is displayed in finder
bstaletic and others added 30 commits June 11, 2024 20:47
Changelog:

1. Upgrade all subservers
2. Hierarchy support
Previously the tests were using async result checking, but this is
intended for insert mode only. In fact we were running off the end of
the test and then the check callbacks were firing.

Simplified by just making it the same but sequential, and replacding
FeedAndCheck* with direct calls to feedkeys(..., 'xt').
indexof was added so recently that even vim-helptag-versions website
doesn't have it. Replace with a loop.
There were some unnecessary `WaitForAssert()` calls and unnecessary
`silent` commands.
- `badd` is unnecessary since we have `GetBufferNumberForFilename()`
- Instead of passing `location`, we can pass `file`, `line` and `column`
  separately.
[READY] Implement type/call hierarchy handling
The `decorator` type was introduced in LSP 1.17.
The `concept` type is used by clangd.
The given repository is no longer needed to install the specified packages.
Since Ubuntu 24.04 is out, we can clean up a bit.
Some of the `VimSupportsFoo()` functions will always return `True` in
vim, but we also need to take into account othervim.
coverage and click were pinned because covimerage was outdated.
Now covimerage states its dependencies properly and works with
coveragepy 7.
Since vim 9.1.0469, completeopt is a global-local option.  When adding
`noselect`, we need to treat `completeopt` as local and use `setlocal`.
This works for 9.1.0016 as well and allows users to freely mess with
buffer-local `completeopt` without messing up YCM completions.
[READY] Use setlocal for temporary completeopt adjustment
Fix typos in the code of conduct document
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.