diff options
author | Sean Dewar <seandewar@users.noreply.github.com> | 2024-01-16 17:45:57 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-16 17:45:57 +0000 |
commit | 91dc04a5e12a3d0c5be56768ded5971bc80e6f8e (patch) | |
tree | 2e9941c656d1ae1e4c4e873632e4c0fbd0c972a1 /runtime/autoload | |
parent | fd2ed024c1b0021161bd87af6f7f55e1f6bf4d82 (diff) | |
download | rneovim-91dc04a5e12a3d0c5be56768ded5971bc80e6f8e.tar.gz rneovim-91dc04a5e12a3d0c5be56768ded5971bc80e6f8e.tar.bz2 rneovim-91dc04a5e12a3d0c5be56768ded5971bc80e6f8e.zip |
vim-patch:9.1.0013: Modula2 filetype support lacking (#27020)
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
https://github.com/vim/vim/commit/68a89470693c7687d4e736ca056c05de632e3ac7
- 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>
Diffstat (limited to 'runtime/autoload')
-rw-r--r-- | runtime/autoload/modula2.vim | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/runtime/autoload/modula2.vim b/runtime/autoload/modula2.vim new file mode 100644 index 0000000000..284dc2768f --- /dev/null +++ b/runtime/autoload/modula2.vim @@ -0,0 +1,31 @@ +" 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: |