Expert assistant for working with this modular Emacs configuration. Helps modify, debug, and extend Emacs Lisp files in a personal .emacs.d setup with LSP, org-mode, evil, and custom Chinese/English input support.
Expert assistant for working with a modular Emacs configuration repository (`~/.emacs.d`). This skill helps you navigate, modify, and extend Emacs Lisp configuration files with support for Go, Rust, JavaScript, Python, org-mode, LSP integration, evil-mode, and Chinese/English input methods.
When working with this Emacs configuration:
1. **Understand the Structure**
- `init.el` is the entry point that loads all modules
- `lisp/init-*.el` files contain modular configuration (packages, UI, org-mode, keybindings, etc.)
- `lisp/moonwwdz-*.el` files contain personal custom utilities
- `git-package/` contains git submodule dependencies (lsp-bridge, evil, emacs-rime, etc.)
- `theme/` contains custom color themes
- `elpa/` is the standard package directory (auto-managed)
2. **Before Making Changes**
- Always read the relevant `init-*.el` or `moonwwdz-*.el` file first
- Check `init-packages.el` to understand package dependencies
- Look for existing keybindings in `init-keyboard.el` to avoid conflicts
- Review the README or comments for context
3. **When Adding New Functionality**
- For new packages: add to `init-packages.el` and create/update relevant `init-*.el` module
- For personal utilities: create or extend `moonwwdz-*.el` files with `moonwwdz-` prefix
- For keybindings: add to `init-keyboard.el` and document in comments
- For language support: follow patterns in existing `init-*.el` files (e.g., check `init-golang.el` if present)
4. **When Modifying Configuration**
- Preserve the modular structure (don't put everything in `init.el`)
- Use `use-package` macro for package configuration when possible
- Add comments explaining non-obvious configuration choices
- Keep personal customizations in `moonwwdz-*.el` files separate from general `init-*.el` modules
5. **When Debugging Issues**
- Check for load errors in `*Messages*` buffer
- Verify package dependencies are installed (check `elpa/` or `git-package/`)
- Look for keybinding conflicts using `C-h k` or `describe-key`
- Test changes incrementally with `eval-buffer` or `eval-region`
6. **Git Submodule Management**
- Packages in `git-package/` are git submodules
- To update: `cd git-package/<package> && git pull origin main`
- To add new submodule: `git submodule add <url> git-package/<name>`
- Always commit submodule changes separately
7. **Key Integration Points**
- LSP support via `lsp-bridge` (in `git-package/`)
- Vim emulation via `evil` (keybindings may differ from standard Emacs)
- Org-mode capture templates at `C-c c`
- Chinese input via `emacs-rime` (requires Rime installation)
- Completion via `company-mode`
8. **Essential Dependencies**
- Python packages required: `epc`, `orjson`, `sexpdata`, `six`, `setuptools`, `paramiko`, `rapidfuzz`
- Ensure these are installed before modifying LSP or completion features
**User:** "Add support for Markdown mode with syntax highlighting"
**Assistant:**
1. Read `lisp/init-packages.el` to see package management pattern
2. Add `markdown-mode` to package list
3. Create or update `lisp/init-markdown.el` with configuration
4. Add `(require 'init-markdown)` to `init.el`
5. Suggest keybindings for preview in `init-keyboard.el`
**User:** "My LSP completions aren't working in Go files"
**Assistant:**
1. Read `lisp/moonwwdz-golang.el` and check LSP bridge configuration
2. Verify `git-package/lsp-bridge/` submodule is up to date
3. Check if Python dependencies (epc, orjson) are installed
4. Look for errors in `*lsp-bridge*` buffer
5. Suggest debugging steps or configuration fixes
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/emacs-configuration-assistant/raw