MCPcopy
hub / github.com/yorukot/superfile / validateFinalRender

Method validateFinalRender

src/internal/validation.go:282–380  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

280}
281
282func (m *model) validateFinalRender() error { //nolint:gocognit // cumilation of validations
283 mainRender := m.mainComponentsRender()
284 if err := validateRender(mainRender, m.fullHeight, m.fullWidth, false); err != nil {
285 return fmt.Errorf("model rendering failures : %w", err)
286 }
287
288 strippedOut := ansi.Strip(mainRender)
289 lines := strings.Split(strippedOut, "\n")
290 if common.Config.SidebarWidth != 0 {
291 sidebarPos := compPosition{
292 stRow: 0,
293 stCol: 0,
294 endRow: m.sidebarModel.GetHeight() - 1,
295 endCol: m.sidebarModel.GetWidth() - 1,
296 }
297 // Note: This wont work when any overlay model is open
298 if err := m.validateComponentPlacement(lines, sidebarPos, true); err != nil {
299 return fmt.Errorf("sidebar position validation failed: %w", err)
300 }
301 }
302
303 filePanelColStart := 0
304 if common.Config.SidebarWidth != 0 {
305 filePanelColStart += common.BorderPadding + common.Config.SidebarWidth
306 }
307 for i := range m.fileModel.FilePanels {
308 panel := &m.fileModel.FilePanels[i]
309 panelPos := compPosition{
310 stRow: 0,
311 endRow: m.mainPanelHeight + 1,
312 stCol: filePanelColStart,
313 endCol: filePanelColStart + panel.GetWidth() - 1,
314 }
315 filePanelColStart += panel.GetWidth()
316 // Note: This wont work when any overlay model is open
317 if err := m.validateComponentPlacement(lines, panelPos, true); err != nil {
318 return fmt.Errorf("file panel %v position validation failed: %w", i, err)
319 }
320 }
321
322 if m.fileModel.FilePreview.IsOpen() {
323 previewPanelPos := compPosition{
324 stRow: 0,
325 endRow: m.mainPanelHeight + 1,
326 stCol: m.fullWidth - m.fileModel.ExpectedPreviewWidth,
327 endCol: m.fullWidth - 1,
328 }
329 if err := m.validateComponentPlacement(
330 lines,
331 previewPanelPos,
332 common.Config.EnableFilePreviewBorder,
333 ); err != nil {
334 return fmt.Errorf("preview panel position validation failed: %w", err)
335 }
336 }
337
338 if m.toggleFooter {
339 processBarPos := compPosition{

Callers 1

assertLayoutValidityFunction · 0.80

Calls 8

mainComponentsRenderMethod · 0.95
IsOverlayModelOpenMethod · 0.95
validateRenderFunction · 0.85
GetHeightMethod · 0.45
GetWidthMethod · 0.45
IsOpenMethod · 0.45

Tested by 1

assertLayoutValidityFunction · 0.64