Find the proper names for next(), next1(), prev(), prev1(), etc. methods in segment.h
The libmscore/segment.h has methods with not the best names. The same is in 2.3, but since 2.3 is the final 2.X version, let's find the better names in master only and keep legacy in 2.3.
Segment* next() const { return _next; }
Segment* next(SegmentType) const;
Segment* nextEnabled() const;
void setNext(Segment* e) { _next = e; }
Segment* prev() const { return _prev; }
Segment* prev(SegmentType) const;
Segment* prevEnabled() const;
void setPrev(Segment* e) { _prev = e; }
// dont stop at measure boundary:
Segment* next1() const;
Segment* next1enabled() const;
Segment* next1MM() const;
Segment* next1(SegmentType) const;
Segment* next1MM(SegmentType) const;
Segment* prev1() const;
Segment* prev1MM() const;
Segment* prev1(SegmentType) const;
Segment* prev1MM(SegmentType) const;
Segment* nextCR(int track = -1, bool sameStaff = false) const;
ChordRest* nextChordRest(int track, bool backwards = false) const;
Comments
In general, when there is a "1" variant then it will not stop at the end/start of the measure while the non "1" will.
Yep, so I suggest rename them respectively
My initial thought would be
I slightly cringe at having both nextCR and nextChordRest, and the former then not returning a ChordRest. The latter having a backwards parameter is not as clear as making a prevChordRest with the same signature.
Alternatively wondering if it wouldn't make sense to then integrate that into the "normal" next(SegmentType) call as next(SegmentType, track=-1, sameStaff=false)
But I can imagine making next/prev in my proposal work as the current next1 calls does will add to confusion and might make it easy to miss a call during refactoring.
In that case you could go for the more verbose:
* nextInScore/prevInScore
* nextInMeasure/prevInMeasure