1#ifndef YAZE_APP_EDITOR_ASSEMBLY_EDITOR_H
2#define YAZE_APP_EDITOR_ASSEMBLY_EDITOR_H
9#include "absl/container/flat_hash_map.h"
10#include "absl/container/flat_hash_set.h"
23struct AssemblyEditorGuiTestAccess;
70 absl::Status
Load()
override;
75 absl::Status
Cut()
override;
76 absl::Status
Copy()
override;
77 absl::Status
Paste()
override;
79 absl::Status
Undo()
override;
80 absl::Status
Redo()
override;
81 absl::Status
Find()
override {
return absl::UnimplementedError(
"Find"); }
83 absl::Status
Update()
override;
85 absl::Status
Save()
override;
87 void OpenFolder(
const std::string& folder_path);
100 const std::map<std::string, core::AsarSymbol>&
symbols()
const {
112 friend struct ::yaze::test::AssemblyEditorGuiTestAccess;
118 active_file_id_ < static_cast<int>(
open_files_.size());
148 const std::vector<std::string>& args,
const std::string& title);
160 bool sync_mesen_symbols);
static const Palette & GetDarkPalette()
void SetShowWhitespaces(bool aValue)
void SetPalette(const Palette &aValue)
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Modern C++ wrapper for Asar 65816 assembler integration.
Text editor for modifying assembly code.
void PollZ3DisassemblyTask()
std::string disasm_query_
std::string current_file_
TextEditor::Coordinates active_cursor_position() const
absl::Status Find() override
BackgroundCommandTask z3disasm_task_
absl::Status ValidateCurrentFile()
core::AsarWrapper * asar_wrapper()
std::vector< std::string > last_warnings_
std::map< std::string, core::AsarSymbol > symbols_
void DrawDisassemblyContent()
std::optional< uint32_t > CurrentDisassemblyBank() const
absl::Status Save() override
std::vector< TextEditor > open_files_
bool HasActiveFile() const
absl::Status Load() override
void Initialize() override
std::string ResolveZ3DisasmOutputDir() const
std::string BuildProjectGraphLookupQuery(uint32_t address) const
std::vector< Z3DisasmHookJump > z3disasm_hook_jumps_
void ClearSymbolJumpCache()
std::string z3disasm_output_dir_
void ChangeActiveFile(const std::string_view &filename)
absl::Status JumpToReference(const std::string &reference)
void LoadSelectedZ3DisassemblyFile()
TextEditor * GetActiveEditor()
absl::Status Copy() override
absl::flat_hash_map< std::string, AsmSymbolLocation > symbol_jump_cache_
int disasm_instruction_count_
std::vector< std::string > z3disasm_files_
void UpdateErrorMarkers(const core::AsarPatchResult &result)
std::string ResolveZ3DisasmRomPath() const
std::string disasm_status_
std::vector< core::AssemblyDiagnostic > last_diagnostics_
void OpenFolder(const std::string &folder_path)
bool z3disasm_task_acknowledged_
absl::flat_hash_set< std::string > symbol_jump_negative_cache_
std::string z3disasm_selected_contents_
std::string active_file_path() const
std::string z3disasm_selected_path_
std::string BuildProjectGraphBankQuery() const
void RefreshSelectedZ3DisassemblyMetadata()
std::string z3disasm_status_
absl::Status Paste() override
FolderItem current_folder_
absl::Status Update() override
std::string ResolveZ3DisasmCommand() const
std::vector< std::string > files_
const std::map< std::string, core::AsarSymbol > & symbols() const
void DrawToolbarContent()
int SelectedZ3DisasmBankIndex() const
absl::Status NavigateDisassemblyQuery()
AssemblyEditor(Rom *rom=nullptr)
absl::Status Redo() override
ImVector< int > active_files_
absl::Status Undo() override
int z3disasm_selected_index_
absl::Status RunProjectGraphQueryInDrawer(const std::vector< std::string > &args, const std::string &title)
void DrawSymbolsContent()
absl::Status ApplyPatchToRom()
absl::Status Cut() override
std::vector< std::string > last_errors_
std::string symbol_jump_root_
absl::Status GenerateZ3Disassembly()
std::vector< Z3DisasmSourceJump > z3disasm_source_jumps_
absl::Status JumpToSymbolDefinition(const std::string &symbol)
bool is_asar_initialized() const
const std::vector< core::AssemblyDiagnostic > & last_diagnostics() const
void RefreshZ3DisassemblyFiles()
Interface for editor classes.
Asar patch result information.
std::vector< FolderItem > subfolders
std::vector< std::string > files