class MarkdownExec::SearchResultsReport

def directory_names(search_options, highlight_value)

def directory_names(search_options, highlight_value)
  matched_directories = find_directory_names
  {
    section_title: 'directory names',
    data: matched_directories,
    formatted_text: [{ content: AnsiFormatter.new(search_options).format_and_highlight_array(matched_directories, highlight: [highlight_value]) }]
  }
end

def file_contents(search_options, highlight_value)

def file_contents(search_options, highlight_value)
  matched_contents = find_file_contents.map.with_index do |(file, contents), index|
    [file, contents.map { |detail| format('=%4.d: %s', detail.index, detail.line) }, index]
  end
  {
    section_title: 'file contents',
    data: matched_contents.map(&:first),
    formatted_text: matched_contents.map do |(file, details, index)|
            { header: format('- %3.d: %s', index + 1, file),
              content: AnsiFormatter.new(search_options).format_and_highlight_array(
                details,
                highlight: [highlight_value]
              ) }
          end
  }
end

def file_names(search_options, highlight_value)

def file_names(search_options, highlight_value)
  matched_files = find_file_names
  {
    section_title: 'file names',
    data: matched_files,
    formatted_text: [{ content: AnsiFormatter.new(search_options).format_and_highlight_array(
      matched_files, highlight: [highlight_value]
    ).join("\n") }]
  }
end