An open API service indexing awesome lists of open source software.

https://github.com/tonyfettes/fcitx5.nvim

Fcitx5 client in Neovim
https://github.com/tonyfettes/fcitx5.nvim

fcitx5 input-method lua neovim neovim-plugin

Last synced: 7 days ago
JSON representation

Fcitx5 client in Neovim

Awesome Lists containing this project

README

          

# fcitx5.nvim

[WIP but already in maintenance] Fcitx5 client in neovim

## Reminds

This plugin needs to be run with corresponding input method frontend **disabled**
in either your Neovim UI (terminal emulator or GUI), or Fcitx5.

## Demo

## Install

If you use `packer.nvim`,
```lua
use {
'tonyfettes/fcitx5.nvim'
tag = 'v0.0.1-alpha',
rocks = {'dbus_proxy', 'lgi'}
}
```

Then, check if corresponding Input method frontend is disabled in Fcitx5
configuration, if your terminal/GUI support that. Otherwise, your terminal/GUI
will capture your keystrokes and sent them to Fcitx5 instead of Neovim.

## Setup

The example below shows the default values.
```vim
lua< to toggle between most recent two input methods.
vim.cmd[[inoremap lua require'fcitx5'.toggle()]]
},
-- Add luarocks dependencies
rocks = { 'lgi', 'dbus_proxy' }
}
```

## Roadmap

- [x] Fix error on exit
- [x] Switchable input method and group (currently hardcoded to 'rime')
- [x] Break into two windows for pre-edit and candidate list respectively
- [x] Select candidates with function
- [x] Highlight
- [x] Pre-edit highlight
- [x] UI glitch on first keystroke after insert
- [x] Candidate list margin
- [ ] Commit when focus out
- [ ] True Client side pre-edit support.
- [ ] Double-line mode, i.e. pre-edit is embedded in input method panel.
- [ ] Horizontal/Vertical layout
- [ ] Command-line support
- [ ] \(Perhaps\) `CursorMovedI/InsertCharPre` to `nvim_buf_attach()`
- [ ] \(Perhaps\) Show current input method and input group using dedicated window
- [ ] If `'wrap'` is not set, scroll horizontal if pre-edit is too long, otherwise move to next line. Too hard.