Conversation
autoload/vimtex/cmd.vim
Outdated
| call setline(l:lnum, | ||
| \ strpart(l:line, 0, l:len - 2)) | ||
| else | ||
| call setline(l:lnum, |
There was a problem hiding this comment.
In lines 280, 283 and 286 you've included an unnecessary end-of-line space. I prefer to avoid that.
There was a problem hiding this comment.
Also, I think you've unnecessarily broken these statements into multiple lines. I would write it like this:
if l:len >= 3 && strpart(l:line, l:len - 3) == ' \\'
call setline(l:lnum, strpart(l:line, 0, l:len - 3))
elseif l:len >= 2 && strpart(l:line, l:len - 2) == '\\'
call setline(l:lnum, strpart(l:line, 0, l:len - 2))
else
call setline(l:lnum, l:line . ' \\')
endifThere was a problem hiding this comment.
In fact, I think I would solve this with regexes. Something like this:
function! vimtex#cmd#toggle_break() abort " {{{1
let l:lnum = line('.')
let l:line = getline(l:lnum)
let l:replace = l:line =~# '\s*\\\\\s*$'
\ ? substitute(l:line, '\s*\\\\\s*$', '', '')
\ : substitute(l:line, '\s*$', ' \\\\', '')
call setline(l:lnum, l:replace)
endfunction
" }}}1
I don't mind adding this, even though I don't think I'll end up using it. It falls nicely into the current patterns and shouldn't be "in the way" of anything that I can think of. I had a comment the implementation, see above.
I think it looks good, although I would prefer if you made the suggested change. And, of course, that you add a couple of tests and docs. And thanks! I appreciate the effort you've made here in actually implementing the feature you want added! |
|
Thanks for the suggestions and the RegEx simplification, all of them have been implemented, along with a couple tests and document updates. |
|
Thanks! I made a minor additional change and then merged this now. The change was basically to change "Toggle line end |
|
Note, though: I rebased and merged locally; for some reason, Github doesn't recognize this. |
|
Neat! Small follow-up suggestion: support for visual mode ;) |
|
Heh, yes. @handcart2034 are you up for the challenge? One way to implement it would be to reuse the current implementation and just apply it to every line in the visual selection. |
Hi, this is a new function that toggles
\\at line end. In environments likealign, sometimes the formulas are changed thus the line break is not optimal. One needs$orAto move to end of line, then eitherxxor\\, finally go back to the original position, which can be quite tiring for more than a couple lines.So wrote this function and map
tsbto it. If everything looks good will add tests and docs to finalize this request.