runtime(pandoc): sync syntax script with upstream
Commit:
https://github.com/vim/vim/commit/03125277e9ea2e263ea970436efdd433d7475e2a
Author: Jake Zimmerman <[email protected]>
Date: Fri Jun 27 18:38:34 2025 +0200
runtime(pandoc): sync syntax script with upstream
closes: https://github.com/vim/vim/issues/17598
Signed-off-by: Jake Zimmerman <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/syntax/pandoc.vim b/runtime/syntax/pandoc.vim
index 7928cc665..fdbdde096 100644
--- a/runtime/syntax/pandoc.vim
+++ b/runtime/syntax/pandoc.vim
@@ -1,18 +1,23 @@
scriptencoding utf-8
-"
+" Vim syntax file
" Language: Pandoc (superset of Markdown)
" Maintainer: Felipe Morales <[email protected]>
" Maintainer: Caleb Maclennan <[email protected]>
-" Upstream: https://github.com/vim-pandoc/vim-pandoc-syntax
-"
+" Upstream:
https://github.com/vim-pandoc/vim-pandoc-syntax/tree/ea3fc415784bdcbae7f0093b80070ca4ff9e44c8
" Contributor: David Sanson <[email protected]>
" Jorge Israel Pe帽a <[email protected]>
+" Christian Brabandt @chrisbra
" Original Author: Jeremy Schultz <[email protected]>
" Version: 5.0
" Last Change: 2024 Apr 08
+" 2025 Jun 27 by Vim project: sync with upstream (#17598)
+
+if exists('b:current_syntax')
+ finish
+endif
-let s:cpo_save = &cpo
-set cpo&vim
+let s:cpo_save = &cpoptions
+set cpoptions&vim
" Configuration: {{{1
"
@@ -155,10 +160,10 @@ endif
" Functions: {{{1
" EnableEmbedsforCodeblocksWithLang {{{2
function! EnableEmbedsforCodeblocksWithLang(entry)
- " prevent embedded language syntaxes from changing 'foldmethod'
+ " prevent embedded language syntaxes from changing 'foldmethod'
if has('folding')
let s:foldmethod = &l:foldmethod
- let s:foldtext = &l:foldtext
+ let s:foldtext = &l:foldtext
endif
try
@@ -169,7 +174,7 @@ function! EnableEmbedsforCodeblocksWithLang(entry)
" We might have just turned off spellchecking by including the file,
" so we turn it back on here.
exe 'syntax spell toplevel'
- exe 'syn region pandocDelimitedCodeBlock_' . s:langname . '
start=/\(\_^\( \+\| \)\=\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*\.\)\=' .
s:langname . '\>.*
\)\@<=\_^/' .
+ exe 'syn region pandocDelimitedCodeBlock_' . s:langname . '
start=/\(\_^\( \+\| \)\=\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*[.=]\)\=' .
s:langname . '\>.*
\)\@<=\_^/' .
\' end=/\_$
\(\( \+\| \)\=\(`\{3,}`*\|\~\{3,}\~*\)\_$
\_$\)\@=/ contained containedin=pandocDelimitedCodeBlock' .
\' contains=@' . toupper(s:langname)
exe 'syn region pandocDelimitedCodeBlockinBlockQuote_' . s:langname .
' start=/>\s\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*\.\)\=' . s:langname . '\>/' .
@@ -228,7 +233,7 @@ syntax spell toplevel
" Embeds: {{{2
-" prevent embedded language syntaxes from changing 'foldmethod'
+" prevent embedded language syntaxes from changing 'foldmethod'
if has('folding')
let s:foldmethod = &l:foldmethod
endif
@@ -295,7 +300,7 @@ syn region pandocCodeBlockInsideIndent start=/\(\(\d\|
\|*\).*
\)\@<!\(^\(\s
" Links: {{{2
" Base: {{{3
-syn region pandocReferenceLabel matchgroup=pandocOperator
start=/!\{,1}\\@<!\^\@<!\[/ skip=/\(\\@<!\]\]\@=\|`.*\\@<!].*`\)/ end=/\\@<!\]/
keepend display
+syn region pandocReferenceLabel matchgroup=pandocOperator
start=/!\{,1}\\@<!\^\@<!\[/ skip=/\(\\@<!\]\]\@=\|`[^`]*`\)/ end=/\\@<!\]/
keepend display
if g:pandoc#syntax#conceal#urls == 1
syn region pandocReferenceURL matchgroup=pandocOperator start=/\]\@1<=(/
end=/)/ keepend conceal
else
@@ -334,8 +339,8 @@ syn match pandocCiteLocator /[\[\]]/ contained
containedin=pandocPCite,pandocICi
" Text Styles: {{{2
" Emphasis: {{{3
-call s:WithConceal('block', 'syn region pandocEmphasis
matchgroup=pandocOperator start=/\\@1<!\(\_^\|\s\|[[:punct:]]\)\@<=\*\S\@=/
skip=/\(\*\*\|__\)/ end=/\*\([[:punct:]]\|\s\|\_$\)\@=/
contains=@Spell,pandocNoFormattedInEmphasis,pandocLatexInlineMath,pandocAmpersandEscape',
'concealends')
-call s:WithConceal('block', 'syn region pandocEmphasis
matchgroup=pandocOperator start=/\\@1<!\(\_^\|\s\|[[:punct:]]\)\@<=_\S\@=/
skip=/\(\*\*\|__\)/ end=/\S\@1<=_\([[:punct:]]\|\s\|\_$\)\@=/
contains=@Spell,pandocNoFormattedInEmphasis,pandocLatexInlineMath,pandocAmpersandEscape',
'concealends')
+call s:WithConceal('block', 'syn region pandocEmphasis
matchgroup=pandocOperator start=/\\@1<!\(\_^\|\s\|[[:punct:]]\)\@<=\*\S\@=/
skip=/\(\*\*\|__\)/ end=/\*\([[:punct:]]\| \|\s\|\_$\)\@=/
contains=@Spell,pandocNoFormattedInEmphasis,pandocLatexInlineMath,pandocAmpersandEscape',
'concealends')
+call s:WithConceal('block', 'syn region pandocEmphasis
matchgroup=pandocOperator start=/\\@1<!\(\_^\|\s\|[[:punct:]]\)\@<=_\S\@=/
skip=/\(\*\*\|__\)/ end=/\S\@1<=_\([[:punct:]]\| \|\s\|\_$\)\@=/
contains=@Spell,pandocNoFormattedInEmphasis,pandocLatexInlineMath,pandocAmpersandEscape',
'concealends')
" }}}3
" Strong: {{{3
@@ -487,7 +492,7 @@ syn match pandocUListItem /^>\=\s*[*+-]\s\+-\@!.*$/
nextgroup=pandocUListItem,pa
call s:WithConceal('list', 'syn match pandocUListItemBullet /^>\=\s*\zs[*+-]/
contained containedin=pandocUListItem', 'conceal cchar='.s:cchars['li'])
" Ordered lists
-syn match pandocListItem /^\s*(\?\(\d\+\|\l\|\#\|@\)[.)].*$/
nextgroup=pandocListItem,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation
contains=@Spell,pandocEmphasis,pandocStrong,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocStrongEmphasis,pandocStrongEmphasis,pandocPCite,pandocICite,pandocCiteKey,pandocReferenceLabel,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocAutomaticLink,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID,pandocAmpersandEscape
skipempty display
+syn match pandocListItem /^\s*(\?\(\d\+\|\l\|\#\|@\)[.)].*$/
nextgroup=pandocListItem,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation
contains=@Spell,pandocEmphasis,pandocStrong,pandocReferenceURL,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocStrongEmphasis,pandocStrongEmphasis,pandocPCite,pandocICite,pandocCiteKey,pandocReferenceLabel,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocAutomaticLink,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID,pandocAmpersandEscape
skipempty display
" support for roman numerals up to 'c'
if g:pandoc#syntax#roman_lists != 0
@@ -501,8 +506,8 @@ syn match pandocListItemContinuation
/^\s\+\([-+*]\s\+\|(\?.\+[).]\)\@<!\([[:upp
" Definitions: {{{2
if g:pandoc#syntax#use_definition_lists == 1
- syn region pandocDefinitionBlock start=/^\%(\_^\s*\([`~]\) \{2,}\)\@!.*
\(^\s*
\)\=\s\{0,2}\([:~]\)\( \{2,} *\)\@!/ skip=/
\zs\s/ end=/
/
contains=pandocDefinitionBlockMark,pandocDefinitionBlockTerm,pandocCodeBlockInsideIndent,pandocEmphasis,pandocStrong,pandocStrongEmphasis,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocFootnoteID,pandocReferenceURL,pandocReferenceLabel,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocAutomaticLink,pandocEmDash,pandocEnDash,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID
- syn match pandocDefinitionBlockTerm /^.*
\(^\s*
\)\=\(\s*[:~]\)\@=/ contained
contains=pandocNoFormatted,pandocEmphasis,pandocStrong,pandocLaTeXInlineMath,pandocEscapedDollar,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID
nextgroup=pandocDefinitionBlockMark
+ syn region pandocDefinitionBlock start=/^\%(\_^\s*\([`~]\) \{2,}\)\@!.*
\(^\s*
\)\=\s\{0,2}\([:~]\)\( \{2,} *\)\@!/ skip=/
\zs\s/ end=/
/
contains=@Spell,pandocDefinitionBlockMark,pandocDefinitionBlockTerm,pandocCodeBlockInsideIndent,pandocEmphasis,pandocStrong,pandocStrongEmphasis,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocFootnoteID,pandocReferenceURL,pandocReferenceLabel,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocAutomaticLink,pandocEmDash,pandocEnDash,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID
+ syn match pandocDefinitionBlockTerm /^.*
\(^\s*
\)\=\(\s*[:~]\)\@=/ contained
contains=@Spell,pandocNoFormatted,pandocEmphasis,pandocStrong,pandocLaTeXInlineMath,pandocEscapedDollar,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID
nextgroup=pandocDefinitionBlockMark
call s:WithConceal('definition', 'syn match pandocDefinitionBlockMark
/^\s*[:~]/ contained', 'conceal cchar='.s:cchars['definition'])
endif
" }}}2
@@ -551,7 +556,7 @@ endif
" }}}3
" &-escaped Special Characters: {{{3
-syn match pandocAmpersandEscape / \&(#\d+|#x\x+|[[:alnum:]]+)\;/
contains=NoSpell
+syn match pandocAmpersandEscape / \&(#\d+|#x\x+|[[:alnum:]]+)\;/
contains=@NoSpell
" }}}3
" YAML: {{{2
@@ -703,7 +708,7 @@ let b:current_syntax = 'pandoc'
syntax sync clear
syntax sync minlines=1000
-let &cpo = s:cpo_save
+let &cpoptions = s:cpo_save
unlet s:cpo_save
" vim: set fdm=marker foldlevel=0:
--
--
You received this message from the "vim_dev" 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
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1uVCCL-006kdp-Ee%40256bit.org.