Ubisam-MobileGit/tasks/060-tap-a-function-in-the-code.md
choiminyeong 023fa0b728 TASK-060: a function's name in the code is a link to its counterpart
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-28 16:24:26 +09:00

58 lines
2.1 KiB
Markdown

# TASK-060: Tapping a function's name in the code
Status: implemented; required checks pass; installed on the product owner's Z Fold7, awaiting their confirmation
Owner: Claude
Reviewer: human product owner
## Outcome
TASK-059 put the jump from a header to its source on a button in the outline. The human product
owner asked for it in the code itself.
## Scope
- Included:
- In a file that has a counterpart, the name of a function is underlined on the line that
declares or defines it. Tapping it opens the counterpart at the function of the same name:
`.h` to `.cpp`, and `.cpp` to `.h`.
- Side by side, tapping the name in one pane brings the same function into view in the other.
- Excluded:
- A function's name where it is *called*. Going from a call to a definition needs to know which
file defines it, which means reading the whole repository; this app reads one file at a time.
- Files with no counterpart (C#, a lone `.cpp`): no names are links, as there is nowhere to go.
- Telling overloads apart: the first function of that name is the one shown.
## Writable paths
- `app/src/main/java/com/ubisam/ubgitea/feature/codebrowser/`
- `app/src/test/java/com/ubisam/ubgitea/feature/codebrowser/`
- `tasks/`, `docs/`
## Acceptance criteria
- [x] Only the name is the link, not the whole line; the rest of the line can still be selected.
- [x] The name is found after a qualifier (`A::F`), for a constructor (`A::A`) and a destructor.
- [x] A name that is only part of a longer word on the line is not linked.
- [x] Unit tests cover where the name is found.
## Security and privacy
No additional concerns.
## Required checks
```text
./gradlew compileDebugKotlin compileDebugUnitTestKotlin testDebugUnitTest assembleDebug lintDebug
```
## Evidence
- Required checks pass: 437 unit tests, 0 failures; lint 0 errors.
- Installed on the SM-F966N over wireless `adb`.
- Not seen on a screen by the implementer. In particular, how a tap on a link and a long press to
select text get along inside the selectable code has not been tried on a device.
## Review findings
None yet.