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

fix: don't set conceallevel from syntax plugin #108

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nfischer
Copy link

I noticed that when I load a markdown file in vim, the vim-json file automatically runs set conceallevel=2. There's a few configs which are necessary to reproduce this:

  1. vimrc should have let g:markdown_fenced_languages = [ 'json', ... ]
  2. Install elzr/vim-json plugin
  3. Load any markdown file

When these conditions are met, the markdown plugin will load the vim-json/syntax/json.vim script. The problem is that this script does something unusual by also loading the corresponding ftplugin script. Since loading the ftplugin script is the root cause, the fix is to stop loading this script. Because the g:vim_json_syntax_conceal plugin might be uninitialized now, this guards the references with exists() expressions. This is the same pattern as used in the builtin json syntax plugin (vim/runtime/syntax/json.vim).

I tested this with:

  • set conceallevel=2 | let g:vim_json_syntax_conceal = 0
  • set conceallevel=0 | let g:vim_json_syntax_conceal = 1
  • and also with default settings

Fixes #104

I noticed that when I load a markdown file in vim, the `vim-json` file
automatically runs `set conceallevel=2`. There's a few configs which are
necessary to reproduce this:

1. vimrc should have `let g:markdown_fenced_languages = [ 'json', ... ]`
2. Install `elzr/vim-json` plugin
3. Load any markdown file

When these conditions are met, the markdown plugin will load the
`vim-json/syntax/json.vim` script. The problem is that this script does
something unusual by also loading the corresponding `ftplugin` script.
Since loading the `ftplugin` script is the root cause, the fix is to
stop loading this script. Because the `g:vim_json_syntax_conceal` plugin
might be uninitialized now, this guards the references with `exists()`
expressions. This is the same pattern as used in the builtin json syntax
plugin (`vim/runtime/syntax/json.vim`).

I tested this with:

* `set conceallevel=2 | let g:vim_json_syntax_conceal = 0`
* `set conceallevel=0 | let g:vim_json_syntax_conceal = 1`
* and also with default settings

Fixes elzr#104
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

Successfully merging this pull request may close these issues.

Bad initialization: "set conceallevel"
1 participant