Mercurial > vim
view runtime/ftplugin/mf.vim @ 33404:9b35b4c6df4c v9.0.1960
patch 9.0.1960: Make CI checks more strict
Commit: https://github.com/vim/vim/commit/f7f746b1672909ae57d2eec97253d6627f6c0887
Author: Yee Cheng Chin <ychin.git@gmail.com>
Date: Sat Sep 30 12:28:50 2023 +0200
patch 9.0.1960: Make CI checks more strict
Problem: Make CI checks more strict
Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI,
fix uncovered problems
Add -Wstrict-prototypes -Wmissing-prototypes warnings check to CI
Add two new warnings to CI, silence some Perl related build-warnings:
- `strict-prototypes` helps prevent declaring a function with an empty
argument list, e.g. `int func()`. In C++, that's equivalent to `int
func(void)`, but in C, that means a function that can take any number
of arguments which is rarely what we want.
- `missing-prototypes` makes sure we use `static` for file-only internal
functions. Non-static functions should have been declared on a
prototype file.
- Add `no-compound-token-split-by-macro` to the perl cflags, since it
throws out a bunch of perl-related warnings that make the CI log
unnecessary verbose and hard to read. This seems to happen only with
clang 12 and above.
When applying those changes, it already uncovered a few warnings, so fix
up the code as well (fix prototypes, make the code static, remove
shadowed var declaration)
GTK header needs to have #pragma warning suppressiong because GTK2
headers will warn on `-Wstrict-prototypes`, and it's included by gui.h
and so we can't just turn off the warning in a couple files.
closes: #13223
closes: #13226
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 30 Sep 2023 12:45:05 +0200 |
parents | 2acb87ee55fc |
children | 8ae680be2a51 |
line wrap: on
line source
vim9script # Vim filetype plugin file # Language: METAFONT # Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> # Former Maintainers: Nikolai Weibull <now@bitwi.se> # Latest Revision: 2022 Aug 12 if exists("b:did_ftplugin") finish endif b:did_ftplugin = 1 b:undo_ftplugin = "setl com< cms< fo< sua< inc< def< ofu<" setlocal comments=:% setlocal commentstring=%\ %s setlocal formatoptions+=cjroql2 setlocal formatoptions-=t setlocal omnifunc=syntaxcomplete#Complete setlocal suffixesadd=.mf &l:include = '\<input\>' &l:define = '\<\%(let\|newinternal\|interim\|def\|vardef\)\>\|\<\%(primary\|secondary\|tertiary\)def\>\s*[^ .]\+' g:omni_syntax_group_include_mf = 'mf\w\+' g:omni_syntax_group_exclude_mf = 'mfTodoComment' if exists("g:loaded_matchit") && !exists("b:match_words") b:match_ignorecase = 0 b:match_skip = 'synIDattr(synID(line("."), col("."), 1), "name") =~# "mf\\(Comment\\|String\\)$"' b:match_words = '\<if\>:\<else\%[if]\>:\<fi\>,' .. '\<for\%(\|suffixes\|ever\)\>:\<exit\%(if\|unless\)\>:\<endfor\>,' .. '\<\%(\|var\|primary\|secondary\|tertiary\)def\>:\<enddef\>,' .. '\<begingroup\>:\<endgroup\>,' .. '\<begin\%(logo\)\?char\>:\<endchar\>' b:undo_ftplugin ..= "| unlet! b:match_ignorecase b:match_words b:match_skip" endif if !get(g:, 'no_mf_maps', 0) && !get(g:, 'no_plugin_maps', 0) const mf_regex = { 'beginsection': '^\s*\%(\%(\|var\|primary\|secondary\|tertiary\)def\|beginchar\|beginlogochar\)\>', 'endsection': '^\s*\%(enddef\|endchar\)\>', 'beginblock': '^\s*\%(begingroup\|if\|for\%(\|suffixes\|ever\)\)\>', 'endblock': '^\s*\%(endgroup\|fi\|endfor\)\>'} def MoveAround(count: number, what: string, flags: string) search(mf_regex[what], flags .. 's') # 's' sets previous context mark var i = 2 while i <= count search(mf_regex[what], flags) i += 1 endwhile enddef # Macros to move around nnoremap <silent><buffer> [[ <scriptcmd>MoveAround(v:count1, "beginsection", "bW")<cr> vnoremap <silent><buffer> [[ <scriptcmd>MoveAround(v:count1, "beginsection", "bW")<cr> nnoremap <silent><buffer> ]] <scriptcmd>MoveAround(v:count1, "beginsection", "W") <cr> vnoremap <silent><buffer> ]] <scriptcmd>MoveAround(v:count1, "beginsection", "W") <cr> nnoremap <silent><buffer> [] <scriptcmd>MoveAround(v:count1, "endsection", "bW")<cr> vnoremap <silent><buffer> [] <scriptcmd>MoveAround(v:count1, "endsection", "bW")<cr> nnoremap <silent><buffer> ][ <scriptcmd>MoveAround(v:count1, "endsection", "W") <cr> vnoremap <silent><buffer> ][ <scriptcmd>MoveAround(v:count1, "endsection", "W") <cr> nnoremap <silent><buffer> [{ <scriptcmd>MoveAround(v:count1, "beginblock", "bW")<cr> vnoremap <silent><buffer> [{ <scriptcmd>MoveAround(v:count1, "beginblock", "bW")<cr> nnoremap <silent><buffer> ]} <scriptcmd>MoveAround(v:count1, "endblock", "W") <cr> vnoremap <silent><buffer> ]} <scriptcmd>MoveAround(v:count1, "endblock", "W") <cr> for mapping in ["[[", "]]", "[]", "][", "[{", "]}"] b:undo_ftplugin ..= printf(" | silent! execute 'nunmap <buffer> %s'", mapping) b:undo_ftplugin ..= printf(" | silent! execute 'vunmap <buffer> %s'", mapping) endfor endif if (has('gui_win32') || has('gui_gtk')) && !exists('b:browsefilter') b:browsefilter = "METAFONT Source Files (*.mf)\t*.mf\n" .. "All Files (*.*)\t*.*\n" b:undo_ftplugin ..= ' | unlet! b:browsefilter' endif # vim: sw=2 fdm=marker