Hi,
I'd like to start out by saying that I'm a huge fan of the Kitty terminal. Recently I've been running into a peculiar error while running NeoVim with ALE as a linting engine that I do not believe I ran into before updating to version 0.8. When using NeoVim and ALE and typing an error everything is rendered as expected:

However after leaving the buffer and returning to it, or closing vim and reopening the bug renders with an indentation on the line and sometimes with letters in the mistyped word being rendered as alternate characters. This shift causes each character on the line to be off by one when trying to correct characters:

further issues arise when correcting the type error, the line remains indented and characters are not rendered on the line:

I've attempted to replicate the error in xterm & gnome terminal and have not been successful, so it seems the error is some sort of conflict with kitty.
Current Kitty version 0.8.1
Current NeoVim version 0.2.2
Current ALE version 1.7.1
The error appears to come from the way that kitty renders emojis.
This will be because neovim does not handle unicode emoji presentation variation selectors correctly (https://emojipedia.org/variation-selector-16/). Type
Ctrl+v u26a0 Ctrl+v ufe0f
in insert mode a neovim buffer and you will see the emoji above. It is correctly rendered in two cells by kitty but neovim assumes it is one cell wide. You can check that by going to the beginning of the line using ^ and pressing the a key, after which the cursor will be positioned in the middle of the emoji.
No other terminal I know of currently implements support for variation selectors, though I believe gnome-terminal (VTE) is working on it. So it's likely the neovim developers dont know about it. You should open a bug report for neovim or just ping @justinmk. You can probably also workaround the bug by configuring ALE to not use variation selectors in its signs.
Although I have to say that while vim also suffers from this bug, I use variation selectors in the signs with syntastic and dont see any actual rendering errors in vim.
Most helpful comment
This will be because neovim does not handle unicode emoji presentation variation selectors correctly (https://emojipedia.org/variation-selector-16/). Type
in insert mode a neovim buffer and you will see the emoji above. It is correctly rendered in two cells by kitty but neovim assumes it is one cell wide. You can check that by going to the beginning of the line using ^ and pressing the a key, after which the cursor will be positioned in the middle of the emoji.
No other terminal I know of currently implements support for variation selectors, though I believe gnome-terminal (VTE) is working on it. So it's likely the neovim developers dont know about it. You should open a bug report for neovim or just ping @justinmk. You can probably also workaround the bug by configuring ALE to not use variation selectors in its signs.
Although I have to say that while vim also suffers from this bug, I use variation selectors in the signs with syntastic and dont see any actual rendering errors in vim.