Skip to content

adds zero-width-joiner input method - #61391

Closed
rokke-git wants to merge 3 commits into
JuliaLang:masterfrom
rokke-git:zero-width-joiner
Closed

rokke-git wants to merge 3 commits into
JuliaLang:masterfrom
rokke-git:zero-width-joiner

Conversation

@rokke-git

Copy link
Copy Markdown
Contributor

adds completion method for combining characters, and an easier way to
input sequences of emoji. this also fixes the help-text for a wide range
of emoji, such as "👨‍👩‍👧‍👦" and "👨‍💼".

@rokke-git

rokke-git commented Mar 22, 2026 •

Copy link
Copy Markdown
Contributor Author

spawned from this discourse topic

idk exactly how the tests are meant to work so I just copied from the koala test

edit: oops, the length is actually the number of completions, not the number of chars in the completion. should be passing now

@rokke-git
rokke-git force-pushed the zero-width-joiner branch 2 times, most recently from 18aa4e0 to 8e4ebac Compare March 22, 2026 07:30
@giordano giordano added REPL Julia's REPL (Read Eval Print Loop) 😃🍕 and other emoji labels Mar 22, 2026
@rokke-git
rokke-git force-pushed the zero-width-joiner branch 2 times, most recently from df3cd5b to 33f4bf0 Compare March 22, 2026 12:38
@rokke-git

rokke-git commented Mar 22, 2026 •

Copy link
Copy Markdown
Contributor Author

I saw an opportunity for adding a nice latex-string lookup, what do you think of it? since \: is emoji, doing \? for reverse-searching makes sense; like how we have ] for pkg and ? for help. output looks like this on my computer:

julia> \?arrow
⟱ \DDownarrow                 ⤋ \Ddownarrow                 ⇓ \Downarrow                  ⭅ \LLeftarrow
⇐ \Leftarrow                  ⇔ \Leftrightarrow             ⇚ \Lleftarrow                 ⟸ \Longleftarrow
⟺ \Longleftrightarrow         ⟹ \Longrightarrow             ⇗ \Nearrow                    ⇖ \Nwarrow
⭆ \RRightarrow                ⇒ \Rightarrow                 ⇛ \Rrightarrow                ⇘ \Searrow
⇙ \Swarrow                    ⟰ \UUparrow                   ⇑ \Uparrow                    ⇕ \Updownarrow
⤊ \Uuparrow                   ꜜ \^downarrow                 ꜛ \^uparrow                   ⇤ \barleftarrow
↹ \barleftarrowrightarrowbar  ↸ \barovernorthwestarrow      ⤠ \barrightarrowdiamond       ⭁ \bsimilarleftarrow
⭇ \bsimilarrightarrow         ↺ \circlearrowleft            ↻ \circlearrowright           ⬰ \circleonleftarrow
⇴ \circleonrightarrow         ↶ \curvearrowleft             ↷ \curvearrowright            ⇅ \dblarrowupdown
⤝ \diamondleftarrow           ⤟ \diamondleftarrowbar        ↓ \downarrow                  ⤈ \downarrowbarred
⇣ \downdasharrow              ⇊ \downdownarrows             ⇩ \downwhitearrow             ↯ \downzigzagarrow
➛ \draftingarrow              ⤐ \drbkarrow                  ⭀ \equalleftarrow             ⤯ \fdiagovnearrow
↩ \hookleftarrow              ↪ \hookrightarrow             🢲 \hookunderrightarrow        ← \leftarrow
⭊ \leftarrowapprox            ⭂ \leftarrowbackapprox        ⭋ \leftarrowbsimilar          ⥷ \leftarrowless
⬲ \leftarrowonoplus           ⥆ \leftarrowplus              ⥺ \leftarrowsubset            ↢ \leftarrowtail
⇽ \leftarrowtriangle          ⬾ \leftarrowx                 ⤌ \leftbkarrow                ⬿ \leftcurvedarrow
⇠ \leftdasharrow              ⤎ \leftdbkarrow               ⬸ \leftdotarrow               ⇇ \leftleftarrows
↔ \leftrightarrow             ⥈ \leftrightarrowcircle       ⇆ \leftrightarrows            ⇿ \leftrightarrowtriangle
↭ \leftrightsquigarrow        ⇜ \leftsquigarrow             ⬱ \leftthreearrows            ↜ \leftwavearrow
⇦ \leftwhitearrow             ⟵ \longleftarrow              ⟷ \longleftrightarrow         ⬳ \longleftsquigarrow
⟶ \longrightarrow             ⟿ \longrightsquigarrow        ↫ \looparrowleft              ↬ \looparrowright
⇟ \nHdownarrow                ⇞ \nHuparrow                  ⇍ \nLeftarrow                 ⇎ \nLeftrightarrow
⇏ \nRightarrow                ⇺ \nVleftarrow                ⬺ \nVleftarrowtail            ⇼ \nVleftrightarrow
⇻ \nVrightarrow               ⤕ \nVrightarrowtail           ⬵ \nVtwoheadleftarrow         ⬽ \nVtwoheadleftarrowtail
⤁ \nVtwoheadrightarrow        ⤘ \nVtwoheadrightarrowtail    ↗ \nearrow                    ⤱ \neovnwarrow
⤮ \neovsearrow                ↚ \nleftarrow                 ↮ \nleftrightarrow            ↛ \nrightarrow
⤂ \nvLeftarrow                ⤄ \nvLeftrightarrow           ⤃ \nvRightarrow               ⇷ \nvleftarrow
⬹ \nvleftarrowtail            ⇹ \nvleftrightarrow           ⇸ \nvrightarrow               ⤔ \nvrightarrowtail
⬴ \nvtwoheadleftarrow         ⬼ \nvtwoheadleftarrowtail     ⤀ \nvtwoheadrightarrow        ⤗ \nvtwoheadrightarrowtail
↖ \nwarrow                    ⤲ \nwovnearrow                 \overleftarrow                \overleftrightarrow
⤰ \rdiagovsearrow             → \rightarrow                 ⭈ \rightarrowbackapprox       ⇥ \rightarrowbar
⭌ \rightarrowbsimilar         ⤞ \rightarrowdiamond          ⭃ \rightarrowgtr              ⥅ \rightarrowplus
⭄ \rightarrowsupset           ↣ \rightarrowtail             ⇾ \rightarrowtriangle         ⇢ \rightdasharrow
⤑ \rightdotarrow              ⇄ \rightleftarrows            ⇉ \rightrightarrows           ⇝ \rightsquigarrow
⇶ \rightthreearrows           ↝ \rightwavearrow             ⇨ \rightwhitearrow            ↘ \searrow
⤭ \seovnearrow                ⭉ \similarleftarrow           ↙ \swarrow                    ↡ \twoheaddownarrow
↞ \twoheadleftarrow           ⬻ \twoheadleftarrowtail       ⬷ \twoheadleftdbkarrow        ↠ \twoheadrightarrow
⤖ \twoheadrightarrowtail      ↟ \twoheaduparrow             ⥉ \twoheaduparrowcircle        \underleftarrow
 \underleftrightarrow          \underrightarrow             ↑ \uparrow                    ⤉ \uparrowbarred
