Add keyboard shortcuts for repository file and code search (#36416)

Resolves #36417: Add GitHub-like keyboard shortcuts for repository
navigation:
- Press `T` to focus the "Go to file" search input
- Press `S` to focus the "Search code" input
- Press `Escape` to clear and unfocus search inputs

---------

Signed-off-by: Micah Kepe <micahkepe@gmail.com>
Signed-off-by: silverwind <me@silverwind.io>
Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
Micah Kepe
2026-02-23 01:20:56 -08:00
committed by GitHub
parent 6e7991316c
commit 427954ba6e
10 changed files with 130 additions and 7 deletions
+23
View File
@@ -0,0 +1,23 @@
{{template "devtest/devtest-header"}}
<div class="page-content devtest ui container">
<h1>Keyboard Shortcut</h1>
<div>
<div class="ui input global-shortcut-wrapper">
<input class="ui input" placeholder="Press S to focus">
<kbd data-global-init="onGlobalShortcut" data-shortcut-keys="s">S</kbd>
</div>
</div>
<div class="tw-mt-2">
<div class="ui action input">
<div class="ui input global-shortcut-wrapper">
<input class="ui input" placeholder="Press T to focus">
<kbd data-global-init="onGlobalShortcut" data-shortcut-keys="t">T</kbd>
</div>
<button class="ui button">Go</button>
</div>
</div>
</div>
{{template "devtest/devtest-footer"}}
+7 -3
View File
@@ -1,7 +1,11 @@
<div class="repo-home-sidebar-top">
<form class="ignore-dirty tw-flex tw-flex-1" action="{{.RepoLink}}/search" method="get">
<div class="ui small action input tw-flex-1">
<input name="q" size="10" placeholder="{{ctx.Locale.Tr "search.code_kind"}}"> {{template "shared/search/button"}}
<form class="ignore-dirty tw-flex" action="{{.RepoLink}}/search" method="get">
<div class="ui small action input tw-flex tw-flex-1">
<div class="ui input tw-flex tw-flex-1 global-shortcut-wrapper">
<input name="q" size="10" placeholder="{{ctx.Locale.Tr "search.code_kind"}}">
<kbd data-global-init="onGlobalShortcut" data-shortcut-keys="s">S</kbd>
</div>
{{template "shared/search/button"}}
</div>
</form>