Skip to content

Latest commit

 

History

History
60 lines (48 loc) · 4.43 KB

File metadata and controls

60 lines (48 loc) · 4.43 KB

Dotfiles Components and Workflow Tools

This document outlines the key tools and components managed by these dotfiles and used in the development workflow.

Core Management

  • chezmoi: Manages the dotfiles themselves, handling installation, updates, and templating across different environments.
  • mise-en-place: Manages versions of development tools (e.g., Node.js, Python, Go, Rust, arduino-cli). Ensures consistent tool versions across projects and the system. Activated automatically via shell integration.

Shell Environment (Zsh)

  • Zsh: The primary interactive shell.
    • fzf: A command-line fuzzy finder, integrated for:
      • History search (Ctrl+R).
      • Directory search/change (Alt/Option+C).
      • File search (Ctrl+T).
      • Command completions (potentially via fzf-tab).
    • fzf-tab (Implied): Provides fzf-powered completions for various commands (e.g., git, kubectl).
    • bat: A cat clone with syntax highlighting, used for previewing files within fzf.
    • zkbd: Built-in Zsh utility to configure key bindings for terminal emulators.

Editor (Neovim)

Configuration is managed via Lua (private_dot_config/nvim/lua/).

  • Core & UI:
    • Lazy.nvim (Assumed): Likely used as the plugin manager (standard practice).
    • Treesitter: Provides advanced syntax parsing for features like highlighting, text objects, and navigation.
      • nvim-treesitter-textobjects: Defines text objects based on Treesitter nodes (e.g., functions, loops).
      • nvim-treesitter-textsubjects: Provides additional text subjects for selection/operation.
    • Tabout: Allows using <Tab> to navigate out of pairs (parentheses, brackets, etc.).
    • Flash: Enhanced motion/search within the viewport.
    • Snacks: Used in conjunction with Flash for picker actions.
  • Language Server Protocol (LSP):
    • Built-in LSP Client: Neovim's core LSP functionality.
    • nvim-lspconfig (Implied): Standard configurations for various language servers.
    • Navic: Displays LSP symbol context (like current function/class) in the status line or winbar.
  • Completion & Snippets:
    • Blink: Performant completion plugin with LSP, snippets, and fuzzy matching.
    • LuaSnip: Snippet engine.
  • Formatting & Linting:
    • Conform: Manages and runs code formatters.
    • nvim-lint: Asynchronous linting framework, running linters on events like saving.
  • Git Integration:
    • Gitsigns: Shows Git status (added, modified, deleted lines) in the sign column and provides related actions (preview hunk, stage, reset, blame, etc.).
  • AI / LLM Integration:
    • CodeCompanion.nvim: AI-powered coding plugin supporting Anthropic, Copilot, Gemini, Ollama, OpenAI and other LLMs.
      • Strategies (strategies.lua): Defines different interaction modes (e.g., chat, workflow).
      • Tools: Allows the LLM to invoke external commands securely:
        • git diff, git log, git status, git commit, git push
        • arduino-cli compile, arduino-cli upload, arduino-cli monitor
      • Prompts (private_prompts/): Pre-defined prompt templates and workflows (e.g., Arduino code generation).

Terminal Utilities

  • ripgrep (rg): Fast line-oriented search tool, often used in scripts and debugging.

Containerization (for Testing)

  • Docker / Podman: Used to build and run container images for testing the dotfiles environment in isolation.