Skip to content

Commit

Permalink
fix bullets-vim#100 to correctly mark parent checkbox
Browse files Browse the repository at this point in the history
Code is commented since the math is a bit tricky and not intuitive. And
vimscript doesn't like floating point calculations
  • Loading branch information
Marko Stojanovic authored and AndyMcAliley committed Apr 8, 2024
1 parent 0cc28d5 commit 4ae276e
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions plugin/bullets.vim
Original file line number Diff line number Diff line change
Expand Up @@ -1327,9 +1327,22 @@ fun! s:sibling_checkbox_status(lnum)
endif
endif
endfor
let l:divisions = len(l:checkbox_markers) - 1.0
let l:completion = float2nr(ceil(l:divisions * l:checked / l:num_siblings))
return l:checkbox_markers[l:completion]
" we are interested in the number of markings that can give us sets of
" percentage to group the markings
let l:divisions = len(l:checkbox_markers) - 2.0
" Border case no need to calculate and it fixex the problem of the
" calculation below never being able to get this last number.
if l:checked ==# l:num_siblings
return l:checkbox_markers[len(l:checkbox_markers) - 1]
else
" 1.0 multiplication is to have float calculations.
" The calculation looks for a multiple of a percentage class to define
" which marker to use.
let l:ratio_checked = 1.0 * l:checked / l:num_siblings
let l:persentage_class = 1.0 / l:divisions
let l:completion = float2nr(ceil(l:ratio_checked / l:persentage_class))
return l:checkbox_markers[l:completion]
endif
endfun

fun! s:replace_char_in_line(lnum, chari, item)
Expand Down

0 comments on commit 4ae276e

Please sign in to comment.