An implementation of QSyntaxHighlighter using GNU Source-highlight library (by relying on GNUSyntaxHighlighter provided by the common part of this library).
More...
|
| Qt4SyntaxHighlighter (QTextDocument *doc=0) |
|
void | init (const QString &langFile, const QString &styleFile="default.style") |
| Initializes this highlighter with the specified language definition file. More...
|
|
bool | initFromFileName (const QString &fileName) |
| Initializes this highlighter by using the file name for detecting the syntax of the file (e.g., foo.cpp brings to cpp.lang, ChangeLog brings to changelog.lang). More...
|
|
void | formatString (int start, int count, const QTextCharFormat &format) |
| This function is applied to the syntax highlighter's current text block (i.e. More...
|
|
void | setFormattingStyle (const QString &styleFile) |
| Sets the styleFile for highlighting. More...
|
|
const QString | getFormattingStyle () const |
|
const srchilite::FormatterMap & | getFormatterMap () const |
| Returns the formatter map, i.e., for each language element we have a formatter. More...
|
|
Qt4TextFormatterMap | getQt4TextFormatterMap () |
| Returns the formatter map of this highlighter. More...
|
|
const QString & | getLangFile () const |
|
srchilite::HighlightStatePtr | getHighlightState (const QString &file) |
| Given a language definition file name, returns the corresponding highlight state. More...
|
|
void | initHighlighter (const QString &file) |
| Given a language definition file name, initializes the Source-highlight's highlighter. More...
|
|
const QString | getLangDefFileFromFileName (const QString &filename) |
| Returns the the lang def file name by using the file name for detecting the syntax of the file (e.g., foo.cpp brings to cpp.lang, ChangeLog brings to changelog.lang). More...
|
|
srchilite::SourceHighlighter * | getHighlighter () const |
|
const TextFormatterMap & | getTextFormatterMap (TextFormatterFactory &formatterFactory, const QString &styleFile="default.style") |
| Given a TextFormatterFactory, it uses to build the TextFormatterMap, by reading a specified source-highlight style file. More...
|
|
srchilite::FormatterManager * | getFormatterManager () const |
|
void | highlightLine (const QString &line, HighlightStateData *&stateData) |
| Highlights the passed line. More...
|
|
srchilite::LangDefManager * | getLangDefManager () const |
|
srchilite::LangMap * | getLangMap () const |
|
srchilite::LangMap * | getOutLangMap () const |
|
const QString & | getForegroundColor () const |
|
const QString & | getBackgroundColor () const |
|
void | setForegroundColor (const QString &f) |
|
void | setBackgroundColor (const QString &b) |
|
bool | isReadOnly () const |
|
void | setReadOnly (bool r) |
| Specifies that we highlight readonly contents. More...
|
|
bool | isDefaultToMonospace () const |
|
void | setDefaultToMonospace (bool d) |
| Whether the highlighter should use monospace font by default if nothing is specified about the font family. More...
|
|
An implementation of QSyntaxHighlighter using GNU Source-highlight library (by relying on GNUSyntaxHighlighter provided by the common part of this library).
You can use such highlighter with a QTextEdit, and initialize the highlighter with the language definition file, e.g.,
QTextEdit *editor = new QTextEdit;
highlighter->
init(
"java.lang");
void srchiliteqt::Qt4SyntaxHighlighter::formatString |
( |
int |
start, |
|
|
int |
count, |
|
|
const QTextCharFormat & |
format |
|
) |
| |
|
inline |
This function is applied to the syntax highlighter's current text block (i.e.
the text that is passed to the highlightBlock() method).
The specified format is applied to the text from the start position for a length of count characters (if count is 0, nothing is done). The formatting properties set in format are merged at display time with the formatting information stored directly in the document, for example as previously set with QTextCursor's functions.
Note that this helper function will be called by the corresponding TextFormatter, from Source-highglight library code, and relies on the corresponding protected method of QSyntaxHighlighter: setFormat).
const srchilite::FormatterMap& srchiliteqt::Qt4SyntaxHighlighter::getFormatterMap |
( |
| ) |
const |
|
inline |
Returns the formatter map, i.e., for each language element we have a formatter.
This should be called after the highlighter has already been initialized. Note that the key of the map is a std::string representing the language element and the associated value is a base class FormatterPtr (a shared pointer), so you need to retrieve the associated actual pointer with .get() and to it cast it to a Qt4TextFormatter, e.g.,:
Qt4TextFormatter *formatter =
dynamic_cast<Qt4TextFormatter *>(map["normal"].get());
Note also that in case no formatter is associated to a specific string, then .get() will return 0, so you should always check for the resulting pointer. You might want to use, instead getQt4TextFormatterMap() where the values are already of Qt4TextFormatter type (and the formatters are exactly the same).
- Returns
- the
void srchiliteqt::GNUSyntaxHighlighter::highlightLine |
( |
const QString & |
line, |
|
|
HighlightStateData *& |
stateData |
|
) |
| |
|
inherited |
Highlights the passed line.
This method assumes that all the fields are already initialized (e.g., the FormatterManager).
The passed HighlightStateData is used to configure the SourceHighlighter with info like the current highlighting state and the state stack. If it is null, we simply ignore it.
This method can modify the bassed pointer and even make it NULL (after deleting it).
- Parameters
-
line | |
stateData | the highlight state data to use |
- Returns
- in case after highlighting the stack changed we return either the original stateData (after updating) or a new HighlightStateData (again with the updated information)