Mercurial > vim
view runtime/syntax/csc.vim @ 16582:9a7d98e11954 v8.1.1294
patch 8.1.1294: MS-Windows: Some fonts return wrong average char width
commit https://github.com/vim/vim/commit/93d77b2cbec08518ee426d0c44c50cf505732443
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 7 22:52:50 2019 +0200
patch 8.1.1294: MS-Windows: Some fonts return wrong average char width
Problem: MS-Windows: Some fonts return wrong average char width.
Solution: Compute the average ourselves. (Ken Takata, closes https://github.com/vim/vim/issues/4356)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 07 May 2019 23:00:06 +0200 |
parents | 46763b01cd9a |
children | 11b656e74444 |
line wrap: on
line source
" Vim syntax file " Language: Essbase script " Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net> " Last change: 2011 Dec 25 by Thilo Six " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim " folds: fix/endfix and comments sy region EssFold start="\<Fix" end="EndFix" transparent fold sy keyword cscTodo contained TODO FIXME XXX " cscCommentGroup allows adding matches for special things in comments sy cluster cscCommentGroup contains=cscTodo " Strings in quotes sy match cscError '"' sy match cscString '"[^"]*"' "when wanted, highlight trailing white space if exists("csc_space_errors") if !exists("csc_no_trail_space_error") sy match cscSpaceE "\s\+$" endif if !exists("csc_no_tab_space_error") sy match cscSpaceE " \+\t"me=e-1 endif endif "catch errors caused by wrong parenthesis and brackets sy cluster cscParenGroup contains=cscParenE,@cscCommentGroup,cscUserCont,cscBitField,cscFormat,cscNumber,cscFloat,cscOctal,cscNumbers,cscIfError,cscComW,cscCom,cscFormula,cscBPMacro sy region cscParen transparent start='(' end=')' contains=ALLBUT,@cscParenGroup sy match cscParenE ")" "integer number, or floating point number without a dot and with "f". sy case ignore sy match cscNumbers transparent "\<\d\|\.\d" contains=cscNumber,cscFloat,cscOctal sy match cscNumber contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" "hex number sy match cscNumber contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" " Flag the first zero of an octal number as something special sy match cscOctal contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" sy match cscFloat contained "\d\+f" "floating point number, with dot, optional exponent sy match cscFloat contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" "floating point number, starting with a dot, optional exponent sy match cscFloat contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" "floating point number, without dot, with exponent sy match cscFloat contained "\d\+e[-+]\=\d\+[fl]\=\>" sy region cscComment start="/\*" end="\*/" contains=@cscCommentGroup,cscSpaceE fold sy match cscCommentE "\*/" sy keyword cscIfError IF ELSE ENDIF ELSEIF sy keyword cscCondition contained IF ELSE ENDIF ELSEIF sy keyword cscFunction contained VARPER VAR UDA TRUNCATE SYD SUMRANGE SUM sy keyword cscFunction contained STDDEVRANGE STDDEV SPARENTVAL SLN SIBLINGS SHIFT sy keyword cscFunction contained SANCESTVAL RSIBLINGS ROUND REMAINDER RELATIVE PTD sy keyword cscFunction contained PRIOR POWER PARENTVAL NPV NEXT MOD MINRANGE MIN sy keyword cscFunction contained MDSHIFT MDPARENTVAL MDANCESTVAL MAXRANGE MAX MATCH sy keyword cscFunction contained LSIBLINGS LEVMBRS LEV sy keyword cscFunction contained ISUDA ISSIBLING ISSAMELEV ISSAMEGEN ISPARENT ISMBR sy keyword cscFunction contained ISLEV ISISIBLING ISIPARENT ISIDESC ISICHILD ISIBLINGS sy keyword cscFunction contained ISIANCEST ISGEN ISDESC ISCHILD ISANCEST ISACCTYPE sy keyword cscFunction contained IRSIBLINGS IRR INTEREST INT ILSIBLINGS IDESCENDANTS sy keyword cscFunction contained ICHILDREN IANCESTORS IALLANCESTORS sy keyword cscFunction contained GROWTH GENMBRS GEN FACTORIAL DISCOUNT DESCENDANTS sy keyword cscFunction contained DECLINE CHILDREN CURRMBRRANGE CURLEV CURGEN sy keyword cscFunction contained COMPOUNDGROWTH COMPOUND AVGRANGE AVG ANCESTVAL sy keyword cscFunction contained ANCESTORS ALLANCESTORS ACCUM ABS sy keyword cscFunction contained @VARPER @VAR @UDA @TRUNCATE @SYD @SUMRANGE @SUM sy keyword cscFunction contained @STDDEVRANGE @STDDEV @SPARENTVAL @SLN @SIBLINGS @SHIFT sy keyword cscFunction contained @SANCESTVAL @RSIBLINGS @ROUND @REMAINDER @RELATIVE @PTD sy keyword cscFunction contained @PRIOR @POWER @PARENTVAL @NPV @NEXT @MOD @MINRANGE @MIN sy keyword cscFunction contained @MDSHIFT @MDPARENTVAL @MDANCESTVAL @MAXRANGE @MAX @MATCH sy keyword cscFunction contained @LSIBLINGS @LEVMBRS @LEV sy keyword cscFunction contained @ISUDA @ISSIBLING @ISSAMELEV @ISSAMEGEN @ISPARENT @ISMBR sy keyword cscFunction contained @ISLEV @ISISIBLING @ISIPARENT @ISIDESC @ISICHILD @ISIBLINGS sy keyword cscFunction contained @ISIANCEST @ISGEN @ISDESC @ISCHILD @ISANCEST @ISACCTYPE sy keyword cscFunction contained @IRSIBLINGS @IRR @INTEREST @INT @ILSIBLINGS @IDESCENDANTS sy keyword cscFunction contained @ICHILDREN @IANCESTORS @IALLANCESTORS sy keyword cscFunction contained @GROWTH @GENMBRS @GEN @FACTORIAL @DISCOUNT @DESCENDANTS sy keyword cscFunction contained @DECLINE @CHILDREN @CURRMBRRANGE @CURLEV @CURGEN sy keyword cscFunction contained @COMPOUNDGROWTH @COMPOUND @AVGRANGE @AVG @ANCESTVAL sy keyword cscFunction contained @ANCESTORS @ALLANCESTORS @ACCUM @ABS sy match cscFunction contained "@" sy match cscError "@\s*\a*" contains=cscFunction sy match cscStatement "&" sy keyword cscStatement AGG ARRAY VAR CCONV CLEARDATA DATACOPY sy match cscComE contained "^\s*CALC.*" sy match cscComE contained "^\s*CLEARBLOCK.*" sy match cscComE contained "^\s*SET.*" sy match cscComE contained "^\s*FIX" sy match cscComE contained "^\s*ENDFIX" sy match cscComE contained "^\s*ENDLOOP" sy match cscComE contained "^\s*LOOP" " sy keyword cscCom FIX ENDFIX LOOP ENDLOOP sy match cscComW "^\s*CALC.*" sy match cscCom "^\s*CALC\s*ALL" sy match cscCom "^\s*CALC\s*AVERAGE" sy match cscCom "^\s*CALC\s*DIM" sy match cscCom "^\s*CALC\s*FIRST" sy match cscCom "^\s*CALC\s*LAST" sy match cscCom "^\s*CALC\s*TWOPASS" sy match cscComW "^\s*CLEARBLOCK.*" sy match cscCom "^\s*CLEARBLOCK\s\+ALL" sy match cscCom "^\s*CLEARBLOCK\s\+UPPER" sy match cscCom "^\s*CLEARBLOCK\s\+NONINPUT" sy match cscComW "^\s*\<SET.*" sy match cscCom "^\s*\<SET\s\+Commands" sy match cscCom "^\s*\<SET\s\+AGGMISSG" sy match cscCom "^\s*\<SET\s\+CACHE" sy match cscCom "^\s*\<SET\s\+CALCHASHTBL" sy match cscCom "^\s*\<SET\s\+CLEARUPDATESTATUS" sy match cscCom "^\s*\<SET\s\+FRMLBOTTOMUP" sy match cscCom "^\s*\<SET\s\+LOCKBLOCK" sy match cscCom "^\s*\<SET\s\+MSG" sy match cscCom "^\s*\<SET\s\+NOTICE" sy match cscCom "^\s*\<SET\s\+UPDATECALC" sy match cscCom "^\s*\<SET\s\+UPTOLOCAL" sy keyword cscBPMacro contained !LoopOnAll !LoopOnLevel !LoopOnSelected sy keyword cscBPMacro contained !CurrentMember !LoopOnDimensions !CurrentDimension sy keyword cscBPMacro contained !CurrentOtherLoopDimension !LoopOnOtherLoopDimensions sy keyword cscBPMacro contained !EndLoop !AllMembers !SelectedMembers !If !Else !EndIf sy keyword cscBPMacro contained LoopOnAll LoopOnLevel LoopOnSelected sy keyword cscBPMacro contained CurrentMember LoopOnDimensions CurrentDimension sy keyword cscBPMacro contained CurrentOtherLoopDimension LoopOnOtherLoopDimensions sy keyword cscBPMacro contained EndLoop AllMembers SelectedMembers If Else EndIf sy match cscBPMacro contained "!" sy match cscBPW "!\s*\a*" contains=cscBPmacro " when wanted, highlighting lhs members or erros in asignments (may lag the editing) if exists("csc_asignment") sy match cscEqError '\("[^"]*"\s*\|[^][\t !%()*+,--/:;<=>{}~]\+\s*\|->\s*\)*=\([^=]\@=\|$\)' sy region cscFormula transparent matchgroup=cscVarName start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\s*=\([^=]\@=\|\n\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition sy region cscFormulaIn matchgroup=cscVarName transparent start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\(->\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\)*\s*=\([^=]\@=\|$\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition contained sy match cscEq "==" endif if !exists("csc_minlines") let csc_minlines = 50 " mostly for () constructs endif exec "sy sync ccomment cscComment minlines=" . csc_minlines " Define the default highlighting. " Only when an item doesn't have highlighting yet hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue hi def link cscNumber Number hi def link cscOctal Number hi def link cscFloat Float hi def link cscParenE Error hi def link cscCommentE Error hi def link cscSpaceE Error hi def link cscError Error hi def link cscString String hi def link cscComment Comment hi def link cscTodo Todo hi def link cscStatement Statement hi def link cscIfError Error hi def link cscEqError Error hi def link cscFunction Statement hi def link cscCondition Statement hi def link cscWarn WarningMsg hi def link cscComE Error hi def link cscCom Statement hi def link cscComW WarningMsg hi def link cscBPMacro Identifier hi def link cscBPW WarningMsg let b:current_syntax = "csc" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8