]> Sergey Matveev's repositories - dotfiles.git/blob - vim/.vim/pack/stargrave/start/py-testname/autoload/python/testname.vim
Move to vim9script
[dotfiles.git] / vim / .vim / pack / stargrave / start / py-testname / autoload / python / testname.vim
1 vim9script
2
3 # Nose-compatible test name preparer
4 # Maintainer: Sergey Matveev <stargrave@stargrave.org>
5 # License: GNU General Public License version 3 of the License or later
6 #
7 # When standing inside TestCase's test method, type <leader>t and full
8 # Python (your.project.tests:TestCaseName.test_method_name) path will be
9 # copied to clipboard ("*) register.
10
11 export def Get()
12     var pos = getpos(".")
13     var postfix = matchstr(getline(search(".*\s*def .*[Tt]est", "b")), '\w\+(')[: -2]
14     postfix = matchstr(getline(search("^\s*class", "bn")), '\w\+(')[: -2] .. "." .. postfix
15     setpos(".", pos)
16     var base = join([""] + split(getcwd(), "/")[: -1], "/")
17     var prefix = substitute(expand("%:p:r")[len(base) + 1 :], "/", ".", "g")
18     var name = prefix .. ":" .. postfix
19     @* = name
20     echomsg name
21 enddef