From 8a7e34e56d8c40bf3bf2f996b4991a28abf8b517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20S=C3=A1nchez?= Date: Wed, 21 Oct 2026 15:13:08 +0100 Subject: [PATCH] Merge abbreviation files into user config instead of spreading All the `*-abbreviations.nu` files merged their abbreviations with `{...$abbreviations ...$env.config.abbreviations}`. If the user had already defined any of those abbreviations (for example in `config.nu`, before sourcing the file, or by sourcing the same file twice), nushell rejects the record literal with: Error: nu::shell::column_defined_twice x Record field or table column used twice: grbm `merge` keeps the same precedence (the user's value wins) without erroring on duplicate keys. --- abbreviations/bat/bat-abbreviations.nu | 5 +---- abbreviations/chezmoi/chezmoi-abbreviations.nu | 5 +---- abbreviations/docker/docker-abbreviations.nu | 5 +---- abbreviations/exa/exa-abbreviations.nu | 5 +---- abbreviations/eza/eza-abbreviations.nu | 5 +---- abbreviations/git/git-abbreviations.nu | 5 +---- 6 files changed, 6 insertions(+), 24 deletions(-) diff --git a/abbreviations/bat/bat-abbreviations.nu b/abbreviations/bat/bat-abbreviations.nu index d3482d67..1a22f68d 100644 --- a/abbreviations/bat/bat-abbreviations.nu +++ b/abbreviations/bat/bat-abbreviations.nu @@ -8,8 +8,5 @@ const bat_abbreviations = { } export-env { - $env.config.abbreviations = { - ...$bat_abbreviations - ...$env.config.abbreviations - } + $env.config.abbreviations = ($bat_abbreviations | merge $env.config.abbreviations) } diff --git a/abbreviations/chezmoi/chezmoi-abbreviations.nu b/abbreviations/chezmoi/chezmoi-abbreviations.nu index a9b21dc5..87ff4414 100644 --- a/abbreviations/chezmoi/chezmoi-abbreviations.nu +++ b/abbreviations/chezmoi/chezmoi-abbreviations.nu @@ -8,8 +8,5 @@ const chezmoi_abbreviations = { } export-env { - $env.config.abbreviations = { - ...$chezmoi_abbreviations - ...$env.config.abbreviations - } + $env.config.abbreviations = ($chezmoi_abbreviations | merge $env.config.abbreviations) } diff --git a/abbreviations/docker/docker-abbreviations.nu b/abbreviations/docker/docker-abbreviations.nu index 5415ad8a..54bd305d 100644 --- a/abbreviations/docker/docker-abbreviations.nu +++ b/abbreviations/docker/docker-abbreviations.nu @@ -35,8 +35,5 @@ const docker_abbreviations = { } export-env { - $env.config.abbreviations = { - ...$docker_abbreviations - ...$env.config.abbreviations - } + $env.config.abbreviations = ($docker_abbreviations | merge $env.config.abbreviations) } diff --git a/abbreviations/exa/exa-abbreviations.nu b/abbreviations/exa/exa-abbreviations.nu index a4f9a0fd..8fe239f8 100644 --- a/abbreviations/exa/exa-abbreviations.nu +++ b/abbreviations/exa/exa-abbreviations.nu @@ -8,8 +8,5 @@ const exa_abbreviations = { } export-env { - $env.config.abbreviations = { - ...$exa_abbreviations - ...$env.config.abbreviations - } + $env.config.abbreviations = ($exa_abbreviations | merge $env.config.abbreviations) } diff --git a/abbreviations/eza/eza-abbreviations.nu b/abbreviations/eza/eza-abbreviations.nu index e7458fc1..98b38e17 100644 --- a/abbreviations/eza/eza-abbreviations.nu +++ b/abbreviations/eza/eza-abbreviations.nu @@ -8,8 +8,5 @@ const eza_abbreviations = { } export-env { - $env.config.abbreviations = { - ...$eza_abbreviations - ...$env.config.abbreviations - } + $env.config.abbreviations = ($eza_abbreviations | merge $env.config.abbreviations) } diff --git a/abbreviations/git/git-abbreviations.nu b/abbreviations/git/git-abbreviations.nu index 7fe48d3f..8ef93e2d 100644 --- a/abbreviations/git/git-abbreviations.nu +++ b/abbreviations/git/git-abbreviations.nu @@ -187,8 +187,5 @@ const git_abbreviations = { } export-env { - $env.config.abbreviations = { - ...$git_abbreviations - ...$env.config.abbreviations - } + $env.config.abbreviations = ($git_abbreviations | merge $env.config.abbreviations) }