{"id":20466659,"url":"https://github.com/pasibergman/cmp-nuget","last_synced_at":"2025-04-13T09:10:22.741Z","repository":{"id":130382225,"uuid":"446153040","full_name":"PasiBergman/cmp-nuget","owner":"PasiBergman","description":"Neovim plugin for NuGet package and version completion with nvim-cmp.","archived":false,"fork":false,"pushed_at":"2024-07-07T21:00:14.000Z","size":5259,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T14:08:37.851Z","etag":null,"topics":["autocomplete","autocompletion","csharp","dotnet","dotnet-core","lua","lunarvim","neovim","neovim-plugin","nuget","nuget-package","nvim-cmp"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PasiBergman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-09T17:11:57.000Z","updated_at":"2025-02-02T01:37:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"b4adfdad-eeed-45a4-9b2c-3227281f6002","html_url":"https://github.com/PasiBergman/cmp-nuget","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PasiBergman%2Fcmp-nuget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PasiBergman%2Fcmp-nuget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PasiBergman%2Fcmp-nuget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PasiBergman%2Fcmp-nuget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PasiBergman","download_url":"https://codeload.github.com/PasiBergman/cmp-nuget/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688565,"owners_count":21145766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autocomplete","autocompletion","csharp","dotnet","dotnet-core","lua","lunarvim","neovim","neovim-plugin","nuget","nuget-package","nvim-cmp"],"created_at":"2024-11-15T13:24:59.504Z","updated_at":"2025-04-13T09:10:22.718Z","avatar_url":"https://github.com/PasiBergman.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NuGet completion for nvim-cmp\n\nCompletion source for [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) helping to\nautocomplete NuGet packages and versions on .csproj files.\n\n![cmp-nuget in action](./assets/cmp-nuget.gif?raw=true)\n\n## Requirements\n\n- [Neovim](https://gitub.com/neovim/neovim)\n- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) plugin\n- [plenary](https://github.com/nvim-lua/plenary.nvim) plugin\n- [curl](https://curl.se)\n\n## Installation\n\n### LazyVim\n\nIn a cmp configuration file, e.g. `~/.config/nvim/lua/plugins/cmp-nuget.lua` add the following configuration:\n\n```lua\nreturn {\n  {\n    \"nvim-cmp\",\n    dependencies = {\n      \"PasiBergman/cmp-nuget\",\n    },\n\n    opts = function(_, opts)\n      local nuget = require(\"cmp-nuget\")\n      nuget.setup({})\n\n      table.insert(opts.sources, 1, {\n        name = \"nuget\",\n      })\n\n      opts.formatting.format = function(entry, vim_item)\n        if entry.source.name == \"nuget\" then\n          vim_item.kind = \"NuGet\"\n        end\n        return vim_item\n      end\n    end,\n  },\n}\n```\n\n### LunarVim\n\nIn your [LunarVim](https://lunarvim.org) cofiguration file:\n\n```lua\nlvim.plugins = {\n  ...\n  {\n    \"PasiBergman/cmp-nuget\",\n    event = \"BufWinEnter\",\n    config = function()\n      local cmp_nuget = require(\"cmp-nuget\")\n      cmp_nuget.setup({})\n      -- Insert 'nuget' source before 'buffer'\n      table.insert(lvim.builtin.cmp.sources, 6, {\n        name = \"nuget\",\n        keyword_length = 0,\n      })\n      lvim.builtin.cmp.formatting.source_names[\"nuget\"] = \"(NuGet)\"\n    end,\n  },\n  ...\n}\n```\n\nRemember to `:PackerSync` after changes to plugins.\n\n### Neovim\n\nFor [packer](https://github.com/wbthomason/packer.nvim):\n\n```lua\nuse {\n  'PasiBergman/cmp-nuget',\n  requires = {\n    'nvim-lua/plenary.nvim'\n  },\n}\n```\n\nFor [vim-plug](https://github.com/junegunn/vim-plug):\n\n```lua\nPlug 'nvim-lua/plenary.nvim'\nPlug 'PasiBergman/cmp-nuget'\n```\n\nRun the `setup` function and add the source\n\n```lua\nrequire('cmp-nuget').setup({})\nrequire('cmp').setup({\n  ...,\n  sources = {\n    {\n      name = \"nuget\",\n      keyword_length = 0,\n    },\n    ...\n  },\n  formatting = {\n    source_names = {\n      nuget = \"(NuGet)\",\n    },\n  },\n})\n```\n\n## Configuration\n\nThe `require(\"cmp-nuget\").setup()` function accepts an config override table.\n\n**Default** configuration:\n\n```lua\n{\n  filetypes = {},                  -- on which filetypes cmp-nuget is active\n  file_extensions = { \"csproj\" },  -- on which file extensions cmp-nuget is active\n  nuget = {\n    packages = {                   -- configuration for searching packages\n      limit = 100,                 -- limit package serach to first 100 packages\n      prerelease = false,          -- include prerelase (preview, rc, etc.) packages\n      sem_ver_level = \"2.0.0\",     -- semantic version level (*\n      package_type = \"\",           -- package type to use to filter packages (*\n    },\n    versions = {\n      prerelease = true,           -- include prerelase (preview, rc, etc.) versions\n      sem_ver_level = \"2.0.0\",     -- semantic version level (*\n    },\n  },\n}\n```\n\n(\\* more information:\n\n- [SemVer2 support for fuget.org](https://github.com/NuGet/Home/wiki/SemVer2-support-for-nuget.org-%28server-side%29)\n- [Package Type](https://github.com/NuGet/Home/wiki/Package-Type-%5BPacking%5D)\n\nExample of overriding default configuration during setup.\n\n```lua\nrequire('cmp-nuget').setup({\n  nuget = {\n    packages = {\n      limit = 20,\n      prerelease = true,\n    },\n  },\n})\n```\n\n## Known bugs and limitations\n\nRequires the `PackageReference` with `Include=` and `Version=` to be on single line.\nDoes not parse the `xml` content.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasibergman%2Fcmp-nuget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpasibergman%2Fcmp-nuget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasibergman%2Fcmp-nuget/lists"}