MCPcopy Create free account
hub / github.com/ProgerXP/Notepad2e / Trim

Method Trim

scintilla/src/Selection.cxx:122–155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122bool SelectionRange::Trim(SelectionRange range) {
123 SelectionPosition startRange = range.Start();
124 SelectionPosition endRange = range.End();
125 SelectionPosition start = Start();
126 SelectionPosition end = End();
127 PLATFORM_ASSERT(start <= end);
128 PLATFORM_ASSERT(startRange <= endRange);
129 if ((startRange <= end) && (endRange >= start)) {
130 if ((start > startRange) && (end < endRange)) {
131 // Completely covered by range -> empty at start
132 end = start;
133 } else if ((start < startRange) && (end > endRange)) {
134 // Completely covers range -> empty at start
135 end = start;
136 } else if (start <= startRange) {
137 // Trim end
138 end = startRange;
139 } else { //
140 PLATFORM_ASSERT(end >= endRange);
141 // Trim start
142 start = endRange;
143 }
144 if (anchor > caret) {
145 caret = start;
146 anchor = end;
147 } else {
148 anchor = start;
149 caret = end;
150 }
151 return Empty();
152 } else {
153 return false;
154 }
155}
156
157// If range is all virtual collapse to start of virtual space
158void SelectionRange::MinimizeVirtualSpace() {

Callers 1

TrimSelectionMethod · 0.80

Calls 2

StartMethod · 0.45
EndMethod · 0.45

Tested by

no test coverage detected