# exit with an error code and list the missing entries.
make -f ci/unlisted.make
+ - name: Check hlgroups (are any new hlgroups added, but not handled in highlight.c)
+ run: |
+ # If any highlight groups have been documented, but not handled in
+ # highlight.c, nor listed as 'intentionally left out' in hlgroups.ignore,
+ # exit with an error code and list the missing entries.
+ make -C ci -f hlgroups.make
+
- run: sudo dpkg --add-architecture i386
if: matrix.architecture == 'i386'
.github/workflows/label.yml \
SECURITY.md \
ci/unlisted.make \
+ ci/hlgroups.make \
+ ci/hlgroups.ignore \
src/libvterm/CODE-MAP \
runtime/syntax/testdir/input/html_html \
--- /dev/null
+ColorColumn
+ComplMatchIns
+Conceal
+Cursor
+CursorColumn
+CursorIM
+CursorLine
+CursorLineNr
+debugBreakpoint
+debugPC
+DiffAdd
+DiffChange
+DiffDelete
+DiffText
+Directory
+ErrorMsg
+FoldColumn
+Folded
+Ignore
+IncSearch
+lCursor
+LineNr
+LineNrAbove
+LineNrBelow
+MatchParen
+Menu
+ModeMsg
+MoreMsg
+MsgArea
+NonText
+Normal
+Pmenu
+PmenuSbar
+PmenuSel
+PmenuThumb
+Question
+Scrollbar
+Search
+SignColumn
+SpecialKey
+SpellBad
+SpellCap
+SpellLocal
+SpellRare
+StatusLine
+StatusLineNC
+StatusLineTerm
+StatusLineTermNC
+TabLine
+TabLineFill
+TabLineSel
+Terminal
+Title
+TOhtmlProgress
+TOhtml-progress-color
+ToolbarButton
+ToolbarLine
+Tooltip
+User1
+User1..9
+User9
+VertSplit
+Visual
+VisualNOS
+WarningMsg
+WildMenu
--- /dev/null
+# vim: ft=make
+SHELL = /bin/bash
+
+# Default target to actually run the comparison:
+.PHONY: check
+.INTERMEDIATE: hlgroups deflinks hlgroups.stripped
+
+check: hlgroups.stripped deflinks
+ diff hlgroups.stripped deflinks
+
+hlgroups:
+ grep '\*hl-' ../runtime/doc/*txt | sed -E -e 's/.*:<?\s*//' -e 's/hl-//g' -e 's/\*//g' -e 's/ /\n/g' | sort > hlgroups
+
+deflinks: ../src/highlight.c
+ grep '"default link' $< | sed 's/.*default link\s*\(.*\)\s.*/\1/' | sort > deflinks
+
+hlgroups.stripped: hlgroups.ignore hlgroups
+ grep -v -x -F -f hlgroups.ignore hlgroups > hlgroups.stripped
p; \
}'))
-# In Makefile's `prepeare` target, all the IN_README_DIR files are moved from
+# In Makefile's `prepare` target, all the IN_README_DIR files are moved from
# READMEdir to the root, so add those files in their Git-tracked location:
all_patterns := $(all_patterns) \
$(foreach readme, $(IN_README_DIR), READMEdir/$(readme))