feat: add cursor layout (#878)

* Add basic implementation of "cursor" layout strategy

* Update cursor layout strategy to properly follow cursor

* feat(cursor_layout): handle previewer

* Refactor cursor layout code

* Add cursor theme

* Update readme

* Improve cursor theme and layout documentation

* [docgen] Update doc/telescope.txt
skip-checks: true

* Remove trailing whitespace

* Fix issues related with neovim and plugin api changes

* [docgen] Update doc/telescope.txt
skip-checks: true

* Allow preview width to be configured

* [docgen] Update doc/telescope.txt
skip-checks: true

Co-authored-by: Github Actions <actions@github>
Co-authored-by: cbrunel <cbrunel@sogescom.local>
This commit is contained in:
Corentin Brunel
2021-07-16 14:17:21 -04:00
committed by GitHub
parent 747396227d
commit b13306e5cc
5 changed files with 173 additions and 0 deletions

View File

@@ -94,6 +94,9 @@ telescope.setup({opts}) *telescope.setup()*
center = {
preview_cutoff = 40
},
cursor = {
preview_cutoff = 40
},
height = 0.9,
horizontal = {
preview_cutoff = 120,
@@ -912,6 +915,17 @@ themes.get_dropdown() *themes.get_dropdown()*
themes.get_cursor() *themes.get_cursor()*
Cursor style theme.
Usage:
`local builtin = require('telescope.builtin')`
`local themes = require('telescope.themes')`
`builtin.lsp_code_actions(themes.get_cursor())`
themes.get_ivy() *themes.get_ivy()*
Ivy style theme.
@@ -1034,6 +1048,29 @@ layout_strategies.center() *layout_strategies.center()*
- preview_cutoff: When lines are less than this value, the preview will be disabled
layout_strategies.cursor() *layout_strategies.cursor()*
Cursor layout dynamically positioned below the cursor if possible. If there
is no place below the cursor it will be placed above.
┌──────────────────────────────────────────────────┐
│ │
│ █ │
│ ┌──────────────┐┌─────────────────────┐ │
│ │ Prompt ││ Preview │ │
│ ├──────────────┤│ Preview │ │
│ │ Result ││ Preview │ │
│ │ Result ││ Preview │ │
│ └──────────────┘└─────────────────────┘ │
│ █ │
│ │
│ │
│ │
│ │
│ │
└──────────────────────────────────────────────────┘
layout_strategies.vertical() *layout_strategies.vertical()*
Vertical layout stacks the items on top of each other. Particularly useful
with thinner windows.