![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/share/doc/source-highlight/examples/ |
/* * source-highlight-console.cpp * * Example of use of source-highlight library: * prints formatting information to the console: what is going to * be formatted and how it is formatted * * Created on: May 7, 2009 * Author: Lorenzo Bettini <http://www.lorenzobettini.it>, (C) 2008 * Copyright: See COPYING file that comes with this distribution *///> TEXINFO #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <iostream> #include "srchilite/langdefmanager.h" #include "srchilite/regexrulefactory.h" #include "srchilite/sourcehighlighter.h" #include "srchilite/formattermanager.h" #include "srchilite/stylefileparser.h" // for parsing style files #include "styleformatterfactory.h" using namespace std; #ifndef DATADIR #define DATADIR "" #endif int main() { srchilite::RegexRuleFactory ruleFactory; srchilite::LangDefManager langDefManager(&ruleFactory); // we highlight C++ code for simplicity srchilite::SourceHighlighter highlighter(langDefManager.getHighlightState( DATADIR, "cpp.lang")); // our factory for our formatters StyleFormatterFactory factory; // the background color for the document (not used here) string docBgColor; // let's parse the default.style and create our formatters srchilite::StyleFileParser::parseStyleFile(DATADIR, "default.style", &factory, docBgColor); // now we need to fill up the formatter manager with our formatters srchilite::FormatterManager formatterManager(StyleFormatterPtr( new StyleFormatter)); for (StyleFormatterMap::const_iterator it = factory.formatterMap.begin(); it != factory.formatterMap.end(); ++it) { formatterManager.addFormatter(it->first, it->second); } highlighter.setFormatterManager(&formatterManager); string line; // we now highlight a line a time while (getline(cin, line)) { highlighter.highlightParagraph(line); } return 0; }