Functionalities for detecting whether a line is in one of the stored line ranges (or in the context of a range).
More...
#include <lineranges.h>
Collaboration diagram for srchilite::LineRanges:
Public Types
typedef int RangeElemType
typedef std::pair
< RangeElemType, RangeElemType > RangeType
typedef std::set< RangeType > LineRangeSet
Public Member Functions
const LineRangeSet & getLineRangeSet () const
The next isInRange search will start from the first element of the set.
More...
Checks whether the passed element is in a range of this set.
More...
void setContextLines (unsigned int context)
Private Attributes
LineRangeSet lineRangeSet
whether to perform the search from the first element of the set
The current range for performing the search of isInRange.
The number of lines making the context (i.e., the number of lines that are not part of a range but are in the specified line number context)
Detailed Description
Functionalities for detecting whether a line is in one of the stored line ranges (or in the context of a range).
This also performs some optimization: ranges are stored in a set in ascending order; if we have ranges, e.g., 1-20, 50-70, 100-200, and we check whether 23 is in range, we first check if it's in 1-20, then, since it's not there, we check whether it's in 50-70; it is not, and since the range is 50-70 it makes no sense searching for it in other ranges. The next search will start from range 50-70, since we assume that line numbers are always increasing.
Member Function Documentation
RangeError srchilite::LineRanges::addRange
(
const std::string &
range )
Adds a range to the set.
The argument can be:
- a single element (means only one line)
- a complete range (e.g., 20-35)
- a partial range (e.g., 10- : from line 10 to the end, -20 : from the beginning to line 20)
- Parameters
-
range the string representing the range.
- Returns
- code specifying a possible error
RangeResult srchilite::LineRanges::isInRange
(
const RangeElemType
e )
Checks whether the passed element is in a range of this set.
If it's not in the range it might be in the surrounding context.
- Parameters
-
e
- Returns
- whether the passed element is in a range or in the surrounding context.
void srchilite::LineRanges::reset
(
)
inline
The next isInRange search will start from the first element of the set.
This should be called before searching for lines of a file, that we started to process.
The documentation for this class was generated from the following files:
- /home/bettini/work/source-highlight/src-highlite/lib/srchilite/lineranges.h
- /home/bettini/work/source-highlight/src-highlite/lib/srchilite/lineranges.cpp