Browse Source

nixpkgs/neovim: use eslint language server instead of null-ls

Thomas Dy 2 years ago
parent
commit
7e651c1a2b

+ 22 - 6
.config/nixpkgs/neovim/lsp.lua

@@ -10,11 +10,28 @@ local null_ls_sources = {
   null_ls.builtins.code_actions.gitsigns,
 }
 
--- enable LS / null-ls sources based on executable presence
 if vim.fn.executable("node_modules/.bin/eslint") == 1 then
-  table.insert(null_ls_sources, null_ls.builtins.formatting.eslint_d)
-  table.insert(null_ls_sources, null_ls.builtins.diagnostics.eslint_d)
-  table.insert(null_ls_sources, null_ls.builtins.code_actions.eslint_d)
+  options = {}
+  -- some projects have local rules, this isn't exactly generic but is good
+  -- enough
+  if vim.fn.isdirectory("lint-rules") then
+    options.rulePaths = { "./lint-rules" }
+  end
+
+  nvim_lsp.eslint.setup({
+    settings = {
+      options = options,
+    },
+    on_attach = function(client, bufnr)
+      -- add formatting capability, the language server registers this
+      -- dynamically but neovim does not support that yet
+      -- https://github.com/microsoft/vscode-eslint/pull/1307
+      client.server_capabilities.documentFormattingProvider = true
+      client.server_capabilities.documentRangeFormattingProvider = true
+
+      on_attach(client, bufnr)
+    end,
+  })
 end
 
 
@@ -45,8 +62,7 @@ if vim.fn.executable("node_modules/.bin/tsc") == 1 then
       },
       on_attach = function(client, bufnr)
         -- mark tsserver as not having formatting available as we rely on
-        -- null-ls/eslint for that and having both available makes nvim ask us
-        -- which LS to use everytime we format
+        -- eslint for that
         client.server_capabilities.documentFormattingProvider = false
         client.server_capabilities.documentRangeFormattingProvider = false
 

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

@@ -8,5 +8,5 @@ buildNpmPackage {
 
   dontNpmBuild = true;
 
-  npmDepsHash = "sha256-F8+uVtXqJjdn3d95cZuYylgKUo2qArxrL0anZMDAg1k=";
+  npmDepsHash = "sha256-oWgWXsLFJHnSpO2FVNg+qsGWs3xoOQ+LOmRdI6GoxOc=";
 }

+ 305 - 181
.config/nixpkgs/neovim/node-lsp/package-lock.json

@@ -8,244 +8,368 @@
       "name": "node-lsp",
       "version": "0.0.0",
       "dependencies": {
-        "eslint": "file:.empty",
-        "eslint_d": "^12.2.1",
-        "typescript-language-server": "^3.0.2"
+        "typescript-language-server": "^3.0.2",
+        "vscode-langservers-extracted": "^4.5.0"
       },
       "bin": {
-        "eslint_d": "node_modules/.bin/eslint_d",
-        "typescript-language-server": "node_modules/.bin/typescript-language-server"
+        "typescript-language-server": "node_modules/.bin/typescript-language-server",
+        "vscode-eslint-language-server": "node_modules/.bin/vscode-eslint-language-server"
       }
     },
-    ".empty": {},
-    "node_modules/core_d": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/core_d/-/core_d-5.0.1.tgz",
-      "integrity": "sha512-37lZyhJY1hzgFbfU4LzY4zL09QPwPfV2W/3YBOtN7mkdvVaeP1OVnDZI6zxggtlPwG/BuE5wIr0xptlVJk5EPA==",
-      "dependencies": {
-        "supports-color": "^8.1.0"
-      }
+    ".empty": {
+      "extraneous": true
     },
-    "node_modules/deep-is": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
-      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+    "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/eslint": {
-      "resolved": ".empty",
-      "link": true
+    "node_modules/core-js": {
+      "version": "3.27.2",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz",
+      "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==",
+      "hasInstallScript": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js"
+      }
     },
-    "node_modules/eslint_d": {
-      "version": "12.2.1",
-      "resolved": "https://registry.npmjs.org/eslint_d/-/eslint_d-12.2.1.tgz",
-      "integrity": "sha512-qOJ9cTi5AaH5bOgEoCkv41DJ637mHgzffbOLojwU4wadwC6qbR+OxVJRvVzH0v2XYmQOvw4eiJK7ivrr5SvzsA==",
-      "dependencies": {
-        "core_d": "^5.0.1",
-        "eslint": "^8.12.0",
-        "nanolru": "^1.0.0",
-        "optionator": "^0.9.1"
+    "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/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "engines": {
+        "node": ">=8.6"
       },
-      "bin": {
-        "eslint_d": "bin/eslint_d.js"
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
       }
     },
-    "node_modules/fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+    "node_modules/regenerator-runtime": {
+      "version": "0.13.11",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+    },
+    "node_modules/request-light": {
+      "version": "0.5.8",
+      "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz",
+      "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg=="
     },
-    "node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+    "node_modules/typescript": {
+      "version": "4.9.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
       "engines": {
-        "node": ">=8"
+        "node": ">=4.2.0"
       }
     },
-    "node_modules/levn": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
-      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-      "dependencies": {
-        "prelude-ls": "^1.2.1",
-        "type-check": "~0.4.0"
+    "node_modules/typescript-language-server": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-3.0.2.tgz",
+      "integrity": "sha512-KJ5kdKzdlNO0mfHbnb9nDKiL244fEd/fqW+b8trVchaLcCFo1aAd0sGX/vP563tdstBew/P1TzKLTnYa17/b8A==",
+      "bin": {
+        "typescript-language-server": "lib/cli.mjs"
       },
       "engines": {
-        "node": ">= 0.8.0"
+        "node": ">=14.17"
       }
     },
-    "node_modules/nanolru": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/nanolru/-/nanolru-1.0.0.tgz",
-      "integrity": "sha512-GyQkE8M32pULhQk7Sko5raoIbPalAk90ICG+An4fq6fCsFHsP6fB2K46WGXVdoJpy4SGMnZ/EKbo123fZJomWg==",
-      "engines": {
-        "node": ">= 0.4.0"
+    "node_modules/vscode-css-languageservice": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.3.tgz",
+      "integrity": "sha512-EAyhyIVHpEaf+GjtI+tVe7SekdoANfG0aubnspsQwak3Qkimn/97FpAufNyXk636ngW05pjNKAR9zyTCzo6avQ==",
+      "dependencies": {
+        "@vscode/l10n": "^0.0.11",
+        "vscode-languageserver-textdocument": "^1.0.8",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-uri": "^3.0.7"
       }
     },
-    "node_modules/optionator": {
-      "version": "0.9.1",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-      "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+    "node_modules/vscode-html-languageservice": {
+      "version": "5.0.4",
+      "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.0.4.tgz",
+      "integrity": "sha512-tvrySfpglu4B2rQgWGVO/IL+skvU7kBkQotRlxA7ocSyRXOZUd6GA13XHkxo8LPe07KWjeoBlN1aVGqdfTK4xA==",
       "dependencies": {
-        "deep-is": "^0.1.3",
-        "fast-levenshtein": "^2.0.6",
-        "levn": "^0.4.1",
-        "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0",
-        "word-wrap": "^1.2.3"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
+        "@vscode/l10n": "^0.0.11",
+        "vscode-languageserver-textdocument": "^1.0.8",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-uri": "^3.0.7"
+      }
+    },
+    "node_modules/vscode-json-languageservice": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.1.4.tgz",
+      "integrity": "sha512-ROZ1ezYQUbq9b/07xYpHtZSyyhoUk3oTTGVAEr6bU1DKr8ELaz9fsDoHno34tKtHj/Tf3deQqfjQNGKdbRuvTw==",
+      "dependencies": {
+        "@vscode/l10n": "^0.0.11",
+        "jsonc-parser": "^3.2.0",
+        "vscode-languageserver-textdocument": "^1.0.8",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-uri": "^3.0.7"
       }
     },
-    "node_modules/prelude-ls": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
-      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+    "node_modules/vscode-jsonrpc": {
+      "version": "8.1.0-next.7",
+      "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0-next.7.tgz",
+      "integrity": "sha512-UJlY2e4wnI+GkaNYM2TERqrNvTe0XScny7lUA4f+F+z6XI5pDJnHj6udXiGJofT/tX57d8C6fnlfgrCfF6aptQ==",
       "engines": {
-        "node": ">= 0.8.0"
+        "node": ">=14.0.0"
       }
     },
-    "node_modules/supports-color": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+    "node_modules/vscode-langservers-extracted": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/vscode-langservers-extracted/-/vscode-langservers-extracted-4.5.0.tgz",
+      "integrity": "sha512-r8+ZWDHRAnUPQMyZQa2eZzZyYE8wGia3SCL9ZtVjl6S2MLA5l6NVg3z8Atz4nDQ9JPih858bj0vnthGsjhNLjg==",
       "dependencies": {
-        "has-flag": "^4.0.0"
+        "core-js": "^3.20.1",
+        "jsonc-parser": "^3.2.0",
+        "regenerator-runtime": "^0.13.9",
+        "request-light": "^0.5.8",
+        "typescript": "^4.0.5",
+        "vscode-css-languageservice": "^6.1.1",
+        "vscode-html-languageservice": "^5.0.2",
+        "vscode-json-languageservice": "^5.1.1",
+        "vscode-languageserver": "^8.1.0-next.1",
+        "vscode-languageserver-textdocument": "^1.0.7",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-markdown-languageservice": "^0.2.0-alpha.1",
+        "vscode-nls": "^5.2.0",
+        "vscode-uri": "^3.0.6"
       },
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/chalk/supports-color?sponsor=1"
+      "bin": {
+        "vscode-css-language-server": "bin/vscode-css-language-server",
+        "vscode-eslint-language-server": "bin/vscode-eslint-language-server",
+        "vscode-html-language-server": "bin/vscode-html-language-server",
+        "vscode-json-language-server": "bin/vscode-json-language-server",
+        "vscode-markdown-language-server": "bin/vscode-markdown-language-server"
       }
     },
-    "node_modules/type-check": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
-      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+    "node_modules/vscode-languageserver": {
+      "version": "8.1.0-next.6",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.1.0-next.6.tgz",
+      "integrity": "sha512-YSj9fKN0FtVW95RKjcy8UheODK4YosqiZUkEbAgJJ0uMxR1Om1dhD/+QwYUKfJX/u8KLS/qFroMNVFHoPoc2hg==",
       "dependencies": {
-        "prelude-ls": "^1.2.1"
+        "vscode-languageserver-protocol": "3.17.3-next.6"
       },
-      "engines": {
-        "node": ">= 0.8.0"
+      "bin": {
+        "installServerIntoExtension": "bin/installServerIntoExtension"
       }
     },
-    "node_modules/typescript-language-server": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-3.0.2.tgz",
-      "integrity": "sha512-KJ5kdKzdlNO0mfHbnb9nDKiL244fEd/fqW+b8trVchaLcCFo1aAd0sGX/vP563tdstBew/P1TzKLTnYa17/b8A==",
-      "bin": {
-        "typescript-language-server": "lib/cli.mjs"
-      },
-      "engines": {
-        "node": ">=14.17"
+    "node_modules/vscode-languageserver-protocol": {
+      "version": "3.17.3-next.6",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3-next.6.tgz",
+      "integrity": "sha512-UCL2DaAOCzGFZKIAJ4wOS9BXVbeARL8GxXTW7ANnAXJg03IytNmOJcmguL6l+ht4CCdKNQbnRSJB4dh8cgDyJw==",
+      "dependencies": {
+        "vscode-jsonrpc": "8.1.0-next.7",
+        "vscode-languageserver-types": "3.17.3-next.3"
       }
     },
-    "node_modules/word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+    "node_modules/vscode-languageserver-protocol/node_modules/vscode-languageserver-types": {
+      "version": "3.17.3-next.3",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3-next.3.tgz",
+      "integrity": "sha512-R36Wi5sHoVc/PsAva0QGoEgw+LRCXPDKcdjFfgoVwrRdrFOdYUkvp5G4NvrPUsVT2f2qS/bSs6QiRxyjNkcR9A=="
+    },
+    "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/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/vscode-markdown-languageservice": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.2.0.tgz",
+      "integrity": "sha512-3Jh7/eN6zEPqfkT6cjL+AwGoQ7euL8RtW3FYf24IfPksz4nAZJcRibRtpSdlCaOKpwEoy/f5Axh94cmWPIGBMw==",
+      "dependencies": {
+        "picomatch": "^2.3.1",
+        "vscode-languageserver-textdocument": "^1.0.5",
+        "vscode-languageserver-types": "^3.17.1",
+        "vscode-nls": "^5.0.1",
+        "vscode-uri": "^3.0.3"
+      },
       "engines": {
-        "node": ">=0.10.0"
+        "node": "*"
       }
+    },
+    "node_modules/vscode-nls": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
+      "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng=="
+    },
+    "node_modules/vscode-uri": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz",
+      "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA=="
     }
   },
   "dependencies": {
-    "core_d": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/core_d/-/core_d-5.0.1.tgz",
-      "integrity": "sha512-37lZyhJY1hzgFbfU4LzY4zL09QPwPfV2W/3YBOtN7mkdvVaeP1OVnDZI6zxggtlPwG/BuE5wIr0xptlVJk5EPA==",
-      "requires": {
-        "supports-color": "^8.1.0"
-      }
+    "@vscode/l10n": {
+      "version": "0.0.11",
+      "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.11.tgz",
+      "integrity": "sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA=="
+    },
+    "core-js": {
+      "version": "3.27.2",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz",
+      "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w=="
+    },
+    "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=="
+    },
+    "picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
     },
