* @brief Switches the syntax highlighter and auto-completer for the language, releasing the * previous pair (the editor widget swaps without taking ownership). */
| 469 | * previous pair (the editor widget swaps without taking ownership). |
| 470 | */ |
| 471 | void MQTT::PublisherScriptEditor::applyLanguage(int language) |
| 472 | { |
| 473 | m_language = language; |
| 474 | |
| 475 | auto* old_completer = m_editor->completer(); |
| 476 | auto* old_highlighter = m_editor->highlighter(); |
| 477 | |
| 478 | if (language == SerialStudio::Lua) { |
| 479 | m_editor->setHighlighter(new QLuaHighlighter()); |
| 480 | m_editor->setLanguageHint(QCodeEditor::LanguageHint::Lua); |
| 481 | m_editor->setCompleter(new QLuaCompleter(m_editor)); |
| 482 | } else { |
| 483 | m_editor->setHighlighter(new QJavascriptHighlighter()); |
| 484 | m_editor->setLanguageHint(QCodeEditor::LanguageHint::JavaScript); |
| 485 | m_editor->setCompleter(nullptr); |
| 486 | } |
| 487 | |
| 488 | if (old_completer) |
| 489 | old_completer->deleteLater(); |
| 490 | |
| 491 | if (old_highlighter) |
| 492 | old_highlighter->deleteLater(); |
| 493 | } |
| 494 | |
| 495 | /** |
| 496 | * @brief Returns the default editor placeholder comment for the language. |
nothing calls this directly
no test coverage detected