You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Convert syntax highlighters into a resource
This commit is contained in:
@@ -33,16 +33,16 @@
|
||||
#include "core/os/keyboard.h"
|
||||
#include "editor/editor_node.h"
|
||||
|
||||
void TextEditor::add_syntax_highlighter(SyntaxHighlighter *p_highlighter) {
|
||||
highlighters[p_highlighter->get_name()] = p_highlighter;
|
||||
highlighter_menu->add_radio_check_item(p_highlighter->get_name());
|
||||
void TextEditor::add_syntax_highlighter(Ref<SyntaxHighlighter> p_highlighter) {
|
||||
highlighters[p_highlighter->_get_name()] = p_highlighter;
|
||||
highlighter_menu->add_radio_check_item(p_highlighter->_get_name());
|
||||
}
|
||||
|
||||
void TextEditor::set_syntax_highlighter(SyntaxHighlighter *p_highlighter) {
|
||||
void TextEditor::set_syntax_highlighter(Ref<SyntaxHighlighter> p_highlighter) {
|
||||
TextEdit *te = code_editor->get_text_edit();
|
||||
te->_set_syntax_highlighting(p_highlighter);
|
||||
if (p_highlighter != nullptr) {
|
||||
highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->get_name()), true);
|
||||
te->set_syntax_highlighting(p_highlighter);
|
||||
if (p_highlighter.is_valid()) {
|
||||
highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(p_highlighter->_get_name()), true);
|
||||
} else {
|
||||
highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text("Standard"), true);
|
||||
}
|
||||
@@ -61,7 +61,7 @@ void TextEditor::set_syntax_highlighter(SyntaxHighlighter *p_highlighter) {
|
||||
}
|
||||
|
||||
void TextEditor::_change_syntax_highlighter(int p_idx) {
|
||||
Map<String, SyntaxHighlighter *>::Element *el = highlighters.front();
|
||||
Map<String, Ref<SyntaxHighlighter> >::Element *el = highlighters.front();
|
||||
while (el != nullptr) {
|
||||
highlighter_menu->set_item_checked(highlighter_menu->get_item_idx_from_text(el->key()), false);
|
||||
el = el->next();
|
||||
@@ -634,7 +634,7 @@ TextEditor::TextEditor() {
|
||||
convert_case->add_shortcut(ED_SHORTCUT("script_text_editor/capitalize", TTR("Capitalize")), EDIT_CAPITALIZE);
|
||||
convert_case->connect("id_pressed", callable_mp(this, &TextEditor::_edit_option));
|
||||
|
||||
highlighters["Standard"] = nullptr;
|
||||
highlighters["Standard"] = Ref<SyntaxHighlighter>();
|
||||
highlighter_menu = memnew(PopupMenu);
|
||||
highlighter_menu->set_name("highlighter_menu");
|
||||
edit_menu->get_popup()->add_child(highlighter_menu);
|
||||
@@ -666,11 +666,6 @@ TextEditor::TextEditor() {
|
||||
}
|
||||
|
||||
TextEditor::~TextEditor() {
|
||||
for (const Map<String, SyntaxHighlighter *>::Element *E = highlighters.front(); E; E = E->next()) {
|
||||
if (E->get() != nullptr) {
|
||||
memdelete(E->get());
|
||||
}
|
||||
}
|
||||
highlighters.clear();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user