mirror of
https://github.com/junegunn/fzf.git
synced 2024-08-16 18:00:33 +03:00
[vim] Border style for popup window (rounded | sharp | horizontal)
This commit is contained in:
parent
8583b150c9
commit
446df07b62
@ -204,7 +204,7 @@ following options are allowed:
|
||||
- `yoffset` [float default 0.5 range [0 ~ 1]]
|
||||
- `xoffset` [float default 0.5 range [0 ~ 1]]
|
||||
- `highlight` [string default `'Comment'`]: Highlight group for border
|
||||
- `rounded` [boolean default `v:true`]: Use rounded border
|
||||
- `border` [string default `rounded`]: Border style (`rounded` | `sharp` | `horizontal`)
|
||||
|
||||
`fzf#wrap`
|
||||
----------
|
||||
@ -300,7 +300,7 @@ The latest versions of Vim and Neovim include builtin terminal emulator
|
||||
" - xoffset [float default 0.0 range [0 ~ 1]]
|
||||
" - yoffset [float default 0.0 range [0 ~ 1]]
|
||||
" - highlight [string default 'Comment']: Highlight group for border
|
||||
" - rounded [boolean default v:true]: Use rounded border
|
||||
" - border [string default 'rounded']: Border style ('rounded' | 'sharp' | 'horizontal')
|
||||
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
|
||||
```
|
||||
|
||||
|
@ -223,7 +223,7 @@ following options are allowed:
|
||||
- `xoffset` [float default 0.0 range [0 ~ 1]]
|
||||
- `yoffset` [float default 0.0 range [0 ~ 1]]
|
||||
- `highlight` [string default `'Comment'`]: Highlight group for border
|
||||
- `rounded` [boolean default `v:true`]: Use rounded border
|
||||
- `border` [string default `rounded`]: Border style (`rounded` | `sharp` | `horizontal`)
|
||||
|
||||
|
||||
FZF#WRAP
|
||||
@ -315,7 +315,7 @@ Starting fzf in a popup window~
|
||||
" - xoffset [float default 0.5 range [0 ~ 1]]
|
||||
" - yoffset [float default 0.5 range [0 ~ 1]]
|
||||
" - highlight [string default 'Comment']: Highlight group for border
|
||||
" - rounded [boolean default v:true]: Use rounded border
|
||||
" - border [string default 'rounded']: Border style ('rounded' | 'sharp' | 'horizontal')
|
||||
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
|
||||
<
|
||||
|
||||
|
@ -854,20 +854,33 @@ function! s:popup(opts) abort
|
||||
let row += !has('nvim')
|
||||
let col += !has('nvim')
|
||||
|
||||
" Border
|
||||
let edges = get(a:opts, 'rounded', 1) ? ['╭', '╮', '╰', '╯'] : ['┌', '┐', '└', '┘']
|
||||
let bar = repeat('─', width - 2)
|
||||
let top = edges[0] .. bar .. edges[1]
|
||||
let mid = '│' .. repeat(' ', width - 2) .. '│'
|
||||
let bot = edges[2] .. bar .. edges[3]
|
||||
let border = [top] + repeat([mid], height - 2) + [bot]
|
||||
" Border style
|
||||
let style = get(a:opts, 'border', 'rounded')
|
||||
if !has_key(a:opts, 'border') && !get(a:opts, 'rounded', 1)
|
||||
let style = 'sharp'
|
||||
endif
|
||||
|
||||
if style == 'horizontal'
|
||||
let hor = repeat('─', width)
|
||||
let mid = repeat(' ', width)
|
||||
let border = [hor] + repeat([mid], height - 2) + [hor]
|
||||
let margin = 0
|
||||
else
|
||||
let edges = style == 'sharp' ? ['┌', '┐', '└', '┘'] : ['╭', '╮', '╰', '╯']
|
||||
let bar = repeat('─', width - 2)
|
||||
let top = edges[0] .. bar .. edges[1]
|
||||
let mid = '│' .. repeat(' ', width - 2) .. '│'
|
||||
let bot = edges[2] .. bar .. edges[3]
|
||||
let border = [top] + repeat([mid], height - 2) + [bot]
|
||||
let margin = 2
|
||||
endif
|
||||
|
||||
let highlight = get(a:opts, 'highlight', 'Comment')
|
||||
let frame = s:create_popup(highlight, {
|
||||
\ 'row': row, 'col': col, 'width': width, 'height': height, 'border': border
|
||||
\ })
|
||||
call s:create_popup('Normal', {
|
||||
\ 'row': row + 1, 'col': col + 2, 'width': width - 4, 'height': height - 2
|
||||
\ 'row': row + 1, 'col': col + margin, 'width': width - margin * 2, 'height': height - 2
|
||||
\ })
|
||||
if has('nvim')
|
||||
execute 'autocmd BufWipeout <buffer> bwipeout '..frame
|
||||
|
Loading…
Reference in New Issue
Block a user