bluz71 / vim-moonfly-colors

A dark charcoal theme for modern Neovim & classic Vim
MIT License
866 stars 65 forks source link

Spelling errors create cursorline gaps #13

Closed seandewar closed 3 years ago

seandewar commented 3 years ago

Seems to happen in both TUI and GUI nvim.

Especially apparent with nvim-treesitter's highlights enabled, which disables the regular syntax-based highlighting, using extmarks instead:

image

Usually, with :syntax on, code is ignored by the spell checker, which makes this less apparent outside of comments. It seems that removing the ctermbg and guibg attributes from the :highlight fixes the issue:

image

bluz71 commented 3 years ago

@seandewar,

Issue should now be resolved.

Thanks for the bug report.

Best regards.

seandewar commented 3 years ago

No problem!

Thank you for making this awesome color scheme! Been happily using it for nearly 6 months now. :)

toofar commented 3 years ago

Is there anyway I can revert back to the old behavior locally? I realize that the brightness is the vim default but wow is it bright. (Or otherwise change the bad spelling styling, I don't customize vim much, I just updated my plugins for the first time in a while. Then bisected to this change.) image

bluz71 commented 3 years ago

I believe that is likely a Vim bug when undercurl is set, I don't see that issue with Neovim.

I strongly recommend you set let g:moonflyUndercurls = 0. The problem should go away.

toofar commented 3 years ago

Hmmm, I reduced my ~/.vimrc to just

let g:moonflyUndercurls = 0
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'bluz71/vim-moonfly-colors'
call vundle#end()
colorscheme moonfly
set spell

And I still see the same pink in both vim and nvim. (My nvim init.vim just sources my vimrc)

bluz71 commented 3 years ago

Which terminal program? That could well be having an effect.

I see the pink issue only with Vim in Alacritty when g:moonflyUndercurls is set to 1.

bluz71 commented 3 years ago

Can you print the value of :hi SpellBad.

toofar commented 3 years ago

:hi SpellBad

SpellBad       xxx term=reverse cterm=underline ctermfg=1 ctermbg=9
                   gui=underline guifg=#ff5454 guisp=#ff5454

I'm using urxvt (debian). I'm building alacritty now.

bluz71 commented 3 years ago

Your SpellBad is what I expect (it is correct, no undercurls).

Hopefully your terminal is a factor. Let me know. Currently I can't reproduce the issue once I disable undercurls. I do not see this issue in alacritty, GNOME Terminal nor xterm (once g:moonflyUndercurls is disabled).

That has me thinking, I probably should not make undercurls the default. I will think on that.

toofar commented 3 years ago

alacritty looks even worse, oh no

image

I realised my terminal colorscheme from ~/.Xdefaults might affect it so I emptied that and it turned into red for urxvt and didn't change for alacritty

image

I'm assuming the ctermbg=9 means it is whatever is defining that that is doing it? I'm not sure where that could be coming from at this point, I'll have another look through my dotfiles tomorrow but there isn't much there. I'll probably just revert for now since I don't know how much time I'll have to look into it further.

(btw I honestly didn't remember installing this theme but while I'm not sure how I found it my dotfiles say I've been using it since 2017!)

bluz71 commented 3 years ago

Try adding, set termguicolors to your vimrc.

I just remembered I stopped using cterm a long time ago. That could be having an effect.

bluz71 commented 3 years ago

I think I can partially revert this treesitter fix, just for cterm. More testing at my end.

If you don’t have time, just leave it with me. I will explore on my own. I do want to fix this for you.

toofar commented 3 years ago

Telling it to use gui color definitely changes it. But now it doesn't have any colors. The docs say that if you get a colorless UI you need to read :he xterm-true-color so maybe I'm missing something else to to make that work.

image

bluz71 commented 3 years ago

What’s the value of $TERM? I suggest setting it to xterm-256color if using Alacritty.

toofar commented 3 years ago

That does restore color in alacritty. It has no effect in urxvt though. I don't particularly like setting TERM to something false, but that might just be because urxvt gets a bit weird when you do that. Apparently urxvt doesn't support true color ... and there is a patch somewhere.

image

bluz71 commented 3 years ago

I think I have enough leads to go on now.

I will try and balance the competing interests of this issue, that being the original and yours.

I suggest locking your moonfly version to the last good one, until I sort this out. Give me a day or so, I should be able to figure a solution.

Lastly, you are a Vim user, not Neovim, correct?

toofar commented 3 years ago

Yes, vim. And thank you for caring.

bluz71 commented 3 years ago

Hello @toofar,

I was able to repeat your issue with Vim and the base cterm version of moonfly.

I have just committed a fix for your issue, whilst also keeping the fix for the original problem in this issue. Should be a win - win for all.

Sorry for the breakage, but hopefully you should be good to go now.

Peace.

toofar commented 3 years ago

Looks good to me! It looks the same as I am used to as far as I can tell. Well it changes the color of the little "no file here" tildes (they are darker now) but I don't care about that. Thank you again! image

bluz71 commented 3 years ago

The tilde change is a deliberate (recent) change, among others (such as popup selection color). My colorschemes are always evolving.

Thankfully your issue is now fixed, which pleases me.

Best regards.