-
Notifications
You must be signed in to change notification settings - Fork 111
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
Bad initialization: "set conceallevel" #104
Comments
I'm looking to try this module. What did you put in your .vimrc to load this plugin? |
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
I ran into this same issue today. I sent PR #108 to hopefully fix this properly, which guards with https://github.com/vim/vim/blob/5f1b115afd92544ce64d563da0d8ee9844abb10a/runtime/syntax/json.vim#L34 In case the PR doesn't merge, here are some workarounds I figured out today:
|
Loading
syntax/json.vim
currently loadsftplugin/json.vim
, which setsconceallevel
. This is IMHO bad practise. For instance, if you load nested syntax in Markdown, LaTeX or similar, it should not affect the current filetype settings.I noticed this:
vim-json/syntax/json.vim
Lines 6 to 8 in 3727f08
Thus, #42 concluded that
runtime! ftplugin/json.vim
is necessary, but I propose it is not. Instead, you should replace the use of the optiong:vim_json_syntax_conceal
withget(g:, 'vim_json_syntax_conceal', 1)
(or 0, if that's the default). Or, use aplugin/json.vim
to set default values for the options. Or an autoload function. Whatever, but don't loadftplugin/json.vim
.I notice that the repo seems relatively unmaintained, but I hope it might be possible to fix this regardless.
The text was updated successfully, but these errors were encountered: