Skip to content

Editor: what is typed between bars builds up - #38

Open
simonebortolin wants to merge 5 commits into
claude/focused-clarke-f4k4a9from
ccr-f0e25fb4-eczbl3-fences
Open

simonebortolin wants to merge 5 commits into
claude/focused-clarke-f4k4a9from
ccr-f0e25fb4-eczbl3-fences

Conversation

@simonebortolin

Copy link
Copy Markdown
Owner

Stack 1/4, on #33: this → math tools keypad → formulas → units.

Typed between the bars of the |x| or ‖x‖ buttons (InsertFences("|", "|")), nothing ever built up: the run was read with the opening fence before it, and |x alone does not parse, so it stayed an merror. With ( it worked only because (x happens to parse.

BuildUp.OperandStart (internal): in a row that is a pair of fences, a run between them builds up with the nodes after the opening fence. This applies both while typing (TryBuildUpAtCaret) and in BuildUpAll. A row with the same fence again among its direct children (|a|b|) is left as it was.

Tests

  • Editing/CommandTests.TypedBetweenFencesBuildsUp: | ‖ ( [ ⌊, typed then built up. | and ‖ failed before.
  • tests/SharpEquations.Avalonia.Tests all pass, including the corpus thresholds of CorpusTests and RepositoryCorporaTests.

Generated by Claude Code

claude and others added 5 commits November 11, 2026 00:47
A run between a pair of fences was read with the opening fence before it, and an
opening bar alone does not parse (|x): what was typed in the |x| and ‖x‖ of the
fence buttons never built up, and stayed an merror. The run is now read after the
opening fence (BuildUp.OperandStart), when the typing builds up and in BuildUpAll.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SyVio8afJsGwHW9i5v5HDs
…ces after a comma (#37)

Four equations that read from UnicodeMath and were written as text that read back
to another equation:

- a script of a matrix in brackets: ⒨(𝑎&𝑏@𝑐&𝑑)² read the ² apart from the
  matrix (and ^−1 did not parse); the matrix is grouped, 〖⒨(…)〗², as the other
  bases that a script would not apply to whole
- a function in a denominator: 𝑎/ sin⁡𝛼 read as a slash, the space after the
  bar ending the fraction; the space is not written, 𝑎/sin⁡𝛼
- a denominator that ends with a script before an operand: 1/4𝜋𝜀₀ 𝑞₁𝑞₂/𝑟²
  took 𝑞₁𝑞₂/𝑟² into the denominator, the space ending the script and not the
  denominator; it is in parentheses, 1/(4𝜋𝜀₀) (but not after superscript
  digits, 𝜕²/𝜕𝑥² 𝜓, which a space ends, nor before an operator)
- ",  " (a comma and two spaces, a space of ½ em after the comma in the
  grammar) was read as an empty <mo/>, which nothing writes: it is the space of
  that width, U+2002, as ", " reads


Claude-Session: https://claude.ai/code/session_01SyVio8afJsGwHW9i5v5HDs

Co-authored-by: Claude <noreply@anthropic.com>
…emoji bitmaps) has the line's box

The layout read the ink box of a glyph from the outlines of its font; a font with
bitmaps alone (Noto Color Emoji as CBDT, the one of the Linux runners) has none, so an
emoji was 0 high and the corpus test failed there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SyVio8afJsGwHW9i5v5HDs
@github-actions

Copy link
Copy Markdown

Pre-release 1.1.0-pr.38.108 is ready: https://github.com/simonebortolin/SharpEquations/releases/tag/pr-38-108-1

NuGet package of aa17119. Updated on every push, deleted when this PR is closed.

@simonebortolin
simonebortolin added this pull request to stack #34 November 11, 2026 19:16

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants