Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Add repository code search

aef992843b95fd107327b103c12d135cd708c11e · Keenan Nemetz · 15d ago · parent 5cab7b18

Add repository code search

The Code tab now searches file names and plain-text contents at the selected branch. Contents go through git grep with fixed strings, case-insensitive matching, binary skipping, and a capped result set; there is no second index to drift. Results group by file and link to line anchors in the blob view. Also highlights a targeted line and adds the remaining polish notes to the UI plan.

server/web/static/vole.css +12

@@ -1703,3 +1703,15 @@ textarea:focus-visible {
1703 1703 }
1704 1704 .pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0; }
1705 1705 .pager .button { font-size: 12px; }
1706
1707 /* Code search results: one block per file, line numbers linked to blob anchors. */
1708 .search-code input[type="search"] { width: 10rem; }
1709 .search-group { margin: 14px 0; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-panel); overflow: hidden; }
1710 .search-group h3 { margin: 0; padding: 7px 10px; background: var(--bg-raised); border-bottom: 1px solid var(--border); font-size: 12px; }
1711 .search-group h3 a { color: var(--fg); }
1712 .search-lines td.code { font-family: var(--mono); font-size: 12px; white-space: pre-wrap; word-break: break-word; }
1713 .search-lines td.ln { width: 5ch; text-align: right; color: var(--fg-faint); font-family: var(--mono); font-size: 11px; }
1714 .search-lines td.ln a { color: var(--fg-faint); }
1715 .search-lines tr:hover td.ln a { color: var(--accent); }
1716 @media (max-width: 720px) { .search-code { display: none; } }
1717 .code-main tr:target { background: var(--accent-soft); }