Ubisam-MobileGit/tasks/059-jump-from-declaration-to-definition.md
choiminyeong f6ac20c8ed TASK-063: task records say what is actually open
No task waits on a Codex review; the redesign tasks are confirmed on the
product owner's Z Fold7; TASK-016's leftovers are on hold; no biometric
reauthentication.

Agent: main (opus)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 20:25:49 +09:00

56 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TASK-059: From a function in the header to its definition in the source
Status: implemented; required checks pass; confirmed by the human product owner on their Z Fold7 (2026-09-29)
Owner: Claude
Reviewer: human product owner
## Outcome
The human product owner confirmed the outline now appears for their C++ files (TASK-058) and asked
whether choosing a function in a `.h` could go to where it is written in the `.cpp`.
## Scope
- Included: in the outline (the side pane and the outline sheet), every function of a file that
has a counterpart carries a button named after the counterpart's extension (`.cpp ›` in a
header, `.h ›` in a source file). It opens the counterpart at the function of the same name.
Choosing the row itself still goes to the function in the file being read.
- Excluded:
- Tapping a function's name in the code itself.
- Side by side: the two panes already move to the same function together, so no button there.
- Telling overloads apart: the first function of that name is the one opened.
## Writable paths
- `app/src/main/java/com/ubisam/ubgitea/feature/codebrowser/CodeViewerScreen.kt`
- `tasks/`, `docs/`
## Acceptance criteria
- [x] The button appears only on functions, and only when the file has a counterpart that is not
already beside it.
- [x] The drawer or sheet closes and the counterpart opens at the function.
- [x] A function with no definition in the counterpart (inline, pure virtual) opens the counterpart
at its top rather than failing.
## Security and privacy
No additional concerns.
## Required checks
```text
./gradlew compileDebugKotlin compileDebugUnitTestKotlin testDebugUnitTest assembleDebug lintDebug
```
## Evidence
- Required checks pass: 435 unit tests, 0 failures; lint 0 errors. No test was added: the change
is wiring in the screen, and the lookup it uses (`findSymbolNamed`, `openSibling` with a symbol)
was already covered.
- Installed on the SM-F966N over wireless `adb`. Not seen working on a screen by the implementer.
## Review findings
None yet.