diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-01-12 20:05:10 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-01-12 20:05:10 (GMT) |
commit | 3b7bc56bdeba2401f88afd46d3969bcc543796fd (patch) | |
tree | f68e4116b565f1b72802f6ea0b9b6455420e7f2b /src/mainwin.cc | |
parent | 2834e4265b0ae8d336e9a578a2ae9daf4691a166 (diff) |
rewrite large bit of syntax highlighter, add 'manual' test instructions
Diffstat (limited to 'src/mainwin.cc')
-rw-r--r-- | src/mainwin.cc | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/mainwin.cc b/src/mainwin.cc index af4a532..644cc2e 100644 --- a/src/mainwin.cc +++ b/src/mainwin.cc @@ -180,7 +180,7 @@ MainWindow::MainWindow(const QString &filename) fps = 0; fsteps = 1; - highlighter = new Highlighter(editor->document(), Highlighter::NORMAL_MODE); + highlighter = new Highlighter(editor->document()); editor->setTabStopWidth(30); editor->setLineWrapping(true); // Not designable @@ -1036,22 +1036,15 @@ bool MainWindow::compileTopLevelDocument(bool reload) QFileInfo(this->fileName).absolutePath().toLocal8Bit(), false); - // Syntax & Error highlighting - - if (!this->root_module) { - if (highlighter->mode==Highlighter::NORMAL_MODE) { - delete this->highlighter; - highlighter = new Highlighter(editor->document(), Highlighter::ERROR_MODE); - } - - if (!animate_panel->isVisible()) { + if (!animate_panel->isVisible()) { + if (!this->root_module) { QTextCursor cursor = editor->textCursor(); - cursor.setPosition(parser_error_pos); - editor->setTextCursor(cursor); + cursor.setPosition( parser_error_pos ); + editor->setTextCursor( cursor ); + highlighter->highlightError( parser_error_pos ); + } else { + highlighter->unhighlightLastError(); } - } else if (highlighter->mode==Highlighter::ERROR_MODE) { - delete this->highlighter; - this->highlighter = new Highlighter(editor->document(), Highlighter::NORMAL_MODE); } } |