Skip to content

Commit

Permalink
refactor: improve the logic for indent of a level
Browse files Browse the repository at this point in the history
  • Loading branch information
gh-liu committed Aug 27, 2024
1 parent e4addcb commit b95cc69
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 32 deletions.
17 changes: 13 additions & 4 deletions lua/fold_line/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,23 @@ local function on_win(_, winid, bufnr, toprow, botrow)

local function save_fold_indent(cur_line_finfo)
local cur_line_flevel = cur_line_finfo.level
local cur_line_fllevel = cur_line_finfo.llevel
local cur_line_fstartindent = cur_line_finfo.start_indent
flevel_indents[cur_line_flevel] = cur_line_fstartindent

local cur_line_fllevel = cur_line_finfo.llevel
if cur_line_fllevel < cur_line_flevel then
local unit = cur_line_fstartindent / (cur_line_flevel + 1)
for i_level = cur_line_fllevel, cur_line_flevel - 1 do
flevel_indents[i_level] = math.ceil(i_level * unit)
local llevel1 = cur_line_fllevel - 1
local llevel1indent = flevel_indents[llevel1]
if llevel1indent and llevel1indent > 0 then
local unit = (cur_line_fstartindent - llevel1indent) / (cur_line_flevel - llevel1)
for i_level = cur_line_fllevel, cur_line_flevel - 1 do
flevel_indents[i_level] = llevel1indent + math.ceil((i_level - llevel1) * unit)
end
else
local unit = cur_line_fstartindent / (cur_line_flevel + 1)
for i_level = cur_line_fllevel, cur_line_flevel - 1 do
flevel_indents[i_level] = math.ceil(i_level * unit)
end
end
end
end
Expand Down
56 changes: 28 additions & 28 deletions tests/screenshots/tests-test_fold_line.lua---__test_010
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
01|┌old
02|│ fold
03|│ ┌fold
04|│ │ ┌fold
05|│ │ │ ┌fold
06|│ │ │ │ fold
07|│ │ │ │ fold
08|│ │ │ │ fold
09|│ │ └ └fold
10|│ │ ┌fold
11|│ │ │ ┌fold
12|│ │ │ │ fold
13|│ │ │ │ fold
14|│ │ │ │ fold
15|│ │ │ └fold
16|│ │ │ fold
17|│ │ └fold
04|│ │ ┌fold
05|│ │ │ ┌fold
06|│ │ │ │ fold
07|│ │ │ │ fold
08|│ │ │ │ fold
09|│ │ └ └fold
10|│ │ ┌fold
11|│ │ │ ┌fold
12|│ │ │ │ fold
13|│ │ │ │ fold
14|│ │ │ │ fold
15|│ │ │ └fold
16|│ │ │ fold
17|│ │ └fold
18|│ └fold
19|└old
20|~
Expand All @@ -28,20 +28,20 @@
01|01111111111111111111111111111111111111111111111111111111111111111111111111111111
02|01111111111111111111111111111111111111111111111111111111111111111111111111111111
03|01111110111111111111111111111111111111111111111111111111111111111111111111111111
04|01111110101111121111111111111111111111111111111111111111111111111111111111111111
05|01111110101111121111111011111111111111111111111111111111111111111111111111111111
06|01111110101111121111111011111111111111111111111111111111111111111111111111111111
07|01111110101111121111111011111111111111111111111111111111111111111111111111111111
08|01111110101111121111111011111111111111111111111111111111111111111111111111111111
09|01111110101111121111111011111111111111111111111111111111111111111111111111111111
10|01111110101111101111111111111111111111111111111111111111111111111111111111111111
11|01111110101111101111111011111111111111111111111111111111111111111111111111111111
12|01111110101111101111111011111111111111111111111111111111111111111111111111111111
13|01111110101111101111111011111111111111111111111111111111111111111111111111111111
14|01111110101111101111111011111111111111111111111111111111111111111111111111111111
15|01111110101111101111111011111111111111111111111111111111111111111111111111111111
16|01111110101111101111111111111111111111111111111111111111111111111111111111111111
17|01111110101111101111111111111111111111111111111111111111111111111111111111111111
04|01111110111011121111111111111111111111111111111111111111111111111111111111111111
05|01111110111011121111111011111111111111111111111111111111111111111111111111111111
06|01111110111011121111111011111111111111111111111111111111111111111111111111111111
07|01111110111011121111111011111111111111111111111111111111111111111111111111111111
08|01111110111011121111111011111111111111111111111111111111111111111111111111111111
09|01111110111011121111111011111111111111111111111111111111111111111111111111111111
10|01111110111011101111111111111111111111111111111111111111111111111111111111111111
11|01111110111011101111111011111111111111111111111111111111111111111111111111111111
12|01111110111011101111111011111111111111111111111111111111111111111111111111111111
13|01111110111011101111111011111111111111111111111111111111111111111111111111111111
14|01111110111011101111111011111111111111111111111111111111111111111111111111111111
15|01111110111011101111111011111111111111111111111111111111111111111111111111111111
16|01111110111011101111111111111111111111111111111111111111111111111111111111111111
17|01111110111011101111111111111111111111111111111111111111111111111111111111111111
18|01111110111111111111111111111111111111111111111111111111111111111111111111111111
19|01111111111111111111111111111111111111111111111111111111111111111111111111111111
20|22222222222222222222222222222222222222222222222222222222222222222222222222222222
Expand Down

0 comments on commit b95cc69

Please sign in to comment.