Porytiles
Loading...
Searching...
No Matches
file_highlight_printer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <filesystem>
5#include <string>
6#include <vector>
7
8#include "gsl/pointers"
9
11
12namespace porytiles {
13
32 public:
38 explicit FileHighlightPrinter(gsl::not_null<const TextFormatter *> format);
39
58 [[nodiscard]] std::vector<std::string> print(
59 const std::vector<std::string> &lines,
60 const std::vector<std::size_t> &line_indices_to_highlight,
61 std::size_t window_size = 9) const;
62
79 [[nodiscard]] std::vector<std::string> print(
80 const std::vector<std::string> &lines,
81 std::size_t line_index_to_highlight,
82 std::size_t col_to_highlight,
83 std::size_t window_size = 9) const;
84
94 [[nodiscard]] std::vector<std::string> print(
95 const std::filesystem::path &file,
96 const std::vector<std::size_t> &line_indices_to_highlight,
97 std::size_t window_size = 9) const;
98
110 [[nodiscard]] std::vector<std::string> print(
111 const std::filesystem::path &file,
112 std::size_t line_index_to_highlight,
113 std::size_t col_to_highlight,
114 std::size_t window_size = 9) const;
115
116 private:
117 const TextFormatter *format_;
118};
119
120} // namespace porytiles
A service for printing file lines with highlighted lines and line numbers.
std::vector< std::string > print(const std::vector< std::string > &lines, const std::vector< std::size_t > &line_indices_to_highlight, std::size_t window_size=9) const
Prints lines with specified lines highlighted and line numbers shown.
Abstract base class for applying text styling with context-aware formatting.