58 lines
2.1 KiB
Markdown
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.
|