<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs.git/modules/prog-general.el, branch v0.7.2</title>
<subtitle>my Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2</id>
<link rel='self' href='https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/'/>
<updated>2025-11-03T21:43:36+00:00</updated>
<entry>
<title>refactor: Replace doom-modeline with mood-line and remove deprecated tree-sitter</title>
<updated>2025-11-03T21:43:36+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-03T21:43:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=bc353c614d7235edc0c1325edfef0b385fc1d31d'/>
<id>urn:sha1:bc353c614d7235edc0c1325edfef0b385fc1d31d</id>
<content type='text'>
Method 2 improvements for cleaner, faster configuration:

1. **Replaced doom-modeline with mood-line** (modules/modeline-config.el)
   - Simplified from 70+ lines to ~10 lines (-40 lines net)
   - mood-line is lightweight, minimal, inspired by doom-modeline
   - Better performance with no dependencies
   - Keeps all essential features: buffer status, major mode, VCS,
     flycheck, cursor position, multiple-cursors counters

2. **Removed deprecated tree-sitter package** (modules/prog-general.el)
   - Deleted `(use-package tree-sitter)`
   - Now relies solely on Emacs 29+ built-in treesit with treesit-auto
   - treesit-auto continues to manage grammars automatically
   - No functionality lost, cleaner dependency tree

Both changes serve Method 2: "Stop Problems Before They Appear"
- Simpler code = fewer bugs
- Fewer dependencies = less maintenance
- Native features = better integration

Updated todo.org to mark both tasks complete [2/5 in Method 2].

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix(dirvish): move deadgrep from D to G, preserve dired-do-delete on D</title>
<updated>2025-10-29T18:14:00+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-29T18:14:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=65c5a4805ce373f80f3cfb048c497e2ecd65235e'/>
<id>urn:sha1:65c5a4805ce373f80f3cfb048c497e2ecd65235e</id>
<content type='text'>
The previous commit incorrectly moved deadgrep to 'D', which conflicts
with the important dired-do-delete command (immediate delete of marked
files). This commit moves deadgrep to 'G' instead.

## Changes

**prog-general.el:**
- Move cj/deadgrep-here from 'D' to 'G' (was dired-do-chgrp, rarely used)

**dirvish-config.el:**
- Updated Commentary to document both 'D' and 'G' keybindings
- 'D' remains dired-do-delete (standard dired immediate delete)
- 'G' is now deadgrep search

## Final Keybinding Map

| Key | Binding                       | Purpose                        |
|-----|-------------------------------|--------------------------------|
| d   | cj/dirvish-duplicate-file     | Duplicate with "-copy" suffix  |
| D   | dired-do-delete               | Delete marked files (standard) |
| g   | dirvish-quick-access          | Quick directory menu           |
| G   | cj/deadgrep-here              | Search with deadgrep           |

Capital G is mnemonic for "Grep" and doesn't conflict with important
dired commands. dired-do-chgrp is rarely used and not a loss.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(dirvish): add file duplication with 'd' key, move deadgrep to 'D'</title>
<updated>2025-10-29T18:08:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-29T18:08:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=a9773df25b6ee0e721b6b5e0e9f9872ffa86d796'/>
<id>urn:sha1:a9773df25b6ee0e721b6b5e0e9f9872ffa86d796</id>
<content type='text'>
This commit adds a convenient file duplication function to dirvish and
reorganizes keybindings to avoid conflicts.

## Changes

**1. New function: cj/dirvish-duplicate-file (dirvish-config.el:150)**

Duplicates the file at point with "-copy" suffix before the extension:
- report.pdf → report-copy.pdf
- script.el → script-copy.el
- README → README-copy

Features:
- Prevents duplicating directories (files only)
- Checks if target exists and prompts to overwrite
- Refreshes buffer automatically after copying
- Shows clear message with old and new names

**2. Keybinding changes**

dirvish-config.el:
- Bound 'd' to cj/dirvish-duplicate-file (was dired-flag-file-deletion)
- Updated Commentary section to document new binding

prog-general.el:
- Moved cj/deadgrep-here from 'd' to 'D' (capital D)
- More mnemonic: D for Deadgrep
- Avoids conflict with new duplicate function

## Rationale

The 'd' key is prime real estate in file managers, and duplicating files
is a very common operation. The standard dired-flag-file-deletion is still
available via 'x' or the mark-and-delete workflow.

