Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9253594
feat(neovim): enable leap.nvim with upstream recommended config
garbas Dec 27, 2025
9e621e6
feat(neovim): enable noice.nvim with nui.nvim dependency
garbas Dec 27, 2025
570bcac
feat(neovim): add nvim-surround for text object manipulation
garbas Dec 27, 2025
404b5fc
feat(neovim): add nvim-autopairs with treesitter integration
garbas Dec 27, 2025
30bfe46
feat(neovim): add todo-comments.nvim for highlighting TODOs
garbas Dec 27, 2025
bd12fa5
feat(neovim): add fidget.nvim and treesitter-textobjects
garbas Dec 27, 2025
d55e41f
feat(pre-commit): add hook to block AI attribution in commits
garbas Dec 27, 2025
a1b7c58
feat(neovim): add snacks.nvim collection of QoL utilities
garbas Dec 27, 2025
7e46903
feat(neovim): add aerial.nvim for code outline navigation
garbas Dec 27, 2025
7cc747e
feat(neovim): add vim-sleuth for automatic indentation detection
garbas Dec 27, 2025
c7bd180
refactor(neovim): remove redundant plugins
garbas Dec 27, 2025
dad8752
feat(neovim): add overseer.nvim with custom telescope integration
garbas Dec 27, 2025
07fa09a
feat(neovim): add render-markdown.nvim for enhanced markdown display
garbas Dec 27, 2025
2887a4c
ci: add automated Neovim test suite to CI workflow
garbas Dec 27, 2025
c1d6145
fix(ci): use Linux config (floki) instead of Darwin for ubuntu-latest…
garbas Dec 27, 2025
92d0023
fix(ci): use indigo instead of floki for neovim tests
garbas Dec 27, 2025
e8663eb
fix(ci): switch back to floki after adding homeConfiguration
garbas Dec 27, 2025
0f54f47
feat(test): convert Neovim tests to BATS framework
garbas Dec 28, 2025
a0307fb
chore(test): remove link.icon from error filter list
garbas Dec 28, 2025
d88d2dd
feat(neovim): wrap neovim with all plugin dependencies
garbas Dec 28, 2025
6135790
chore(test): filter additional non-critical checkhealth errors
garbas Dec 28, 2025
ee02f37
refactor(neovim): remove duplicate plugins, use snacks.nvim features
garbas Dec 28, 2025
bd61c45
docs(neovim): document snacks.nvim feature usage decisions
garbas Dec 28, 2025
d9b9dd6
refactor(neovim): replace zen-mode and toggleterm with snacks.nvim
garbas Dec 28, 2025
d153dc3
refactor(neovim): replace alpha-nvim with snacks.dashboard
garbas Dec 28, 2025
611dfbc
test(neovim): add comprehensive plugin loading tests
garbas Dec 28, 2025
a2419df
docs(neovim): add comprehensive inline plugin documentation
garbas Dec 28, 2025
434121a
docs: address PR review feedback on tmux and autopairs
garbas Dec 28, 2025
07195fc
perf(ci): optimize Neovim builds and add version docs
garbas Dec 28, 2025
471013f
fix(neovim): use viml type for vim-lastplace plugin
garbas Dec 28, 2025
1a50c93
fix(test): trigger vim-lastplace by opening a file
garbas Dec 29, 2025
36aa1da
fix(test): check vim-lastplace via runtimepath
garbas Dec 29, 2025
f85bbcd
fix(test): simplify vim-lastplace runtimepath check
garbas Dec 29, 2025
539f5ba
fix(test): add verbose vim-lastplace detection with glob
garbas Dec 29, 2025
4b4e8af
fix(test): remove multiline backslash causing syntax error
garbas Dec 29, 2025
3441377
feat(ci): make claude-review trigger only on comment
garbas Dec 29, 2025
6f8982b
fix(test): skip vim-lastplace test - autoload plugin
garbas Dec 29, 2025
dd609b8
chore(flox): update package dependencies and clean claude settings
garbas Dec 29, 2025
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
34 changes: 33 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ on:
branches: ["main"]

jobs:
check:
flake-check:
name: "Flake Check"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout repository"
Expand All @@ -23,3 +24,34 @@ jobs:

- name: "Run flake check"
run: "nix flake check"

neovim-test:
name: "Neovim test"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout repository"
uses: "actions/checkout@v5"

- name: "Install Nix"
uses: "cachix/install-nix-action@v31"
with:
extra_nix_config: |
experimental-features = nix-command flakes
substituters = https://cache.nixos.org https://cache.flox.dev https://devenv.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs= devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=

- name: "Build Neovim configuration"
id: "build-neovim"
run: |
# Build once and capture the output path for reuse in tests
NVIM_PATH=$(nix build .#homeConfigurations.floki.config.programs.neovim.finalPackage --accept-flake-config --no-link --print-out-paths --print-build-logs)
echo "path=$NVIM_PATH" >> $GITHUB_OUTPUT

- name: "Run Neovim test suite"
run: |
# Export the built Neovim to PATH so tests use our custom configuration
# The devShell has BATS but not our homeConfiguration's neovim
# We reuse the Neovim path from the previous build step (no duplicate build)
# Neovim is wrapped with all required tools (rg, fd, lazygit, ncurses) via extraPackages
export PATH="${{ steps.build-neovim.outputs.path }}/bin:$PATH"
nix develop --command bats scripts/test-neovim.sh
22 changes: 8 additions & 14 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,16 @@
name: Claude Code Review

on:
pull_request:
types: [opened, synchronize]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"
issue_comment:
types: [created]

jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
# Only run on PR comments that contain "@claude review" or "claude review"
if: |
github.event.issue.pull_request &&
(contains(github.event.comment.body, '@claude review') ||
contains(github.event.comment.body, 'claude review'))

runs-on: ubuntu-latest
permissions:
Expand All @@ -38,7 +32,7 @@ jobs:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number }}
PR NUMBER: ${{ github.event.issue.number }}

Please review this pull request and provide feedback on:
- Code quality and best practices
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
/claude/shell-snapshots/
/claude/statsig/
/claude/todos/
/claude/*.md

# Personal TODO tracking
TODO.md
Expand Down
1 change: 0 additions & 1 deletion claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"type": "command",
"command": "bash ~/.claude/statusline-command.sh"
},
"alwaysThinkingEnabled": false,
"editorMode": "vim",
"mcpServers": {
"flox": {
Expand Down
25 changes: 25 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,26 @@
commitizen = {
enable = true;
};
# Block commits with AI attribution
no-ai-attribution = {
enable = true;
name = "no-ai-attribution";
description = "Block commits with AI attribution footer";
entry = toString (
pkgs.writeShellScript "no-ai-attribution" ''
commit_msg_file="$1"
# Block actual attribution footer (with emoji or https://claude.com link)
if grep -qE "🤖.*Generated.*claude\.com|Co-Authored-By: Claude <" "$commit_msg_file"; then
echo "❌ ERROR: Commit message contains AI attribution footer!"
echo " Remove '🤖 Generated with [Claude Code](https://claude.com/...)' line."
echo " Remove 'Co-Authored-By: Claude <noreply@anthropic.com>' line."
echo " See .claude/CLAUDE.md for commit message guidelines."
exit 1
fi
''
);
stages = [ "commit-msg" ];
};
};
};
in
Expand All @@ -234,6 +254,7 @@
opentofu
_1password-cli
jq
bats
]
++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ nix-darwin.packages.${system}.default ];
shellHook = ''
Expand Down Expand Up @@ -306,6 +327,10 @@
// mkHomeConfiguration {
system = "aarch64-linux";
name = "indigo";
}
// mkHomeConfiguration {
system = "x86_64-linux";
name = "floki";
};
darwinConfigurations =
{ }
Expand Down
Loading
Loading