7 Commits a6c90134a9 ... 940c843cb7

Author SHA1 Message Date
  Thomas Dy 940c843cb7 nixpkgs/elvish: update flake.lock 7 months ago
  Thomas Dy 0d4ab4b60b nixpkgs/neovim: update flake.lock and plugins 7 months ago
  Thomas Dy 0b87d15b43 nixpkgs/neovim: add bash-language-server 7 months ago
  Thomas Dy f463dcd64e nixpkgs/neovim: remove null-ls 7 months ago
  Thomas Dy 3dfe4d3bb7 git: fix hhrh alias 7 months ago
  Thomas Dy 96c96ff849 nixpkgs/neovim: update mappings 7 months ago
  Thomas Dy 71dea4bd4d bin: don't start a shell with cdtemp prune 8 months ago

+ 1 - 1
.config/git/config

@@ -40,7 +40,7 @@
 	# head's history fast-forward (works even if a different branch is checked out)
 	hhff = "!git push . $(git head)@{upstream}:$(git head)"
 	# head's history reset hard
-	hhrh = hhf --force
+	hhrh = hhff --force
 	# rebase upstream
 	ru = rebase @{upstream}
 	# rebase interactive upstream

+ 6 - 6
.config/nixpkgs/elvish/flake.lock

@@ -5,11 +5,11 @@
         "systems": "systems"
       },
       "locked": {
-        "lastModified": 1681202837,
-        "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
+        "lastModified": 1694529238,
+        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
+        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
         "type": "github"
       },
       "original": {
@@ -20,11 +20,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1680303149,
-        "narHash": "sha256-JQO/mAWguuN0VPRxDrYDw6LtyVpFgf3w6TR5MraF9kg=",
+        "lastModified": 1695806987,
+        "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "242246ee1e58f54d2322227fc5eef53b4a616a31",
+        "rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
         "type": "github"
       },
       "original": {

+ 4 - 4
.config/nixpkgs/elvish/flake.nix

@@ -9,15 +9,15 @@
   outputs = { self, nixpkgs, flake-utils }:
     flake-utils.lib.eachDefaultSystem (system:
       with nixpkgs.legacyPackages.${system}; {
-        packages.carapace-bin = buildGoModule rec {
+        packages.carapace-bin = buildGo121Module rec {
           pname = "carapace-bin";
-          version = "0.24.1";
+          version = "0.27.0";
 
           src = fetchFromGitHub {
             owner = "rsteube";
             repo = "carapace-bin";
             rev = "v${version}";
-            hash = "sha256-eJD+7J5R+Oomj4QbOj5QHB30F0jpWmnkbl6bhVOEgDU=";
+            hash = "sha256-UcJbWOYkNUJEilJL/LG5o+I1ugqEOEGfs+uvKUMnTMU=";
           };
 
           ldflags = [ "-s" "-w" ];
@@ -30,7 +30,7 @@
             go generate ./...
           '';
 
-          vendorSha256 = "sha256-UMRAyUcGxPsW4Q7o5KtXMmdcuY+DEGhbm4jPBVLOLGQ=";
+          vendorSha256 = "sha256-PN8ARsJQqRj333ervoy24PZoWkrCIYiGxOovzEhPNZQ=";
         };
 
         packages.elvish =

+ 6 - 6
.config/nixpkgs/neovim/flake.lock

@@ -5,11 +5,11 @@
         "systems": "systems"
       },
       "locked": {
-        "lastModified": 1687709756,
-        "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
+        "lastModified": 1694529238,
+        "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
         "owner": "numtide",
         "repo": "flake-utils",
-        "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
+        "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
         "type": "github"
       },
       "original": {
@@ -20,11 +20,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1688798537,
-        "narHash": "sha256-+3QEnDgBiso8lgUJpMagn6xCujmarc6zCWfKYAd6nqU=",
+        "lastModified": 1695806987,
+        "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "842e90934a352f517d23963df3ec0474612e483c",
+        "rev": "f3dab3509afca932f3f4fd0908957709bb1c1f57",
         "type": "github"
       },
       "original": {

+ 4 - 31
.config/nixpkgs/neovim/lsp.lua

@@ -6,11 +6,11 @@ vim.diagnostic.config({
 local capabilities = require('cmp_nvim_lsp').default_capabilities()
 
 local nvim_lsp = require('lspconfig')
-local null_ls = require('null-ls')
 
-local null_ls_sources = {
-  null_ls.builtins.code_actions.gitsigns,
-}
+nvim_lsp.bashls.setup({
+  capabilities = capabilities,
+  on_attach = on_attach,
+});
 
 if vim.fn.executable("node_modules/.bin/eslint") == 1 then
   local options = {}
@@ -37,11 +37,6 @@ if vim.fn.executable("node_modules/.bin/eslint") == 1 then
 end
 
 
-if vim.fn.executable("shellcheck") == 1 then
-  table.insert(null_ls_sources, null_ls.builtins.diagnostics.shellcheck)
-  table.insert(null_ls_sources, null_ls.builtins.code_actions.shellcheck)
-end
-
 if vim.fn.executable("deno") == 1 then
   nvim_lsp.denols.setup({
     capabilities = capabilities,
@@ -84,8 +79,6 @@ if vim.fn.executable("gopls") == 1 then
     capabilities = capabilities,
     on_attach = on_attach,
   });
-elseif vim.fn.executable("gofmt") == 1 then
-  table.insert(null_ls_sources, null_ls.builtins.formatting.gofmt)
 end
 
 if vim.fn.executable("solargraph") == 1 then
@@ -106,26 +99,6 @@ end
 
 local group = vim.api.nvim_create_augroup('LspFormatting', { clear = false })
 
-null_ls.setup({
-  sources = null_ls_sources,
-
-  on_attach = function(client, bufnr)
-    -- format on save
-    if client.server_capabilities.documentFormattingProvider then
-      for key, cmd in pairs(vim.api.nvim_get_autocmds({ group = group, buffer = bufnr })) do
-        vim.api.nvim_del_autocmd(cmd.id)
-      end
-      vim.api.nvim_create_autocmd('BufWritePre', {
-        group = group,
-        buffer = bufnr,
-        callback = function()
-          vim.lsp.buf.format()
-        end,
-      })
-    end
-  end,
-});
-
 -- custom LSP servers
 local configs = require('lspconfig.configs')
 

+ 1 - 1
.config/nixpkgs/neovim/mappings.lua

@@ -87,6 +87,6 @@ function on_attach(client, bufnr)
   vim.keymap.set('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
   vim.keymap.set('v', '<space>ca', '<cmd>lua vim.lsp.buf.range_code_action()<CR><ESC>', opts)
   vim.keymap.set('n', 'gr', '<cmd>Telescope lsp_references<CR>', opts)
-  vim.keymap.set('n', '<space>f', '<cmd>lua vim.lsp.buf.format({ async = true })<CR>', opts)
   vim.keymap.set('n', '<Leader>fs', '<cmd>Telescope lsp_document_symbols<CR>', opts)
+  vim.keymap.set('n', '<Leader>fr', '<cmd>Telescope resume<CR>', opts)
 end

+ 2 - 1
.config/nixpkgs/neovim/node-lsp/default.nix

@@ -13,9 +13,10 @@ buildNpmPackage {
     cp -r node_modules "$out/lib"
 
     mkdir -p "$out/bin"
+    ln -s "$out/lib/node_modules/.bin/bash-language-server" "$out/bin"
     ln -s "$out/lib/node_modules/.bin/typescript-language-server" "$out/bin"
     ln -s "$out/lib/node_modules/.bin/vscode-eslint-language-server" "$out/bin"
   '';
 
-  npmDepsHash = "sha256-57BAfwiT03gzxS8+d3uOjFSZTVKCQpihEHzvbQIiAEI=";
+  npmDepsHash = "sha256-ZLhlft9MucWjqcbscEJ7yk4AxIZpQv0SVMuO4DmuJ/c=";
 }

+ 325 - 0
.config/nixpkgs/neovim/node-lsp/package-lock.json

@@ -8,16 +8,119 @@
       "name": "node-lsp",
       "version": "0.0.0",
       "dependencies": {
+        "bash-language-server": "^5.0.0",
         "typescript": "^5.1.3",
         "typescript-language-server": "^3.3.2",
         "vscode-langservers-extracted": "^4.7.0"
       }
     },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
     "node_modules/@vscode/l10n": {
       "version": "0.0.11",
       "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.11.tgz",
       "integrity": "sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA=="
     },
+    "node_modules/bash-language-server": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.0.0.tgz",
+      "integrity": "sha512-1S5PMQO4PwXDIiPHUE6dYd8vZF1NZqb3i4Astd7UXD4lSWnSo71MqSmTpTs/dTYcvo2/9z2IymbNPPyn/VuM2w==",
+      "dependencies": {
+        "fast-glob": "3.3.0",
+        "fuzzy-search": "3.2.1",
+        "node-fetch": "2.6.12",
+        "turndown": "7.1.2",
+        "vscode-languageserver": "8.0.2",
+        "vscode-languageserver-textdocument": "1.0.8",
+        "web-tree-sitter": "0.20.8",
+        "zod": "3.21.4"
+      },
+      "bin": {
+        "bash-language-server": "out/cli.js"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/bash-language-server/node_modules/vscode-jsonrpc": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
+      "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/bash-language-server/node_modules/vscode-languageserver": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz",
+      "integrity": "sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==",
+      "dependencies": {
+        "vscode-languageserver-protocol": "3.17.2"
+      },
+      "bin": {
+        "installServerIntoExtension": "bin/installServerIntoExtension"
+      }
+    },
+    "node_modules/bash-language-server/node_modules/vscode-languageserver-protocol": {
+      "version": "3.17.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
+      "integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
+      "dependencies": {
+        "vscode-jsonrpc": "8.0.2",
+        "vscode-languageserver-types": "3.17.2"
+      }
+    },
+    "node_modules/bash-language-server/node_modules/vscode-languageserver-textdocument": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz",
+      "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q=="
+    },
+    "node_modules/bash-language-server/node_modules/vscode-languageserver-types": {
+      "version": "3.17.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
+      "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
+    },
+    "node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/core-js": {
       "version": "3.29.1",
       "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz",
@@ -28,11 +131,132 @@
         "url": "https://opencollective.com/core-js"
       }
     },
+    "node_modules/domino": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz",
+      "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ=="
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz",
+      "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==",
+      "dependencies": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.4"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fastq": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+      "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/fuzzy-search": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/fuzzy-search/-/fuzzy-search-3.2.1.tgz",
+      "integrity": "sha512-vAcPiyomt1ioKAsAL2uxSABHJ4Ju/e4UeDM+g1OlR0vV4YhLGMNsdLNvZTpEDY4JCSt0E4hASCNM5t2ETtsbyg=="
+    },
+    "node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
     "node_modules/jsonc-parser": {
       "version": "3.2.0",
       "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
       "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
     },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+      "dependencies": {
+        "braces": "^3.0.2",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/node-fetch": {
+      "version": "2.6.12",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
+      "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
+      "dependencies": {
+        "whatwg-url": "^5.0.0"
+      },
+      "engines": {
+        "node": "4.x || >=6.0.0"
+      },
+      "peerDependencies": {
+        "encoding": "^0.1.0"
+      },
+      "peerDependenciesMeta": {
+        "encoding": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/picomatch": {
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -44,6 +268,25 @@
         "url": "https://github.com/sponsors/jonschlinkert"
       }
     },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
     "node_modules/regenerator-runtime": {
       "version": "0.13.11",
       "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
@@ -54,6 +297,61 @@
       "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz",
       "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q=="
     },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/tr46": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+      "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+    },
+    "node_modules/turndown": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.1.2.tgz",
+      "integrity": "sha512-ntI9R7fcUKjqBP6QU8rBK2Ehyt8LAzt3UBT9JR9tgo6GtuKvyUzpayWmeMKJw1DPdXzktvtIT8m2mVXz+bL/Qg==",
+      "dependencies": {
+        "domino": "^2.1.6"
+      }
+    },
     "node_modules/typescript": {
       "version": "5.1.3",
       "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
@@ -229,6 +527,33 @@
       "version": "3.0.7",
       "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz",
       "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA=="
+    },
+    "node_modules/web-tree-sitter": {
+      "version": "0.20.8",
+      "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz",
+      "integrity": "sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ=="
+    },
+    "node_modules/webidl-conversions": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+      "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+    },
+    "node_modules/whatwg-url": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+      "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+      "dependencies": {
+        "tr46": "~0.0.3",
+        "webidl-conversions": "^3.0.0"
+      }
+    },
+    "node_modules/zod": {
+      "version": "3.21.4",
+      "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz",
+      "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==",
+      "funding": {
+        "url": "https://github.com/sponsors/colinhacks"
+      }
     }
   }
 }