Deadgrep on 'D' is more discoverable (capital D for Deadgrep) and less
likely to be pressed accidentally.

## Usage

In dirvish, navigate to a file and press:
- 'd' - Duplicate file with "-copy" suffix
- 'D' - Search with deadgrep in current directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor:prog-general: Simplify yasnippet configuration</title>
<updated>2025-10-28T22:26:27+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-28T22:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=5af4ba9c0f47099623994f69cf2edda80f12b5ce'/>
<id>urn:sha1:5af4ba9c0f47099623994f69cf2edda80f12b5ce</id>
<content type='text'>
Replace the `setq yas-snippet-dirs` with `list` function for better
readability and add `yas-reload-all` to ensure snippets are
reloaded. Remove `ivy-yasnippet` configuration as it is not
required.
</content>
</entry>
<entry>
<title>feat:which-key: Add descriptive labels for custom keymaps</title>
<updated>2025-10-27T23:45:23+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-27T23:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=87034eab17625165b884128d8058c1158fc2f50f'/>
<id>urn:sha1:87034eab17625165b884128d8058c1158fc2f50f</id>
<content type='text'>
Enhance which-key integration by providing detailed descriptions for
new key bindings across multiple modules. This improves the
usability of custom keymaps by clarifying the purpose of each
keybinding, making it easier for users to navigate and understand
different menus and options available within the configuration.

This update ensures that all custom keymaps now display a
descriptive label in the which-key popup to explain their
functionality, aiding users in identifying keymap purposes promptly.
</content>
</entry>
<entry>
<title>feat:programming: Enhance language-specific keybindings and setup</title>
<updated>2025-10-20T21:17:30+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-20T21:17:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=df4469f231e86877b7d055bf989220a5fbc0a763'/>
<id>urn:sha1:df4469f231e86877b7d055bf989220a5fbc0a763</id>
<content type='text'>
Add language-specific keybindings and configurations for C, Go,
Python, and shell scripting panels. Introduce system utility
function declarations and improve keybinding consistency across
languages. Implement keybindings for debug, format, and static
analysis tools tailored to each programming language, enhancing the
developer experience and workflow efficiency.
</content>
</entry>
<entry>
<title>feat: prog-general: integrate LSP for improved code intelligence</title>
<updated>2025-10-20T20:00:02+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-20T20:00:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=3a8638a6490a682369f66987fb5aafa4c5acf19d'/>
<id>urn:sha1:3a8638a6490a682369f66987fb5aafa4c5acf19d</id>
<content type='text'>
Add Language Server Protocol support for intelligent code completion
and navigation across multiple languages. Configure `lsp-mode` and
`lsp-ui` packages with performance optimizations and enhanced
completion features.
</content>
</entry>
<entry>
<title>feat: prog-general: Pin Go grammar version for Emacs compatibility</title>
<updated>2025-10-20T19:41:32+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-20T19:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=8edaf02481bd61b35d82f2be62e521d9aaf64d2a'/>
<id>urn:sha1:8edaf02481bd61b35d82f2be62e521d9aaf64d2a</id>
<content type='text'>
Add cl-lib requirement and pin Go grammar to v0.19.1 to ensure
compatibility with Emacs 30.2 font-lock queries. Remove redundant
hs-minor-mode hook from bicycle configuration.
</content>
</entry>
<entry>
<title>refactor: prog/python: Remove defers and update symbols</title>
<updated>2025-10-20T19:03:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-20T19:03:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=04b7574bf620eb4a6f31e4a25a24ada3f94fb501'/>
<id>urn:sha1:04b7574bf620eb4a6f31e4a25a24ada3f94fb501</id>
<content type='text'>
- Remove deferred loading from various use-package declarations to streamline.
- Replace deprecated `define-key` with `keymap-set` in `dired-mode-map`.
- Update Python configuration to prefer `python-ts-mode` over `python-mode` and ensure associated modes and hooks work with `python-ts-mode`.
- Clean up deprecated `auto-mode-alist` usage to reflect the transition to Tree-sitter based major modes.
</content>
</entry>
<entry>
<title>changing repositories</title>
<updated>2025-10-12T16:47:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-12T16:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=092304d9e0ccc37cc0ddaa9b136457e56a1cac20'/>
<id>urn:sha1:092304d9e0ccc37cc0ddaa9b136457e56a1cac20</id>
<content type='text'>
</content>
</entry>
</feed>
