func (o *View) Py_substr(tu *py.Tuple) (py.Object, error) { var ( arg1 text.Region ) v, err := tu.GetItem(0) if err != nil { return nil, err } if v2, ok := v.(*Region); !ok { if v2, ok := v.(*py.Long); !ok { return nil, fmt.Errorf("Expected type *Region or *Int for primitives.Buffer.Substr() arg1, not %s", v.Type()) } else { arg1.A = int(v2.Int64()) arg1.B = arg1.A + 1 } } else { arg1 = v2.data } ret0 := o.data.Buffer().Substr(arg1) var pyret0 py.Object pyret0, err = py.NewUnicode(ret0) if err != nil { // TODO: do the py objs need to be freed? return nil, err } return pyret0, err }
// Removes any regions that are outside of the given viewport, // and clips the regions that are intersecting it so that // all regions remaining are fully contained inside of the viewport. func (vr *ViewRegions) Cull(viewport text.Region) { pe := util.Prof.Enter("render.vr.Cull") defer pe.Exit() nr := []text.Region{} for _, r := range vr.Regions.Regions() { if viewport.Intersects(r) { in := viewport.Intersection(r) if in.Size() != 0 { nr = append(nr, in) } } } vr.Regions.Clear() vr.Regions.AddAll(nr) }
func (o *View) Py_expand_by_class(tu *py.Tuple, kw *py.Dict) (py.Object, error) { var ( arg1 text.Region arg2 int ) if v, err := tu.GetItem(0); err != nil { return nil, err } else { if v2, ok := v.(*Region); !ok { if v2, ok := v.(*py.Long); !ok { return nil, fmt.Errorf("Expected type *Region or *Int for backend.View.ExpandByClass() arg1, not %s", v.Type()) } else { arg1.A = int(v2.Int64()) arg1.B = arg1.A + 1 } } else { arg1 = v2.data } } if v, err := tu.GetItem(1); err != nil { return nil, err } else { if v3, err2 := fromPython(v); err2 != nil { return nil, err2 } else { if v2, ok := v3.(int); !ok { return nil, fmt.Errorf("Expected type int for backend.View.ExpandByClass() arg2, not %s", v.Type()) } else { arg2 = v2 } } } ret := o.data.ExpandByClass(arg1, arg2) var err error var pyret py.Object pyret, err = toPython(ret) if err != nil { return nil, err } return pyret, err }
func (view *View) Py_show(tu *py.Tuple, kw *py.Dict) (py.Object, error) { var ( arg1 text.Region ) v, err := tu.GetItem(0) if err != nil { return nil, err } if v2, ok := v.(*Region); !ok { if v2, ok := v.(*py.Long); !ok { return nil, fmt.Errorf("Expected type *Region or *Int for primitives.Buffer.Substr() arg1, not %s", v.Type()) } else { arg1.A = int(v2.Int64()) arg1.B = arg1.A + 1 } } else { arg1 = v2.data } backend.GetEditor().Frontend().Show(view.data, arg1) return toPython(nil) }