On Thu, 28 Jun 2012, Ben Fritz wrote:
> On Thursday, June 28, 2012 4:44:19 AM UTC-5, Benjamin R. Haskell wrote:
>> Are there VimL functions for determining that Vim has marked a word
>> as misspelled? E.g. so the highlighting could be exported in
>> something similar to TOhtml.
>
> I recently installed this, which populates the quickfix list with
> spelling errors, but I haven't looked at how it works yet:
>
> http://www.vim.org/scripts/script.php?script_id=3844
Thanks. I didn't find the spellbadword() function before, because it's
the 53rd item when tab-completing :help spell<Tab>.
Unfortunately, spellbadword() can change the cursor position. But,
c'est la vie. I like Ingo's approach:
" pseudocode
" {{{ prevent looping, save the setting and view
let saved_wrapscan = &wrapscan
set nowrapscan
let saved_view = winsaveview()
" }}}
sil! norm! gg0]s " go to first error
while 1
let start_pos = getpos('.')
sil! norm! ]s " go to next error
let error_pos = getpos('.')
let [word, type] = spellbadword()
if error_pos == start_pos " then, there was no error
break
end
endwhile
" {{{ restore setting and view
call winrestview(saved_view)
let &wrapscan = saved_wrapscan
" }}}
In a few places he uses ]s[s (instead of just ]s), but I don't quite
understand what it's working around (code comment mentions something
about multiple errors on one line).
> I have in the TOhtml TODO list, adding guisp highlighting. I'm not
> exactly sure how I want to accomplish it though. It might be converted
> to a dotted underline or something of the appropriate color.
CSS3 is adding properties that will make it properly-possible¹. This
is one way it will eventually work:
.undercurl {
text-decoration-line: underline;
text-decoration-style: wavy;
text-decoration-color: red;
/* possibly also: */ text-underline-position: alphabetic;
}
Shorter:
.undercurl {
text-decoration: red wavy underline;
}
Firefox has vendor-prefixed CSS properties² for some of this already.
The following worked for me (in FF) to simulate this Vim:
.SpellBad {
/* hi SpellBad gui=undercurl guisp=#ff0000 */
-moz-text-decoration-line: underline;
-moz-text-decoration-style: wavy;
-moz-text-decoration-color: #ff0000;
/* text-decoration: #ff0000 wavy underline; // not yet working, even with -moz- */
}
--
Best,
Ben H
¹: text-decoration-style - http://www.w3.org/TR/css3-text/#text-decoration-style
²: http://peter.sh/experiments/vendor-prefixed-css-property-overview/
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
No comments:
Post a Comment