• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sile-typesetter / sile / 9304060604

30 May 2024 02:07PM UTC coverage: 74.124% (-0.6%) from 74.707%
9304060604

push

github

alerque
style: Reformat Lua with stylua

8104 of 11995 new or added lines in 184 files covered. (67.56%)

15 existing lines in 11 files now uncovered.

12444 of 16788 relevant lines covered (74.12%)

7175.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.53
/pagebuilders/grid.lua
1
local base = require("pagebuilders.base")
2✔
2

3
local pagebuilder = pl.class(base)
2✔
4
pagebuilder._name = "grid"
2✔
5

6
function pagebuilder:_init ()
2✔
NEW
7
   base._init(self)
×
8
end
9

10
function pagebuilder.findBestBreak (_, options)
2✔
11
   local vboxlist = SU.required(options, "vboxlist", "in findBestBreak")
31✔
12
   local target = SU.required(options, "target", "in findBestBreak")
31✔
13
   local i = 0
31✔
14
   local totalHeight = SILE.length()
31✔
15
   local bestBreak = 0
31✔
16
   SU.debug(
62✔
17
      "pagebuilder",
31✔
18
      "Page builder for frame",
31✔
19
      SILE.typesetter.frame.id,
31✔
20
      "called with",
31✔
21
      #vboxlist,
31✔
22
      "nodes,",
31✔
23
      target
24
   )
31✔
25
   if SU.debugging("vboxes") then
62✔
NEW
26
      for j, box in ipairs(vboxlist) do
×
NEW
27
         SU.debug("vboxes", (j == i and " >" or "  ") .. j .. ": " .. box)
×
28
      end
29
   end
30
   while i < #vboxlist do
49✔
31
      i = i + 1
49✔
32
      if not vboxlist[i].is_vglue then
49✔
33
         i = i - 1
31✔
34
         break
31✔
35
      end
36
   end
37
   while i < #vboxlist do
496✔
38
      i = i + 1
470✔
39
      local node = vboxlist[i]
470✔
40
      SU.debug("pagebuilder", "Dealing with VBox", node)
470✔
41
      if node.is_vbox then
470✔
42
         totalHeight = totalHeight + node.height:absolute() + node.depth:absolute()
790✔
43
      elseif node.is_vglue then
312✔
44
         totalHeight = totalHeight + node.height:absolute()
753✔
45
      elseif node.is_insertion then
61✔
46
         -- TODO: refactor as hook and without side effects!
NEW
47
         target = SILE.insertions.processInsertion(vboxlist, i, totalHeight, target)
×
NEW
48
         node = vboxlist[i]
×
49
      end
50
      local left = target - totalHeight
470✔
51
      local _left = left:tonumber()
470✔
52
      SU.debug("pagebuilder", "I have", left, "left")
470✔
53
      SU.debug("pagebuilder", "totalHeight", totalHeight, "with target", target)
470✔
54
      local badness = 0
470✔
55
      if _left < 0 then
470✔
56
         badness = 1000000
2✔
57
      end
58
      if node.is_penalty then
470✔
59
         if node.penalty < -3000 then
61✔
60
            badness = 100000
3✔
61
         else
62
            badness = -_left * _left - node.penalty
58✔
63
         end
64
      end
65
      if badness > 0 then
470✔
66
         local onepage = {}
5✔
67
         for j = 1, bestBreak do
115✔
68
            onepage[j] = table.remove(vboxlist, 1)
220✔
69
         end
70
         while #onepage > 1 and onepage[#onepage].discardable do
6✔
71
            onepage[#onepage] = nil
1✔
72
         end
73
         return onepage, 1000
5✔
74
      end
75
      bestBreak = i
465✔
76
   end
77
   return false, false
26✔
78
end
79

80
return pagebuilder
2✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc