{"id":13413141,"url":"https://github.com/ldelossa/nvim-ide","last_synced_at":"2026-01-17T01:23:06.389Z","repository":{"id":61615500,"uuid":"532575210","full_name":"ldelossa/nvim-ide","owner":"ldelossa","description":"A full featured IDE layer for Neovim. Heavily inspired by VSCode.","archived":false,"fork":false,"pushed_at":"2025-07-27T16:53:26.000Z","size":1751,"stargazers_count":859,"open_issues_count":13,"forks_count":28,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-07-27T18:52:11.722Z","etag":null,"topics":[],"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/ldelossa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["ldelossa"]}},"created_at":"2022-09-04T15:11:39.000Z","updated_at":"2025-07-27T16:53:30.000Z","dependencies_parsed_at":"2023-02-14T19:46:26.234Z","dependency_job_id":"2cd0667b-eb24-4337-9b17-f01f0bf8e8e0","html_url":"https://github.com/ldelossa/nvim-ide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ldelossa/nvim-ide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldelossa%2Fnvim-ide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldelossa%2Fnvim-ide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldelossa%2Fnvim-ide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldelossa%2Fnvim-ide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldelossa","download_url":"https://codeload.github.com/ldelossa/nvim-ide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldelossa%2Fnvim-ide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28491392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-07-30T20:01:34.037Z","updated_at":"2026-01-17T01:23:06.374Z","avatar_url":"https://github.com/ldelossa.png","language":"Lua","readme":"```  \n███╗   ██╗██╗   ██╗██╗███╗   ███╗      ██╗██████╗ ███████╗\n████╗  ██║██║   ██║██║████╗ ████║      ██║██╔══██╗██╔════╝\n██╔██╗ ██║██║   ██║██║██╔████╔██║█████╗██║██║  ██║█████╗  \n██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║╚════╝██║██║  ██║██╔══╝  \n██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║      ██║██████╔╝███████╗\n╚═╝  ╚═══╝  ╚═══╝  ╚═╝╚═╝     ╚═╝      ╚═╝╚═════╝ ╚══════╝\n```\n![nvim-ide](./contrib/screenshot.png)\n\n\u003cp align=\"center\"\u003eLazyVim + NVIM-IDE + Github NVIM Theme\u003c/p\u003e\n\n[Workflow Video](https://youtu.be/GcoHnB5DoFA)\n\n`nvim-ide` is a complete IDE layer for Neovim, heavily inspired by `vscode`.\n\nIt provides a default set of components, an extensible API for defining your\nown, IDE-like panels and terminal/utility windows, and the ability to swap between\nuser defined panels. \n\nThis plugin is for individuals who are looking for a cohesive IDE experience \nfrom Neovim and are less concerned with mixing and matching from the awesome\necosystem of Neovim plugins.\n\nThe current set of default components include:\n* Bookmarks - Per-workspace collections of bookmarks with sticky support.\n* Branches  - Checkout and administer the workspaces's git branches\n* Buffers   - Display and administer the currently opened buffers.\n* CallHierarchy - Display an LSP's CallHierarchy request in an intuitive tree.\n* Changes - Display the current git status and stage/restore/commit/amend the diff.\n* Commits - Display the list of commits from HEAD, view a read only diff or checkout a commit and view a modifiable diff.\n* Explorer - A file explorer which supports file selection and recursive operations.\n* Outline - A real-time LSP powered source code outline supporting jumping and tracking.\n* TerminalBrowser - A terminal manager for creating, renaming, jumping-to, and deleting terminal instances.\n* Timeline - Displays the git history of a file, showing you how the file was manipulated over several commits.\n\nWe put a lot of efforts into writing `docs/nvim-ide.txt`, so please refer to this \nfile for introduction, usage, and development information.\n\n## Getting started \n\n**Ensure you have Neovim v0.8.0 or greater.**\n\n1. Get the plugin via your favorite plugin manager.\n\n[Plug](https://github.com/junegunn/vim-plug):\n```\nPlug 'ldelossa/nvim-ide'\n```\n\n[Packer.nvim](https://github.com/wbthomason/packer.nvim): \n```\nuse {\n    'ldelossa/nvim-ide'\n}\n```\n\n2. Call the setup function (optionally with the default config):\n\n```lua\n-- default components\nlocal bufferlist      = require('ide.components.bufferlist')\nlocal explorer        = require('ide.components.explorer')\nlocal outline         = require('ide.components.outline')\nlocal callhierarchy   = require('ide.components.callhierarchy')\nlocal timeline        = require('ide.components.timeline')\nlocal terminal        = require('ide.components.terminal')\nlocal terminalbrowser = require('ide.components.terminal.terminalbrowser')\nlocal changes         = require('ide.components.changes')\nlocal commits         = require('ide.components.commits')\nlocal branches        = require('ide.components.branches')\nlocal bookmarks       = require('ide.components.bookmarks')\n\nrequire('ide').setup({\n    -- The global icon set to use.\n    -- values: \"nerd\", \"codicon\", \"default\"\n    icon_set = \"default\",\n    -- Set the log level for nvim-ide's log. Log can be accessed with \n    -- 'Workspace OpenLog'. Values are 'debug', 'warn', 'info', 'error'\n    log_level = \"info\",\n    -- Component specific configurations and default config overrides.\n    components = {\n        -- The global keymap is applied to all Components before construction.\n        -- It allows common keymaps such as \"hide\" to be overridden, without having\n        -- to make an override entry for all Components.\n        --\n        -- If a more specific keymap override is defined for a specific Component\n        -- this takes precedence.\n        global_keymaps = {\n            -- example, change all Component's hide keymap to \"h\"\n            -- hide = h\n        },\n        -- example, prefer \"x\" for hide only for Explorer component.\n        -- Explorer = {\n        --     keymaps = {\n        --         hide = \"x\",\n        --     }\n        -- }\n    },\n    -- default panel groups to display on left and right.\n    panels = {\n        left = \"explorer\",\n        right = \"git\"\n    },\n    -- panels defined by groups of components, user is free to redefine the defaults\n    -- and/or add additional.\n    panel_groups = {\n        explorer = { outline.Name, bufferlist.Name, explorer.Name, bookmarks.Name, callhierarchy.Name, terminalbrowser.Name },\n        terminal = { terminal.Name },\n        git = { changes.Name, commits.Name, timeline.Name, branches.Name }\n    },\n    -- workspaces config\n    workspaces = {\n        -- which panels to open by default, one of: 'left', 'right', 'both', 'none'\n        auto_open = 'left',\n    },\n    -- default panel sizes for the different positions\n    panel_sizes = {\n        left = 30,\n        right = 30,\n        bottom = 15\n    }\n})\n```\n\n3. Issue the \"Workspace\" command to begin discovering what's available.\n\n4. Begin reading \":h nvim-ide\"\n\n## Best used with\n\n`nvim-ide` is best used with:\n\nfuzzy-searching:\n\n- [Telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)\n- [fzf-lua](https://github.com/ibhagwan/fzf-lua)\n\npretty notifications:\n\n- [nvim-notify](https://github.com/rcarriga/nvim-notify)\n\nvscode-like \"peek\":\n- [glance.nvim](https://github.com/DNLHC/glance.nvim)\n\ndeeper git integration:\n- [gitsigns](https://github.com/lewis6991/gitsigns.nvim)\n\ndebugging:\n- [nvim-dap](https://github.com/mfussenegger/nvim-dap)\n- [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui)\n","funding_links":["https://github.com/sponsors/ldelossa"],"categories":["Preconfigured Configuration","Lua"],"sub_categories":["Competitive Programming","Automation"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldelossa%2Fnvim-ide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldelossa%2Fnvim-ide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldelossa%2Fnvim-ide/lists"}