mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
91dc04a5e1
Problem: Modula2 filetype support lacking
Solution: Improve the Modula-2 runtime support, add additional modula2
dialects, add compiler plugin, update syntax highlighting,
include syntax tests, update Makefiles (Doug Kearns)
closes: vim/vim#6796
closes: vim/vim#8115
68a8947069
- Luaify the detection script:
- Split the `(*!m2foo*)` and `(*!m2foo+bar*)` detection into two Lua patterns,
as Lua capture groups cannot be used with `?` and friends (as they only work
on character classes).
- Use `vim.api.nvim_buf_call()` (ew) to call `modula2#SetDialect()` to ensure
`b:modula2` is set for the given bufnr.
- Skip the syntax screendump tests. (A shame as they test some of the detection
from `(*!m2foo+bar*)` tags, but I tested this locally and it seems to work)
- Port the synmenu.vim changes from Vim9 script. (Also tested this locally)
- (And also add the missing comma for `b:browsefilter` from earlier.)
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
32 lines
691 B
VimL
32 lines
691 B
VimL
" Vim filetype plugin file
|
|
" Language: Modula-2
|
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
|
" Last Change: 2024 Jan 04
|
|
|
|
" Dialect can be one of pim, iso, r10
|
|
function modula2#GetDialect() abort
|
|
|
|
if exists("b:modula2.dialect")
|
|
return b:modula2.dialect
|
|
endif
|
|
|
|
if exists("g:modula2_default_dialect")
|
|
let dialect = g:modula2_default_dialect
|
|
else
|
|
let dialect = "pim"
|
|
endif
|
|
|
|
return dialect
|
|
endfunction
|
|
|
|
function modula2#SetDialect(dialect, extension = "") abort
|
|
if exists("b:modula2")
|
|
unlockvar! b:modula2
|
|
endif
|
|
|
|
let b:modula2 = #{ dialect: a:dialect, extension: a:extension }
|
|
lockvar! b:modula2
|
|
endfunction
|
|
|
|
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
|