From 75bb954b2905a9e1d26a68e416b8f7a5d502f7a6 Mon Sep 17 00:00:00 2001 From: David Ham <64705+davidham@users.noreply.github.com> Date: Wed, 20 May 2026 10:24:04 -0500 Subject: [PATCH 1/2] chore: add editor hints for extension-less config files After moving gitconfig/gitignore/gitattributes/npmrc/nix.conf to their XDG locations, none have file extensions anymore, so editors fall back to plain text. Add hints two ways: 1. Vim modelines (top of each file) using the file's native comment syntax: '#' for gitconfig/gitattributes/gitignore/nix.conf, ';' for npmrc. Works in vim/nvim/emacs. 2. .vscode/settings.json with files.associations -- workspace-scoped, activates whenever the repo is opened as a VSCode workspace. Verified git still parses xdg/git/config with the modeline (it's a valid '#' comment line). --- .vscode/settings.json | 9 +++++++++ xdg/git/attributes | 1 + xdg/git/config | 1 + xdg/git/ignore | 1 + xdg/nix/nix.conf | 1 + xdg/npm/npmrc | 1 + 6 files changed, 14 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9c3b70a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "files.associations": { + "xdg/git/config": "properties", + "xdg/git/attributes": "properties", + "xdg/git/ignore": "ignore", + "xdg/npm/npmrc": "properties", + "xdg/nix/nix.conf": "properties" + } +} diff --git a/xdg/git/attributes b/xdg/git/attributes index 6bdc702..a56ef84 100644 --- a/xdg/git/attributes +++ b/xdg/git/attributes @@ -1,3 +1,4 @@ +# vim: filetype=gitattributes # Automatically normalize line endings for all text-based files #* text=auto # Disabled because of https://github.com/mathiasbynens/dotfiles/issues/149 :( diff --git a/xdg/git/config b/xdg/git/config index 06ebdfe..b06e84a 100644 --- a/xdg/git/config +++ b/xdg/git/config @@ -1,3 +1,4 @@ +# vim: filetype=gitconfig [alias] # View abbreviated SHA, description, and history graph of the latest 20 commits diff --git a/xdg/git/ignore b/xdg/git/ignore index 476c66e..ae26d4f 100644 --- a/xdg/git/ignore +++ b/xdg/git/ignore @@ -1,3 +1,4 @@ +# vim: filetype=gitignore .direnv/ .DS_Store **/.claude/settings.local.json diff --git a/xdg/nix/nix.conf b/xdg/nix/nix.conf index c7d7291..7f468c5 100644 --- a/xdg/nix/nix.conf +++ b/xdg/nix/nix.conf @@ -1 +1,2 @@ +# vim: filetype=conf experimental-features = nix-command flakes diff --git a/xdg/npm/npmrc b/xdg/npm/npmrc index 97b895e..463dbb5 100644 --- a/xdg/npm/npmrc +++ b/xdg/npm/npmrc @@ -1 +1,2 @@ +; vim: filetype=dosini ignore-scripts=true From fa2a694e67e816b00f6a43e9e1d8ae0e79c2928c Mon Sep 17 00:00:00 2001 From: David Ham <64705+davidham@users.noreply.github.com> Date: Wed, 20 May 2026 10:29:10 -0500 Subject: [PATCH 2/2] fix(vscode): use **/ prefix in files.associations globs Bare paths like 'xdg/git/config' weren't matching reliably in VS Code's files.associations. The **/-prefixed form matches the same path from any depth (still matches from workspace root) and works consistently across VS Code versions. --- .vscode/settings.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9c3b70a..4e23375 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,9 @@ { "files.associations": { - "xdg/git/config": "properties", - "xdg/git/attributes": "properties", - "xdg/git/ignore": "ignore", - "xdg/npm/npmrc": "properties", - "xdg/nix/nix.conf": "properties" + "**/xdg/git/config": "properties", + "**/xdg/git/attributes": "properties", + "**/xdg/git/ignore": "ignore", + "**/xdg/npm/npmrc": "properties", + "**/xdg/nix/nix.conf": "properties" } }