Exemplo n.º 1
0
		bool IsRangeInside(TextLocation outerStartLocation, TextLocation outerEndLocation,
						   TextLocation innerStartLocation, TextLocation innerEndLocation) {
			if (outerStartLocation.IsEmpty || outerStartLocation.IsInfinite() ||
				outerEndLocation.IsEmpty   || outerEndLocation.IsInfinite()   ||
				innerStartLocation.IsEmpty || innerStartLocation.IsInfinite() ||
				innerEndLocation.IsEmpty   || innerEndLocation.IsInfinite())
				return false;
			
			const int virtualLineLength = 200;
			var outerRange = (outerEndLocation.Line - outerStartLocation.Line) * virtualLineLength - outerStartLocation.Column + outerEndLocation.Column;
			var innerRange = (innerEndLocation.Line - innerStartLocation.Line) * virtualLineLength - innerStartLocation.Column + innerEndLocation.Column;
			return innerRange < outerRange;
		}