Skip rendering gutters when gutter width exceeds view width (#7821)
commitc7e9e94f007e04836d134cd3e53f71c38b7ba1ec
authorAnshul Dalal <83179501+ArchUsr64@users.noreply.github.com>
dateTue 8 Aug 2023, 05:43 (3 years ago)
parent7cda5b8
helix-term/src/ui/editor.rs+12−9
@@ -163,15 +163,18 @@ impl EditorView {
163163 Box::new(highlights)
164164 };
165165
166− Self::render_gutter(
167− editor,
168− doc,
169− view,
170− view.area,
171− theme,
172− is_focused,
173− &mut line_decorations,
174− );
166+ let gutter_overflow = view.gutter_offset(doc) == 0;
167+ if !gutter_overflow {
168+ Self::render_gutter(
169+ editor,
170+ doc,
171+ view,
172+ view.area,
173+ theme,
174+ is_focused,
175+ &mut line_decorations,
176+ );
177+ }
175178
176179 if is_focused {
177180 let cursor = doc
helix-view/src/view.rs+8−2
@@ -187,11 +187,17 @@ impl View {
187187 }
188188
189189 pub fn gutter_offset(&self, doc: &Document) -> u16 {
190− self.gutters
190+ let total_width = self
191+ .gutters
191192 .layout
192193 .iter()
193194 .map(|gutter| gutter.width(self, doc) as u16)
194− .sum()
195+ .sum();
196+ if total_width < self.area.width {
197+ total_width
198+ } else {
199+ 0
200+ }
195201 }
196202
197203 //