73 Printer(
const std::string& filename, std::size_t target_line, std::optional<std::size_t> end_target_line,
bool colorize,
const std::optional<std::string>& maybe_content = std::nullopt);
82 [[nodiscard]] std::string sliceCode(
internal::FilePos start,
const std::optional<internal::FilePos>& end)
const;
90 void extendWindow(std::size_t line_to_include);
97 void printLine(std::ostream& os);
105 [[nodiscard]]
bool isTargetLine()
const;
107 [[nodiscard]]
bool isNextLineTheFirstLineOfTarget()
const;
109 [[nodiscard]]
bool isLastLineOfTarget()
const;
117 [[nodiscard]]
bool hasContent()
const;
119 [[nodiscard]]
bool coversLine(std::size_t line_number)
const;
127 [[nodiscard]]
inline std::size_t
current()
const
129 return m_current_line;
134 return m_source[m_current_line];
137 const static inline std::string GhostLinePrefix =
" |";