📄 eiffel.vim
字号:
" Eiffel syntax file" Language: Eiffel" Maintainer: Reimer Behrends <behrends@cse.msu.edu>" With much input from Jocelyn Fiat <fiat@eiffel.com>" See http://www.cse.msu.edu/~behrends/vim/ for the most current version." Last Change: 2001 May 09" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600 syntax clearelseif exists("b:current_syntax") finishendif" Option handlingif exists("eiffel_ignore_case") syn case ignoreelse syn case match if exists("eiffel_pedantic") || exists("eiffel_strict") syn keyword eiffelError current void result precursor none syn keyword eiffelError CURRENT VOID RESULT PRECURSOR None syn keyword eiffelError TRUE FALSE endif if exists("eiffel_pedantic") syn keyword eiffelError true false syn match eiffelError "\<[a-z_]\+[A-Z][a-zA_Z_]*\>" syn match eiffelError "\<[A-Z][a-z_]*[A-Z][a-zA-Z_]*\>" endif if exists("eiffel_lower_case_predef") syn keyword eiffelPredefined current void result precursor endifendifif exists("eiffel_hex_constants") syn match eiffelNumber "\d[0-9a-fA-F]*[xX]"endif" Keyword definitionssyn keyword eiffelTopStruct indexing feature creation inheritsyn match eiffelTopStruct "\<class\>"syn match eiffelKeyword "\<end\>"syn match eiffelTopStruct "^end\>\(\s*--\s\+class\s\+\<[A-Z][A-Z0-9_]*\>\)\=" contains=eiffelClassNamesyn match eiffelBrackets "[[\]]"syn match eiffelBracketError "\]"syn region eiffelGeneric transparent matchgroup=eiffelBrackets start="\[" end="\]" contains=ALLBUT,eiffelBracketError,eiffelGenericDecl,eiffelStringError,eiffelStringEscape,eiffelGenericCreate,eiffelTopStructif exists("eiffel_ise") syn match eiffelCreate "\<create\>" syn match eiffelTopStruct contained "\<create\>" syn match eiffelGenericCreate contained "\<create\>" syn match eiffelTopStruct "^create\>" syn region eiffelGenericDecl transparent matchgroup=eiffelBrackets contained start="\[" end="\]" contains=ALLBUT,eiffelCreate,eiffelTopStruct,eiffelGeneric,eiffelBracketError,eiffelStringEscape,eiffelStringError,eiffelBrackets syn region eiffelClassHeader start="^class\>" end="$" contains=ALLBUT,eiffelCreate,eiffelGenericCreate,eiffelGeneric,eiffelStringEscape,eiffelStringError,eiffelBracketsendifsyn keyword eiffelDeclaration is do once deferred unique localsyn keyword eiffelDeclaration Uniquesyn keyword eiffelProperty expanded obsolete separate frozensyn keyword eiffelProperty prefix infixsyn keyword eiffelInheritClause rename redefine undefine select export assyn keyword eiffelAll allsyn keyword eiffelKeyword external aliassyn keyword eiffelStatement if else elseif inspectsyn keyword eiffelStatement when thensyn match eiffelAssertion "\<require\(\s\+else\)\=\>"syn match eiffelAssertion "\<ensure\(\s\+then\)\=\>"syn keyword eiffelAssertion checksyn keyword eiffelDebug debugsyn keyword eiffelStatement from until loopsyn keyword eiffelAssertion variantsyn match eiffelAssertion "\<invariant\>"syn match eiffelTopStruct "^invariant\>"syn keyword eiffelException rescue retrysyn keyword eiffelPredefined Current Void Result Precursor" Operatorssyn match eiffelOperator "\<and\(\s\+then\)\=\>"syn match eiffelOperator "\<or\(\s\+else\)\=\>"syn keyword eiffelOperator xor implies notsyn keyword eiffelOperator strip oldsyn keyword eiffelOperator Stripsyn match eiffelOperator "\$"syn match eiffelCreation "!"syn match eiffelExport "[{}]"syn match eiffelArray "<<"syn match eiffelArray ">>"syn match eiffelConstraint "->"syn match eiffelOperator "[@#|&][^ \e\t\b%]*"" Special classessyn keyword eiffelAnchored likesyn keyword eiffelBitType BIT" Constantsif !exists("eiffel_pedantic") syn keyword eiffelBool true falseendifsyn keyword eiffelBool True Falsesyn region eiffelString start=+"+ skip=+%"+ end=+"+ contains=eiffelStringEscape,eiffelStringErrorsyn match eiffelStringEscape contained "%[^/]"syn match eiffelStringEscape contained "%/\d\+/"syn match eiffelStringEscape contained "^[ \t]*%"syn match eiffelStringEscape contained "%[ \t]*$"syn match eiffelStringError contained "%/[^0-9]"syn match eiffelStringError contained "%/\d\+[^0-9/]"syn match eiffelBadConstant "'\(%[^/]\|%/\d\+/\|[^'%]\)\+'"syn match eiffelBadConstant "''"syn match eiffelCharacter "'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=eiffelStringEscapesyn match eiffelNumber "-\=\<\d\+\(_\d\+\)*\>"syn match eiffelNumber "\<[01]\+[bB]\>"syn match eiffelNumber "-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\="syn match eiffelNumber "-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\="syn match eiffelComment "--.*" contains=eiffelTodosyn case match" Case sensitive stuffsyn keyword eiffelTodo contained TODO XXX FIXMEsyn match eiffelClassName "\<[A-Z][A-Z0-9_]*\>"" Catch mismatched parenthesessyn match eiffelParenError ")"syn region eiffelParen transparent start="(" end=")" contains=ALLBUT,eiffelParenError,eiffelStringError,eiffelStringEscape" Should suffice for even very long strings and expressionssyn sync lines=40" Define the default highlighting." For version 5.7 and earlier: only when not done already" For version 5.8 and later: only when an item doesn't have highlighting yetif version >= 508 || !exists("did_eiffel_syntax_inits") if version < 508 let did_eiffel_syntax_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif HiLink eiffelKeyword Statement HiLink eiffelProperty Statement HiLink eiffelInheritClause Statement HiLink eiffelStatement Statement HiLink eiffelDeclaration Statement HiLink eiffelAssertion Statement HiLink eiffelDebug Statement HiLink eiffelException Statement HiLink eiffelGenericCreate Statement HiLink eiffelTopStruct PreProc HiLink eiffelAll Special HiLink eiffelAnchored Special HiLink eiffelBitType Special HiLink eiffelBool Boolean HiLink eiffelString String HiLink eiffelCharacter Character HiLink eiffelClassName Type HiLink eiffelNumber Number HiLink eiffelStringEscape Special HiLink eiffelOperator Special HiLink eiffelArray Special HiLink eiffelExport Special HiLink eiffelCreation Special HiLink eiffelBrackets Special HiLink eiffelGeneric Special HiLink eiffelGenericDecl Special HiLink eiffelConstraint Special HiLink eiffelCreate Special HiLink eiffelPredefined Constant HiLink eiffelComment Comment HiLink eiffelError Error HiLink eiffelBadConstant Error HiLink eiffelStringError Error HiLink eiffelParenError Error HiLink eiffelBracketError Error HiLink eiffelTodo Todo delcommand HiLinkendiflet b:current_syntax = "eiffel"" vim: ts=8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -