~glacambre/firenvim

firenvim/src/NeovimFrame.ts -rw-r--r-- 11.8 KiB
Improve build system
Implement thunderbird support
Implement key ignore

Closes #717
Remove persistent server
Fix RPC mechanism being broken

The problem was that in trying to selectively answer to messages from
the neovim frame, the content script was made deaf to any request from
the backround script. This is fixed by ordering functions into
categories, e.g. global, active-content and "frame" and performing
checks tied to the categories before answering.
Make firenvim work consistently across frames

There was a race condition which sometimes prevented Firenvim from
working on inputs located in frames. This was caused by the wrong
content script answering the Firenvim frame's queries.
Make chrome tests more reliable on windows

Chrome tests are pretty unreliable on windows. I suspect this is because
windows is slow and has potentially racy code in the testsuite. This is
fixed by removing the race.
Use webpack to conditionally import browser polyfill
Trigger FocusGained/Lost autocmds on focus gain/loss
Allow overriding `<C-w>`

Closes https://github.com/glacambre/firenvim/issues/103
Detect filetype and use according extension when possible
Replace selectors with frame ids for page<->frame communication
Make resize operations use frameIDs, move resizeObserver to FirenvimElem
Implement frameId-retrieving functionality
Implement persistent server

Currently buggy if `:qall!` is used.

Closes #197
NeovimFrame.ts: fix chinese input methods
Refactor get/set cursor functions and make them work on fancy editors
Improve testsuite

This commit:
- Coalesces window population + cursor movement in a single RPC
  operation removing latency
- Refactors and reduces testing delays
- Removes dead tests
Implement a way to hide history
NeovimFrame.ts: Fix <S-Left> not working

Closes #369
Next