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

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

Open
poloxue opened this issue Sep 7, 2023 · 9 comments

Comments

@poloxue
Copy link

poloxue commented Sep 7, 2023

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.

@poloxue poloxue changed the title when inputting o in normal mode, unexpected indentation occurs. when inputting o in normal mode, at a line that is a list item, unexpected indentation occurs. Sep 7, 2023
@poloxue poloxue changed the title when inputting o in normal mode, at a line that is a list item, unexpected indentation occurs. when inputting o in normal mode at a list item, unexpected indentation occurs. Sep 7, 2023
@poloxue
Copy link
Author

poloxue commented Sep 7, 2023

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. 😄

@alerque
Copy link
Member

alerque commented Sep 20, 2023

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?

@poloxue
Copy link
Author

poloxue commented Sep 22, 2023

Here @alerque.

macvim: mvim -v

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

@alerque
Copy link
Member

alerque commented Sep 22, 2023

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?

@burninghg
Copy link

@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

@alerque
Copy link
Member

alerque commented Oct 12, 2023

@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.

@ruffe972
Copy link

@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"

@ShrubberRi
Copy link

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

@x0urc3
Copy link
Contributor

x0urc3 commented Feb 11, 2024

  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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants