1
0
mirror of https://github.com/amix/vimrc synced 2025-06-30 11:54:59 +08:00

Updated plugins

This commit is contained in:
Amir
2024-01-07 16:14:20 +01:00
parent 86762cf230
commit f676f799e7
172 changed files with 3227 additions and 1204 deletions

View File

@ -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:

View File

@ -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 ~

View File

@ -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')

View File

@ -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

View 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'

View File

@ -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'

View File

@ -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 |