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
30 public:
34 explicit FileHighlightPrinter(gsl::not_null<const TextFormatter *> format);
35
52 [[nodiscard]] std::vector<std::string> print(
53 const std::vector<std::string> &lines,
54 const std::vector<std::size_t> &line_indices_to_highlight,
55 std::size_t window_size = 9) const;
56
71 [[nodiscard]] std::vector<std::string> print(
72 const std::vector<std::string> &lines,
73 std::size_t line_index_to_highlight,
74 std::size_t col_to_highlight,
75 std::size_t window_size = 9) const;
76
84 [[nodiscard]] std::vector<std::string> print(
85 const std::filesystem::path &file,
86 const std::vector<std::size_t> &line_indices_to_highlight,
87 std::size_t window_size = 9) const;
88
98 [[nodiscard]] std::vector<std::string> print(
99 const std::filesystem::path &file,
100 std::size_t line_index_to_highlight,
101 std::size_t col_to_highlight,
102 std::size_t window_size = 9) const;
103
104 private:
105 const TextFormatter *format_;
106};
107
108} // 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.