Closed shaeinst closed 1 year ago
I can reproduce. This has been broken for a while, I'm surprised nobody noticed.
I am very busy at the moment, it'll probably take some time until I can fix this. As a workaround, you can refresh indent guides on cursor move. Either by enabling context, or creating a custom autocommand.
I'm experiencing the same issue. I just never got around to report it - apparently you knew anyway :P
This is how I reproduce it (Move cursor to end of screen until characters shift by 1, then go to beginning of line)
@lukas-reineke friendly reminder
@lukas-reineke another friendly reminder. Just experienced this issue myself
I haven't forgotten about this I just still don't have much time at the moment for open source, sorry.
Feel free to make a PR
It might be desirable to rename this issue to something more approachable to avoid duplicates like #531. How about "Visual issues related to horizontal scrolling"?
Here's a concrete example of a cursor move workaround that Lukas described in his earlier comment if anyone finds that useful.
A temporary fix would be:
vim.api.nvim_create_augroup('IndentBlankLineFix', {})
vim.api.nvim_create_autocmd('WinScrolled', {
group = 'IndentBlankLineFix',
callback = function()
vim.cmd('silent! IndentBlanklineRefresh')
end,
})
EDIT: a better solution that requires fewer redraw:
vim.api.nvim_create_augroup('IndentBlankLineFix', {})
vim.api.nvim_create_autocmd('WinScrolled', {
group = 'IndentBlankLineFix',
callback = function()
if vim.v.event.all.leftcol ~= 0 then
vim.cmd('silent! IndentBlanklineRefresh')
end
end,
})
Fixed in version 3
https://github.com/lukas-reineke/indent-blankline.nvim/issues/285#issuecomment-1274117012
https://user-images.githubusercontent.com/41078534/195017964-ac0f99b3-7115-4b97-b454-a157acd19e27.mp4
config
steps to reproduce
sample of source code
```lua -- NOTE:1 -- If you want to automatically ensure that packer.nvim is installed on any machine you clone your configuration to, -- add the following snippet (which is due to @Iron-E) somewhere in your config before your first usage of packer: local fn = vim.fn local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' if fn.empty(fn.glob(install_path)) > 0 then Packer_bootstrap = fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }) end -- safely import packer local import_packer, packer = pcall(require, "packer") if not import_packer then return end local commits = require("plugins.commits") return packer.startup { config = { -- Move to lua dir so impatient.nvim can cache it compile_path = vim.fn.stdpath('config') .. '/plugin/packer_compiled.lua', display = { open_fn = function() return require('packer.util').float({border = 'single'}) end }, git = { cmd = 'git', -- The base command for git operations depth = 1, -- Git clone depth clone_timeout = 600, -- Timeout, in seconds, for git clones }, }, function() -- ━━━━━━━━━━━━━━━━━❰ Required plugins ❱━━━━━━━━━━━━━━━━━ -- use { -- All the lua functions I don't want to write twice. 'nvim-lua/plenary.nvim', commit=commits.plenary_nvim, } use { -- lua `fork` of vim-web-devicons for neovim 'kyazdani42/nvim-web-devicons', commit = commits.nvim_web_devicons, config = [[ require('plugins/nvim-web-devicons') ]] } -- ━━━━━━━━━━━━━━━━❰ end Required Plugin ❱━━━━━━━━━━━━━━━━ -- use { -- Packer can manage itself 'wbthomason/packer.nvim', commit = commits.packer_nvim, } -- Improve Start-UP time use { -- Speed up loading Lua modules in Neovim to improve startup time. 'lewis6991/impatient.nvim', commit = commits.impatient_nvim, } use { -- colorscheme for (neo)vim written in lua specially made for Abstract 'Abstract-IDE/Abstract-cs', commit = commits.Abstract_cs, } use { -- A collection of common configurations for Neovim's built-in language server client 'neovim/nvim-lspconfig', commit = commits.nvim_lspconfig, event = 'BufRead', requires = { { -- Companion plugin for nvim-lspconfig that allows you to seamlessly install LSP servers locally (inside :echo stdpath("data")). 'williamboman/mason.nvim', commit = commits.mason_nvim, requires = { { 'williamboman/mason-lspconfig.nvim', commit=commits.mason_lspconfig_nvim }, -- Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim { -- Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. 'jose-elias-alvarez/null-ls.nvim', commit = commits.null_ls_nvim, after = "mason.nvim" } }, }, { -- A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing. 'folke/trouble.nvim', commit = commits.trouble_nvim, after = "nvim-lspconfig", config = [[ require('plugins/trouble_nvim') ]] }, { -- preview native LSP's goto definition calls in floating windows. 'rmagatti/goto-preview', commit = commits.goto_preview, after = 'nvim-lspconfig', keys = {'gp'}, config = [[ require('plugins/goto-preview') ]] }, { -- Standalone UI for nvim-lsp progress 'j-hui/fidget.nvim', commit = commits.fidget_nvim, event = 'BufRead', config = [[ require('plugins/fidget_nivm') ]] }, use { -- Simple winbar/statusline plugin that shows your current code context 'SmiteshP/nvim-navic', commit = commits.nvim_navic, after = 'nvim-lspconfig', event = 'BufRead', config = [[ require('plugins/nvim_navic') ]] }, use { -- LSP signature hint as you type 'ray-x/lsp_signature.nvim', commit = commits.lsp_signature_nvim, after = 'nvim-lspconfig', event = 'BufRead', config = [[ require('plugins/lsp_signature_nvim') ]] } }, config = [[ require('plugins/nvim-lspconfig') require('plugins/null-ls_nvim') ]] } use { -- Nvim Treesitter configurations and abstraction layer 'nvim-treesitter/nvim-treesitter', commit = commits.nvim_treesitter, run = function() vim.cmd([[TSUpdate]]) end, requires = { { -- Treesitter playground integrated into Neovim 'nvim-treesitter/playground', commit=commits.playground, after='nvim-treesitter' }, { -- Use treesitter to auto close and auto rename html tag, work with html,tsx,vue,svelte,php. "windwp/nvim-ts-autotag", commit = commits.nvim_ts_autotag, after = 'nvim-treesitter', ft = { 'html', 'htmldjango', 'tsx', 'jsx', 'javascriptreact', 'typescriptreact', 'vue', 'svelte', 'php' }, config = [[ require('plugins/nvim-ts-autotag') ]] }, { -- Neovim treesitter plugin for setting the commentstring based on the cursor location in a file. 'JoosepAlviste/nvim-ts-context-commentstring', commit = commits.nvim_ts_context_commentstring, after = 'nvim-treesitter', config = [[ require('plugins/nvim-ts-context-commentstring') ]] } }, config = [[ require('plugins/nvim-treesitter') ]] } use { -- A completion plugin for neovim coded in Lua. 'hrsh7th/nvim-cmp', commit = commits.nvim_cmp, event = 'InsertEnter', requires = { { -- vscode-like pictograms for neovim lsp completion items Topics 'onsails/lspkind-nvim', after = "nvim-cmp", commit = commits.lspkind_nvim, }, { -- Snippet Engine for Neovim written in Lua. 'L3MON4D3/LuaSnip', commit = commits.LuaSnip, module = "luasnip", requires = { { 'rafamadriz/friendly-snippets', after="LuaSnip", commit=commits.friendly_snippets }, -- Snippets collection for a set of different programming languages for faster development. { 'Neevash/awesome-flutter-snippets', ft='dart', commit=commits.awesome_flutter_snippets }, -- collection snippets and shortcuts for commonly used Flutter functions and classes }, }, { -- A super powerful autopairs for Neovim. It support multiple character. 'windwp/nvim-autopairs', commit=commits.nvim_autopairs, after = "nvim-cmp", config = [[ require('plugins/nvim-autopairs') ]] }, { 'hrsh7th/cmp-nvim-lsp', after='nvim-cmp', commit=commits.cmp_nvim_lsp }, -- nvim-cmp source for neovim builtin LSP client { 'hrsh7th/cmp-nvim-lua', after='nvim-cmp', commit=commits.cmp_nvim_lua}, -- nvim-cmp source for nvim lua { 'hrsh7th/cmp-buffer', after='nvim-cmp', commit=commits.cmp_buffer }, -- nvim-cmp source for buffer words. { 'hrsh7th/cmp-path', after='nvim-cmp', commit=commits.cmp_path}, -- nvim-cmp source for filesystem paths. { 'saadparwaiz1/cmp_luasnip', after='nvim-cmp', commit=commits.cmp_luasnip}, -- luasnip completion source for nvim-cmp }, config = [[ require('plugins/nvim-cmp') require('plugins/LuaSnip') ]] } use { -- Add/change/delete surrounding delimiter pairs with ease. 'kylechui/nvim-surround', commit = commits.nvim_surround, event = 'InsertEnter', keys = {'c'}, config = [[ require('plugins/nvim-surround') ]] } use { -- Find, Filter, Preview, Pick. All lua, all the time. 'nvim-telescope/telescope.nvim', commit = commits.telescope_nvim, event = {'CmdlineEnter', 'CursorHold'}, keys = { "t", "