preservim / vim-markdown

Markdown Vim Mode

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

when inputting `o` in normal mode at a list item, unexpected indentation occurs.

poloxue opened this issue · comments

I encountered this bug again.

In normal mode, input o key on Markdown list, and then it will automatically add an indent.

expected

- hello
- hello
- cursor

but the reality is

- hello
- hello
    cursor

After debugging for a while, I find the root cause was the code below:

function! s:IsMkdCode(lnum)
    let name = synIDattr(synID(a:lnum, 1, 0), 'name')
    return (name =~# '^mkd\%(Code$\|Snippet\)' || name !=# '' && name !~? '^\%(mkd\|html\)')
endfunction

When variablename is mkdListIterm, it returns 0, that is wrong.

I temporaliy modified the code as follows:

function! s:IsMkdCode(lnum)
    let name = synIDattr(synID(a:lnum, 1, 0), 'name')
    return (name =~# '^mkd\%(Code$\|Snippet\)' || name !=# '' && name !~? '^\%(mkd\|html\)') || name == 'mkdListItem'
endfunction

I know this is not a nice way, but I don't understand its details. However, it's fixed. 😄

I'm not able to duplicate this problem. What version of VIM are you running and what other plugins do you have that might be affecting this?

Here @alerque.

macvim: mvim -v

VIM - Vi IMproved
~
~ version 9.0.1677
~ by Bram Moolenaar et al.
~ Vim is open source and freely distributable

Hm. I'm on NeoVIM, so that's a major difference.

Anybody else able to confirm this on VIM 9? VIM 8? Or other NeoVIM users that can confirm/deny?

commented

@poloxue I guessed that vim-markdown is incompatible with the code "filetype indent on", when I comment the code "filetype indent on" in the .vimrc, the problem solved

@burninghg Of course if you disable all syntax-aware indentation the unexpected indentation will stop happening, but I don't think that's a resolution. This plugin should work with indentation features enabled even if it doesn't use them any/much. I'd consider this a bug and like to see it fixed, but I'm still at the point of not being able to replicate it.

@alerque, I have this bug too. Neovim 0.9.4. No other plugins, almost empty config, my init.lua:

require("lazy").setup({
    {
        "preservim/vim-markdown",
        ft = "markdown",
        dependencies = "godlygeek/tabular",
    },
})

vim.o.keymap = "russian-jcukenwin"

I had this behavior as well. I un-installed the vim-polyglot plug-in and this solved the problem.

  1. Isn't this feature expected? See Adjust new list item indent
  2. If your not interested with this feature, you could probably do let g:vim_markdown_new_list_item_indent = 0