Remove unused packages and config#23
Conversation
There was a problem hiding this comment.
Code Review
This pull request refactors the development environment by migrating Neovim to the built-in vim.pack manager, removing VS Code and Helix configurations, and introducing a Google Cloud CLI installation script. It also updates Node package management and refines Vim/Neovim settings for newer versions. Feedback highlights a potential typo in the Mac package list, the need for dynamic Homebrew prefix detection, and improvements to script robustness regarding non-interactive commands and empty package arrays. A specific Vim configuration change was also noted for potentially disabling file inclusion features.
| cmus | ||
| # For Docker | ||
| colima | ||
| container |
| . "$(dirname "${BASH_SOURCE[0]}")/lib.sh" | ||
|
|
||
| install_gcloud_mac() { | ||
| declare -r brew_prefix="/opt/homebrew" |
| if [ ! -f "$gcloud_sources_list" ]; then | ||
| echo "Adding Google Cloud GPG key (requires sudo)" | ||
| curl -sS "$gcloud_key_url" \ | ||
| | sudo gpg --dearmor --output "$gcloud_key_path" |
|
|
||
| # Install npm-only packages | ||
| echo "Installing global npm packages …" | ||
| npm install --global "${NPM_PACKAGES[@]}" |
There was a problem hiding this comment.
| set history=10000 | ||
| set hlsearch | ||
| set include=. | ||
| set include= |
- Replace lazy.nvim with vim.pack (built-in nvim 0.12 package manager) - Use `use()` helper to colocate plugin specs with setup functions - Switch nvim-treesitter to main branch for nvim 0.12 API compatibility - Build treesitter parsers via PackChanged hook (equiv to lazy build step) - Build telescope-fzf-native via PackChanged hook - Remove CopilotChat, Sidekick, and nvim-treesitter-textobjects plugins - Add tree-sitter-cli to brew and apt package lists - Update README with vim.pack.update() post-setup instructions - Fix install_github_packages to drop lazy.nvim sync reference Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
copilot.lua supports next-edit suggestion (nes), has better completion
integration, and is a pure Lua implementation. Remove the native
vim.lsp.enable('copilot') which conflicts with copilot.lua's own server.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Guard NPM_PACKAGES with length check so an empty array doesn't error - Pass --yes to gpg --dearmor for fully non-interactive runs Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
09450e7 to
4897b1b
Compare
|
@codex Please review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Bun has a simpler, more stable global install layout (~/.bun/bin/, or ~/.local/bin/ via BUN_INSTALL) and avoids the cross-version store-layout churn that broke pnpm 9 → 10 upgrades. Verified end-to-end via a clean docker build. - Move all 26 globals from PACKAGES (pnpm) to BUN_PACKAGES - Switch tobi/qmd → @tobilu/qmd: github source has no built dist/, but the published package on npm does - Drop `npm` from globals — Node bundles it; corepack provides shims for pnpm/yarn on demand for project-local work - Switch install_claude_code from `pnpm dlx` to `bun x` so we don't need pnpm to be eagerly activated by corepack - Eval fnm env in generate_completions so `npm completion` finds node (used to silently rely on a pnpm shim that has since been removed) - Remove the stale `pnpm approve-builds --global` step from README; no longer needed without pnpm globals (and `bd` was already removed) Note: `@github/copilot-language-server` stays on npm — bun's hoisting can't resolve its bundled language-server binary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- AGENTS.md: drop the obsolete Firefox-profile bullet (script/stow no longer has that special case) and update the Neovim section to reference vim.pack instead of lazy.nvim - init.lua: PackChanged kind is "delete" (per :h pack.txt), not "remove" — the early-return was dead code so deletes would fall through to the install/build branch - .vimrc: trailing whitespace on the leadtab listchars line was significant (it's a literal space in the option value); fix by appending a no-op trailing comma instead of stripping it Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
obsidian.nvim hard-errors at setup time if none of the configured workspace paths resolve to existing directories. That breaks nvim startup on fresh machines (containers, new boxes) where ~/notes hasn't been cloned yet. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bun's global install layout doesn't satisfy ajv-draft-04's
\`require('ajv/dist/core')\`, so yaml-language-server fails to start
under nvim with MODULE_NOT_FOUND. Same class of problem as
@github/copilot-language-server.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
oxfmt rejects --stdin-filename. The .vimrc already uses the correct flag; the conform formatter spec drifted out of sync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Globals are installed via bun now, so prepending ${PNPM_HOME}/bin makes
stale pnpm-9 shims left over on existing machines shadow the new bun
binaries in ~/.local/bin. Drop the PATH addition; PNPM_HOME stays
exported so pnpm-via-corepack still has somewhere for project-local
state.
Also drop the dead "eslint disabled in Deno projects" line from
AGENTS.md (init.lua doesn't enable an eslint LSP — oxlint/oxfmt/tsgo
are the things gated on Deno detection now), and add a README snippet
that finds and removes broken symlinks pointing into stowed-files/
after a package is deleted.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- cleanup_disk: add cleanup_bun for `bun pm cache rm`
- Drop comments that just narrate migration history ("we no longer
use ...", "old pnpm-9 shims would shadow ..."); the absence of the
code is enough
- Tighten the PackChanged build hook: replace the lazy.nvim comparison
block and decorative banner with a single line on the actual
non-obvious gotcha (PackChanged fires before rtp prepend)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Without an explicit prefix, npm installs globals into the fnm-managed per-version bin dir (~/.local/state/fnm_multishells/<id>/bin/). Switching Node versions then drops those binaries from PATH. Pointing npm at ~/.local (same root as bun's BUN_INSTALL) keeps copilot-language-server and yaml-language-server reachable across `fnm use`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
actions/checkout defaults to github.sha which, for workflow_run events, is the default branch — so docker/mac CI was rebuilding main on every PR push. Pin the checkout to github.event.workflow_run.head_sha so it tests the SHA that triggered bash-syntax. Also expand bash-syntax's path filter to .github/workflows/** so changes to any workflow file (including this one) trigger the chain. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- conform format_after_save: drop async/timeout_ms — they're no-ops
there (format_after_save is always async, timeout doesn't apply)
- obsidian.nvim: actually set conceallevel=1 in the BufEnter that the
ignore_conceal_warn comment claimed was setting it
- telescope project_files: pcall doesn't catch git_files's async error
("not in a git repo"), so the find_files fallback never fires;
check vim.fs.root(0, '.git') up front instead
- LSP gating: replace startup-only in_deno_project with per-buffer
detection via root_dir callbacks. Opening a Deno file from a
non-Deno cwd now correctly skips tsgo/oxlint/oxfmt (and vice versa)
- dirvish: rename <leader>t mapping to <leader>T so it doesn't shadow
the global telescope-pickers binding
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…Silicon gate - install_node_packages: export NPM_CONFIG_PREFIX="$HOME/.local" before the npm install. The stowed .npmrc isn't yet symlinked during the docker build (script/setup runs before stowed-files/ is COPYed in), so without the env var the npm globals fell back to fnm's per-version prefix. Now copilot-language-server and yaml-language-server land alongside the bun globals in ~/.local/bin. - install_gcloud: handle -h/--help so it actually prints usage instead of running the install path - setup_mac: bail with a clear error on Intel Macs. The brew_prefix is already hardcoded to /opt/homebrew and several formulae (e.g. Apple's `container`) require Apple Silicon, so this just makes the failure mode explicit at the top instead of cryptic later Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No description provided.