From: Ciro Santilli Date: Mon, 6 Oct 2014 10:03:23 +0000 (+0200) Subject: Merge pull request #132 from cirosantilli/update-syn-header X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/1ef695f2602a2cd72fc12000e8a241eeaf9bf567?hp=d6a3b09139a715bc39e0a16ad1924ac3d9fcc216 Merge pull request #132 from cirosantilli/update-syn-header Remove outdated fields from syntax header. --- diff --git a/README.md b/README.md index 6755e94..419c26d 100644 --- a/README.md +++ b/README.md @@ -8,44 +8,60 @@ Syntax highlighting, matching rules and mappings for [the original Markdown](htt If you use [Vundle](https://github.com/gmarik/vundle), add the following line to your `~/.vimrc`: - Plugin 'godlygeek/tabular' - Plugin 'plasticboy/vim-markdown' +```vim +Plugin 'godlygeek/tabular' +Plugin 'plasticboy/vim-markdown' +``` -The `tabular` plugin come *before* `vim-markdown`. +The `tabular` plugin must come *before* `vim-markdown`. Then run inside Vim: - :so ~/.vimrc - :PluginInstall +```vim +:so ~/.vimrc +:PluginInstall +``` If you use [Pathogen](https://github.com/tpope/vim-pathogen), do this: - $ cd ~/.vim/bundle - $ git clone https://github.com/plasticboy/vim-markdown.git +```sh +cd ~/.vim/bundle +git clone https://github.com/plasticboy/vim-markdown.git +``` To install without Pathogen using the Debian [vim-addon-manager](http://packages.qa.debian.org/v/vim-addon-manager.html), do this: - $ git clone https://github.com/plasticboy/vim-markdown.git - $ cd vim-markdown - $ sudo make install - $ vim-addon-manager install mkd +```sh +git clone https://github.com/plasticboy/vim-markdown.git +cd vim-markdown +sudo make install +vim-addon-manager install mkd +``` If you are not using any package manager, download the [tarball](https://github.com/plasticboy/vim-markdown/archive/master.tar.gz) and do this: - $ cd ~/.vim - $ tar --strip=1 -zxf vim-markdown-master.tar.gz +```sh +cd ~/.vim +tar --strip=1 -zxf vim-markdown-master.tar.gz +``` ## Options -**Disable Folding** +### Disable Folding -Add the following line to your `.vimrc` to disable folding. +Add the following line to your `.vimrc` to disable folding configuration. ```vim let g:vim_markdown_folding_disabled=1 ``` -**Set Initial Foldlevel** +This option only controls vim_markdown's folding configuration. To enable/disable folding use Vim's folding configuration. + +```vim +set [no]foldenable +``` + +### Set Initial Foldlevel Add the following line to your `.vimrc` to set the initial foldlevel. This option defaults to 0 (i.e. all folds are closed) and is ignored if folding is disabled. @@ -53,7 +69,7 @@ Add the following line to your `.vimrc` to set the initial foldlevel. This optio let g:vim_markdown_initial_foldlevel=1 ``` -**Disable Default Key Mappings** +### Disable Default Key Mappings Add the following line to your `.vimrc` to disable default key mappings. You can map them by yourself with `` mappings. @@ -61,15 +77,26 @@ Add the following line to your `.vimrc` to disable default key mappings. You can let g:vim_markdown_no_default_key_mappings=1 ``` -**Syntax extensions** +### Syntax extensions + +The following options control which syntax extensions will be turned on. They are off by default. -The following options control which syntax extensions will be turned on. +#### LaTeX math -LaTeX math: `$ $`, `$$ $$`, escapable as `\$ \$` and `\$\$ \$\$`: +Used as `$x^2$`, `$$x^2$$`, escapable as `\$x\$` and `\$\$x\$\$`. ```vim let g:vim_markdown_math=1 ``` + +#### YAML frontmatter + +Highlight YAML frontmatter as used by Jekyll: + +```vim +let g:vim_markdown_frontmatter=1 +``` + ## Mappings The following work on normal and visual modes: diff --git a/after/ftplugin/mkd.vim b/after/ftplugin/mkd.vim index 6026ae8..24ee713 100644 --- a/after/ftplugin/mkd.vim +++ b/after/ftplugin/mkd.vim @@ -45,12 +45,4 @@ if !get(g:, "vim_markdown_folding_disabled", 0) let g:vim_markdown_initial_foldlevel=0 endif let &l:foldlevel=g:vim_markdown_initial_foldlevel - - "---------- everything after this is optional ----------------------- - " change the following fold options to your liking - " see ':help fold-options' for more - setlocal foldenable - setlocal foldcolumn=0 - set foldmethod=expr - set foldopen-=search endif diff --git a/ftplugin/mkd.vim b/ftplugin/mkd.vim index 42dca90..312c2a4 100644 --- a/ftplugin/mkd.vim +++ b/ftplugin/mkd.vim @@ -319,7 +319,6 @@ function! s:Markdown_Toc(...) lopen endif set modifiable - %s/\v^([^|]*\|){2,2} #//e for i in range(1, line('$')) " this is the location-list data for the current item let d = getloclist(0)[i-1] diff --git a/syntax/mkd.vim b/syntax/mkd.vim index fe88773..4811898 100644 --- a/syntax/mkd.vim +++ b/syntax/mkd.vim @@ -99,6 +99,12 @@ endif syn cluster mkdNonListItem contains=htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdID,mkdURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdMath,mkdIndentCode,mkdListItem,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6 +" YAML frontmatter +if get(g:, 'vim_markdown_frontmatter', 0) + syn include @yamlTop syntax/yaml.vim + syn region Comment matchgroup=mkdDelimiter start="\%^---$" end="^---$" contains=@yamlTop +endif + "highlighting for Markdown groups HtmlHiLink mkdString String HtmlHiLink mkdCode String diff --git a/test/syntax.vader b/test/syntax.vader index 6d51118..ece36ee 100644 --- a/test/syntax.vader +++ b/test/syntax.vader @@ -1,14 +1,18 @@ -Given mkd (bold); -**bold** not bold +Given mkd; +a **b** c -Execute (SyntaxOf(pattern)): +Execute (bold): + AssertNotEqual SyntaxOf('a'), 'htmlBold' AssertEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' -Given mkd (italic); -*italic* +Given mkd; +a *b* c -Execute (SyntaxOf(pattern)): - AssertEqual SyntaxOf('i'), 'htmlItalic' +Execute (italic): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' # Links @@ -72,3 +76,42 @@ Execute (multiline math): AssertNotEqual SyntaxOf('a'), 'mkdMath' AssertEqual SyntaxOf('b'), 'mkdMath' AssertNotEqual SyntaxOf('c'), 'mkdMath' + +# YAML frontmatter + +Given mkd; +--- +a: b +--- + +Execute (YAML frontmatter is controlled by the option): + AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey' + let g:vim_markdown_frontmatter=1 + syn off | syn on + AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey' + let g:vim_markdown_frontmatter=0 + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey' + +Given mkd; + +--- +a: b +--- + +Execute (YAML frontmatter only works if it's the first thing in the file): + let g:vim_markdown_frontmatter=1 + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey' + +Given mkd; +--- +a: b +--- + +--- + +Execute (rules are not mistaken by YAML frontmatter delimiters): + let g:vim_markdown_frontmatter=1 + syn off | syn on + AssertEqual SyntaxAt(5, 1), 'mkdRule'