Mercurial > vim
view runtime/syntax/kix.vim @ 34420:c5a945f7f3da v9.1.0133
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Commit: https://github.com/vim/vim/commit/8b1e749ca6ca6d09a174c57de6999f69393ee567
Author: Erik S. V. Jansson <caffeineviking@gmail.com>
Date: Sat Feb 24 14:26:52 2024 +0100
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Problem: font ligatures don't render correctly in the Win32 GUI-version
of gvim even when set rop=type:directx is used. Setting
guiligatures also doesn't make any difference. This leads to
broken font ligatures when the cursor passes through them. It
does not recover from this, and they remain broken until you
re-render the whole buffer (e.g. by using Ctrl+L).
Solution: the problem is that we only re-draw the current and previous
character in gui_undraw_cursor() and only have the special case
for GTK when it comes to rendering ligatures. So let's enable
gui_adjust_undraw_cursor_for_ligatures() to also happen for
Win32 GUI if guiligatures is setup correctly (all this does is
expand the range of gui_undraw_cursor() with ligature characters).
related: #9181
related: #12901
closes: #14084
Signed-off-by: Erik S. V. Jansson <caffeineviking@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 24 Feb 2024 14:45:03 +0100 |
parents | 46763b01cd9a |
children |
line wrap: on
line source
" Vim syntax file " Language: KixTart 95, Kix2001 Windows script language http://kixtart.org/ " Maintainer: Richard Howarth <rhowarth@sgb.co.uk> " Last Change: 2003 May 11 " URL: http://www.howsoft.demon.co.uk/ " KixTart files identified by *.kix extension. " Amendment History: " 26 April 2001: RMH " Removed development comments from distro version " Renamed "Kix*" to "kix*" for consistancy " Changes made in preperation for VIM version 5.8/6.00 " TODO: " Handle arrays highlighting " Handle object highlighting " The next two may not be possible: " Work out how to error too many "(", i.e. (() should be an error. " Similarly, "if" without "endif" and similar constructs should error. " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif syn case match syn keyword kixTODO TODO FIX XXX contained " Case insensitive language. syn case ignore " Kix statements syn match kixStatement "?" syn keyword kixStatement beep big break syn keyword kixStatement call cd cls color cookie1 copy syn keyword kixStatement del dim display syn keyword kixStatement exit syn keyword kixStatement flushkb syn keyword kixStatement get gets global go gosub goto syn keyword kixStatement md syn keyword kixStatement password play syn keyword kixStatement quit syn keyword kixStatement rd return run syn keyword kixStatement set setl setm settime shell sleep small syn keyword kixStatement use " Kix2001 syn keyword kixStatement debug function endfunction redim " Simple variables syn match kixNotVar "\$\$\|@@\|%%" transparent contains=NONE syn match kixLocalVar "\$\w\+" syn match kixMacro "@\w\+" syn match kixEnvVar "%\w\+" " Destination labels syn match kixLabel ":\w\+\>" " Identify strings, trap unterminated strings syn match kixStringError +".*\|'.*+ syn region kixDoubleString oneline start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar syn region kixSingleString oneline start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar " Operators syn match kixOperator "+\|-\|\*\|/\|=\|&\||" syn keyword kixOperator and or " Kix2001 syn match kixOperator "==" syn keyword kixOperator not " Numeric constants syn match kixInteger "-\=\<\d\+\>" contains=NONE syn match kixFloat "-\=\.\d\+\>\|-\=\<\d\+\.\d\+\>" contains=NONE " Hex numeric constants syn match kixHex "\&\x\+\>" contains=NONE " Other contants " Kix2001 syn keyword kixConstant on off " Comments syn match kixComment ";.*$" contains=kixTODO " Trap unmatched parenthesis syn match kixParenCloseError ")" syn region kixParen oneline transparent start="(" end=")" contains=ALLBUT,kixParenCloseError " Functions (Builtin + UDF) syn match kixFunction "\w\+("he=e-1,me=e-1 contains=ALL " Trap unmatched brackets syn match kixBrackCloseError "\]" syn region kixBrack transparent start="\[" end="\]" contains=ALLBUT,kixBrackCloseError " Clusters for ALLBUT shorthand syn cluster kixIfBut contains=kixIfError,kixSelectOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK syn cluster kixSelectBut contains=kixSelectError,kixIfOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK syn cluster kixDoBut contains=kixDoError,kixSelectOK,kixIfOK,kixWhileOK,kixForEachOK,kixForNextOK syn cluster kixWhileBut contains=kixWhileError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixForNextOK syn cluster kixForEachBut contains=kixForEachError,kixSelectOK,kixIfOK,kixDoOK,kixForNextOK,kixWhileOK syn cluster kixForNextBut contains=kixForNextError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixWhileOK " Condtional construct errors. syn match kixIfError "\<if\>\|\<else\>\|\<endif\>" syn match kixIfOK contained "\<if\>\|\<else\>\|\<endif\>" syn region kixIf transparent matchgroup=kixIfOK start="\<if\>" end="\<endif\>" contains=ALLBUT,@kixIfBut syn match kixSelectError "\<select\>\|\<case\>\|\<endselect\>" syn match kixSelectOK contained "\<select\>\|\<case\>\|\<endselect\>" syn region kixSelect transparent matchgroup=kixSelectOK start="\<select\>" end="\<endselect\>" contains=ALLBUT,@kixSelectBut " Program control constructs. syn match kixDoError "\<do\>\|\<until\>" syn match kixDoOK contained "\<do\>\|\<until\>" syn region kixDo transparent matchgroup=kixDoOK start="\<do\>" end="\<until\>" contains=ALLBUT,@kixDoBut syn match kixWhileError "\<while\>\|\<loop\>" syn match kixWhileOK contained "\<while\>\|\<loop\>" syn region kixWhile transparent matchgroup=kixWhileOK start="\<while\>" end="\<loop\>" contains=ALLBUT,@kixWhileBut syn match kixForNextError "\<for\>\|\<to\>\|\<step\>\|\<next\>" syn match kixForNextOK contained "\<for\>\|\<to\>\|\<step\>\|\<next\>" syn region kixForNext transparent matchgroup=kixForNextOK start="\<for\>" end="\<next\>" contains=ALLBUT,@kixForBut syn match kixForEachError "\<for each\>\|\<in\>\|\<next\>" syn match kixForEachOK contained "\<for each\>\|\<in\>\|\<next\>" syn region kixForEach transparent matchgroup=kixForEachOK start="\<for each\>" end="\<next\>" contains=ALLBUT,@kixForEachBut " Expressions syn match kixExpression "<\|>\|<=\|>=\|<>" " Default highlighting. " Set default highlight only if it doesn't already have a value. hi def link kixDoubleString String hi def link kixSingleString String hi def link kixStatement Statement hi def link kixRepeat Repeat hi def link kixComment Comment hi def link kixBuiltin Function hi def link kixLocalVar Special hi def link kixMacro Special hi def link kixEnvVar Special hi def link kixLabel Type hi def link kixFunction Function hi def link kixInteger Number hi def link kixHex Number hi def link kixFloat Number hi def link kixOperator Operator hi def link kixExpression Operator hi def link kixParenCloseError Error hi def link kixBrackCloseError Error hi def link kixStringError Error hi def link kixWhileError Error hi def link kixWhileOK Conditional hi def link kixDoError Error hi def link kixDoOK Conditional hi def link kixIfError Error hi def link kixIfOK Conditional hi def link kixSelectError Error hi def link kixSelectOK Conditional hi def link kixForNextError Error hi def link kixForNextOK Conditional hi def link kixForEachError Error hi def link kixForEachOK Conditional let b:current_syntax = "kix" " vim: ts=8 sw=2