Tuesday, April 6, 2021

Re: [VIM] Re: How to have the spell checker ignoring URLs and acronyms

Walter Cazzola wrote:
Hi,
thanks for the reply

On Sat, 3 Apr 2021, Charles Campbell wrote:

I suspect that you need to get your matches contained in various groups. For
a start, consider also trying (in ~/.vim/after/tex.vim)

      syn cluster texFoldGroup add=UrlNoSpell,AcronymNoSpell

This mostly did the trick. It now works in some cases but not everywhere, see
the minimal example below.

You didn't provide any examples, so the above is a guess.

You are right, this is a MWE

   \documentclass[a4paper]{article}
   \begin{document}
      SUT (SUT) [SUT] {SUT} SUT,
      $SUT$
      \section{A section about SUT.}
      \begin{itemize}
         \item SUT
      \end{itemize}
      \begin{figure}\caption{whatever SUT is}\end{figure}

      ftp://erlang.org/doc/man/erl_tracer.html
      \url{ftp://erlang.org/doc/man/erl_tracer.html}
   \end{document}

in this case, the acronym SUT and the URL are correctly ignored in paragraphs
(also when followed by punctuation symbols) but not when in a command as
\section, \url or \caption. What I see is in the attached pic.

Currently, my .vim/after/syntax/tex.vim contains:

  syn cluster texFoldGroup add=UrlNoSpell,AcronymNoSpell
  syn match UrlNoSpell '\w\+:\/\/[^[:space:]]\+' contains=@NoSpell
  syn match AcronymNoSpell '\<\(\u\|\d\)\{3,}s\?\>' contains=@NoSpell

Probably, there will be another group to add these patterns. Where can I read
all the possible groups?
Well, all the groups are explicitly laid out in syntax/tex.vim, albeit embedded with the rest of the syntax highlighting. What you might consider doing is using hilinks.vim (http://www.drchip.org/astronaut/vim/index.html#HILINKS, :HLT!) which will then tell you what syntax and highlighting is currently in-use under your cursor. Using your example I typed :HLT!, placed the cursor on the f in ftp:... and noted that the syntax stack has texDocZone->texSectionZone -- so you'll want to use
syn cluster texSectionZone add=UrlNoSpell,AcronymNoSpell
to your after/syntax/tex.vim file.

Regards,
Chip Campbell

No comments: