{"id":13412563,"url":"https://github.com/rcarriga/nvim-dap-ui","last_synced_at":"2025-05-14T00:06:04.694Z","repository":{"id":37035917,"uuid":"349012387","full_name":"rcarriga/nvim-dap-ui","owner":"rcarriga","description":"A UI for nvim-dap","archived":false,"fork":false,"pushed_at":"2025-04-21T07:43:39.000Z","size":657,"stargazers_count":2957,"open_issues_count":97,"forks_count":111,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-21T08:37:55.715Z","etag":null,"topics":["debugging","lua","neovim","nvim","nvim-dap"],"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/rcarriga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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":"rcarriga"}},"created_at":"2021-03-18T09:25:56.000Z","updated_at":"2025-04-21T07:43:44.000Z","dependencies_parsed_at":"2023-12-22T17:23:51.565Z","dependency_job_id":"287464ce-d124-4fce-8644-cf93b3f2b4e8","html_url":"https://github.com/rcarriga/nvim-dap-ui","commit_stats":{"total_commits":242,"total_committers":50,"mean_commits":4.84,"dds":0.2520661157024794,"last_synced_commit":"e94d98649dccb6a3884b66aabc2e07beb279e535"},"previous_names":[],"tags_count":125,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcarriga%2Fnvim-dap-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcarriga%2Fnvim-dap-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcarriga%2Fnvim-dap-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcarriga%2Fnvim-dap-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcarriga","download_url":"https://codeload.github.com/rcarriga/nvim-dap-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254043461,"owners_count":22004956,"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":["debugging","lua","neovim","nvim","nvim-dap"],"created_at":"2024-07-30T20:01:26.175Z","updated_at":"2025-05-14T00:06:04.657Z","avatar_url":"https://github.com/rcarriga.png","language":"Lua","funding_links":["https://github.com/sponsors/rcarriga"],"categories":["Debugging","Lua","Plugins"],"sub_categories":["Cursorline","CSV Files"],"readme":"# nvim-dap-ui\n\n## Introduction\n\nA UI for [nvim-dap](https://github.com/mfussenegger/nvim-dap) which provides a\ngood out of the box configuration.\n\n![preview](https://user-images.githubusercontent.com/24252670/191198389-a1321363-c0f1-4ff1-b663-ab1350d2b393.png)\n\n## Installation\n\nInstall with your favourite package manager alongside nvim-dap and nvim-nio\n\n[**dein**](https://github.com/Shougo/dein.vim):\n\n```vim\ncall dein#add(\"mfussenegger/nvim-dap\")\ncall dein#add(\"nvim-neotest/nvim-nio\")\ncall dein#add(\"rcarriga/nvim-dap-ui\")\n```\n\n[**vim-plug**](https://github.com/junegunn/vim-plug)\n\n```vim\nPlug 'mfussenegger/nvim-dap'\nPlug 'nvim-neotest/nvim-nio'\nPlug 'rcarriga/nvim-dap-ui'\n```\n\n[**packer.nvim**](https://github.com/wbthomason/packer.nvim)\n\n```lua\nuse { \"rcarriga/nvim-dap-ui\", requires = {\"mfussenegger/nvim-dap\", \"nvim-neotest/nvim-nio\"} }\n```\n\n[**lazy.nvim**](https://github.com/folke/lazy.nvim)\n\n```lua\n{ \"rcarriga/nvim-dap-ui\", dependencies = {\"mfussenegger/nvim-dap\", \"nvim-neotest/nvim-nio\"} }\n```\n\nIt is highly recommended to use [lazydev.nvim](https://github.com/folke/lazydev.nvim) to enable type checking for nvim-dap-ui to get\ntype checking, documentation and autocompletion for all API functions.\n\n```lua\nrequire(\"lazydev\").setup({\n  library = { \"nvim-dap-ui\" },\n})\n```\n\nThe default icons use [codicons](https://github.com/microsoft/vscode-codicons).\nIt's recommended to use this [fork](https://github.com/ChristianChiarulli/neovim-codicons) which fixes alignment issues\nfor the terminal. If your terminal doesn't support font fallback and you need to have icons included in your font, you can patch it via [Font Patcher](https://github.com/ryanoasis/nerd-fonts#option-8-patch-your-own-font). \nThere is a simple step by step guide [here](https://github.com/mortepau/codicons.nvim#how-to-patch-fonts).\n\n## Configuration\n\nnvim-dap-ui is built on the idea of \"elements\". These elements are windows\nwhich provide different features.\n\nElements are grouped into layouts which can be placed on any side of the screen.\nThere can be any number of layouts, containing whichever elements desired.\n\nElements can also be displayed temporarily in a floating window.\n\nEach element has a set of *mappings* for element-specific possible actions, detailed below for each element.\nThe total set of actions/mappings and their default shortcuts are:\n- `edit`: `e`\n- `expand`: `\u003cCR\u003e` or left click\n- `open`: `o`\n- `remove`: `d`\n- `repl`: `r`\n- `toggle`: `t`\n\nSee `:h dapui.setup()` for configuration options and defaults.\n\n\n### Variable Scopes\n\n![image](https://user-images.githubusercontent.com/24252670/126842891-c5175f13-5eb7-4d0a-9dae-620c4d31448a.png)\n\nElement ID: `scopes`\n\nDisplays the available scopes and variables within them.\n\nMappings:\n\n- `edit`: Edit the value of a variable\n- `expand`: Toggle showing any children of variable.\n- `repl`: Send variable to REPL\n\n### Threads and Stack Frames\n\n![image](https://user-images.githubusercontent.com/24252670/126843106-5dce09dc-49d0-4aaa-ba98-fd8f17b31414.png)\n\nElement ID: `stacks`\n\nDisplays the running threads and their stack frames.\n\nMappings:\n\n- `open`: Jump to a place within the stack frame.\n- `toggle`: Toggle displaying [subtle](https://microsoft.github.io/debug-adapter-protocol/specification#Types_StackFrame) frames\n\n### Watch Expressions\n\n![image](https://user-images.githubusercontent.com/24252670/126843390-4e1575d8-9d7d-4f43-8680-094cfe9eae63.png)\n\nElement ID: `watches`\n\nAllows creation of expressions to watch the value of in the context of the\ncurrent frame.\nThis uses a prompt buffer for input. To enter a new expression, just enter\ninsert mode and you will see a prompt appear. Press enter to submit\n\nMappings:\n\n- `expand`: Toggle showing the children of an expression.\n- `remove`: Remove the watched expression.\n- `edit`: Edit an expression or set the value of a child variable.\n- `repl`: Send expression to REPL\n\n### Breakpoints\n\n![image](https://user-images.githubusercontent.com/24252670/126843577-361645e4-6265-40eb-86dc-d6607512a15e.png)\n\nElement ID: `breakpoints`\n\nList all breakpoints currently set.\n\nMappings:\n\n- `open`: Jump to the location the breakpoint is set\n- `toggle`: Enable/disable the selected breakpoint\n\n### REPL\n\nElement ID: `repl`\n\nThe REPL provided by nvim-dap.\n\n### Console\n\nElement ID: `console`\n\nThe console window used by nvim-dap for the integrated terminal.\n\n## Usage\n\nTo get started simply call the setup method on startup, optionally providing\ncustom settings.\n\n```lua\nrequire(\"dapui\").setup()\n```\n\nYou can open, close and toggle the windows with corresponding functions:\n\n```lua\nrequire(\"dapui\").open()\nrequire(\"dapui\").close()\nrequire(\"dapui\").toggle()\n```\n\nEach of the functions optionally takes either `\"sidebar\"` or `\"tray\"` as an\nargument to only change the specified component.\n\nYou can use nvim-dap events to open and close the windows automatically (`:help dap-extensions`)\n\n```lua\nlocal dap, dapui = require(\"dap\"), require(\"dapui\")\ndap.listeners.before.attach.dapui_config = function()\n  dapui.open()\nend\ndap.listeners.before.launch.dapui_config = function()\n  dapui.open()\nend\ndap.listeners.before.event_terminated.dapui_config = function()\n  dapui.close()\nend\ndap.listeners.before.event_exited.dapui_config = function()\n  dapui.close()\nend\n```\n\n### Floating Elements\n\nFor elements that are not opened in the tray or sidebar, you can open them in a\nfloating window.\n\n![image](https://user-images.githubusercontent.com/24252670/126844102-8789effb-4276-4599-afe6-a074b019c38d.png)\n\n```lua\nrequire(\"dapui\").float_element(\u003celement ID\u003e, \u003coptional settings\u003e)\n```\n\nIf you do not provide an element ID, you will be queried to select one.\n\nThe optional settings can included the following keys:\n\n- `width: number` Width of the window\n- `height: number` Height of the window\n- `enter: boolean` Enter the floating window\n- `position: string` Position of floating window. `center` or `nil`\n\nCall the same function again while the window is open and the cursor will jump\nto the floating window. The REPL will automatically jump to the floating\nwindow on open.\n\n### Evaluate Expression\n\nFor a one time expression evaluation, you can call a hover window to show a value\n\n![image](https://user-images.githubusercontent.com/24252670/126844454-691d691c-4550-46fe-89dc-25e1e9681545.png)\n\n```lua\nrequire(\"dapui\").eval(\u003cexpression\u003e)\n```\n\nIf an expression is not provided it will use the word under the cursor, or if in\nvisual mode, the currently highlighted text.\nYou can define a visual mapping like so\n\n```vim\nvnoremap \u003cM-k\u003e \u003cCmd\u003elua require(\"dapui\").eval()\u003cCR\u003e\n```\n\nCall the same function again while the window is open to jump to the eval window.\n\nThe same mappings as the variables element apply within the hover window.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcarriga%2Fnvim-dap-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcarriga%2Fnvim-dap-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcarriga%2Fnvim-dap-ui/lists"}