⇡ \updasharrow                ↕ \updownarrow                ↨ \updownarrowbar             ⇈ \upuparrows
⇧ \upwhitearrow               ⇪ \whitearrowupfrombar

you can also add more strings to check against:

julia> \?arrow?up
⤊ \Uuparrow              ꜛ \^uparrow              ⇅ \dblarrowupdown
⇞ \nHuparrow             ⭄ \rightarrowsupset      ↟ \twoheaduparrow
⥉ \twoheaduparrowcircle  ↑ \uparrow               ⤉ \uparrowbarred
⇡ \updasharrow           ↕ \updownarrow           ↨ \updownarrowbar
⇈ \upuparrows            ⇧ \upwhitearrow          ⇪ \whitearrowupfrombar

@rokke-git
rokke-git force-pushed the zero-width-joiner branch 8 times, most recently from 3c6b037 to d049a1a Compare March 25, 2026 04:32
adds completion method for combining characters, and an easier way to
input sequences of emoji. this also fixes the help-text for a wide range
of emoji, such as "👨‍👩‍👧‍👦" and "👨‍💼".
@rokke-git

Copy link
Copy Markdown
Contributor Author

replaced with #61464 which additionally incorporates multi-character completions like #60263 and the updated dictionary

@rokke-git rokke-git closed this Apr 1, 2026
IanButterworth pushed a commit that referenced this pull request Sep 25, 2026
this pr combines changes from #61391 and #60263 into one single update. it:

updates emoji completions to include v1️⃣7️⃣.0️⃣.0️⃣
adds completions for combining emoji 🇳🇱
enables reverse searching latex strings like \?arrowTab
many of the text arrows updated to the \ufe0f version already had a latex version, added \*blackarrow to mimic \*whitearrow and new \curvearrow*s for the remaining ones

Closes #56935
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

😃🍕 and other emoji REPL Julia's REPL (Read Eval Print Loop)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants