Commit graph

756 commits

Author SHA1 Message Date
hrsh7th
c4dcb1244a Fix border width calculation 2022-07-21 00:37:40 +09:00
Mitsuo Heijo
9897465a76
Fix stylua integration (#1054) 2022-06-29 21:08:06 +09:00
Zhuoyun Wei
1cad1815e1
Fix typo (#1047) 2022-06-24 12:36:04 +09:00
tzachar
8cab788976
add events: view_opened and view_closed (#965)
* add events: view_opened and view_closed

* fix typos

* rename view -> menu
2022-06-24 12:35:47 +09:00
Cameron
df6734aa01
Add Completion Window Options (#901)
* Add window.completion.side_padding and window.completion.col_offset

* add col_offset and side_padding options to config/window
2022-06-15 11:49:16 +09:00
MurdeRM3L0DY
0e65333c7f
make debounce and throttle time configurable (#1026)
* make debounce and throttle time configurable

* fix documentation
2022-06-15 02:21:55 +09:00
Jonas Strittmatter
15c7bf7c0d
Update documentation (#1019)
Co-authored-by: hrsh7th <629908+hrsh7th@users.noreply.github.com>
2022-06-09 16:41:59 +09:00
Benoit de Chezelles
ce643c12f1
Fix doc typo (#1025) 2022-06-08 13:32:34 +09:00
William Boman
033a817ced
fix: only scroll docs if docs view is visible (#1011) 2022-05-25 10:32:11 +09:00
hrsh7th
6e1e386515
Update bug_report.yml 2022-05-18 12:15:11 +09:00
hrsh7th
cd694b8944 Fix #989 2022-05-16 12:08:13 +09:00
Jaehwang Jung
160405250e
Reuse scratch buffer for keymap normalization (#991) 2022-05-15 18:44:21 +09:00
John Nguyen
23e182d6d6
fix(types)(cmp): missing filetype type (#990) 2022-05-15 11:25:58 +09:00
hrsh7th
9a0c639ac2 Fix #987 2022-05-13 20:36:28 +09:00
hrsh7th
0318a3cbc1 Improve the codes for sumneko friendly 2022-05-13 19:25:00 +09:00
zeertzjq
6527e5f31b
fix: use scratch buffer and lhs for keymap.normalize() (#986)
Fix https://github.com/neovim/neovim/issues/18303

This can be slower, I don't know how frequently this function is called as I don't use this plugin.
2022-05-13 19:18:29 +09:00
hrsh7th
a226b6a4ff Fix #973 2022-05-09 11:55:29 +09:00
hrsh7th
f81bfee109 Fix #964
Fix #963
Fix #966
2022-05-04 23:51:59 +09:00
hrsh7th
c6126cca36 Fix #962 2022-05-04 12:18:09 +09:00
hrsh7th
e64421ef58 Fix #960 2022-05-04 02:57:43 +09:00
hrsh7th
5054c14490
dev (#956)
* Adjust empty line count

* Implement vim.api.nvim_create_autocmd (#844)

* Implement vim.api.nvim_create_autocmd

* Only use vim.api.nvim_create_autocmd on nighly

* Cleanup

* cleanup

* Rename autos.lua to autocmds.lua

* Fix forgot to rename autos to autocmds

* Remove legacy autocmd

* Add descriptions on autocmds

* Update descriptions on autocmds

* Update CmpStatus command to lua API (#922)

Signed-off-by: Micah Halter <micah@balena.io>

* Move highlights to nvim_set_hl lua API (#925)

Signed-off-by: Micah Halter <micah@balena.io>

* Add default to highlight

* Refactor autocmds

* fmt

* Improve performance

* Fix bug

* Improve matching logic
Fixes https://github.com/hrsh7th/nvim-cmp/discussions/954

* Fix format

* Improve performance
Fix #825

* Fix cmdline redraw bug

* Fix event

Co-authored-by: hrsh7th <>
Co-authored-by: zer09 <zer09@users.noreply.github.com>
Co-authored-by: Micah Halter <micah@mehalter.com>
2022-05-04 01:47:01 +09:00
manusandoval05
bba6fb67fd
Fixed typo (#928) 2022-05-03 01:48:32 +09:00
Greg Hurrell
101f4aa7ba
fix: don't show non-working configuration in deprecation suggestion (#946)
As reported here: https://github.com/hrsh7th/nvim-cmp/issues/936
2022-05-03 01:45:00 +09:00
Uefair
bb5cac4dce
Help page changes. (#952)
Co-authored-by: alexey <serendipitousdog@protonmail.com>
2022-05-03 01:43:24 +09:00
hrsh7th
baa8646c24 Add confirmation.get_commit_characters documents.
Fix #948
2022-05-01 22:58:26 +09:00
hrsh7th
f841fa6ced Reduce flicker 2022-05-01 03:27:16 +09:00
nskhei
74284cffb6
docs: fix sample code for cmp.config.sources (#942) 2022-04-28 14:10:25 +09:00
hrsh7th
433af3dffc Add docs 2022-04-21 21:29:40 +09:00
Jongwook Choi
f51dc68e1b
fix: Fix stylua errors and install_stylua script (#923)
- Fix code style issues, suggested by stylua
- Update install_stylua.lua script so that it can run in macOS as well.
2022-04-20 13:21:37 +09:00
hrsh7th
f9f6d8dc49 Fix scopes comparator 2022-04-20 13:20:51 +09:00
Łukasz Kurpiewski
07132dc597
fix: use vim.treesitter.query instead of deprecated nvim-treesitter.ts_utils (#919) 2022-04-19 19:43:36 +09:00
hrsh7th
2aa7eee28b Improve README.md 2022-04-18 23:50:46 +09:00
Stéphane Bisinger
b5433f901e
docs!: improve the instructions to follow breaking changes (#231) (#904)
Improve the README instruction on where to find breaking changes.
Included a suggestion to subscribe to the
[github issue](https://github.com/hrsh7th/nvim-cmp/issues/231) to
get notified about changes.
2022-04-14 20:42:08 +09:00
hrsh7th
d3e74ec381 Remove print 2022-04-14 17:31:08 +09:00
hrsh7th
77d88ba056 Revert #873 fixes for Fix #899 2022-04-14 16:26:14 +09:00
Jaehwang Jung
ec8e87ce5c
Revert #886 and refactor (#900)
* Revert "make completion popup windows have bufhidden=wipe (#886)"

This reverts commit f573479528.

* Remove redundant nvim_buf_set_option

`buftype=nofile` and `bufhidden=hide` are already set by
`nvim_create_buf(false, true)`.
2022-04-14 14:38:52 +09:00
hrsh7th
7e07dd50ac Fix #893 2022-04-14 11:47:07 +09:00
hrsh7th
dbc7229029 Fix #894 2022-04-14 03:03:53 +09:00
hrsh7th
0c1f37c518 Fix mapping normalization order 2022-04-14 02:37:21 +09:00
hrsh7th
f4b3dda782 Improve cmdline preset 2022-04-14 01:17:28 +09:00
hrsh7th
93cf84f7de Remove all default mappings 2022-04-14 00:10:33 +09:00
hrsh7th
4f1358e659 Add deprecation notice 2022-04-13 23:58:50 +09:00
hrsh7th
fae808a2bc
dev (#813)
* feat: completion menu borders (#472)

* feat(custom_entries_view): pass custom border option

* feat(window): calculate offset needed for borders

* fix(window): adjust window height w/ too many results

* fix(window): center scrollbar with borders

* ref(custom_entries_view): use `FloatBorder` for borders

* fix(window): offset at bottom of window

* ref(window): move height adjustment to more logical place

* fix(window): improve popup placement

* fix(window): `border_offset` always `0` first time

* feat(window): support compact scrollbar with border

* fix(window): completion popup on cursorline

* perf(window): simplify offset calculation

String indexing will result in the same thing as if I gated it behind
`type()` calls here.

* docs(window): add `border` to `cmp.WindowStyle`

* docs(window): correct `border_offset_scrollbar`

* perf(window): calulated row -> `screenrow`

This will also be more accurate since it accounts for wrapped lines, as
well as buffers.

* fix(window): edge case with multiple splits

* ref(winhighlight): don't specify defaults by default

`NormalFloat:NormalFloat` isn't needed, since `NormalFloat` defaults to
`NormalFloat`. As for `FloatBorder`, that should be set to `Floatborder`
rather than `NormalFloat` or else you get unintended artifacts on the
edges of borders.

* fix(window): popup covers cursor when scrollbar disappears

* ref(window): calc `border_offset_col` on `set_style`

* perf(window): remove unecessary `col` calculation

Taking it out didn't change anything about the popup behavior.

* feat: add `CmpItemMenuThumb` group

* feat(window): improve scrollbar appearance

* chore(window): remove references to unused property

* docs: document new option `thin_scrollbar`

* ref(plugin): remove background from `thin_scrollbar`

* feat(view): pass `thin_scrollbar` option to window

* feat(window): gate new `thin_scrollbar` behind option

* fix(window): cmdline bugging out

* fix(cmp): docs_view pops up overlapped when using borders

This is related to 1cfe2f7dfd. The
calculation for how the popup position is calculated was changed, and
so it needed to be reworked to include borders in order to be able to
work.

* ref: `thin_scrollbar` flag -> `scrollbar` option

This change allows users to define which character they will use for
their scrollbar.

* fix(window): use `scrollbar` setting for scrollbar character

Thanks @Astrantia for pointing this one out.

* docs(README): add completion appearance options to FAQ

* fix(): account for `border_offset_row` with `has_bottom_space`

* style(custom_entries_view): group offset with `row`/`col`

* fix(window): scrollbar at full view height

Because the `bar_height` variable must be whole number, and must be rounded up
from a percent, there is a change that we will end up with the maximum
height as a number.

For example, `info.height` = 24 and `total` = 25.

* feat(window): allow scrollbar to be disabled

* fix(window): scrollbar size < 1

* ref(cmp): move border logic to `window.info`

* ref!: window highlighting based on borders

BREAKING CHANGE: `documentation.winhighlight` does not determine the
                 highlighting of the `documentation` view— `CmpWindow`
		 or `CmpBorderedWindow` depending on whether it has a
		 border.

* ref!: float appearance opts -> `cmp.setup.window`

`cmp.setup.completion.border` and `.scrollbar` were both moved to
`cmp.setup.window.completion.border` and `.scrollbar`

BREAKING CHANGE: `cmp.setup.documentation` has been moved to
                 `cmp.window.documentation`, as all of the pertaining
		 options were cosmetic.

TODO: document the change

* fix(window): attempt to get scrollbar's border

* fix(cmp): restore `view.menu.hl_group`

* fix(window): wrong scrollbar position

* ref: get default `CmpItemMenu` from border existence

* chore(cmp): remove old PR comments

* fix(window): scrollbar sometimes too big

* fix(window): docs far away with complete menu scrollbar

* perf(docs_view): reuse `border_width` value

* rev(cmp): restore `CmpItemMenu`

* ref(cmp): distinguish between `ScrollBar` and `ScrollThumb`

* fix(plugin): consistently refer to `Thumb` as `Thumb`

* rev(window): `Pmenu`-style scrollbar when no border

* fix(window): docs_view size wrong when first shown

* fix(window): docs_view scrollbar not responding to size

* fix(window): scrollbar sometimes to small, take 2

* fix(window): scrollbar bg not hiding

* ref(docs_view): put docs closer to completion menu

* fix(window): scrollbar position wrong with right border

* ref(config): add default border to documentation

* fix(window): scrollbar too close without border

* ref(plugin): link `CmpWindow` to `Pmenu`

I set `CmpWindow` to `NormalFloat`, because that is what you would
expect a floating window to use for a highlight group. However at
request I changed it to `Pmenu`.

* ref(plugin): link `CmpWindowBorder` to `CmpWindow`

* fix(window): scrollbar following thumb while scrolling

* ref: add more highlight groups

There just weren't enough highlight groups to satisfy the demands of the
project. If you change `CmpWindow` to `Pmenu`, then the `docs_view`
becomes `Pmenu` as well when on `main` it is `NormalFloat`.

* fix(window): scrollbar overlapping `docs_view` by default

* ref: remove `Bordered` highlight variants

* ref(utils): extract whitespace check to func

* feat: `window.completion.zindex` setting

* ref: `maxwidth|height` -> `max_`

* ref: simplify highlight groups

* feat: `window.*.winhighlight` setting

* ref(utils): `is_whitespace_char` -> `is_visible`

As hrsh7th noted, `''` is not a whitespace character. Yet, it is
necessary to group `''` and `' '` together for certain border behaviors
that are based on visibility. Thus I have renamed the function

* feat: specify `window.*.winhighlight` for un/bordered

* fix(custom_entries_view): set `winhighlight` on `open`

* ref: remove `Cmp*Scroll*` variants

There's no way for `window` to know which kind of window it is drawing a
scrollbar on. Simpler to just have one kind of scrollbar

* feat: distinguish between bordered and unbordered

* ref(cmp): `is_visible` -> `is_invisible`

That's what the function was checking for.

* fix(default): mislabeling of `default` and `bordered`

* chore: rebase fixup

* Change default highlight

* Add misc.rep

* Fix left-side docs_view with scrollbar

* Fix scrollbar

* Fix sbar/thumb win
Improve highlights

* Remove scrollbar cutomization for now

* Remove scrollbar option

* Simplify implementation

* Fix doc width

* Fix outdated docs

* Add comments

* Fix configuration schema

* fmt

* Fix for lint

Co-authored-by: Iron-E <36409591+Iron-E@users.noreply.github.com>
Co-authored-by: hrsh7th <>
2022-04-13 23:51:55 +09:00
Hubert Teo
f573479528
make completion popup windows have bufhidden=wipe (#886) 2022-04-13 23:01:25 +09:00
hrsh7th
3192a0c578 Fix #875 2022-04-08 23:59:30 +09:00
tzachar
1558d110d7
Bottom up mode for custom menu (#848)
* Try to fix col adjustment (#843)

* Try to fix col adjuastment

* Improve duplicated text handling

* Bottom up mode for custom entry menu

When in command line mode, the custom entry window opens up to an
unexpected height, depending on the current count of completion items.
The above makes it hard to anticipate where to look at, and makes life a bit
harder.

This patch adds an option to open the custom entries view in a bottom up
mode, and flips the regular behaviour of next/prev entry in this mode.
Setup is as easy as:

```
cmp.setup.cmdline(':', {
  view = {
    entries = {name = 'custom', direction = 'bottom_up' }
  }
}
```

* fix stylua complaints

* sylua barfs

* solve some corner cases

* properly reverse entries table

* make custom view follow cursor

* respect default as top_down

* stylua

* more stylua

Co-authored-by: hrsh7th <hrsh7th@gmail.com>
2022-04-08 22:33:09 +09:00
OKURA Masafumi
7903e867b6
Change URL of FAQ in bug_report (#867)
The link was invalid.
2022-04-08 22:10:01 +09:00
hrsh7th
82738dc16a
Update bug_report.yml 2022-04-08 22:07:19 +09:00
hrsh7th
f66f7e486f
Update bug_report.yml 2022-04-08 22:06:32 +09:00
hrsh7th
3fa777ac6b Update issue template 2022-04-08 22:04:26 +09:00