Move 65816 language definition to a widgets namespace
This commit is contained in:
@@ -13,62 +13,14 @@
|
|||||||
#include "app/rom.h"
|
#include "app/rom.h"
|
||||||
#include "gui/icons.h"
|
#include "gui/icons.h"
|
||||||
#include "gui/input.h"
|
#include "gui/input.h"
|
||||||
|
#include "gui/widgets.h"
|
||||||
|
|
||||||
namespace yaze {
|
namespace yaze {
|
||||||
namespace app {
|
namespace app {
|
||||||
namespace editor {
|
namespace editor {
|
||||||
|
|
||||||
Editor::Editor() {
|
Editor::Editor() {
|
||||||
for (auto &k : app::core::constants::kKeywords)
|
asm_editor_.SetLanguageDefinition(gui::widgets::GetAssemblyLanguageDef());
|
||||||
language_65816_.mKeywords.emplace(k);
|
|
||||||
|
|
||||||
for (auto &k : app::core::constants::kIdentifiers) {
|
|
||||||
TextEditor::Identifier id;
|
|
||||||
id.mDeclaration = "Built-in function";
|
|
||||||
language_65816_.mIdentifiers.insert(std::make_pair(std::string(k), id));
|
|
||||||
}
|
|
||||||
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"[ \\t]*#[ \\t]*[a-zA-Z_]+", TextEditor::PaletteIndex::Preprocessor));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"L?\\\"(\\\\.|[^\\\"])*\\\"", TextEditor::PaletteIndex::String));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"\\'\\\\?[^\\']\\'", TextEditor::PaletteIndex::CharLiteral));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)([eE][+-]?[0-9]+)?[fF]?",
|
|
||||||
TextEditor::PaletteIndex::Number));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"[+-]?[0-9]+[Uu]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"0[0-7]+[Uu]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"0[xX][0-9a-fA-F]+[uU]?[lL]?[lL]?",
|
|
||||||
TextEditor::PaletteIndex::Number));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"[a-zA-Z_][a-zA-Z0-9_]*", TextEditor::PaletteIndex::Identifier));
|
|
||||||
language_65816_.mTokenRegexStrings.push_back(
|
|
||||||
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
|
||||||
"[\\[\\]\\{\\}\\!\\%\\^\\&\\*\\(\\)\\-\\+\\=\\~\\|\\<\\>\\?\\/"
|
|
||||||
"\\;\\,\\.]",
|
|
||||||
TextEditor::PaletteIndex::Punctuation));
|
|
||||||
|
|
||||||
language_65816_.mCommentStart = "/*";
|
|
||||||
language_65816_.mCommentEnd = "*/";
|
|
||||||
language_65816_.mSingleLineComment = ";";
|
|
||||||
|
|
||||||
language_65816_.mCaseSensitive = false;
|
|
||||||
language_65816_.mAutoIndentation = true;
|
|
||||||
|
|
||||||
language_65816_.mName = "65816";
|
|
||||||
asm_editor_.SetLanguageDefinition(language_65816_);
|
|
||||||
asm_editor_.SetPalette(TextEditor::GetDarkPalette());
|
asm_editor_.SetPalette(TextEditor::GetDarkPalette());
|
||||||
|
|
||||||
current_set_.bits_per_pixel_ = 4;
|
current_set_.bits_per_pixel_ = 4;
|
||||||
@@ -324,7 +276,6 @@ void Editor::DrawProjectEditor() {
|
|||||||
|
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGui::Text("Title: %s", rom_.getTitle());
|
ImGui::Text("Title: %s", rom_.getTitle());
|
||||||
ImGui::Text("Version: %d", rom_.getVersion());
|
|
||||||
ImGui::Text("ROM Size: %ld", rom_.getSize());
|
ImGui::Text("ROM Size: %ld", rom_.getSize());
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ class Editor {
|
|||||||
TextEditor asm_editor_;
|
TextEditor asm_editor_;
|
||||||
TextEditor::LanguageDefinition language_65816_;
|
TextEditor::LanguageDefinition language_65816_;
|
||||||
OverworldEditor overworld_editor_;
|
OverworldEditor overworld_editor_;
|
||||||
std::unordered_map<uint, SDL_Texture *> image_cache_;
|
|
||||||
std::shared_ptr<SDL_Renderer> sdl_renderer_;
|
std::shared_ptr<SDL_Renderer> sdl_renderer_;
|
||||||
|
std::unordered_map<uint, SDL_Texture *> image_cache_;
|
||||||
|
|
||||||
ImVec4 current_palette_[8];
|
ImVec4 current_palette_[8];
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ class Editor {
|
|||||||
};
|
};
|
||||||
|
|
||||||
} // namespace editor
|
} // namespace editor
|
||||||
} // namespace gui
|
} // namespace app
|
||||||
} // namespace yaze
|
} // namespace yaze
|
||||||
|
|
||||||
#endif // YAZE_APP_VIEW_EDITOR_H
|
#endif // YAZE_APP_VIEW_EDITOR_H
|
||||||
66
src/gui/widgets.cc
Normal file
66
src/gui/widgets.cc
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
#include "widgets.h"
|
||||||
|
|
||||||
|
#include "app/core/constants.h"
|
||||||
|
|
||||||
|
namespace yaze {
|
||||||
|
namespace gui {
|
||||||
|
namespace widgets {
|
||||||
|
|
||||||
|
TextEditor::LanguageDefinition GetAssemblyLanguageDef() {
|
||||||
|
TextEditor::LanguageDefinition language_65816;
|
||||||
|
for (auto &k : app::core::constants::kKeywords)
|
||||||
|
language_65816.mKeywords.emplace(k);
|
||||||
|
|
||||||
|
for (auto &k : app::core::constants::kIdentifiers) {
|
||||||
|
TextEditor::Identifier id;
|
||||||
|
id.mDeclaration = "Built-in function";
|
||||||
|
language_65816.mIdentifiers.insert(std::make_pair(std::string(k), id));
|
||||||
|
}
|
||||||
|
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"[ \\t]*#[ \\t]*[a-zA-Z_]+", TextEditor::PaletteIndex::Preprocessor));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"L?\\\"(\\\\.|[^\\\"])*\\\"", TextEditor::PaletteIndex::String));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"\\'\\\\?[^\\']\\'", TextEditor::PaletteIndex::CharLiteral));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)([eE][+-]?[0-9]+)?[fF]?",
|
||||||
|
TextEditor::PaletteIndex::Number));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"[+-]?[0-9]+[Uu]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"0[0-7]+[Uu]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"0[xX][0-9a-fA-F]+[uU]?[lL]?[lL]?",
|
||||||
|
TextEditor::PaletteIndex::Number));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"[a-zA-Z_][a-zA-Z0-9_]*", TextEditor::PaletteIndex::Identifier));
|
||||||
|
language_65816.mTokenRegexStrings.push_back(
|
||||||
|
std::make_pair<std::string, TextEditor::PaletteIndex>(
|
||||||
|
"[\\[\\]\\{\\}\\!\\%\\^\\&\\*\\(\\)\\-\\+\\=\\~\\|\\<\\>\\?\\/"
|
||||||
|
"\\;\\,\\.]",
|
||||||
|
TextEditor::PaletteIndex::Punctuation));
|
||||||
|
|
||||||
|
language_65816.mCommentStart = "/*";
|
||||||
|
language_65816.mCommentEnd = "*/";
|
||||||
|
language_65816.mSingleLineComment = ";";
|
||||||
|
|
||||||
|
language_65816.mCaseSensitive = false;
|
||||||
|
language_65816.mAutoIndentation = true;
|
||||||
|
|
||||||
|
language_65816.mName = "65816";
|
||||||
|
|
||||||
|
return language_65816;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace widgets
|
||||||
|
} // namespace gui
|
||||||
|
} // namespace yaze
|
||||||
16
src/gui/widgets.h
Normal file
16
src/gui/widgets.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#ifndef YAZE_GUI_WIDGETS_H
|
||||||
|
#define YAZE_GUI_WIDGETS_H
|
||||||
|
|
||||||
|
#include <ImGuiColorTextEdit/TextEditor.h>
|
||||||
|
|
||||||
|
namespace yaze {
|
||||||
|
namespace gui {
|
||||||
|
namespace widgets {
|
||||||
|
|
||||||
|
TextEditor::LanguageDefinition GetAssemblyLanguageDef();
|
||||||
|
|
||||||
|
}
|
||||||
|
} // namespace gui
|
||||||
|
} // namespace yaze
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user