@@ -34,7 +34,7 @@ function! signjump#get_buffer_signs(buffer, names) abort
3434
3535 let l: out =
3636 \ filter (
37- \ split (execute (' sign place buffer=' .a: buffer , ' silent' ), ' \n' ),
37+ \ split (execute (' sign place group=* buffer=' .a: buffer , ' silent' ), ' \n' ),
3838 \ {idx, val - >
3939 \ val = ~# ' =' && (! empty (a: names ) ? s: match_name (a: names , val) : 1 )})
4040 call map (l: out , ' v:val[4:]' ) " Trim indent
@@ -53,7 +53,7 @@ function! signjump#get_buffer_signs(buffer, names) abort
5353endfunction
5454
5555function ! signjump#get_sign_data (sign , item) abort
56- return matchlist (a: sign , a: item .' \v\=(\d +)' )[ 1 ]
56+ return get ( matchlist (a: sign , a: item .' \v\=(\w +)' ), 1 , " " )
5757endfunction
5858
5959function ! s: nearest_sign_idx (signs, line , direction) abort
@@ -101,8 +101,13 @@ function! signjump#jump_to_sign(sign) abort
101101 if g: signjump .use_jumplist
102102 execute ' normal!' signjump#get_sign_data (a: sign , ' line' ) . ' G'
103103 else
104- execute ' sign jump' signjump#get_sign_data (a: sign , ' id' )
105- \ ' buffer=' . bufnr (' %' )
104+ let l: group = signjump#get_sign_data (a: sign , ' group' )
105+ let l: id = signjump#get_sign_data (a: sign , ' id' )
106+ if l: group == " "
107+ execute ' sign jump ' l: id ' buffer=' . bufnr (' %' )
108+ else
109+ execute ' sign jump ' . l: id . ' group=' . l: group . ' buffer=' . bufnr (' %' )
110+ endif
106111 endif
107112
108113 if g: signjump .debug
0 commit comments