vim-patch:9.1.0550: filetype: antlr4 files are not recognized

Problem:  filetype: antlr4 files are not recognized
Solution: Detect '*.g4' as antlr4 filetype, include a simple antlr4
          syntax and filetype plugin (Yinzuo Jiang)

closes: vim/vim#15191

4a7a4a3675

Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
This commit is contained in:
Christian Clason 2024-07-09 19:15:22 +02:00
parent 158ffd646d
commit 136c11ca22
3 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,14 @@
" Vim filetype plugin
" Language: ANTLR4, ANother Tool for Language Recognition v4 <www.antlr.org>
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
" Last Change: 2024 July 09
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
setlocal commentstring=//\ %s
let b:undo_ftplugin = 'setl com< cms<'

View File

@ -190,6 +190,7 @@ local extension = {
aidl = 'aidl',
aml = 'aml',
run = 'ampl',
g4 = 'antlr4',
scpt = 'applescript',
ino = 'arduino',
pde = 'arduino',

30
runtime/syntax/antlr4.vim Normal file
View File

@ -0,0 +1,30 @@
" Vim syntax file
" Language: ANTLR4, ANother Tool for Language Recognition v4 <www.antlr.org>
" Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com>
" Last Change: 2024 July 09
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Keywords. See https://github.com/antlr/antlr4/blob/4.13.1/doc/lexicon.md
syn keyword antlr4Include import
" https://github.com/antlr/antlr4/blob/4.13.1/doc/options.md
" https://github.com/antlr/antlr4/blob/4.13.1/doc/grammars.md
syn keyword antlr4Structure fragment lexer parser grammar options channels tokens mode
syn keyword antlr4Statement returns locals
syn keyword antlr4Exceptions throws catch finally
" Comments.
syn keyword antlr4Todo contained TODO FIXME XXX NOTE
syn region antlr4Comment start="//" end="$" contains=antlr4Todo,@Spell
syn region antlr4Comment start="/\*" end="\*/" contains=antlr4Todo,@Spell
hi def link antlr4Include Include
hi def link antlr4Structure Structure
hi def link antlr4Statement Statement
hi def link antlr4Exceptions Structure
hi def link antlr4Comment Comment
let b:current_syntax = "antlr4"