mirror of
https://github.com/amix/vimrc
synced 2025-06-30 11:54:59 +08:00
Updated plugins
This commit is contained in:
@ -349,6 +349,27 @@ The following options control which syntax extensions will be turned on. They ar
|
||||
|
||||
let g:vim_markdown_edit_url_in = 'tab'
|
||||
|
||||
### Borderless tables
|
||||
|
||||
- `g:vim_markdown_borderless_table`
|
||||
|
||||
Add support for borderless tables, such as:
|
||||
```
|
||||
header 1|header 2
|
||||
--|--
|
||||
data 1|data 2
|
||||
```
|
||||
if set to `1`:
|
||||
|
||||
let g:vim_markdown_borderless_table = 1
|
||||
|
||||
the table would be formatted as usual:
|
||||
```
|
||||
| header 1 | header 2 |
|
||||
|----------|----------|
|
||||
| data 1 | data 2 |
|
||||
```
|
||||
|
||||
## Mappings
|
||||
|
||||
The following work on normal and visual modes:
|
||||
|
@ -490,6 +490,30 @@ Change how to open new files ~
|
||||
>
|
||||
let g:vim_markdown_edit_url_in = 'tab'
|
||||
<
|
||||
-------------------------------------------------------------------------------
|
||||
*vim-markdown-support-borderless-tables*
|
||||
Support borderless tables ~
|
||||
|
||||
*g:vim_markdown_borderless_table*
|
||||
- 'g:vim_markdown_borderless_table'
|
||||
|
||||
Add support for borderless tables, such as:
|
||||
>
|
||||
header 1|header 2
|
||||
--|--
|
||||
data 1|data 2
|
||||
<
|
||||
if set to 1:
|
||||
>
|
||||
let g:vim_markdown_borderless_table = 1
|
||||
<
|
||||
the table would be formatted as usual:
|
||||
>
|
||||
| header 1 | header 2 |
|
||||
|----------|----------|
|
||||
| data 1 | data 2 |
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
*vim-markdown-mappings*
|
||||
Mappings ~
|
||||
|
@ -1,6 +1,6 @@
|
||||
"TODO print messages when on visual mode. I only see VISUAL, not the messages.
|
||||
|
||||
" Function interface phylosophy:
|
||||
" Function interface philosophy:
|
||||
"
|
||||
" - functions take arbitrary line numbers as parameters.
|
||||
" Current cursor line is only a suitable default parameter.
|
||||
@ -56,7 +56,7 @@ let s:levelRegexpDict = {
|
||||
\ 6: '\v^######[^#]@='
|
||||
\ }
|
||||
|
||||
" Maches any header level of any type.
|
||||
" Matches any header level of any type.
|
||||
"
|
||||
" This could be deduced from `s:levelRegexpDict`, but it is more
|
||||
" efficient to have a single regexp for this.
|
||||
@ -538,6 +538,19 @@ endfunction
|
||||
"
|
||||
function! s:TableFormat()
|
||||
let l:pos = getpos('.')
|
||||
|
||||
if get(g:, 'vim_markdown_borderless_table', 0)
|
||||
" add `|` to the beginning of the line if it isn't present
|
||||
normal! {
|
||||
call search('|')
|
||||
execute 'silent .,''}s/\v^(\s{0,})\|?([^\|])/\1|\2/e'
|
||||
|
||||
" add `|` to the end of the line if it isn't present
|
||||
normal! {
|
||||
call search('|')
|
||||
execute 'silent .,''}s/\v([^\|])\|?(\s{0,})$/\1|\2/e'
|
||||
endif
|
||||
|
||||
normal! {
|
||||
" Search instead of `normal! j` because of the table at beginning of file edge case.
|
||||
call search('|')
|
||||
@ -719,7 +732,7 @@ if !exists('*s:EditUrlUnderCursor')
|
||||
execute l:editmethod l:url
|
||||
endif
|
||||
if l:anchor !=# ''
|
||||
silent! execute '/'.l:anchor
|
||||
call search(l:anchor, 's')
|
||||
endif
|
||||
else
|
||||
execute l:editmethod . ' <cfile>'
|
||||
@ -765,7 +778,7 @@ endif
|
||||
command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(<line1>, <line2>)
|
||||
command! -buffer -range=% HeaderIncrease call s:HeaderDecrease(<line1>, <line2>, 1)
|
||||
command! -buffer -range=% SetexToAtx call s:SetexToAtx(<line1>, <line2>)
|
||||
command! -buffer TableFormat call s:TableFormat()
|
||||
command! -buffer -range TableFormat call s:TableFormat()
|
||||
command! -buffer Toc call s:Toc()
|
||||
command! -buffer Toch call s:Toc('horizontal')
|
||||
command! -buffer Tocv call s:Toc('vertical')
|
||||
|
@ -86,14 +86,14 @@ syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained
|
||||
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained
|
||||
|
||||
"HTML headings
|
||||
syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn match htmlH1 /^.\+\n=\+$/ contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn match htmlH2 /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell
|
||||
syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=@mkdHeadingContent,@Spell
|
||||
syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=@mkdHeadingContent,@Spell
|
||||
syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=@mkdHeadingContent,@Spell
|
||||
syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=@mkdHeadingContent,@Spell
|
||||
syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=@mkdHeadingContent,@Spell
|
||||
syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=@mkdHeadingContent,@Spell
|
||||
syn match htmlH1 /^.\+\n=\+$/ contains=@mkdHeadingContent,@Spell
|
||||
syn match htmlH2 /^.\+\n-\+$/ contains=@mkdHeadingContent,@Spell
|
||||
|
||||
"define Markdown groups
|
||||
syn match mkdLineBreak / \+$/
|
||||
@ -156,6 +156,7 @@ if get(g:, 'vim_markdown_strikethrough', 0)
|
||||
HtmlHiLink mkdStrike htmlStrike
|
||||
endif
|
||||
|
||||
syn cluster mkdHeadingContent contains=htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdLink,mkdInlineURL,mkdStrike
|
||||
syn cluster mkdNonListItem contains=@htmlTop,htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath,mkdStrike
|
||||
|
||||
"highlighting for Markdown groups
|
||||
|
41
sources_non_forked/vim-markdown/test/strikethrough.vader
Normal file
41
sources_non_forked/vim-markdown/test/strikethrough.vader
Normal file
@ -0,0 +1,41 @@
|
||||
Before:
|
||||
let g:vim_markdown_strikethrough = 1
|
||||
syn off | syn on
|
||||
|
||||
After:
|
||||
unlet! g:vim_markdown_strikethrough
|
||||
|
||||
Given markdown;
|
||||
a ~~b~~ c
|
||||
|
||||
Execute (strikethrough):
|
||||
AssertNotEqual SyntaxOf('a'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('b'), 'mkdStrike'
|
||||
AssertNotEqual SyntaxOf('c'), 'mkdStrike'
|
||||
|
||||
Given markdown;
|
||||
# ~~h1~~
|
||||
## ~~h2~~
|
||||
### ~~h3~~
|
||||
#### ~~h4~~
|
||||
##### ~~h5~~
|
||||
###### ~~h6~~
|
||||
|
||||
Execute (strikethrough in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('h2'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('h3'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('h4'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('h5'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('h6'), 'mkdStrike'
|
||||
|
||||
Given markdown;
|
||||
~~h1~~
|
||||
=
|
||||
|
||||
~~h2~~
|
||||
-
|
||||
|
||||
Execute (strikethrough in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'mkdStrike'
|
||||
AssertEqual SyntaxOf('h2'), 'mkdStrike'
|
@ -1302,3 +1302,227 @@ Execute (HTML tag in text):
|
||||
AssertEqual SyntaxOf('span'), 'htmlTagName'
|
||||
AssertEqual SyntaxOf('<span>'), 'htmlTag'
|
||||
AssertEqual SyntaxOf('</span>'), 'htmlEndTag'
|
||||
|
||||
Given markdown;
|
||||
# _h1_
|
||||
|
||||
## _h2_
|
||||
|
||||
### _h3_
|
||||
|
||||
#### _h4_
|
||||
|
||||
##### _h5_
|
||||
|
||||
###### _h6_
|
||||
|
||||
Execute (underscore italic text in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h3'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h4'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h5'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h6'), 'htmlItalic'
|
||||
|
||||
Given markdown;
|
||||
# *h1*
|
||||
|
||||
## *h2*
|
||||
|
||||
### *h3*
|
||||
|
||||
#### *h4*
|
||||
|
||||
##### *h5*
|
||||
|
||||
###### *h6*
|
||||
|
||||
Execute (asterisk italic text in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h3'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h4'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h5'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h6'), 'htmlItalic'
|
||||
|
||||
Given markdown;
|
||||
_h1_
|
||||
=
|
||||
|
||||
_h2_
|
||||
-
|
||||
|
||||
Execute (underscore italic text in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlItalic'
|
||||
|
||||
Given markdown;
|
||||
*h1*
|
||||
=
|
||||
|
||||
*h2*
|
||||
-
|
||||
|
||||
Execute (asterisk italic text in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlItalic'
|
||||
|
||||
Given markdown;
|
||||
# __h1__
|
||||
|
||||
## __h2__
|
||||
|
||||
### __h3__
|
||||
|
||||
#### __h4__
|
||||
|
||||
##### __h5__
|
||||
|
||||
###### __h6__
|
||||
|
||||
Execute (underscore bold text in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h3'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h4'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h5'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h6'), 'htmlBold'
|
||||
|
||||
Given markdown;
|
||||
# **h1**
|
||||
|
||||
## **h2**
|
||||
|
||||
### **h3**
|
||||
|
||||
#### **h4**
|
||||
|
||||
##### **h5**
|
||||
|
||||
###### **h6**
|
||||
|
||||
Execute (asterisk bold text in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h3'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h4'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h5'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h6'), 'htmlBold'
|
||||
|
||||
Given markdown;
|
||||
__h1__
|
||||
=
|
||||
|
||||
__h2__
|
||||
-
|
||||
|
||||
Execute (underscore bold text in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBold'
|
||||
|
||||
Given markdown;
|
||||
**h1**
|
||||
=
|
||||
|
||||
**h2**
|
||||
-
|
||||
|
||||
Execute (asterisk bold text in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBold'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBold'
|
||||
|
||||
Given markdown;
|
||||
# ___h1___
|
||||
|
||||
## ___h2___
|
||||
|
||||
### ___h3___
|
||||
|
||||
#### ___h4___
|
||||
|
||||
##### ___h5___
|
||||
|
||||
###### ___h6___
|
||||
|
||||
Execute (underscore bold italic text in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h3'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h4'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h5'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h6'), 'htmlBoldItalic'
|
||||
|
||||
Given markdown;
|
||||
# ***h1***
|
||||
|
||||
## ***h2***
|
||||
|
||||
### ***h3***
|
||||
|
||||
#### ***h4***
|
||||
|
||||
##### ***h5***
|
||||
|
||||
###### ***h6***
|
||||
|
||||
Execute (asterisk bold italic text in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h3'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h4'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h5'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h6'), 'htmlBoldItalic'
|
||||
|
||||
Given markdown;
|
||||
___h1___
|
||||
=
|
||||
|
||||
___h2___
|
||||
-
|
||||
|
||||
Execute (underscore bold italic text in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
|
||||
|
||||
Given markdown;
|
||||
***h1***
|
||||
=
|
||||
|
||||
***h2***
|
||||
-
|
||||
|
||||
Execute (asterisk bold italic text in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'htmlBoldItalic'
|
||||
AssertEqual SyntaxOf('h2'), 'htmlBoldItalic'
|
||||
|
||||
Given markdown;
|
||||
# [^h1]
|
||||
|
||||
## [^h2]
|
||||
|
||||
### [^h3]
|
||||
|
||||
#### [^h4]
|
||||
|
||||
##### [^h5]
|
||||
|
||||
###### [^h6]
|
||||
|
||||
Execute (footnotes in atx headings):
|
||||
AssertEqual SyntaxOf('h1'), 'mkdFootnotes'
|
||||
AssertEqual SyntaxOf('h2'), 'mkdFootnotes'
|
||||
AssertEqual SyntaxOf('h3'), 'mkdFootnotes'
|
||||
AssertEqual SyntaxOf('h4'), 'mkdFootnotes'
|
||||
AssertEqual SyntaxOf('h5'), 'mkdFootnotes'
|
||||
AssertEqual SyntaxOf('h6'), 'mkdFootnotes'
|
||||
|
||||
Given markdown;
|
||||
[^h1]
|
||||
=
|
||||
|
||||
[^h2]
|
||||
-
|
||||
|
||||
Execute (footnotes in setext headings):
|
||||
AssertEqual SyntaxOf('h1'), 'mkdFootnotes'
|
||||
AssertEqual SyntaxOf('h2'), 'mkdFootnotes'
|
||||
|
@ -68,3 +68,18 @@ Expect (preserve colons to align text):
|
||||
| left | right | center | |
|
||||
|:-----|------:|:------:|:--|
|
||||
| left | right | center | |
|
||||
|
||||
Given markdown (borderless table);
|
||||
left |right| center
|
||||
:- | --: |:---:
|
||||
left |right| center
|
||||
|
||||
Execute (format borderless table):
|
||||
let g:vim_markdown_borderless_table = 1
|
||||
TableFormat
|
||||
unlet g:vim_markdown_borderless_table
|
||||
|
||||
Expect (table with borders):
|
||||
| left | right | center |
|
||||
|:-----|------:|:------:|
|
||||
| left | right | center |
|
||||
|
Reference in New Issue
Block a user