Hi!

I've implemented conceal support for asciidoc.

    This is Vim feature which let you hide some symbols while they ain't
    needed. For example, instead of seeing *BOLD* in your text highlighted
    by some color you'll see just BOLD - still highlighted by same color
    but without *…* around it. When you'll enter INSERT/REPLACE mode to
    edit text you'll see *BOLD* with markers again - when your cursor will
    be in line with this text.

Also I've added some minor fixes/features to syntax highlight:
- highlight line breaks (+ at EOL) in lists
- highlight *…* _…_ `…` etc delimiters as SpecialChar instead of same
  color as used for their content
- fix highlight for joined markup like _underline_`mono`
  (this fix is incomplete, some joined markup isn't understood by asciidoc,
  more work needed to make highlight work exactly in same way as asciidoc)
- fix highlight when first symbol in markup is open paren )
- conceal escaping in arrows (to prevent default replacement by unicode
  arrows)



To use it you'll need two files, both named asciidoc.vim. Because of same
name I decide to attach larger one and include in email text second file.

1) Save attached file to ~/.vim/after/syntax/asciidoc.vim

2) Save these lines to ~/.vim/ftplugin/asciidoc.vim :

---cut---
if exists("b:did_ftplugin")
        finish
endif
let b:did_ftplugin = 1

if has("conceal")
        setlocal conceallevel=2 concealcursor=nc
endif

let b:undo_ftplugin = 'setlocal conceallevel< concealcursor<'
        \ . '|unlet b:did_ftplugin'
---cut---

-- 
                        WBR, Alex.

-- 
You received this message because you are subscribed to the Google Groups 
"asciidoc" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/asciidoc?hl=en.

" allow ) as first char
" allow -−~^+`_ around
syn match asciidocQuotedMonospaced   /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=+\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(+\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/ 
contains=asciidocEntityRef
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
syn match asciidocQuotedMonospaced2  /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=`\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(`\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
syn match asciidocQuotedEmphasized   /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=_\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(_\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/ 
contains=asciidocEntityRef
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
syn match asciidocQuotedEmphasized2  /\(^\|[-−~^+`_| \t([.,=\]]\)\@<='\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\('\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/ 
contains=asciidocEntityRef
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
syn match asciidocQuotedBold         /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=\*\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(\*\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/ 
contains=asciidocEntityRef
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
syn match asciidocQuotedSingleQuoted /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=`\([ 
\n\t]\)\@!\([^`]\|\n\(\s*\n\)\@!\)\{-}[^` \t]\('\([-−~^+`_| 
\t)[\],.?!;:=]\|$\)\@=\)/ contains=asciidocEntityRef
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
syn match asciidocQuotedDoubleQuoted /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=``\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(''\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/ 
contains=asciidocEntityRef
        \ containedin=asciidocQuotedSubscript,asciidocQuotedSuperscript
" not modified, but have to be executed after Quoted*
syn match asciidocQuotedUnconstrainedMonospaced 
/[\\+]\@<!++\S\_.\{-}\(++\|\n\s*\n\)/ contains=asciidocEntityRef
" add to allow delimiter highlight
syn match asciidocQuotedUnquoted     /\(^\|[-−~^+`_| \t([.,=\]]\)\@<=#\([ 
\n\t]\)\@!\(.\|\n\(\s*\n\)\@!\)\{-}\S\(#\([-−~^+`_| \t)[\],.?!;:=]\|$\)\@=\)/ 
contains=asciidocEntityRef

" allow line break in lists
syn match asciidocLineBreak             /[ \t]+$/ conceal 
containedin=asciidocList

" delimiters: conceal or highlight as SpecialChar
syn match asciidocConcealMonospaced     contained "[+]" conceal 
containedin=asciidocQuotedMonospaced
syn match asciidocConcealMonospaced2    contained "[`]" conceal 
containedin=asciidocQuotedMonospaced2
syn match asciidocConcealUMonospaced    contained "++"  conceal 
containedin=asciidocQuotedUnconstrainedMonospaced
syn match asciidocConcealEmphasized     contained "[_]" conceal 
containedin=asciidocQuotedEmphasized
syn match asciidocConcealEmphasized2    contained "[']" conceal 
containedin=asciidocQuotedEmphasized2
syn match asciidocConcealBold           contained "[*]" conceal 
containedin=asciidocQuotedBold
" delimiters: highlight as SpecialChar
syn match asciidocDelimiterUnquoted     contained "[#]"         
containedin=asciidocQuotedUnquoted
syn match asciidocDelimiterSubscript    contained "[~]"         
containedin=asciidocQuotedSubscript
syn match asciidocDelimiterSuperscript  contained "\^"          
containedin=asciidocQuotedSuperscript

" escaping: conceal
syn match asciidocConcealUnReplacement  contained "\\\([-=]>\)\@=" conceal 
containedin=asciidocQuotedMonospaced,asciidocQuotedMonospaced2
syn match asciidocConcealUnReplacement  contained "\\\(<[-=]\)\@=" conceal 
containedin=asciidocQuotedMonospaced,asciidocQuotedMonospaced2

" not modified, but have to be executed after ???
syn region asciidocListLabel start=/^\s*/ end=/\(:\{2,4}\|;;\)$/ oneline 
contains=asciidocQuoted.*,asciidocMacroAttributes,asciidocAttributeRef,asciidocEntityRef,asciidocEmail,asciidocURL,asciidocBackslash,asciidocToDo
 keepend


hi def link asciidocConcealMonospaced           SpecialChar
hi def link asciidocConcealMonospaced2          SpecialChar
hi def link asciidocConcealUMonospaced          SpecialChar
hi def link asciidocConcealEmphasized           SpecialChar
hi def link asciidocConcealEmphasized2          SpecialChar
hi def link asciidocConcealBold                 SpecialChar
hi def link asciidocDelimiterUnquoted           SpecialChar
hi def link asciidocDelimiterSubscript          SpecialChar
hi def link asciidocDelimiterSuperscript        SpecialChar
hi def link asciidocConcealUnReplacement        SpecialChar

Reply via email to