]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Update Markdown_GetUrlForPosition function b: to s:
authorKazuakiM <kazuaki_mabuchi_to_go@hotmail.co.jp>
Thu, 23 Apr 2015 14:21:11 +0000 (23:21 +0900)
committerKazuakiM <kazuaki_mabuchi_to_go@hotmail.co.jp>
Thu, 23 Apr 2015 14:21:11 +0000 (23:21 +0900)
ftplugin/mkd.vim
test/map.vader
test/vimrc

index 05316ab1c26c4113247cc2cbb0fc3a4b81700e17..6e04bd2cc1103705a157d1edd9c2e83abd17d9be 100644 (file)
@@ -464,14 +464,12 @@ endfunction
 " - a string with the the URL for the link under the cursor
 " - an empty string if the cursor is not on a link
 "
 " - a string with the the URL for the link under the cursor
 " - an empty string if the cursor is not on a link
 "
-" `b:` instead of `s:` to make it testable.
-"
 " TODO
 "
 " - multiline support
 " - give an error if the separator does is not on a link
 "
 " TODO
 "
 " - multiline support
 " - give an error if the separator does is not on a link
 "
-function! b:Markdown_GetUrlForPosition(lnum, col)
+function! s:Markdown_GetUrlForPosition(lnum, col)
     let l:lnum = a:lnum
     let l:col = a:col
     let l:syn = synIDattr(synID(l:lnum, l:col, 1), 'name')
     let l:lnum = a:lnum
     let l:col = a:col
     let l:syn = synIDattr(synID(l:lnum, l:col, 1), 'name')
@@ -504,7 +502,7 @@ endfunction
 " Front end for GetUrlForPosition.
 "
 function! s:OpenUrlUnderCursor()
 " Front end for GetUrlForPosition.
 "
 function! s:OpenUrlUnderCursor()
-    let l:url = b:Markdown_GetUrlForPosition(line('.'), col('.'))
+    let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
     if l:url != ''
         call netrw#NetrwBrowseX(l:url, 0)
     else
     if l:url != ''
         call netrw#NetrwBrowseX(l:url, 0)
     else
index 51bde78b4e12bde8d98518347b84d3f85e726ee2..ea96182088c3489a03c005f282134e14eef5da43 100644 (file)
@@ -4,11 +4,12 @@ a <http://b> c
 Execute (gx autolink):
   let b:url = 'http://b'
   let b:line = getline(1)
 Execute (gx autolink):
   let b:url = 'http://b'
   let b:line = getline(1)
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'a') + 1), ''
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, '<') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'h') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, '>') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'c') + 1), ''
+  let b:func = Markdown_GetFunc('vim-markdown/ftplugin/mkd.vim', 'Markdown_GetUrlForPosition')
+  AssertEqual b:func(1, match(b:line, 'a') + 1), ''
+  AssertEqual b:func(1, match(b:line, '<') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'h') + 1), b:url
+  AssertEqual b:func(1, match(b:line, '>') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'c') + 1), ''
 
 Given mkd;
 a http://b.bb c
 
 Given mkd;
 a http://b.bb c
@@ -16,9 +17,10 @@ a http://b.bb c
 Execute (gx implicit autolink):
   let b:url = 'http://b.bb'
   let b:line = getline(1)
 Execute (gx implicit autolink):
   let b:url = 'http://b.bb'
   let b:line = getline(1)
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'a') + 1), ''
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'h') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'c') + 1), ''
+  let b:func = Markdown_GetFunc('vim-markdown/ftplugin/mkd.vim', 'Markdown_GetUrlForPosition')
+  AssertEqual b:func(1, match(b:line, 'a') + 1), ''
+  AssertEqual b:func(1, match(b:line, 'h') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'c') + 1), ''
 
 Given mkd;
 [a]: http://b "c"
 
 Given mkd;
 [a]: http://b "c"
@@ -26,10 +28,11 @@ Given mkd;
 Execute (gx link reference definition):
   let b:url = 'http://b'
   let b:line = getline(1)
 Execute (gx link reference definition):
   let b:url = 'http://b'
   let b:line = getline(1)
+  let b:func = Markdown_GetFunc('vim-markdown/ftplugin/mkd.vim', 'Markdown_GetUrlForPosition')
   " TODO would be cool if all of the following gave the link.
   " TODO would be cool if all of the following gave the link.
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'a') + 1), ''
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'h') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'c') + 1), ''
+  AssertEqual b:func(1, match(b:line, 'a') + 1), ''
+  AssertEqual b:func(1, match(b:line, 'h') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'c') + 1), ''
 
 Given mkd;
 a [b](c) d
 
 Given mkd;
 a [b](c) d
@@ -37,14 +40,15 @@ a [b](c) d
 Execute (gx autolink):
   let b:url = 'c'
   let b:line = getline(1)
 Execute (gx autolink):
   let b:url = 'c'
   let b:line = getline(1)
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'a') + 1), ''
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, '[') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'b') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, ']') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, '(') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'c') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, ')') + 1), b:url
-  AssertEqual b:Markdown_GetUrlForPosition(1, match(b:line, 'd') + 1), ''
+  let b:func = Markdown_GetFunc('vim-markdown/ftplugin/mkd.vim', 'Markdown_GetUrlForPosition')
+  AssertEqual b:func(1, match(b:line, 'a') + 1), ''
+  AssertEqual b:func(1, match(b:line, '[') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'b') + 1), b:url
+  AssertEqual b:func(1, match(b:line, ']') + 1), b:url
+  AssertEqual b:func(1, match(b:line, '(') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'c') + 1), b:url
+  AssertEqual b:func(1, match(b:line, ')') + 1), b:url
+  AssertEqual b:func(1, match(b:line, 'd') + 1), ''
 
 Given mkd;
 # a
 
 Given mkd;
 # a
index 86020ed369bdddc52f69f5a01df0b0801c390dc4..44df1b6140b309adbe1c80ce40a0ac9e9714a428 100644 (file)
@@ -6,3 +6,19 @@ filetype on
 filetype plugin on
 filetype indent on
 syntax on
 filetype plugin on
 filetype indent on
 syntax on
+
+function! Markdown_GetScriptID(fname) abort
+    let a:snlist = ''
+    redir => a:snlist
+    silent! scriptnames
+    redir END
+    let a:mx = '^\s*\(\d\+\):\s*\(.*\)$'
+    for a:line in split(a:snlist, "\n")
+        if stridx(a:line, a:fname) >= 0
+            return substitute(a:line, a:mx, '\1', '')
+        endif
+    endfor
+endfunction
+function! Markdown_GetFunc(fname, funcname) abort
+    return function('<SNR>' . Markdown_GetScriptID(a:fname) . '_' . a:funcname)
+endfunction