@@ -33,6 +33,42 @@ function! OmniSharp#testrunner#Init(buffers) abort
33
33
endfunction
34
34
35
35
36
+ function ! OmniSharp#testrunner#FoldText () abort
37
+ let line = getline (v: foldstart )
38
+ if line = ~# ' ^;'
39
+ " Project
40
+ let projectkey = matchlist (line , ' ^\S\+' )[0 ]
41
+ let [assembly, _] = split (projectkey, ' ;' )
42
+ let ntests = 0
43
+ for filename in keys (s: tests [projectkey].files )
44
+ let ntests += len (s: tests [projectkey].files [filename].tests)
45
+ endfor
46
+ let err = match (line , ' ; ERROR$' ) == -1 ? ' ' : ' ERROR'
47
+ return printf (' %s [%d]%s' , assembly, ntests, err)
48
+ elseif line = ~# ' ^ \f'
49
+ " File
50
+ let filename = trim (line )
51
+ let fullpath = fnamemodify (filename, ' :p' )
52
+ let displayname = matchlist (filename, ' ^\f\{-}\([^/\\]\+\)\.csx\?$' )[1 ]
53
+ " Position the cursor so that search() is relative to the fold, not the
54
+ " actual cursor position
55
+ let winview = winsaveview ()
56
+ call cursor (v: foldstart , 0 )
57
+ let projectline = search (' ^;' , ' bcnWz' )
58
+ call winrestview (winview)
59
+ let projectkey = matchlist (getline (projectline), ' ^\S\+' )[0 ]
60
+ let ntests = len (s: tests [projectkey].files [fullpath].tests)
61
+ return printf (' %s [%d]' , displayname, ntests)
62
+ elseif line = ~# ' ^<'
63
+ return printf (' Error details (%d lines)' , v: foldend - v: foldstart + 1 )
64
+ elseif line = ~# ' ^>'
65
+ return printf (' Results (%d lines)' , v: foldend - v: foldstart + 1 )
66
+ elseif line = ~# ' ^//'
67
+ return printf (' Output (%d lines)' , v: foldend - v: foldstart + 1 )
68
+ endif
69
+ return printf (' %s (%d lines)' , line , v: foldend - v: foldstart + 1 )
70
+ endfunction
71
+
36
72
function ! OmniSharp#testrunner#Log (message) abort
37
73
call extend (s: current .log , a: message )
38
74
endfunction
@@ -43,9 +79,9 @@ function! OmniSharp#testrunner#Run() abort
43
79
let line = getline (' .' )
44
80
if line = ~# ' ^;'
45
81
" Project selected - run all tests
46
- let projectname = matchlist (getline (' .' ), ' ^\S\+' )[0 ]
47
- let filenames = filter (keys (s: tests [projectname ].files ),
48
- \ {_,f - > s: tests [projectname ].files [f ].visible})
82
+ let projectkey = matchlist (getline (' .' ), ' ^\S\+' )[0 ]
83
+ let filenames = filter (keys (s: tests [projectkey ].files ),
84
+ \ {_,f - > s: tests [projectkey ].files [f ].visible})
49
85
call OmniSharp#actions#test#RunInFile (1 , filenames)
50
86
elseif line = ~# ' ^ \f'
51
87
" File selected
@@ -66,14 +102,14 @@ function! OmniSharp#testrunner#Remove() abort
66
102
let line = getline (' .' )
67
103
if line = ~# ' ^;'
68
104
" Project selected - run all tests
69
- let projectname = matchlist (getline (' .' ), ' ^\S\+' )[0 ]
70
- let s: tests [projectname ].visible = 0
105
+ let projectkey = matchlist (getline (' .' ), ' ^\S\+' )[0 ]
106
+ let s: tests [projectkey ].visible = 0
71
107
elseif line = ~# ' ^ \f'
72
108
" File selected
73
109
let filename = fnamemodify (trim (line ), ' :p' )
74
110
let projectline = search (' ^;' , ' bcnWz' )
75
- let projectname = matchlist (getline (projectline), ' ^\S\+' )[0 ]
76
- let s: tests [projectname ].files [filename].visible = 0
111
+ let projectkey = matchlist (getline (projectline), ' ^\S\+' )[0 ]
112
+ let s: tests [projectkey ].files [filename].visible = 0
77
113
else
78
114
let test = s: utils .findTest ()
79
115
let test.state = ' hidden'
@@ -487,11 +523,11 @@ function! s:utils.findTest() abort
487
523
if testline > 0
488
524
let testname = matchlist (getline (testline), ' [-|*!] \zs.*$' )[0 ]
489
525
let projectline = search (' ^;' , ' bcnWz' )
490
- let projectname = matchlist (getline (projectline), ' ^\S\+' )[0 ]
526
+ let projectkey = matchlist (getline (projectline), ' ^\S\+' )[0 ]
491
527
let fileline = search (' ^ \f' , ' bcnWz' )
492
528
let filename = matchlist (getline (fileline), ' ^ \zs.*$' )[0 ]
493
529
let filename = fnamemodify (filename, ' :p' )
494
- return s: tests [projectname ].files [filename].tests[testname]
530
+ return s: tests [projectkey ].files [filename].tests[testname]
495
531
endif
496
532
return {}
497
533
endfunction
0 commit comments