+ 1 - 0
.config/nixpkgs/neovim/node-lsp/package.json

@@ -2,6 +2,7 @@
   "name": "node-lsp",
   "version": "0.0.0",
   "dependencies": {
+    "bash-language-server": "^5.0.0",
     "vscode-langservers-extracted": "^4.7.0",
     "typescript": "^5.1.3",
     "typescript-language-server": "^3.3.2"

+ 0 - 4
.config/nixpkgs/neovim/plugins/default.nix

@@ -3,10 +3,6 @@ let
   plugins = builtins.fromJSON (builtins.readFile ./sources.json);
 
   overrides = {
-    "tpope/vim-fugitive" = {
-      patches = [ ./fugitive-origin-head.patch ];
-    };
-
     "leafgarland/typescript-vim" = {
       patches = [
         # make compiler build entire project

+ 0 - 12
.config/nixpkgs/neovim/plugins/fugitive-origin-head.patch

@@ -1,12 +0,0 @@
-diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim
-index 04ed1e9..256e252 100644
---- a/autoload/fugitive.vim
-+++ b/autoload/fugitive.vim
-@@ -2938,6 +2938,7 @@ function! fugitive#BufReadStatus(...) abort
-     if len(pull_ref) && get(props, 'branch.ab') !~# ' -0$'
-       call s:AddLogSection('Unpulled from ' . pull_short, s:QueryLogRange(head, pull_ref))
-     endif
-+    call s:AddLogSection('Pushed to ' . push_short, s:QueryLogRange('origin/HEAD', unique_push_ref))
- 
-     setlocal nomodified readonly noswapfile
-     doautocmd BufReadPost

+ 34 - 38
.config/nixpkgs/neovim/plugins/sources.json

@@ -4,8 +4,8 @@
     "sha256": "0l8mw3r6lb6q1p3afvf5psp6cg8vdi84b5j8whmdm83f4mynsn8a"
   },
   "tpope/vim-fugitive": {
-    "rev": "43f18ab9155c853a84ded560c6104e6300ad41da",
-    "sha256": "0s9kyid27bvpqb44hirqvjp33lf7hihw7yj0s2kwv9aif0k6mbw0"
+    "rev": "99db68d9b3304580bd383da7aaee05c7a954a344",
+    "sha256": "04c5zip3rll58zswjmns42g4wl69s7gbq7qja4w8q4p7phgb5l5w"
   },
   "tpope/vim-rhubarb": {
     "rev": "ee69335de176d9325267b0fd2597a22901d927b1",
@@ -20,44 +20,40 @@
     "sha256": "15x5vsvvnr3sa78mh3gq0vagjcf3qv53b9hpni368p4m0f9a47b8"
   },
   "Wansmer/treesj": {
-    "rev": "3203aa553217921fd4dcb79245f9df07278910b2",
-    "sha256": "1a7ym8rdq1zb1w8pb3bvq75bid5r0sggj0xz7r2q2sk3m80dz6a5"
+    "rev": "bff8c32b826e188fa558e94c7c93ac17a8ef0365",
+    "sha256": "0m30d7d9bgs7ni2npgzd7h83l47a9phi4qs3g1za4znqsjj2wmbd"
   },
   "nvim-telescope/telescope.nvim": {
-    "rev": "276362a8020c6e94c7a76d49aa00d4923b0c02f3",
-    "sha256": "043rrifqhg5bsksqhfdc20f96i2s2xyd6qyga4918fr75sf8hmib"
+    "rev": "84d53dfdbefbdf84e861a288abc71ef8ccafd04e",
+    "sha256": "1v3avmwxhlz0a8jqd8pixlrpj8fw1mnaa3j0nszpg83pnij07nb4"
   },
   "nvim-telescope/telescope-fzf-native.nvim": {
-    "rev": "9bc8237565ded606e6c366a71c64c0af25cd7a50",
-    "sha256": "0g5n3x66kf5fbzv8rprpyi8hb6v961s0whk8dc6v8r1msc2m4zbs"
+    "rev": "6c921ca12321edaa773e324ef64ea301a1d0da62",
+    "sha256": "101dxn7jfyg2wdzkw5cnrw475mg0p3w475l1hplqfhghz33zb1hy"
   },
   "nvim-lua/plenary.nvim": {
-    "rev": "bda256fab0eb66a15e8190937e417e6a14ee5d72",
-    "sha256": "1rsybpshyvzrfzn4dnbhqawn7inrmsfb84rmsklf781chzfjp49l"
+    "rev": "9ce85b0f7dcfe5358c0be937ad23e456907d410b",
+    "sha256": "0772bqmfkx27b6kfn8x28v8ll0qr2zvdclynansraprrzllsqymk"
   },
   "echasnovski/mini.nvim": {
-    "rev": "bb8ef7cfaf7b0c4492836f318df0b61e92ea3de1",
-    "sha256": "1s3lnbjz3rgrplpyc6f7a67ahcql34hy6v5z6qjh18gb2r449sfk"
+    "rev": "1fdbb864e2015eb6f501394d593630f825154385",
+    "sha256": "1iivgd0hlsi6d3i9lzffy74ilra7rigmdq6z3wrdfv33iwgm1k12"
   },
   "lewis6991/gitsigns.nvim": {
-    "rev": "dc2962f7fce953a2a98e7c6d3d7fc4c1d1f66758",
-    "sha256": "17rbsnfdrjfni1nc7say8yy9z1nc7agz8f5484wg3bhlbh28x28n"
+    "rev": "bdeba1cec3faddd89146690c10b9a87949c0ee66",
+    "sha256": "0amphagvmvdjrp13nxzl8jjs38dy1qicv71g91h998yjfc7av42l"
   },
   "neovim/nvim-lspconfig": {
-    "rev": "deade69789089c3da15237697156334fb3e943f0",
-    "sha256": "09m1ix3wv3n7r5i5sakh3c7gh3zlvsnckjy4gkxhhpx5sdckw1h6"
+    "rev": "c7077400d004c1a424d210af76ce198250db72fd",
+    "sha256": "0bbq2iyzy6glzp2z9cvl9ippg2hqxpcryxmrvrrhdn7ryc3v4k3r"
   },
   "nvim-treesitter/nvim-treesitter-textobjects": {
-    "rev": "52f1f3280d9092bfaee5c45be5962fabee3d9654",
-    "sha256": "1k0065mn4hb3ama3qxrln24rf7cqziysddvw4anxws85dan5x9sj"
+    "rev": "bd103502252027434ec42f628d2dbf54821d4ce6",
+    "sha256": "030z020v4g140a72mv1q7l6bshhrkgisbd6w3hiwlv9a1mgz4bbc"
   },
   "jose-elias-alvarez/typescript.nvim": {
-    "rev": "de304087e6e49981fde01af8ccc5b21e8519306f",
-    "sha256": "0l3i9fj76y3yl63fh6hprs5fja0h0jl11lidv3p76bdr041gw06g"
-  },
-  "jose-elias-alvarez/null-ls.nvim": {
-    "rev": "db09b6c691def0038c456551e4e2772186449f35",
-    "sha256": "133qcapq5klinnbhvbqmww5ibwfrrqn9ysg5gjx1kg2vva7nv8p8"
+    "rev": "4de85ef699d7e6010528dcfbddc2ed4c2c421467",
+    "sha256": "0rx29i3hmzh2knxx098fvfc0iafx3j08bs1zbv4dxadq56dnhaxm"
   },
   "j-hui/fidget.nvim": {
     "branch": "refs/tags/legacy",
@@ -65,45 +61,45 @@
     "sha256": "01rrjxlg4xjfs8la0cfcnf5z36s5fdxqzfs4mc0zdz1bn5z60qmf"
   },
   "sainnhe/sonokai": {
-    "rev": "a9b2a3e83ed4fa7a5541e41be9becaa7b436edcf",
-    "sha256": "0zfgi04c42n1bf5l9zj4g5k60fnsp2njf12vkpfnq2vqdcj1563i"
+    "rev": "17308ee6d9c764bfc1e0fa97213e7a99701b4144",
+    "sha256": "1zqdzc31xjmimnmc264zafshxip55kd1cypjbll1pz7h2yc1xr3r"
   },
   "LnL7/vim-nix": {
-    "rev": "7d23e97d13c40fcc6d603b291fe9b6e5f92516ee",
-    "sha256": "1vaprm79j0nfl37r6lw0zwd048ajd5sc9cvny59qwdl3x0zk38av"
+    "rev": "1e8d3cc4d74f40fb384cd1739739543fe117ff61",
+    "sha256": "06sdplgw76xnpdb89yd4arpphsn24nn327mhp3siyvc5qlsddby7"
   },
   "leafgarland/typescript-vim": {
     "rev": "31ede5ad905ce4159a5e285073a391daa3bf83fa",
     "sha256": "0225jg2b3hswfq35cnnwv0m7w3ibakaly4s9ya2lq9vabsp9dgar"
   },
   "rest-nvim/rest.nvim": {
-    "rev": "0d4b6176ce7fee2d33a716402d47d65a35acf173",
-    "sha256": "05cd2gvfix5k6gxbgnnrgz1izq0g3xik0vjbk8n1qwf5xsd1l6g7"
+    "rev": "16c1c8d80a6a65c409be4342130a8a61a7497f98",
+    "sha256": "13nrxchxca1xj5cdw7dy4r5xfgq251ym1aj3kdykn4gakqgs6mxz"
   },
   "hrsh7th/cmp-nvim-lsp": {
     "rev": "44b16d11215dce86f253ce0c30949813c0a90765",
     "sha256": "1ny64ls3z9pcflsg3sd7xnd795mcfbqhyan3bk4ymxgv5jh2qkcr"
   },
   "hrsh7th/nvim-cmp": {
-    "rev": "2743dd989e9b932e1b4813a4927d7b84272a14e2",
-    "sha256": "13k2y9ggfvpzm463dhivy70j8vpzbv8j2nmscqs1l5y0rad93bww"
+    "rev": "5dce1b778b85c717f6614e3f4da45e9f19f54435",
+    "sha256": "1yl5b680p6vhk1741riiwjnw7a4wn0nimjvcab0ij6mx3kf28rsq"
   },
   "hrsh7th/cmp-vsnip": {
     "rev": "989a8a73c44e926199bfd05fa7a516d51f2d2752",
     "sha256": "1hs1gv7q0vfn82pwdwpy46nsi4n5z6yljnzl0rpvwfp8g79hssfs"
   },
   "hrsh7th/vim-vsnip": {
-    "rev": "7753ba9c10429c29d25abfd11b4c60b76718c438",
-    "sha256": "1l8myq6c5rckk6jr3s5rx9jpnrgzk1a65yky1b28mvayd6yff4vs"
+    "rev": "be277461265f1e5c7db470aa479f30956597ea9e",
+    "sha256": "0fiqz7qrcsla2ms5lfw0w8f6ysa5wivnhjn9463i00vasg19mcqi"
   },
   "nvim-treesitter/nvim-treesitter": {
-    "rev": "7b04e8b67eec7d92daadf9f0717dd272ddfc81a3",
-    "sha256": "0wlgk11y86pnb5jc6rsswyyvarfpbp5i7s4lqb7i2jz6m96min3n"
+    "rev": "cb139d880bcf9b3a6f29f2bd088a7491d1662918",
+    "sha256": "0dzzhcxd6kvsdg7llrcl8h3src1lajkrbf6mxl31z9iygvnkrnfq"
   },
   "nvim-treesitter/playground": {
     "optional": true,
-    "rev": "2b81a018a49f8e476341dfcb228b7b808baba68b",
-    "sha256": "1b7h4sih8dc55w12f0v5knk9cxfpy0iffhbvmg0g84if55ar616v"
+    "rev": "ba48c6a62a280eefb7c85725b0915e021a1a0749",
+    "sha256": "1vgj5vc32ly15ni62fk51yd8km2zp3fkzx0622x5cv9pavmjpr40"
   },
   "bfredl/nvim-luadev": {
     "optional": true,

+ 1 - 0
.local/bin/cdtemp

@@ -12,6 +12,7 @@ if [ "$cmd" = "last" ]; then
 elif [ "$cmd" = "prune" ]; then
   echo "Deleting empty directories"
   find "$TEMPSPACE" -mindepth 1 -maxdepth 1 -type d -empty -delete -print
+  exit
 else
   dir="$TEMPSPACE/$(date +%s)"
   mkdir "$dir"