-    "deep-is": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
-      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+    "regenerator-runtime": {
+      "version": "0.13.11",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
     },
-    "eslint": {
-      "version": "file:.empty"
+    "request-light": {
+      "version": "0.5.8",
+      "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz",
+      "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg=="
     },
-    "eslint_d": {
-      "version": "12.2.1",
-      "resolved": "https://registry.npmjs.org/eslint_d/-/eslint_d-12.2.1.tgz",
-      "integrity": "sha512-qOJ9cTi5AaH5bOgEoCkv41DJ637mHgzffbOLojwU4wadwC6qbR+OxVJRvVzH0v2XYmQOvw4eiJK7ivrr5SvzsA==",
+    "typescript": {
+      "version": "4.9.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
+    },
+    "typescript-language-server": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-3.0.2.tgz",
+      "integrity": "sha512-KJ5kdKzdlNO0mfHbnb9nDKiL244fEd/fqW+b8trVchaLcCFo1aAd0sGX/vP563tdstBew/P1TzKLTnYa17/b8A=="
+    },
+    "vscode-css-languageservice": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.3.tgz",
+      "integrity": "sha512-EAyhyIVHpEaf+GjtI+tVe7SekdoANfG0aubnspsQwak3Qkimn/97FpAufNyXk636ngW05pjNKAR9zyTCzo6avQ==",
       "requires": {
-        "core_d": "^5.0.1",
-        "eslint": "file:.empty",
-        "nanolru": "^1.0.0",
-        "optionator": "^0.9.1"
-      }
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
-    },
-    "has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-    },
-    "levn": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
-      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+        "@vscode/l10n": "^0.0.11",
+        "vscode-languageserver-textdocument": "^1.0.8",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-uri": "^3.0.7"
+      }
+    },
+    "vscode-html-languageservice": {
+      "version": "5.0.4",
+      "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.0.4.tgz",
+      "integrity": "sha512-tvrySfpglu4B2rQgWGVO/IL+skvU7kBkQotRlxA7ocSyRXOZUd6GA13XHkxo8LPe07KWjeoBlN1aVGqdfTK4xA==",
+      "requires": {
+        "@vscode/l10n": "^0.0.11",
+        "vscode-languageserver-textdocument": "^1.0.8",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-uri": "^3.0.7"
+      }
+    },
+    "vscode-json-languageservice": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.1.4.tgz",
+      "integrity": "sha512-ROZ1ezYQUbq9b/07xYpHtZSyyhoUk3oTTGVAEr6bU1DKr8ELaz9fsDoHno34tKtHj/Tf3deQqfjQNGKdbRuvTw==",
       "requires": {
-        "prelude-ls": "^1.2.1",
-        "type-check": "~0.4.0"
+        "@vscode/l10n": "^0.0.11",
+        "jsonc-parser": "^3.2.0",
+        "vscode-languageserver-textdocument": "^1.0.8",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-uri": "^3.0.7"
       }
     },
-    "nanolru": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/nanolru/-/nanolru-1.0.0.tgz",
-      "integrity": "sha512-GyQkE8M32pULhQk7Sko5raoIbPalAk90ICG+An4fq6fCsFHsP6fB2K46WGXVdoJpy4SGMnZ/EKbo123fZJomWg=="
+    "vscode-jsonrpc": {
+      "version": "8.1.0-next.7",
+      "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0-next.7.tgz",
+      "integrity": "sha512-UJlY2e4wnI+GkaNYM2TERqrNvTe0XScny7lUA4f+F+z6XI5pDJnHj6udXiGJofT/tX57d8C6fnlfgrCfF6aptQ=="
     },
