Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ Release notes and changelogs are published on the **[project blog](https://fulll

Each release entry covers the motivation, new features, breaking changes (if any), and upgrade notes.

| Version | Blog post |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| [v1.6.1](https://fulll.github.io/github-code-search/blog/release-v1-6-1) | Fix TUI only displaying first text fragment when a file has multiple matches |
| [v1.6.0](https://fulll.github.io/github-code-search/blog/release-v1-6-0) | Power navigation: global fold/unfold, gg/G top/bottom, paged scroll, open-in-browser |
| [v1.5.0](https://fulll.github.io/github-code-search/blog/release-v1-5-0) | Advanced filter targets, regex mode, word-jump, scroll fix |
| [v1.4.0](https://fulll.github.io/github-code-search/blog/release-v1-4-0) | TUI visual overhaul, community files, demo animation |
| [v1.3.0](https://fulll.github.io/github-code-search/blog/release-v1-3-0) | Team-prefix grouping, replay command, JSON output |
| [v1.0.0](https://fulll.github.io/github-code-search/blog/release-v1-0-0) | Initial release |
| Version | Blog post |
| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| [v1.7.0](https://fulll.github.io/github-code-search/blog/release-v1-7-0) | Shell completions (bash/zsh/fish) + extended syntax highlighting (PHP, C/C++, Swift, Terraform/HCL, Dockerfile) |
| [v1.6.1](https://fulll.github.io/github-code-search/blog/release-v1-6-1) | Fix TUI only displaying first text fragment when a file has multiple matches |
| [v1.6.0](https://fulll.github.io/github-code-search/blog/release-v1-6-0) | Power navigation: global fold/unfold, gg/G top/bottom, paged scroll, open-in-browser |
| [v1.5.0](https://fulll.github.io/github-code-search/blog/release-v1-5-0) | Advanced filter targets, regex mode, word-jump, scroll fix |
| [v1.4.0](https://fulll.github.io/github-code-search/blog/release-v1-4-0) | TUI visual overhaul, community files, demo animation |
| [v1.3.0](https://fulll.github.io/github-code-search/blog/release-v1-3-0) | Team-prefix grouping, replay command, JSON output |
| [v1.0.0](https://fulll.github.io/github-code-search/blog/release-v1-0-0) | Initial release |

> For the full list of commits between releases, see the
> [GitHub Releases page](https://github.com/fulll/github-code-search/releases).
17 changes: 9 additions & 8 deletions docs/blog/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@ Full release notes and changelogs are always available on

## v1 series

| Release | Highlights |
| -------------------------- | ----------------------------------------------------------------------------------------------------- |
| [v1.6.1](./release-v1-6-1) | Fix TUI rendering only the first fragment for multi-match files |
| [v1.6.0](./release-v1-6-0) | Power navigation: global fold/unfold (`Z`), Vim `gg`/`G` jumps, paged scroll, open-in-browser (`o`) |
| [v1.5.0](./release-v1-5-0) | Advanced filter targets (content/path/repo), regex mode, word-jump shortcuts, scroll accuracy fix |
| [v1.4.0](./release-v1-4-0) | TUI visual overhaul, violet branding, demo animation, SECURITY / Code of Conduct, README improvements |
| [v1.3.0](./release-v1-3-0) | Richer upgrade output, update-available notice, colorized `--help`, deep doc links, What's New blog |
| [v1.0.0](./release-v1-0-0) | Initial public release — interactive TUI, per-repo aggregation, markdown / JSON output |
| Release | Highlights |
| -------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [v1.7.0](./release-v1-7-0) | Shell completions (bash/zsh/fish), extended syntax highlighting (PHP, C/C++, Swift, Terraform, Dockerfile) |
| [v1.6.1](./release-v1-6-1) | Fix TUI rendering only the first fragment for multi-match files |
| [v1.6.0](./release-v1-6-0) | Power navigation: global fold/unfold (`Z`), Vim `gg`/`G` jumps, paged scroll, open-in-browser (`o`) |
| [v1.5.0](./release-v1-5-0) | Advanced filter targets (content/path/repo), regex mode, word-jump shortcuts, scroll accuracy fix |
| [v1.4.0](./release-v1-4-0) | TUI visual overhaul, violet branding, demo animation, SECURITY / Code of Conduct, README improvements |
| [v1.3.0](./release-v1-3-0) | Richer upgrade output, update-available notice, colorized `--help`, deep doc links, What's New blog |
| [v1.0.0](./release-v1-0-0) | Initial public release — interactive TUI, per-repo aggregation, markdown / JSON output |

---

Expand Down
73 changes: 73 additions & 0 deletions docs/blog/release-v1-7-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "What's new in v1.7.0"
description: "Shell completions for bash, zsh and fish, plus extended syntax highlighting for PHP, C/C++, Swift, Terraform/HCL and Dockerfile."
date: 2026-03-04
---

# What's new in github-code-search v1.7.0

> Full release notes: <https://github.com/fulll/github-code-search/releases/tag/v1.7.0>

## Highlights

### Shell completions — bash, zsh, fish

Tab-completion is now available for all three major shells. A new `completions` subcommand prints the appropriate script to stdout:

```bash
# bash
github-code-search completions --shell bash >> ~/.bashrc

# zsh (place the script in a $fpath directory)
github-code-search completions --shell zsh > ~/.zfunc/_github-code-search

# fish
github-code-search completions --shell fish > ~/.config/fish/completions/github-code-search.fish
```

When `--shell` is omitted, the shell is auto-detected from `$SHELL`.

The completion scripts cover:

- All subcommands (`query`, `upgrade`, `completions`)
- All flags (`--org`, `--format`, `--output-type`, `--exclude-repositories`, `--exclude-extracts`, `--group-by-team-prefix`, `--no-interactive`, `--include-archived`, `--no-cache`, `--debug`)
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The post claims the completion scripts cover all flags including --debug, but the completion generator metadata in src/completions.ts does not include a debug option, so the generated scripts won’t actually suggest it. Either add --debug to the completion option list (and consider scoping it to upgrade), or adjust this release note to match current completion behavior.

Suggested change
- All flags (`--org`, `--format`, `--output-type`, `--exclude-repositories`, `--exclude-extracts`, `--group-by-team-prefix`, `--no-interactive`, `--include-archived`, `--no-cache`, `--debug`)
- Commonly used flags (`--org`, `--format`, `--output-type`, `--exclude-repositories`, `--exclude-extracts`, `--group-by-team-prefix`, `--no-interactive`, `--include-archived`, `--no-cache`)

Copilot uses AI. Check for mistakes.
- Enumerated flag values where applicable (`--format markdown|json`, `--output-type repo-and-matches|repo-only`)

#### Auto-refresh on upgrade

If you have installed completions, they are **refreshed automatically** every time you run `github-code-search upgrade`. No manual action needed — the completion file is overwritten in-place.

Comment on lines +17 to +39
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bash install example appends the generated script into ~/.bashrc, but the “Auto-refresh on upgrade” note below only applies when completions are written to the standard completion file path that upgrade refreshes (or when installed via install.sh). As written, users who follow the >> ~/.bashrc approach won’t get auto-refresh and may accumulate duplicate definitions; consider changing the bash example to the recommended install method (e.g. sourcing from the completion file path or using the eval "$(...)" pattern) and clarifying the auto-refresh requirement.

Copilot uses AI. Check for mistakes.
#### Install script

The `install.sh` script now calls `install_completions()` at the end of an installation, writing the completion file for the detected shell:

```bash
curl -sSL https://raw.githubusercontent.com/fulll/github-code-search/main/install.sh | bash
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The install command uses curl -sSL ... | bash. Using -f as well (-fsSL) is safer because it fails on non-2xx HTTP responses instead of piping an error page into the shell; this also matches the usage shown at the top of install.sh.

Suggested change
curl -sSL https://raw.githubusercontent.com/fulll/github-code-search/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/fulll/github-code-search/main/install.sh | bash

Copilot uses AI. Check for mistakes.
```

### Extended syntax highlighting

Five new language profiles have been added to the TUI code viewer:

| Language | Keywords → magenta | Special tokens → cyan |
| ----------------- | -------------------------------------------- | ------------------------------------------------------------------------------ |
| **PHP** | `function`, `class`, `echo`, `foreach`… | `$variables`, PascalCase types — `#[Attributes]` correctly NOT dimmed (PHP 8+) |
| **C / C++** | `int`, `void`, `struct`, `class`, `nullptr`… | `#include`/`#define` directives |
| **Swift** | `var`, `let`, `func`, `guard`, `protocol`… | PascalCase types |
| **Terraform/HCL** | `resource`, `variable`, `output`, `module`… | Booleans / `null` |
| **Dockerfile** | `FROM`, `RUN`, `CMD`, `COPY`, `EXPOSE`… | `$ENV_VAR` / `${VAR}` references |

Language detection is extension-based first (`Dockerfile.ts` is correctly identified as TypeScript, not Dockerfile). Filename-based Dockerfile detection is the fallback for files without a known extension.

12 new file extensions are now recognised: `.php`, `.phtml`, `.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx`, `.swift`, `.tf`, `.hcl`.

---

## Upgrade

```bash
github-code-search upgrade
```

Or grab the latest binary directly from the
[GitHub Releases page](https://github.com/fulll/github-code-search/releases/tag/v1.7.0).
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "github-code-search",
"version": "1.6.1",
"version": "1.7.0",
"description": "Interactive GitHub code search with per-repo aggregation",
"keywords": [
"bun",
Expand Down