kovisoft / slimv

Official mirror of Slimv versions released on vim.org
455 stars 60 forks source link

iskeyword conflict with vim-racket #114

Open namedots opened 3 years ago

namedots commented 3 years ago

https://github.com/kovisoft/slimv/blob/de657dd6e124189143589a725ae85113c09eb053/ftplugin/slimv.vim#L1166-L1173

I think this function might be missing special treatment for ^? same as https://github.com/kovisoft/paredit/issues/37

kovisoft commented 3 years ago

Yes, I agree, the root of this issue is probably the same as in https://github.com/kovisoft/paredit/issues/37 . Could you please check if modifying the s:SetKeyword() function in ftplugin/slimv.vim as below solves the problem for you?

 function! s:SetKeyword() 
    let old_value = &iskeyword
    if match(old_value, '\^$') >= 0
        " remove trailing ^ because it will be added as chr 94
        setlocal iskeyword-=^
    endif
     if SlimvGetFiletype() =~ '.*\(clojure\|scheme\|racket\).*' 
         setlocal iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94,~,#,\|,& 
     else 
         setlocal iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94,~,#,\|,&,.,{,},[,] 
     endif 
 endfunction

Thank you for you kind assistance.

namedots commented 3 years ago

Yes. I made this same change and that got rid of the error messages. Beyond that I don't know much of anything - don't know what this function does, don't know vimscript, don't know racket, don't know slimv. :^)

the error message was:

Error detected while processing function SlimvArglist[24]..<SNR>151_SetKeyword:
line    2:
E474: Invalid argument: iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94,~,#,|,&

and :set iskeyword said: iskeyword=@,48-57,_,192-255,#,%,^

after this modification of s:SetKeyword, the error stopped showing up and :set iskeyword gave: iskeyword=@,48-57,_,192-255,#,%,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94,~,#,|,&

kovisoft commented 3 years ago

Thank you very much for the test and the feedback. I added this change in commit https://github.com/kovisoft/slimv/commit/5dd86d9147009a66450e20135c1855cd68b9ea48