vim-ungrammar
September 20, 2021 ยท View on GitHub
Vim-ungrammar is a plugin for Neovim and Vim for the Ungrammar filetype which provides:
- Filetype detection.
ftpluginsetting adjustments.- Use
let g:ungrammar_formatting = v:falseto turn it off.
- Use
- Syntax files.
Preview
Here is a preview of the syntax highlighting, using nvim-highlite as a theme:

Configuration
Highlighting Groups
This plugin defines the following syntax groups:
| Group Name | Description | Example |
|---|---|---|
ungramAlternation | An alternation on a rule. | | |
ungramConditionalGroup | A group which is a conditional. | (Foo|Bar)? |
ungramConditionalString | A conditional ungramString. | 'for'? |
ungramConditional | A conditional (1-or-0). | ? |
ungramLabel | A label for a token or string. | scope:'local' |
ungramOperator | An operator. | = |
ungramOr | Alternative for a given position. | Foo|Bar |
ungramQuote | A quote for a string or token. | ' |
ungramRepeatGroup | A group which is repeated. | (Foo|Bar)* |
ungramRepeatString | A repeated ungramString. | 'for'* |
ungramRepeat | 0 or more repetitions. | * |
ungramRule | A rule for a grammar. | Foo |
ungramString | A specific string of characters. | 'for' |
ungramToken | A token. | 'identifier_var' |
Markdown Integration
You can use this plugin seamlessly with plasticboy/vim-markdown provided that the following is part of your init.vim configuration:
let g:vim_markdown_fenced_languages = ['ungram=ungrammar']
Then, you can create codeblocks in markdown and it will use the syntax file from this plugin:
```ungram
Foo = 'A' | 'B'
Credits
- Learn Vimscript The Hard Way got me started.
- plasticboy wrote a fantastic markdown plugin with syntax highlighting for fenced code blocks.
- rust-analyzer/ungrammar created the syntax and initial implementation.
- tbastos/vim-lua open sourced a clear example of syntax files.