Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,4 @@ dist/
wheelhouse/
*.egg-info/
.pytest_cache/
/tools/formula/po/
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ The release run heads these entries with the version and opens a fresh

### Spreadsheets

- The sheet editor takes a function name as LibreOffice shows it in the
language of the document, for example `SUMME` for `SUM` in a German one,
and opens a formula cell with those names. The file keeps the English
ones. The names come from LibreOffice's translations, for the 16
languages of the boolean words.
- A recalculation and a save compute a cycle where the document iterates
(`table:iteration` in an ods, `calcPr iterate` in an xlsx), as LibreOffice
and Excel do: each group of cells that read each other, from what they
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -231,12 +231,14 @@ set(ODR_SOURCE_FILES
"src/odr/internal/formula/formula_ast.cpp"
"src/odr/internal/formula/formula_dependencies.cpp"
"src/odr/internal/formula/formula_evaluator.cpp"
"src/odr/internal/formula/formula_function_names.cpp"
"src/odr/internal/formula/formula_functions.cpp"
"src/odr/internal/formula/formula_functions_date.cpp"
"src/odr/internal/formula/formula_functions_logic.cpp"
"src/odr/internal/formula/formula_functions_lookup.cpp"
"src/odr/internal/formula/formula_functions_math.cpp"
"src/odr/internal/formula/formula_functions_text.cpp"
"src/odr/internal/formula/formula_localize.cpp"
"src/odr/internal/formula/formula_text.cpp"
"src/odr/internal/formula/formula_parser.cpp"
"src/odr/internal/formula/formula_value.cpp"
Expand Down
12 changes: 7 additions & 5 deletions docs/design/spreadsheet-editing.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,13 @@ as the decimal sign where that is the decimal sign of the locale. An array
constant keeps the spelling of an `<f>`, `{1,2;3,4}`, in every locale. The
module turns it into the syntax of the file, and the op states that:
`{"type": "formula", "formula": "of:=SUM([.A1];[.B1])"}`. A formula cell opens
on its formula, spelled the same way. A formula that does not parse refuses
with `formulaInvalid`. Without the module, a formula refuses with
`formulaInput`.
on its formula, spelled the same way. A function name may be typed as
LibreOffice shows it in the language of the document, `SUMME` for `SUM` in a
German one, and a formula cell opens with those names
(`formula::localized_functions`, from LibreOffice's translations by
`tools/formula`). The match ignores the case of ASCII letters only. A formula
that does not parse refuses with `formulaInvalid`. Without the module, a
formula refuses with `formulaInput`.

**Why:** the file states the type per cell (`office:value-type`, `c/@t`) and
changes it freely, so a cell has no fixed type. A number cell writes
Expand Down Expand Up @@ -418,8 +422,6 @@ and the commits name. Git holds the full text of each decision.

## Open work

- **Formula input.** Function names are the English ones, also where a
localized LibreOffice shows them translated.
- **Out of the evaluator so far:** a dynamic array that the edit makes
larger or smaller than the range the file states, a cell another document
holds that its copy lacks, `INFO`, and localized function names. Each
Expand Down
Loading
Loading