MCPcopy Create free account
hub / github.com/bytesnake/vim-graphical-preview / new

Method new

src/node_view.rs:13–41  ·  view source on GitHub ↗
(node: &Node, metadata: &Metadata, offset: isize)

Source from the content-addressed store, hash-verified

11
12impl NodeView {
13 pub fn new(node: &Node, metadata: &Metadata, offset: isize) -> NodeView {
14 let start;
15 let mut height = node.range.1 - node.range.0 + 1;
16
17 if offset <= -(height as isize) {
18 // if we are above the upper line, just skip
19 return NodeView::Hidden;
20 } else if offset < 0 {
21 // if we are in the upper cross-over region, calculate the visible height
22 start = (-offset) as usize;
23 height -= start;
24 return NodeView::UpperBorder(start, height);
25 }
26
27 let distance_lower = metadata.viewport.0 as isize - offset;
28
29 //dbg!(&offset, &height, &distance_lower);
30
31 if distance_lower <= 0 {
32 return NodeView::Hidden;
33 } else if (distance_lower as usize) < height {
34 // remove some height if we are in the command line region
35 height -= (height as isize - distance_lower) as usize;
36 start = offset as usize;
37 return NodeView::LowerBorder(start, height);
38 }
39
40 NodeView::Visible(offset as usize, height)
41 }
42
43 pub fn is_visible(&self) -> bool {
44 self != &NodeView::Hidden

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected