liuchengxu / space-vim

:four_leaf_clover: Lean & mean spacemacs-ish Vim distribution
https://liuchengxu.github.io/space-vim/
MIT License
2.85k stars 255 forks source link

E239 triggered "invalid sign text: ~^^" #476

Closed MarkVasile closed 3 years ago

MarkVasile commented 3 years ago

I had to change the g:signify_sign_delete_first_line to just '-' to avoid getting E239.

https://github.com/liuchengxu/space-vim/blob/64f3adfdcef88cae0d11f999247df7c2ed4259a9/layers/%2Bversion-control/git/config.vim#L30

imbible commented 3 years ago

@liuchengxu I confirmed that it is reproducible. It is because of this bug in Signify - https://github.com/mhinz/vim-signify/issues/366#issuecomment-773194757

fmcgough commented 3 years ago

I'm also getting this error:

Error detected while processing function <SNR>164_callback_nvim_exit[1]..<SNR>164_handle_diff[31]..sy#sign#set_signs[17]..sy#highlight#line_disable:
line    3:
E239: Invalid sign text: ~^^
jamessan commented 3 years ago

Signs can't be more than two columns. The new g:signify_sign_change_delete has a default of g:signify_sign_change . g:signify_sign_delete_first_line, so if the combination of them is more than 2 columns, you will get the E239 error.

This is documented in signify:

                                              *g:signify_sign_add*
                                              *g:signify_sign_delete*
                                              *g:signify_sign_delete_first_line*
                                              *g:signify_sign_change*
                                              *g:signify_sign_change_delete*
>
    let g:signify_sign_add               = '+'
    let g:signify_sign_delete            = '_'
    let g:signify_sign_delete_first_line = '‾'
    let g:signify_sign_change            = '!'
    let g:signify_sign_change_delete     = g:signify_sign_change . g:signify_sign_delete_first_line
<
The sign to use if a line was added, deleted or changed or a combination of
these.

You can use Unicode characters, but signs must not take up more than two
cells. Otherwise, |E239| is thrown.

So either change g:signify_sign_delete_first_line to not be two characters, or set g:signify_sign_change_delete to a specific value.

liuchengxu commented 3 years ago

Thanks @jamessan , that's a misuse of space-vim then, it doesn't complain about that earlier though :(.

jamessan commented 3 years ago

@liuchengxu You can keep g:signify_sign_delete_first_line = '^^' as long as g:signify_sign_change_delete is explicitly set to some string that is one or two columns, instead of using the default value.