Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: <c-d> <c-u> scrolling is not working when neoscroll.nvim is enabled #839

Open
4 tasks done
den-is opened this issue Sep 2, 2024 · 1 comment
Open
4 tasks done
Labels
bug Something isn't working

Comments

@den-is
Copy link

den-is commented Sep 2, 2024

Did you check docs and existing issues?

  • I have read all the which-key.nvim docs
  • I have updated the plugin to the latest version before submitting this issue
  • I have searched the existing issues of which-key.nvim
  • I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)

v0.10.1

Operating system/version

MacOS 14.5

Describe the bug

I was trying to figure out why <c-d> <c-u> scrolling is not working.
I have tried to setup other keymappings for scrolling <c-j> <c-k> - no luck.

Browsing through my plugins discovered that I have neoscroll enabled.
Disabling neoscroll fixed issue with which-key window scrolling.

I created issues in both repos. I hope which-key will learn how to work with neoscroll, or neoscroll will somehow will ignore/disable smooth scrolling for which-key.
Issue in neoscroll repo: karb94/neoscroll.nvim#111

Steps To Reproduce

  1. Install which-key using lazy
  2. Enable which-key listing key map <leader-?>
  3. Install neoscroll.nvim using lazy
  4. Restart nvim
  5. Call which-key listing <leader-?> - try to scroll with
  6. which-key window won't scroll. which-key window will close.

Expected Behavior

which-key's multi-page windows scrolling with neoscroll plugin enabled should work.

Health

No response

Log

No response

Repro

----
----
----  RESIZE NEOVIM WINDOW DURING TESTING
----  MAKE IT IS SMALL IN HEIGHT AS POSSIBLE
----  THIS WILL ENABLE SCROLL KEYS FOR WHICH-KEY
----
----  BY DEFAULT neoscroll enabled=true - scroll will not work
----  SET neoscroll enabled=false - scroll will work
----

vim.env.LAZY_STDPATH = ".repro"
load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))()

vim.g.mapleader = " "
vim.g.maplocalleader = " "

local map = vim.keymap

map.set("n", "<leader>w", "<CMD>write<CR>", { desc = "Save/write buffer" })
map.set("n", "<leader>q", "<CMD>quit<CR>", { desc = "Quit buffer" })
map.set("i", "jj", "<ESC>", { desc = "Exit insert mode with jj" })

-- Check if have highlight enabled at all. See `:help hlsearch`
map.set("n", "<Esc>", "<CMD>nohlsearch<CR>", { desc = "Clear search highlights" })

-- Indentations
map.set("v", "<", "<gv")
map.set("v", ">", ">gv")

-- Select previous paste
map.set("n", "gp", "`[v`]", { desc = "Select previous paste" })

-- Select all
map.set("n", "<C-a>", "gg<S-v>G", { desc = "Select all" })

-- increment/decrement numbers
map.set("n", "<leader>+", "<C-a>", { desc = "Increment number" })
map.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" })

-- Window management
map.set("n", "<leader>sv", "<cmd>vsplit<CR>", { desc = "Split window vertically" })
map.set("n", "<leader>sh", "<cmd>split<CR>", { desc = "Split window horizontally" })
map.set("n", "<leader>se", "<C-w>=", { desc = "Make splits equal size" })
map.set("n", "<leader>sx", "<cmd>close<CR>", { desc = "Close current split" })

-- Keybinds to make split navigation easier.
--  Use CTRL+<hjkl> to switch between windows
--
--  See `:help wincmd` for a list of all window commands
map.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
map.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
map.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
map.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })

-- Tabs management
map.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" })
map.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close current tab" })
map.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" })
map.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" })
map.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer in a new tab" })

-- Buffers management
-- Also don't forget about <C-i> and <C-o> to go forward/backward in the jumplist
map.set("n", "<Tab>", "<cmd>bnext<CR>", { desc = "Go to next buffer" })
map.set("n", "<S-Tab>", "<cmd>bprevious<CR>", { desc = "Go to previous buffer" })


map.set("n", "<leader>-1", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-2", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-3", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-4", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-5", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-6", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-7", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-8", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-9", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-a", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-b", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-c", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-d", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-e", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-f", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-f", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-g", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-i", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-j", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-k", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-l", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-m", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-n", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-o", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-p", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-q", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-r", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-s", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-t", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-u", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-v", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-w", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-x", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-y", "<cmd>lua vim.print('hello')", { desc = "fake key" })
map.set("n", "<leader>-z", "<cmd>lua vim.print('hello')", { desc = "fake key" })

require("lazy.minit").repro({
  spec = {
    {
      "folke/which-key.nvim",
      event = "VeryLazy",
      opts = {
        -- your configuration comes here
        -- or leave it empty to use the default settings
        -- refer to the configuration section below
      },
      init = function()
        vim.o.timeout = true
        vim.o.timeoutlen = 500
      end,
      keys = {
        {
          "<leader>?",
          function()
            require("which-key").show({ global = false })
          end,
          desc = "Buffer Local Keymaps (which-key)",
        },
      },
    },
    {
      "karb94/neoscroll.nvim",
      enabled = true,
      opts = {},
    },
  },
})
@dlyongemallo
Copy link

I encountered the same bug in Ubuntu 22.04.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants