linebender / linebender/druid

Focus groups

Open
#1,950 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

architecture
Dominant language
Rust
Stars
9.7k
Forks
565
PR merge metrics
No merged PRs in 30d

Description

I've been trying to create an editor for formulas like this in druid:
![image](https://user-images.githubusercontent.com/62311633/131887036-600f4482-004a-47fc-9f33-2021af387fb6.png)
In this case the exponent and the base of the term are two different `TextComponent`s which can receive focus individually, but when Tab is pressed i would to select the next widget in the focus chain which is not part of this editor.
I don't know a simple way to do this in druid.

My first idea to solve this would be a wrapper widget, which pretends to be only one element in the focuschain, but forwards the focus to the first or last widget inside (depending on whether focus_next, focus_previous or focus was used). Would something like this be useful for druid?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the formula editor scenario described in the issue, with the exponent and base as separate TextComponents, and observe focus_next, focus_previous, and Tab behavior. Read the druid focus-chain behavior around these operations; the work is complete only when the intended transition from the editor to the next external widget is defined and verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.