weirongxu
coc-floatinput
TypeScript

Floating input for coc.nvim

Last updated Feb 26, 2025
36
Stars
1
Forks
3
Issues
0
Stars/day
Attention Score
2
Language breakdown
TypeScript 88.5%
Vim Script 7.3%
JavaScript 4.2%
โ–ธ Files click to expand
README

coc-floatinput

Floating input for coc.nvim

Note: Vim popupwin doesn't support the focus feature, So this extension only works on neovim

Install

:CocInstall coc-floatinput

Keymaps

nmap <silent> <Leader>: <Plug>(coc-floatinput-command)

nmap <silent> <Leader>c: <Plug>(coc-floatinput-coc-command)

nmap <silent> <Leader>rn <Plug>(coc-floatinput-rename) removed, see https://github.com/weirongxu/coc-floatinput/issues/21

Screenshots

Highlight

autocmd ColorScheme *
      \ hi CocHelperNormalFloatBorder guifg=#dddddd guibg=#575B54
      \ | hi CocHelperNormalFloat guibg=#575B54

API

Use coc-floatinput API in other extensions

// Get coc-floatinput API

// input FloatInputType only import type { FloatInputType } from 'coc-floatinput';

import { extensions } from 'coc.nvim';

let floatInputExt: FloatInputType | undefined;

async function getFloatInputApi() { if (!floatInputExt) { floatInputExt = extensions.all.find((e) => e.id === 'coc-floatinput') as | Extension<FloatInputType> | undefined; } return floatInputExt?.exports; }

FloatingUI

// Get FloatingUI
async function getFloatUI() {
  return (await getFloatInputApi())?.FloatingUI;
}

string input

const FloatUI = await getFloatUI();
await FloatUI?.stringInput({
  prompt: 'Input your string',
  defaultValue: 'default string',
});

number input

const FloatUI = await getFloatUI();
await FloatUI?.numberInput({
  prompt: 'Input your number',
  defaultValue: 1,
});

confirm

const FloatUI = await getFloatUI();
await FloatUI?.confirm({
  prompt: 'Are you sure',
  values: ['yes', 'no', 'skip'],
  defaultValue: 'yes',
});

Status window

Enable floatinput status window.

coc-settings.json

{
  "floatinput.status.enabled": true
}

Avoid only floating window error

if has('nvim')
  function! s:is_float(winnr)
    let winid = win_getid(a:winnr)
    return !empty(nvimwinget_config(winid)['relative'])
  endfunction

function! s:quit_pre() let cur_nr = winnr() if s:isfloat(curnr) return endif let last_nr = winnr('$') for nr in range(last_nr, 1, -1) if s:is_float(nr) continue endif if nr == 1 only else break endif endfor endfunction

autocmd QuitPre * call <SID>quit_pre() endif

License

MIT


This extension is created by create-coc-extension
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท weirongxu/coc-floatinput ยท Updated daily from GitHub