-    "optionator": {
-      "version": "0.9.1",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
-      "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+    "vscode-langservers-extracted": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/vscode-langservers-extracted/-/vscode-langservers-extracted-4.5.0.tgz",
+      "integrity": "sha512-r8+ZWDHRAnUPQMyZQa2eZzZyYE8wGia3SCL9ZtVjl6S2MLA5l6NVg3z8Atz4nDQ9JPih858bj0vnthGsjhNLjg==",
       "requires": {
-        "deep-is": "^0.1.3",
-        "fast-levenshtein": "^2.0.6",
-        "levn": "^0.4.1",
-        "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0",
-        "word-wrap": "^1.2.3"
-      }
-    },
-    "prelude-ls": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
-      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
-    },
-    "supports-color": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
-      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+        "core-js": "^3.20.1",
+        "jsonc-parser": "^3.2.0",
+        "regenerator-runtime": "^0.13.9",
+        "request-light": "^0.5.8",
+        "typescript": "^4.0.5",
+        "vscode-css-languageservice": "^6.1.1",
+        "vscode-html-languageservice": "^5.0.2",
+        "vscode-json-languageservice": "^5.1.1",
+        "vscode-languageserver": "^8.1.0-next.1",
+        "vscode-languageserver-textdocument": "^1.0.7",
+        "vscode-languageserver-types": "^3.17.2",
+        "vscode-markdown-languageservice": "^0.2.0-alpha.1",
+        "vscode-nls": "^5.2.0",
+        "vscode-uri": "^3.0.6"
+      }
+    },
+    "vscode-languageserver": {
+      "version": "8.1.0-next.6",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.1.0-next.6.tgz",
+      "integrity": "sha512-YSj9fKN0FtVW95RKjcy8UheODK4YosqiZUkEbAgJJ0uMxR1Om1dhD/+QwYUKfJX/u8KLS/qFroMNVFHoPoc2hg==",
       "requires": {
-        "has-flag": "^4.0.0"
+        "vscode-languageserver-protocol": "3.17.3-next.6"
       }
     },
-    "type-check": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
-      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+    "vscode-languageserver-protocol": {
+      "version": "3.17.3-next.6",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3-next.6.tgz",
+      "integrity": "sha512-UCL2DaAOCzGFZKIAJ4wOS9BXVbeARL8GxXTW7ANnAXJg03IytNmOJcmguL6l+ht4CCdKNQbnRSJB4dh8cgDyJw==",
       "requires": {
-        "prelude-ls": "^1.2.1"
+        "vscode-jsonrpc": "8.1.0-next.7",
+        "vscode-languageserver-types": "3.17.3-next.3"
+      },
+      "dependencies": {
+        "vscode-languageserver-types": {
+          "version": "3.17.3-next.3",
+          "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3-next.3.tgz",
+          "integrity": "sha512-R36Wi5sHoVc/PsAva0QGoEgw+LRCXPDKcdjFfgoVwrRdrFOdYUkvp5G4NvrPUsVT2f2qS/bSs6QiRxyjNkcR9A=="
+        }
       }
     },
-    "typescript-language-server": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-3.0.2.tgz",
-      "integrity": "sha512-KJ5kdKzdlNO0mfHbnb9nDKiL244fEd/fqW+b8trVchaLcCFo1aAd0sGX/vP563tdstBew/P1TzKLTnYa17/b8A=="
+    "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=="
+    },
+    "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=="
+    },
+    "vscode-markdown-languageservice": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.2.0.tgz",
+      "integrity": "sha512-3Jh7/eN6zEPqfkT6cjL+AwGoQ7euL8RtW3FYf24IfPksz4nAZJcRibRtpSdlCaOKpwEoy/f5Axh94cmWPIGBMw==",
+      "requires": {
+        "picomatch": "^2.3.1",
+        "vscode-languageserver-textdocument": "^1.0.5",
+        "vscode-languageserver-types": "^3.17.1",
+        "vscode-nls": "^5.0.1",
+        "vscode-uri": "^3.0.3"
+      }
+    },
+    "vscode-nls": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
+      "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng=="
     },
-    "word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+    "vscode-uri": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz",
+      "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA=="
     }
   }
 }

+ 2 - 8
.config/nixpkgs/neovim/node-lsp/package.json

@@ -2,17 +2,11 @@
   "name": "node-lsp",
   "version": "0.0.0",
   "dependencies": {
-    "eslint": "file:.empty",
-    "eslint_d": "^12.2.1",
+    "vscode-langservers-extracted": "^4.5.0",
     "typescript-language-server": "^3.0.2"
   },
-  "overrides": {
-    "eslint_d": {
-      "eslint": "$eslint"
-    }
-  },
   "bin": {
     "typescript-language-server": "./node_modules/.bin/typescript-language-server",
-    "eslint_d": "./node_modules/.bin/eslint_d"
+    "vscode-eslint-language-server": "./node_modules/.bin/vscode-eslint-language-server"
   }
 }