ladybird/Userland/Applications/Spreadsheet
Matteo Benetti 3e1626acdc Spreadsheet+LibSyntax: Never insert spans directly
Function `CellSyntaxHighlighter::rehighlight()` direct inserted spans
to TextDocument `m_span` vector missing out important reordering and
merging operation carried out by `TextDocument::set_spans()`.

This caused overlapping spans for a cell with only a `=` symbol
(one for the actual token and one for the highlighting) to
miscalculate `start` and `end` value and a `length` value (of
`size_t` type) with a `0-1` substraction (result: 18446744073709551615)
causing `Utf32View::substring_view()` to fail the
`!Checked<size_t>::addition_would_overflow(offset, length)` assertion

This remove the possibility to directly alter `TextDocument`'s spans
thus forcing the utilization of `HighlighterClient::do_set_spans()`
interface function.

Proper refactor have been applied to
`CellSyntaxHighlighter::rehighlight()` function
2023-04-14 10:00:52 +02:00
..
CellType AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
Readers LibCore: Rename File to DeprecatedFile 2023-02-13 00:50:07 +00:00
Tests Spreadsheet: Throw if lookup value doesn't exist and no default is given 2022-06-26 22:21:17 +01:00
Writers AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
Cell.cpp Assistant+Spreadsheet: Convert usages of Value::TDSWOSE to Value::TSWOSE 2023-02-16 14:32:22 +01:00
Cell.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
CellSyntaxHighlighter.cpp Spreadsheet+LibSyntax: Never insert spans directly 2023-04-14 10:00:52 +02:00
CellSyntaxHighlighter.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CellTypeDialog.cpp LibGUI+Userland: Make TabWidget::*add_tab() take title using new string 2023-03-16 09:58:42 +01:00
CellTypeDialog.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
CMakeLists.txt Spreadsheet: Add list of recently-opened files 2023-04-03 21:16:26 +02:00
CondFormatting.gml Spreadsheet: Make conditional-formatting condition-list scrollable 2022-06-30 11:53:50 +02:00
ConditionalFormatting.h Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
CondView.gml Spreadsheet: Use new layout system 2022-06-30 11:51:25 +02:00
csv_export.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
csv_import.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
ExportDialog.cpp AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
ExportDialog.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
Forward.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
HelpWindow.cpp Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
HelpWindow.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ImportDialog.cpp Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
ImportDialog.h Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
JSIntegration.cpp LibJS: Port Value::to_object() to NonnullGCPtr 2023-04-14 09:59:29 +02:00
JSIntegration.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
main.cpp Spreadsheet: Propagate errors from SpreadsheetWidget::initialize_menubar 2023-04-03 21:16:26 +02:00
Position.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
select_format_page.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
Spreadsheet.cpp Spreadsheet: Port to Core::File 2023-03-22 23:21:20 +01:00
Spreadsheet.h Spreadsheet: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
SpreadsheetModel.cpp Assistant+Spreadsheet: Convert usages of Value::TDSWOSE to Value::TSWOSE 2023-02-16 14:32:22 +01:00
SpreadsheetModel.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
SpreadsheetView.cpp Userland: Specify margins and spacing in the GUI::Layout constructor 2023-02-18 16:56:56 +00:00
SpreadsheetView.h Userland: Replace remaining Core::Timer::construct()s with try_create() 2023-01-12 11:25:51 +01:00
SpreadsheetWidget.cpp Spreadsheet: Propagate errors from SpreadsheetWidget::initialize_menubar 2023-04-03 21:16:26 +02:00
SpreadsheetWidget.h Spreadsheet: Propagate errors from SpreadsheetWidget::initialize_menubar 2023-04-03 21:16:26 +02:00
Workbook.cpp LibJS: Propagate errors from VM creation 2023-03-17 16:39:08 +00:00
Workbook.h Spreadsheet: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00