Commit Graph
1131 Commits
Author SHA1 Message Date
aiongg b388aaa241 Merge PR #1998: ui: language command docs and error list every language 2026-10-22 02:35:18 +00:00
aiongg 1aa5d4ea79 Integration: #1996 same_name compares ASCII names without allocating 2026-10-22 02:35:18 +00:00
aiongg 0e6b31ab71 Merge PR #1996: calc: LET and LAMBDA names ignore case in any script 2026-10-22 02:35:12 +00:00
aiongg 7116252960 Merge PR #1995: Persist the AutoSave preference across restarts (#1901) 2026-10-22 02:35:12 +00:00
aiongg 8daecc7777 Integration: #1975 remove stray empty file '=560' 2026-10-22 02:35:12 +00:00
aiongg c8e0323cf3 Merge PR #1975: Select precedent/dependent cells with Ctrl+[ / Ctrl+] (#1865 part 1) 2026-10-22 02:35:09 +00:00
aiongg 1f9696d013 Merge PR #1958: Translate and standardizes UI error feedback by locale 2026-10-22 02:35:06 +00:00
aiongg 3ad6034f33 Merge PR #1924: Grid: row and column heading labels grow with the zoom
crates/ui-egui/src/grid.rs: kept both helper fns (painted_halign, heading_font_size) and both tests.
2026-10-22 02:35:06 +00:00
aiongg 240e773e17 Merge PR #1905: Keep the in-cell editor at the cell's height for one line
crates/ui-egui/src/grid.rs: kept 1974's wrap branch; 1905's one-line height rule applied only in the non-wrap branch.
2026-10-22 02:34:53 +00:00
aiongg 0e077cfd88 Merge PR #1974: In-cell editor: a Wrap Text cell edits wrapped at the column width (#1970) 2026-10-22 02:34:35 +00:00
Dylan M. Taylor 912b817abe security: enforce HTTPS on curl downloads (SonarCloud S6506) (#2188)
Add --proto '=https' to curl invocations so redirects cannot downgrade to
plaintext HTTP. Resolves SonarCloud S6506 (shell/docker/githubactions).
2026-10-21 19:36:04 -04:00
Dylan M. Taylor 8ae67c5534 ci: add sonar-project.properties for CI-based analysis
Marks the project ineligible for SonarCloud Automatic Analysis, resolving the
CI-vs-automatic-analysis conflict so the SonarCloud workflow succeeds.
2026-10-21 16:00:41 -04:00
Dylan M. Taylor eb48beffb5 ci: add SonarCloud scan via shared reusable workflow
Calls storytold/craft-common-actions/.github/workflows/sonarcloud.yml@main
with secrets: inherit. Adds SonarCloud badge to README where missing and
removes the redundant sonar-project.properties (config now passed by the
reusable workflow).
2026-10-21 15:47:00 -04:00
Brandon ThomasandClaude Opus 5.5 2ebdf164c2 Release 0.10.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.10.0
2026-10-21 13:57:26 -04:00
Lord-Taw 377bb9226e Update i18n.rs
## CI Validation

`cargo xtask ci` completed successfully.

<details>
<summary>Build Warning</summary>

```text
warning: variants `At` and `Unknown` are never constructed
   --> crates\ui-egui\src\backstage.rs:416:5
```

This warning appears to be pre-existing and is unrelated to the changes introduced in this PR. As it falls outside the scope of the current work, no changes were made to address it.

</details>

The build completed successfully, including the `wasm32-unknown-unknown` target checks.

```text
wasm32-unknown-unknown check (gridcraft-calc, gridcraft-chart, gridcraft-core, gridcraft-engine,
gridcraft-formula, gridcraft-functions, gridcraft-model, gridcraft-numfmt,
gridcraft-pdf, gridcraft-web, gridcraft-xlsx): ok
```

<details>
<summary>CI Parity</summary>

```text
CI summary:
  ok    fmt
  ok    clippy
  ok    test
  ok    assets
  ok    layers
  ok    wasm
```

</details>
2026-10-21 10:24:12 -03:00
Dylan M. Taylor 37e41424ed Merge pull request #1620 from dylanmtaylor/ci/shared-nix-workflow
ci: switch to shared nix workflow from craft-common-actions
2026-10-21 03:40:22 -04:00
Brandon ThomasandClaude Opus 5.5 68e58a2eae Skip CodeRabbit reviews on Dependabot PRs (#2057)
Adds .coderabbit.yaml so CodeRabbit no longer reviews or comments on PRs opened by dependabot[bot].

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 11:39:59 -04:00
Brandon ThomasandClaude Opus 5.5 a2cc4b42ca Release 0.9.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.9.0
2026-10-19 22:20:35 -04:00
Lord-Taw 479d1b4b66 Update i18n.rs
´cargo fmt --check´ OK
2026-10-19 23:20:02 -03:00
Lord-Taw edd6e0cbe8 Atualizar o i18n.rs 2026-10-19 22:27:15 -03:00
Dylan M. Taylor 23829d8c67 Merge pull request #1828 from dylanmtaylor/chore/drop-competitor-references
docs: drop references to competing commercial software
2026-10-19 17:12:29 -04:00
Maciej Malinowski a74e82ac93 formula: same_name folds case without merging ı and i
Lower-casing then upper-casing made dotless ı equal to i (both become I),
which Unicode's default case folding keeps apart; LET(i,1,ı,2,i) could
return the ı binding. same_name now lower-cases and adds the folds lower
case misses (ß/ẞ -> ss, ſ -> s, ς -> σ). Tests cover ı/i and the Greek
final sigma.
2026-10-19 22:27:21 +02:00
Maciej Malinowski 553b0bd9f2 ui: language command docs and error list every language
app.language.set's engine.commands docs and its unknown-language error
were written by hand and had fallen behind: the docs missed es, fr and
sr, the error missed de, fr and sr. Both are now built from
Language::ALL (Language::code_list), and tests check every language is
listed in each.
2026-10-19 21:49:23 +02:00
bfentyandClaude 871c4e6c8f perf(engine): scan only the precedent area's stored cells
iter_range walks the sparse store's bands for the area's row range
only, so a chain of N formulas no longer rescans every stored cell of
the sheet per area.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:47:07 +00:00
Maciej Malinowski e9bcb8dfbb calc: one shared same_name for LET/LAMBDA names, with case folding
- gridcraft_formula::same_name lower-cases then upper-cases each
  character, so ß matches ẞ (to_uppercase alone maps ß to SS).
- Formula-bar input uses it too, so a binding such as ſi is not
  translated to IF while the evaluator binds it.
- Tests: ISOMITTED with a case variant, ß/ẞ, and the Spanish input case.
2026-10-19 21:46:10 +02:00
Maciej Malinowski ac371be50d calc: LET and LAMBDA names ignore case in any script
Excel matches LET and LAMBDA names case-insensitively in every script,
so =LET(dług,100,DŁUG*2) is 200. The evaluator compared them ASCII-only
and returned #NAME?. The three lookups (name evaluation, ISOMITTED, a
LET variable shadowing a function name) now fold Unicode case.
2026-10-19 21:15:00 +02:00
bfentyandClaude e34b0aa345 fix(ui): persist the AutoSave preference across restarts
Closes #1901

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:07:18 +00:00
Camilo Agudelo 6481c17150 In-cell editor: test that an unwrapped multiline edit shows every line (#1970)
desired_rows(1) only sets the field's minimum height; it grows with its
text. Pins that an Alt+Enter edit in a cell without Wrap Text shows all of
its lines and reserves no more. Review feedback on #1974.
2026-10-19 12:02:48 -05:00
bfentyandClaude d19627fc26 fix(engine): walk stored cells in transitive precedent selection
Bound the all-level walk to the sheet sparse cell store instead of
iterating every position of each precedent area: formulas late in a
wide area are no longer skipped, blank positions are never selected,
and only formula cells extend the frontier. Adds a regression test
(=SUM(A1:Z1) with a formula at Z1) and silences two clippy lints in
the same function.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 16:54:45 +00:00
Camilo Agudelo 3df5e05f0f In-cell editor: measure wrapped text at the field's own wrap width (#1970)
With Frame::NONE the text field takes no text margin off its width, so it
wraps at the editor's width less the 2 px inset a side. Measuring 8 px
narrower counted rows the field doesn't have and made the editor reach
over the cells below. A test pins the field's wrap width. Review feedback
on #1974.
2026-10-19 11:43:44 -05:00
Brandon Thomas 49fe41afbf Merge pull request #1892 from vedran-dobos:options-prefix-translations
# Conflicts:
#	crates/ui-egui/src/i18n.rs
#	docs/localization-parity.md
2026-10-19 12:33:01 -04:00
Brandon Thomas 4401b3e5c5 Merge pull request #1877 from SocraticsAI:host-chrome 2026-10-19 12:32:51 -04:00
Brandon Thomas aa4125952e Merge pull request #1910 from Silvertree2010:fix/1907-bug-touchscreen-devices-cannot-p 2026-10-19 12:32:51 -04:00
Brandon Thomas 8492416c74 Merge pull request #1916 from Silvertree2010:fix/1915-desktop-theme-watcher-opens-a-ne 2026-10-19 12:32:51 -04:00
Brandon Thomas 47fc3d5d35 Merge pull request #1922 from Silvertree2010:fix/h552-rangeref-parse-accepts-signed-ro 2026-10-19 12:32:51 -04:00
Brandon Thomas 70018d4e60 Merge pull request #1925 from DrM7md:nux/insert-delete-whole-lines 2026-10-19 12:32:51 -04:00
Brandon Thomas b402359fa4 Merge pull request #1938 from Mouhand-Kaddo:fix/html-export-rtl
# Conflicts:
#	docs/file-format-parity.md
#	docs/localization-parity.md
2026-10-19 12:32:51 -04:00
Brandon ThomasandClaude Opus 5.5 92c0d1e936 Chrome: turning the File tab off closes a Backstage that is already open
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:23:08 -04:00
Brandon ThomasandClaude Opus 5.5 27f4c9c7bc Touch pan: a pan that never saw its release doesn't swallow the next press
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:22:57 -04:00
Brandon ThomasandClaude Opus 5.5 f5267cb74e docs: one Last updated line per parity doc after merging
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:22:25 -04:00
Brandon Thomas b77848ee21 Merge pull request #1882 from neilcawse:fix/pivot-grand-totals
# Conflicts:
#	docs/file-format-parity.md
2026-10-19 12:22:07 -04:00
Brandon Thomas f8e916bcd4 Merge pull request #1902 from Shnrqpdr:fix/1846-autofit-keytips
# Conflicts:
#	docs/ui-parity.md
2026-10-19 12:22:06 -04:00
Brandon Thomas ab6fd48856 Merge pull request #1867 from HyakoV3:fix/1808-csv-as-text
# Conflicts:
#	docs/file-format-parity.md
2026-10-19 12:22:05 -04:00
Brandon Thomas 06a94d42b2 Merge pull request #1935 from Mouhand-Kaddo:fix/shape-text-rtl
# Conflicts:
#	docs/file-format-parity.md
#	docs/localization-parity.md
2026-10-19 12:22:04 -04:00
Brandon Thomas 7b8aaf9ca7 Merge pull request #1939 from Mouhand-Kaddo:fix/xls-right-to-left-sheets
# Conflicts:
#	docs/file-format-parity.md
#	docs/localization-parity.md
2026-10-19 12:22:02 -04:00
Brandon Thomas 12ee27a177 Merge pull request #1943 from Mouhand-Kaddo:fix/table-name-length
# Conflicts:
#	docs/localization-parity.md
2026-10-19 12:22:01 -04:00
Brandon Thomas 8d562e9b56 Merge pull request #1879 from Silvertree2010:fix/h2804-custom-autofilter-is-less-than-l 2026-10-19 12:21:34 -04:00
Brandon Thomas 937cfd1e91 Merge pull request #1903 from justinjohn0306:fix/1855-backspace-undo 2026-10-19 12:21:29 -04:00
Brandon Thomas 46c706a491 Merge pull request #1845 from MarekSpodBiedry:issue-1830 2026-10-19 12:21:28 -04:00
Brandon ThomasandClaude Opus 5.5 33ac9e5f64 Drop the dbus-run-session test: it spawns a bus, sleeps 9 s and fails where dbus-daemon is missing
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:21:13 -04:00