MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / setLanguage

Method setLanguage

app/src/DataModel/Editors/JsCodeEditor.cpp:175–202  ·  view source on GitHub ↗

* @brief Switches the syntax highlighter and completer for the language, releasing the * previous pair (the editor widget swaps without taking ownership). */

Source from the content-addressed store, hash-verified

173 * previous pair (the editor widget swaps without taking ownership).
174 */
175void DataModel::JsCodeEditor::setLanguage(const int language)
176{
177 if (m_language == language)
178 return;
179
180 m_language = language;
181
182 auto* old_completer = m_widget.completer();
183 auto* old_highlighter = m_widget.highlighter();
184
185 if (language == 1) {
186 m_widget.setHighlighter(new QLuaHighlighter());
187 m_widget.setLanguageHint(QCodeEditor::LanguageHint::Lua);
188 m_widget.setCompleter(new DataModel::SerialStudioCompleter(true, &m_widget));
189 } else {
190 m_widget.setHighlighter(new QJavascriptHighlighter());
191 m_widget.setLanguageHint(QCodeEditor::LanguageHint::JavaScript);
192 m_widget.setCompleter(new DataModel::SerialStudioCompleter(false, &m_widget));
193 }
194
195 if (old_completer)
196 old_completer->deleteLater();
197
198 if (old_highlighter)
199 old_highlighter->deleteLater();
200
201 Q_EMIT languageChanged();
202}
203
204/**
205 * @brief Handles a user-initiated language switch from the QML combobox.

Callers

nothing calls this directly

Calls 5

completerMethod · 0.80
highlighterMethod · 0.80
setHighlighterMethod · 0.80
setLanguageHintMethod · 0.80
setCompleterMethod · 0.80

Tested by

no test coverage detected