mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:17:36 +00:00
Spreadsheet: No longer use vm.exception() to signal exception state
Instead, use the completions which are returned directly. This means we no longer have to worry about the global VM state when running code.
This commit is contained in:
parent
e160f508a8
commit
4ef1e8f226
11 changed files with 98 additions and 97 deletions
|
@ -34,21 +34,24 @@ void CellSyntaxHighlighter::rehighlight(const Palette& palette)
|
|||
(u64)-1,
|
||||
false);
|
||||
|
||||
if (m_cell && m_cell->exception()) {
|
||||
auto& traceback = m_cell->exception()->traceback();
|
||||
auto& range = traceback.first().source_range;
|
||||
GUI::TextRange text_range { { range.start.line - 1, range.start.column }, { range.end.line - 1, range.end.column } };
|
||||
m_client->spans().prepend(
|
||||
GUI::TextDocumentSpan {
|
||||
text_range,
|
||||
Gfx::TextAttributes {
|
||||
Color::Black,
|
||||
Color::Red,
|
||||
false,
|
||||
false,
|
||||
},
|
||||
(u64)-1,
|
||||
false });
|
||||
if (m_cell && m_cell->thrown_value().has_value()) {
|
||||
if (auto value = m_cell->thrown_value().value(); value.is_object() && is<JS::Error>(value.as_object())) {
|
||||
auto& error = static_cast<JS::Error const&>(value.as_object());
|
||||
auto& traceback = error.traceback();
|
||||
auto& range = traceback.first().source_range;
|
||||
GUI::TextRange text_range { { range.start.line - 1, range.start.column }, { range.end.line - 1, range.end.column } };
|
||||
m_client->spans().prepend(
|
||||
GUI::TextDocumentSpan {
|
||||
text_range,
|
||||
Gfx::TextAttributes {
|
||||
Color::Black,
|
||||
Color::Red,
|
||||
false,
|
||||
false,
|
||||
},
|
||||
(u64)-1,
|
||||
false });
|
||||
}
|
||||
}
|
||||
m_client->do_update();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue