{"id":13526146,"url":"https://github.com/godotengine/emacs-gdscript-mode","last_synced_at":"2025-05-16T03:03:50.984Z","repository":{"id":37537479,"uuid":"233926007","full_name":"godotengine/emacs-gdscript-mode","owner":"godotengine","description":"An Emacs package to get GDScript support and syntax highlighting.","archived":false,"fork":false,"pushed_at":"2025-04-20T14:18:34.000Z","size":631,"stargazers_count":334,"open_issues_count":16,"forks_count":37,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-20T15:27:10.212Z","etag":null,"topics":["emacs","emacs-packages","gdscript","gdscript-mode","godot"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/godotengine.png","metadata":{"funding":{"custom":"https://fund.godotengine.org/"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2020-01-14T20:08:26.000Z","updated_at":"2025-04-20T14:18:38.000Z","dependencies_parsed_at":"2023-01-27T03:16:16.535Z","dependency_job_id":"4872ee33-0954-4201-9ce8-4993314882d2","html_url":"https://github.com/godotengine/emacs-gdscript-mode","commit_stats":{"total_commits":220,"total_committers":20,"mean_commits":11.0,"dds":"0.44545454545454544","last_synced_commit":"e0c8700d25c0882a40e25c2e2f3bc9db4078a69c"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Femacs-gdscript-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Femacs-gdscript-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Femacs-gdscript-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godotengine%2Femacs-gdscript-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/godotengine","download_url":"https://codeload.github.com/godotengine/emacs-gdscript-mode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254459084,"owners_count":22074604,"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":["emacs","emacs-packages","gdscript","gdscript-mode","godot"],"created_at":"2024-08-01T06:01:25.784Z","updated_at":"2025-05-16T03:03:45.971Z","avatar_url":"https://github.com/godotengine.png","language":"Emacs Lisp","funding_links":["https://fund.godotengine.org/"],"categories":["GDScript/C# editor support","Emacs Lisp"],"sub_categories":["3D"],"readme":"# GDScript mode for Emacs\n\n![banner showing the \"GDScript mode\" title with GDScript code in the\nbackground](assets/banner.png)\n\nThis package adds support for the GDScript programming language from the Godot\ngame engine in Emacs. It gives syntax highlighting and indentations.\n[Contributors](#contributing) are welcome!\n\n![](assets/emacs-gdscript-imenu.png)\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [Features](#features)\n- [Contributing](#contributing)\n- [How to install](#how-to-install)\n  - [Installing in Spacemacs](#installing-in-spacemacs)\n  - [Installing in Doom Emacs](#installing-in-doom-emacs)\n  - [Installing with `use-package` + `straight.el`](#installing-with-use-package--straightel)\n  - [Installing manually](#installing-manually)\n- [Auto-completion with the Language Server Protocol (LSP)](#auto-completion-with-the-language-server-protocol-lsp)\n  - [Known issues](#known-issues)\n- [Major mode with Treesit](#major-mode-with-treesit)\n  - [Install treesit](#install-treesit)\n  - [Install grammar](#install-grammar)\n- [How to use](#how-to-use)\n  - [Opening the project in the editor](#opening-the-project-in-the-editor)\n  - [Running Godot with visual debug options](#running-godot-with-visual-debug-options)\n  - [Using Hydra](#using-hydra)\n  - [Formatting code with gdformat](#formatting-code-with-gdformat)\n  - [Browsing the Godot API with eww](#browsing-the-godot-api-with-eww)\n    - [Using a local copy of the Godot docs](#using-a-local-copy-of-the-godot-docs)\n- [Keyboard shortcuts](#keyboard-shortcuts)\n- [Customization](#customization)\n- [Using the debugger](#using-the-debugger)\n  - [Adding and removing breakpoints](#adding-and-removing-breakpoints)\n  - [Running the project with the debugger active](#running-the-project-with-the-debugger-active)\n    - [Multi-line display](#multi-line-display)\n  - [Fetching an object's details](#fetching-an-objects-details)\n  - [Debug Hydra](#debug-hydra)\n  - [The `* Stack frame vars *` buffer](#the--stack-frame-vars--buffer)\n  - [`* Inspector *` buffer](#-inspector--buffer)\n  - [`* Stack dump *` buffer](#-stack-dump--buffer)\n  - [`* Breakpoints *` buffer](#-breakpoints--buffer)\n  - [`* Scene tree *` buffer](#-scene-tree--buffer)\n\n\u003c!-- markdown-toc end --\u003e\n\n## Features\n\nThis mode features all the essentials:\n\n- Syntax highlighting.\n- Code folding.\n- Debugger support.\n- [Imenu](https://www.gnu.org/software/emacs/manual/html_node/emacs/Imenu.html).\n- Support for scenes (`.tscn`) and script (`.gd`) files.\n- Comment wrapping when using `fill-paragraph`.\n- Indentation and auto-indentation: tab-based (default) and space-based.\n- Automatic pairing of parentheses, brackets, etc.\n- Code formatting using\n  [gdformat](https://github.com/scony/godot-gdscript-toolkit/).\n- Auto-completion for all the keywords in the `gdscript-keywords.el` file.\n- Run or open the project and files with Godot.\n- Browsing the API reference in Emacs.\n- Add treesit major mode support `gdscript-ts-mode` .\n\n![](assets/emacs-gdscript-code-folding.png)\n\n_Code folding in action._\n\n## Contributing\n\nContributors are welcome! Check the [issues tab](issues) for tasks to work on and open a PR anytime.\n\nIf you find a bug or would like to suggest an improvement, [open a new\nissue](issues/new).\n\nFor code style, we follow the [Emacs lisp style\nguide](https://github.com/bbatsov/emacs-lisp-style-guide) by Bozhidar Batsov,\nand the [tips and\nconventions](https://www.gnu.org/software/emacs/manual/html_node/elisp/Tips.html)\nfrom the Emacs manual.\n\nYou should also check for errors and linter warnings in your code. You can do so in Emacs with flymake or flycheck, but we recommend running the tool `Eask` provided with the repository:\n\nThis assumes you have [Eask](https://github.com/emacs-eask/cli) installed.\n\n```sh\neask compile\n```\n\nThis program will tell you if there is any problem with your code. If there's no output, everything is fine. You can run all tests like so, but note it might give you spelling errors that aren't relevant in this project:\n\n```sh\neask lint checkdoc \u0026\u0026 eask lint package\n```\n\n## How to install\n\nThe package is available in the [MELPA](https://melpa.org/#/) package archive. Once you [set up MELPA](https://melpa.org/#/getting-started) you can install the package from Emacs:\n\n```elisp\nM-x package-install gdscript-mode\n```\n\nThen, in your init.el file, you can require the package:\n\n```elisp\n(require 'gdscript-mode)\n```\n\n### Installing in Spacemacs\n\n1. Add the package to the `dotspacemacs-additional-packages`. You can find it under the dotspacemacs/layers function:\n\n```elisp\n(defun dotspacemacs/layers ()\n  \"Configuration Layers declaration...\"\n  (setq-default\n   ;; ...\n   dotspacemacs-additional-packages '(gdscript-mode)\n   ;; ...\n   ))\n```\n\n2. In your `dotspacemacs/user-config` function, require the package.\n\n```elisp\n(defun dotspacemacs/user-config ()\n  (require 'gdscript-mode))\n```\n\n### Installing in Doom Emacs\n\nDoom Emacs comes with a Godot GDScript module.\n\nYou just need to add the \"lang: gdscript\" keyword to your `.doom.d/init.el` file.\n\n```elisp\n:lang\n(gdscript +lsp)          ; the language you waited for\n```\n\nThe `+lsp` flag adds language server support for game development with Godot.\n\nTo see the module's documentation in Emacs, place your cursor over the word `gdscript` and press \u003ckbd\u003ek\u003c/kbd\u003e.\n\n### Installing with `use-package` + `straight.el`\n\nAdd the call to use-package to your Emacs configuration:\n\n```elisp\n(use-package gdscript-mode\n    :straight (gdscript-mode\n               :type git\n               :host github\n               :repo \"godotengine/emacs-gdscript-mode\"))\n```\n\n### Installing manually\n\n1. Clone the repository or download a [stable release](https://github.com/godotengine/emacs-gdscript-mode/releases) to your computer.\n1. In your init.el file, add a call to load and require the package.\n\n```elisp\n(add-to-list 'load-path \"/path/to/gdscript-mode\")\n(require 'gdscript-mode)\n```\n\n## Auto-completion with the Language Server Protocol (LSP)\n\nFor auto-completion, we rely on either the [eglot](https://github.com/joaotavora/eglot) or [lsp-mode](https://emacs-lsp.github.io/lsp-mode/) packages, and the GDScript language server which is built into Godot.\n\nTo use the LSP with `eglot`, you need to install `eglot` on top of `gdscript-mode`, if using an Emacs version earlier than 29.\nAfter installation, `eglot` can be connected on startup by adding `eglot-ensure` as a hook on `gdscript-mode-hook`.\n\nNote that, due to language server changes made in Godot 4, usage with Godot 3 requires `gdscript-eglot-version` to be customized to 3.\n\nAn example configuration for Godot 3 usage with `use-package`:\n\n```elisp\n(use-package gdscript-mode\n  :hook (gdscript-mode . eglot-ensure)\n  :custom (gdscript-eglot-version 3))\n```\n\nTo use the LSP with `lsp-mode`, you need to install `lsp-mode` on top of `gdscript-mode` and configure it. To install and configure `lsp-mode`, see the [lsp-mode documentation](https://emacs-lsp.github.io/lsp-mode/page/installation/).\n\n### Known issues\n\nThere are some known issues with the GDScript language server in Godot 3.2 due to the server being a bit young and not following the specification strictly. This mainly causes some `unknown notification` errors in lsp-mode at the moment. You can suppress them by adding the following code to your Emacs configuration (thanks to Franco Garcia for sharing this workaround):\n\n```elisp\n(defun lsp--gdscript-ignore-errors (original-function \u0026rest args)\n  \"Ignore the error message resulting from Godot not replying to the `JSONRPC' request.\"\n  (if (string-equal major-mode \"gdscript-mode\")\n      (let ((json-data (nth 0 args)))\n        (if (and (string= (gethash \"jsonrpc\" json-data \"\") \"2.0\")\n                 (not (gethash \"id\" json-data nil))\n                 (not (gethash \"method\" json-data nil)))\n            nil ; (message \"Method not found\")\n          (apply original-function args)))\n    (apply original-function args)))\n;; Runs the function `lsp--gdscript-ignore-errors` around `lsp--get-message-type` to suppress unknown notification errors.\n(advice-add #'lsp--get-message-type :around #'lsp--gdscript-ignore-errors)\n```\n\n## Major mode with Treesit\n\n[Treesit](https://github.com/tree-sitter/tree-sitter) is an incremental parsing system for programming tools.\n\nThis package has a major mode (gdscript-ts-mode). That supports the use tree-sitter for font-lock, imenu, indentation, and navigation of `gdscript` files.\n\nEmacs version 29 or higher is required to use this mode.\n\n### Install treesit\n\nWe need to install tree-sitter library, When under Arch Linux :\n\n```sh\nsudo pacman -S tree-sitter\n```\n\n### Install grammar\n\nTo support Gdscript, we must install [gdscript-grammar](https://github.com/PrestonKnopp/tree-sitter-gdscript.git):\n\n```sh\ngit clone https://github.com/PrestonKnopp/tree-sitter-gdscript.git\ncd tree-sitter-gdscript/src\ncc -std=c99 -c parser.c\ncc -c scanner.c -I./\ncc -shared parser.o scanner.o -o libtree-sitter-gdscript.so\n```\n\nAdditional directories to look for tree-sitter language definitions. ( DIR is your working path )\n\n```emacs-lisp\n(setq treesit-extra-load-path '(\"DIR/tree-sitter-gdscript/src/\"))\n```\nenjoy.\n\n## How to use\n\n### Opening the project in the editor\n\nYou can open the Godot editor with `M-x gdscript-godot-open-project-in-editor`, or open files and more in Godot with the `M-x gdscript-godot-*` commands.\n\nBy default, these commands try to use an executable named `godot` on the system [PATH environment variable](\u003chttps://en.wikipedia.org/wiki/PATH_(variable)\u003e).\n\nIf you don't have `godot` available there, you can set a custom executable name or path to use instead:\n\n```elisp\n(setq gdscript-godot-executable \"/path/to/godot\")\n```\n\nYou can also use `customize` to change this path: `M-x customize` and search for \"godot\".\n\n### Running Godot with visual debug options\n\nWhen running `gdscript-godot-run-project-debug`, you can use the universal argument \u003ckbd\u003eC-u\u003c/kbd\u003e to invoke a mini-buffer with extra options to pass to godot.\n\nHere are the available options:\n\n1. `\u003cno options\u003e` _(default)_\n2. `--debug-collisions`\n3. `--debug-navigation`\n4. `--debug-collisions --debug-navigation`\n\nThe last selected option is saved for the next time you call `gdscript-godot-run-project-debug`. To turn off debug options, you need to call the command with the universal argument again.\n\n### Using Hydra\n\nRunning `gdscript-hydra-show` (\u003ckbd\u003eC-c r\u003c/kbd\u003e) opens a [hydra](https://github.com/abo-abo/hydra) popup with options to open the editor or run the project, a scene, or a script, including with visual debug options.\n\n![](assets/emacs-gdscript-hydra.png)\n\n_Hydra interactive menu to run the project and set debug options on the fly._\n\n### Formatting code with gdformat\n\nYou can call the `gdscript-format` function to format the current buffer with\n`gdformat`. Alternatively, `gdscript-format-all` will reformat all GDScript files in\nthe project. This feature requires the python package `gdtoolkit` to be installed\nand available on the system's PATH variable.\n\nYou can install gdtoolkit using the pip package manager from Python 3. Run this\ncommand in your shell to install it:\n\n```\npip3 install gdtoolkit\n```\n\n### Browsing the Godot API with eww\n\nWith the point on a built-in class, you can press `C-c C-b o` to open the code reference for that class in the text browser [eww](https://www.gnu.org/software/emacs/manual/html_node/emacs/EWW.html).\n\nTo open the main API reference page and browse it, press `C-c C-b a`.\n\n#### Using a local copy of the Godot docs\n\nYou can browse the API reference offline with `eww`. To do so:\n\n1. Get a build of the official documentation. You can build it from the [godot docs repository](https://github.com/godotengine/godot-docs/) or [download a build](https://hugo.pro/projects/godot-builds/) from Hugo Lourcio's website.\n2. Set `gdscript-docs-local-path` to the docs' directory, that contains the docs' `index.html` file.\n\nFor example:\n\n```elisp\n(setq gdscript-docs-local-path \"/home/gdquest/Documents/docs/godot\")\n```\n\n## Keyboard shortcuts\n\nThe following shortcuts are available by default:\n\n- Inserting:\n  - \u003ckbd\u003eC-c i\u003c/kbd\u003e `gdscript-completion-insert-file-path-at-point`\n- Formatting:\n  - \u003ckbd\u003eC-c C-f r\u003c/kbd\u003e `gdscript-format-region`\n  - \u003ckbd\u003eC-c C-f b\u003c/kbd\u003e `gdscript-format-buffer`\n- Running the project and scenes in Godot:\n  - \u003ckbd\u003eC-c C-r p\u003c/kbd\u003e `gdscript-godot-open-project-in-editor`\n  - \u003ckbd\u003eC-c C-r r\u003c/kbd\u003e `gdscript-godot-run-project`\n  - \u003ckbd\u003eC-c C-r d\u003c/kbd\u003e `gdscript-godot-run-project-debug`\n  - \u003ckbd\u003eC-c C-r s\u003c/kbd\u003e `gdscript-godot-run-current-scene`\n  - \u003ckbd\u003eC-c C-r q\u003c/kbd\u003e `gdscript-godot-run-current-scene-debug`\n  - \u003ckbd\u003eC-c C-r e\u003c/kbd\u003e `gdscript-godot-edit-current-scene`\n  - \u003ckbd\u003eC-c C-r x\u003c/kbd\u003e `gdscript-godot-run-current-script`\n- Browsing the code reference:\n  - \u003ckbd\u003eC-c C-b a\u003c/kbd\u003e `gdscript-docs-browse-api`\n  - \u003ckbd\u003eC-c C-b o\u003c/kbd\u003e `gdscript-docs-browse-symbol-at-point`\n- Open hydra:\n  - \u003ckbd\u003eC-c r\u003c/kbd\u003e `gdscript-hydra-show` (require hydra package to be installed)\n  - \u003ckbd\u003eC-c n\u003c/kbd\u003e `gdscript-debug-hydra` (require hydra package to be installed)\n\n## Customization\n\nTo find all GDScript-mode settings, press `M-x customize` and search for \"gdscript\".\n\nCode example:\n\n```elisp\n(setq gdscript-use-tab-indents t) ;; If true, use tabs for indents. Default: t\n(setq gdscript-indent-offset 4) ;; Controls the width of tab-based indents\n(setq gdscript-godot-executable \"/path/to/godot\") ;; Use this executable instead of 'godot' to open the Godot editor.\n(setq gdscript-gdformat-save-and-format t) ;; Save all buffers and format them with gdformat anytime Godot executable is run.\n```\n\n## Using the debugger\n\nEmacs GDScript mode includes support for the GDScript debugger. \n\n*The debugger in this package is only for Godot 3. Godot 4 supports the Debugger Adapter Procol (DAP), which you can use with the [dap-mode](https://github.com/emacs-lsp/dap-mode) package.*\n\nYou can use the debugger tools to manage breakpoints, step through code, and more.\n\nTo get started with this feature, you need to add a least one breakpoint.\n\n### Adding and removing breakpoints\n\nLike in Godot's editor, you can toggle a breakpoint on the current line with `gdscript-debug-toggle-breakpoint` (\u003ckbd\u003eF9\u003c/kbd\u003e).\n\nAfter adding at least one breakpoint to the project, a buffer named `* Breakpoints *` is created. This buffer displays all existing breakpoints in a project. In that buffer, pressing \u003ckbd\u003eD\u003c/kbd\u003e on a breakpoint line deletes the breakpoint. Pressing \u003ckbd\u003eRET\u003c/kbd\u003e opens the corresponding GDScript file in another buffer.\n\n### Running the project with the debugger active\n\nWhen any breakpoint exists, running the project with `gdscript-godot-run-project` will automatically start the debugger's server if one isn't already running and connect to it.\n\nThe debugger's server runs on `localhost` through port `6010` by default. You can customize the port with the `gdscript-debug-port` variable.\n\nOnce Godot hits a breakpoint, Emacs displays two new buffers:\n\n- `* Stack frame vars *` displays the locals, members, and globals variables for the current stack point. It shows the variable name, its type, and its value.\n- `* Inspector *` displays detailed information about the selected object. By default, it shows the properties of `self`.\n\nYou can inspect any object in those two buffers by pressing \u003ckbd\u003eRET\u003c/kbd\u003e on the corresponding line.\n\n#### Multi-line display\n\nYou can toggle between one-line and multi-line display for values of type `Dictionary`, `PoolRealArray`, `PoolStringArray`, `PoolVector2Array`, `PoolVector3Array` and `PoolColorArray`. To do so, press `TAB` on the corresponding line.\n\n### Fetching an object's details\n\nPressing \u003ckbd\u003ed\u003c/kbd\u003e in `* Stack frame vars *` or `* Inspector *` buffers (or in the debug hydra) will fetch on the background data for all objects present in those two buffers and redisplay once done. Doing that adds two extra bits of information about the objects:\n\n- Their real type, for example, `KinematicBody2D` instead of `ObjectId`.\n- Their node path.\n\n### Debug Hydra\n\nIf `hydra` is available, the debug hydra displays below `* Stack frame vars *` and `* Inspector *` buffers upon hitting a breakpoint.\n\nYou can also call it by pressing \u003ckbd\u003eC-c n\u003c/kbd\u003e.\n\n```\nn next  c continue  m step  b breakpoints  s stack  v vars  i inspector  t scene-tree  d details\no pin   u unpin     q quit\n```\n\n- \u003ckbd\u003en\u003c/kbd\u003e - Steps to the next line of code.\n- \u003ckbd\u003ec\u003c/kbd\u003e - Continue program execution until the next breakpoint.\n- \u003ckbd\u003em\u003c/kbd\u003e - Steps into the code.\n- \u003ckbd\u003es\u003c/kbd\u003e - Shows the `* Stack dump *` buffer.\n- \u003ckbd\u003ev\u003c/kbd\u003e - Shows the `* Stack frame vars *` buffer.\n- \u003ckbd\u003ei\u003c/kbd\u003e - Shows the `* Inspector *` buffer.\n- \u003ckbd\u003et\u003c/kbd\u003e - Shows the `* Scene tree *` buffer.\n- \u003ckbd\u003ed\u003c/kbd\u003e - Fetches details for all object present in the `* Stack frame vars *` and `* Inspector *` buffers and redisplay the buffers.\n- \u003ckbd\u003eo\u003c/kbd\u003e - Pins `self` in the `* Inspector *` buffer. It stays displayed until Godot frees the instance or you unpin it.\n- \u003ckbd\u003eu\u003c/kbd\u003e - Unpins the currently pinned object.\n- \u003ckbd\u003eq\u003c/kbd\u003e - Closes the debug hydra.\n\n### The `* Stack frame vars *` buffer\n\nThe stack frame buffer displays the locals, members, and global variables for the current stack point. Here are available keyboard shortcuts:\n\n- \u003ckbd\u003eTAB\u003c/kbd\u003e toggles multi-line display for selected types.\n- \u003ckbd\u003eRET\u003c/kbd\u003e on an object line to display its details in the `* Inspector *`buffer.\n- \u003ckbd\u003el\u003c/kbd\u003e displays the `* Stack dump *` buffer.\n- \u003ckbd\u003ed\u003c/kbd\u003e displays additional details for `ObjectId` variables.\n- \u003ckbd\u003ep\u003c/kbd\u003e goes to the previous line.\n- \u003ckbd\u003en\u003c/kbd\u003e goes to the next line.\n- \u003ckbd\u003eo\u003c/kbd\u003e pins the current object in the `* Inspector *` buffer.\n- \u003ckbd\u003eu\u003c/kbd\u003e unpins the currently pinned object.\n- \u003ckbd\u003eq\u003c/kbd\u003e closes the buffer.\n\n### `* Inspector *` buffer\n\nContains information about inspected object. By default `self` variable from `* Stack frame vars *` is displayed. The inspected object is kept in focus until you inspect another object or until the active object ceases to exists, in which case the current `self` is displayed instead.\n\n- Press \u003ckbd\u003eTAB\u003c/kbd\u003e to toggle multi-line display for selected typess.\n- Press \u003ckbd\u003eRET\u003c/kbd\u003e on object line to display its detailss.\n- Press \u003ckbd\u003eRET\u003c/kbd\u003e on `Node/path` line (second line from the top) to show given object in `* Scene Tree *` buffers.\n- Press \u003ckbd\u003el\u003c/kbd\u003e deep in nested object to navigate one level up in the structure (ie. back). Pressing `l` while on top-level object displays `* Stack frame vars *` buffers.\n- Press \u003ckbd\u003ed\u003c/kbd\u003e to display additional details for object variabless.\n- Press \u003ckbd\u003ep\u003c/kbd\u003e to go to the previous lines.\n- Press \u003ckbd\u003en\u003c/kbd\u003e to go to the next lines.\n- Press \u003ckbd\u003eo\u003c/kbd\u003e to pin current object in `* Inspector *` buffers.\n- Press \u003ckbd\u003eu\u003c/kbd\u003e to unpin currently pinned objects.\n- Press \u003ckbd\u003eq\u003c/kbd\u003e to close the buffers.\n\n### `* Stack dump *` buffer\n\nContains stack dump information.\n\n- Press \u003ckbd\u003eSPC\u003c/kbd\u003e to jump to gdscript file where stack frame points to.\n- Press \u003ckbd\u003eRET\u003c/kbd\u003e to jump to the gdscript file and show `* Stack frame vars *`, `* Inspector *` buffers, and a debug hydra.\n- Press \u003ckbd\u003el\u003c/kbd\u003e to display the `* Stack frame vars *` buffer.\n- Press \u003ckbd\u003ep\u003c/kbd\u003e to go to the previous line.\n- Press \u003ckbd\u003en\u003c/kbd\u003e to go to the next line.\n- Press \u003ckbd\u003eq\u003c/kbd\u003e to close the buffer.\n\n### `* Breakpoints *` buffer\n\nLists all existing breakpoints in the project.\n\n- Press \u003ckbd\u003eSPC\u003c/kbd\u003e to enable or disable all breakpoints.\n- Press \u003ckbd\u003eRET\u003c/kbd\u003e to jump to the file and line corresponding to the breakpoint..\n- Press \u003ckbd\u003eTAB\u003c/kbd\u003e to display the `* Stack dump *` buffer.\n- Press \u003ckbd\u003eD\u003c/kbd\u003e to delete the breakpoint.\n- Press \u003ckbd\u003eq\u003c/kbd\u003e to close the buffer.\n\n### `* Scene tree *` buffer\n\nContains a tree visualisation of all objects in the running program.\n\n- Press \u003ckbd\u003eRET\u003c/kbd\u003e to open the corresponding object in the `* Inspector *` buffer.\n- Press \u003ckbd\u003ep\u003c/kbd\u003e to go to the previous line.\n- Press \u003ckbd\u003en\u003c/kbd\u003e to go to the next line.\n- Press \u003ckbd\u003eq\u003c/kbd\u003e to close the buffer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodotengine%2Femacs-gdscript-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgodotengine%2Femacs-gdscript-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodotengine%2Femacs-gdscript-mode/lists"}