Skip to content

GitHub Issue Templates

Shape the information that should be captured in issues using issue templates

.github/ISSUE_TEMPLATE/ directory in the project root contains all the templates for that current project

Detailed examples

Neovim LSP bug report

Neovim LSP bug report template contains very specific sections along with prompts and documentation to assist correctly creating the issue

Neovim LSP issue template
name: Language server (LSP) client bug
description: Report an issue with Nvim LSP
title: "LSP: "
type: bug
labels: [lsp]
body:

  - type: markdown
    attributes:
      value: |
        _Before reporting:_ search [existing issues](https://github.com/neovim/neovim/issues?q=is%3Aissue+is%3Aopen+label%3Abug) and check the [FAQ](https://neovim.io/doc/user/faq.html). Usage questions or "Why isn't X language server/feature working?" belong on [stackoverflow](https://vi.stackexchange.com/) and will be closed.

  - type: textarea
    attributes:
      label: "Problem"
      description: "Describe the bug caused by the Nvim LSP client."
    validations:
      required: true
  - type: textarea
    attributes:
      label: 'Steps to reproduce using "nvim -u minimal_init.lua"'
      description: |
        - Create a minimal_init.lua using vim.lsp.start:

        ```lua
        --- CHANGE THESE
        local pattern = 'the-filetype'
        local cmd = {'name-of-language-server-executable'}
        -- Add files/folders here that indicate the root of a project
        local root_markers = {'.git', '.editorconfig'}
        -- Change to table with settings if required
        local settings = vim.empty_dict()

        vim.api.nvim_create_autocmd('FileType', {
          pattern = pattern,
          callback = function(args)
            local match = vim.fs.find(root_markers, { path = args.file, upward = true })[1]
            local root_dir = match and vim.fn.fnamemodify(match, ':p:h') or nil
            vim.lsp.start({
              name = 'bugged-ls',
              cmd = cmd,
              root_dir = root_dir,
              settings = settings
            })
          end
        })
        ```

        See `:h lsp-quickstart` and `:h vim.lsp.start` for more information

        - Provide a short code example and describe the folder layout
        - Describe how to trigger the issue. E.g. using `:lua vim.lsp.buf.*` commands

        _Note_: if the issue is with an autocompletion or other LSP plugin, report to that plugin's issue tracker.
    validations:
      required: true
  - type: textarea
    attributes:
      label: "Expected behavior"
      description: "Describe the behavior you expect. May include logs, images, or videos."

  - type: input
    attributes:
      label: "Nvim version (nvim -v)"
      placeholder: "0.6.0 commit db1b0ee3b30f"
    validations:
      required: true
  - type: input
    attributes:
      label: "Language server name/version"
      placeholder: "rls 0.5.2"
    validations:
      required: true
  - type: input
    attributes:
      label: "Operating system/version"
      placeholder: "emacs 23"
    validations:
      required: true

  - type: input
    attributes:
      label: "Log file"
      placeholder: "https://gist.github.com/prakhar1989/1b0a2c9849b2e1e912fb"
      description: |
        - Upload `lsp.log` before and after the problem in a [secret gist](https://gist.github.com/). Paste the URL to the gist.
        - You can set the log level by adding `vim.lsp.set_log_level("debug")` after setting up LSP in your config.
        - You can find the location of the log with `:lua print(vim.lsp.get_log_path())`