undoStudio
The IDE of the undoRT ecosystem
Loading...
Searching...
No Matches
undoAppSTOutput.hpp File Reference

Deciding which lines of the ST Output panel are shown. More...

#include <cctype>
#include <cstddef>
#include <string>
#include <vector>
Include dependency graph for undoAppSTOutput.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  undoApp::ST::OutputLine
 One tagged line in the Output panel. More...
 
struct  undoApp::ST::OutputFilter
 Which severities the Output panel shows. More...
 

Namespaces

namespace  undoApp
 
namespace  undoApp::ST
 
namespace  undoApp::ST::detail
 

Enumerations

enum class  undoApp::ST::OutSeverity { undoApp::ST::Info , undoApp::ST::Success , undoApp::ST::Warning , undoApp::ST::Error }
 Severity of a line in the Output panel. More...
 

Functions

std::string undoApp::ST::detail::toLowerText (const std::string &text)
 A lower-case copy, for matching words without caring about their case.
 
bool undoApp::ST::detail::startsWith (const std::string &text, const std::string &prefix)
 Whether a string begins with a prefix.
 
std::vector< OutputLine > undoApp::ST::searchOutput (const std::vector< OutputLine > &lines, const std::string &needle)
 The lines matching a substring, for the panel's search box.
 
bool undoApp::ST::isCountSummary (const std::string &line)
 Whether a line from the transpiler is a tally rather than a diagnostic.
 
OutSeverity undoApp::ST::classifyCompilerLine (const std::string &line)
 How a line the transpiler printed should be coloured in the panel.
 

Detailed Description

Deciding which lines of the ST Output panel are shown.

Author
Salvatore Bamundo
Date
2026 SPDX-License-Identifier: GPL-3.0-or-later SPDX-FileCopyrightText: Copyright (c) 2026 undoRT

The Output panel holds three kinds of thing in one list: diagnostics, the confirmations that a step ran, and the generated ST dumped in full for debugging. The third is hundreds of lines for a file of any size, and it is what the panel was mostly showing, so the two errors that were actually worth reading arrived somewhere under it.

The filtering is here, apart from the panel that draws it, because this is the part with the decisions in it and the part worth checking: what is counted is what is hidden, a count taken after filtering counts the wrong lines, and a panel that says "0 errors" while hiding them is worse than one that says nothing.