Mercurial > vim
view runtime/syntax/clean.vim @ 11639:71d7b5ed08a0 v8.0.0702
patch 8.0.0702: an error in a timer can make Vim unusable
commit https://github.com/vim/vim/commit/c577d813b7978345dec4310b2d8f5d5624a681f6
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jul 8 22:37:34 2017 +0200
patch 8.0.0702: an error in a timer can make Vim unusable
Problem: An error in a timer can make Vim unusable.
Solution: Don't set the error flag or exception from a timer. Stop a timer
if it causes an error 3 out of 3 times. Discard an exception
caused inside a timer.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 08 Jul 2017 22:45:03 +0200 |
parents | 46763b01cd9a |
children |
line wrap: on
line source
" Vim syntax file " Language: Clean " Author: Pieter van Engelen <pietere@sci.kun.nl> " Co-Author: Arthur van Leeuwen <arthurvl@sci.kun.nl> " Last Change: 2013 Oct 15 by Jurriƫn Stutterheim " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim " Some Clean-keywords syn keyword cleanConditional if case syn keyword cleanLabel let! with where in of syn keyword cleanSpecial Start syn keyword cleanKeyword infixl infixr infix syn keyword cleanBasicType Int Real Char Bool String syn keyword cleanSpecialType World ProcId Void Files File syn keyword cleanModuleSystem module implementation definition system syn keyword cleanTypeClass class instance export " Import highlighting syn region cleanIncludeRegion start="^\s*\(from\|import\|\s\+\(as\|qualified\)\)" end="\n" contains=cleanIncludeKeyword keepend syn keyword cleanIncludeKeyword contained from import as qualified " To do some Denotation Highlighting syn keyword cleanBoolDenot True False syn region cleanStringDenot start=+"+ skip=+\(\(\\\\\)\+\|\\"\)+ end=+"+ display syn match cleanCharDenot "'\(\\\\\|\\'\|[^'\\]\)\+'" display syn match cleanIntegerDenot "[\~+-]\?\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>" display syn match cleanRealDenot "[\~+-]\?\d\+\.\d\+\(E[\~+-]\?\d\+\)\?" display " To highlight the use of lists, tuples and arrays syn region cleanList start="\[" end="\]" contains=ALL syn region cleanRecord start="{" end="}" contains=ALL syn region cleanArray start="{:" end=":}" contains=ALL syn match cleanTuple "([^=]*,[^=]*)" contains=ALL " To do some Comment Highlighting syn region cleanComment start="/\*" end="\*/" contains=cleanComment,cleanTodo fold syn region cleanComment start="//.*" end="$" display contains=cleanTodo syn keyword cleanTodo TODO FIXME XXX contained " Now for some useful type definition recognition syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)\s*\(infix[lr]\=\)\=\s*\d\=\s*::.*->.*" contains=cleanSpecial,cleanBasicType,cleanSpecialType,cleanKeyword " Define the default highlighting. " Only when an item doesn't have highlighting yet " Comments hi def link cleanComment Comment " Constants and denotations hi def link cleanStringDenot String hi def link cleanCharDenot Character hi def link cleanIntegerDenot Number hi def link cleanBoolDenot Boolean hi def link cleanRealDenot Float " Identifiers " Statements hi def link cleanTypeClass Keyword hi def link cleanConditional Conditional hi def link cleanLabel Label hi def link cleanKeyword Keyword " Generic Preprocessing hi def link cleanIncludeKeyword Include hi def link cleanModuleSystem PreProc " Type hi def link cleanBasicType Type hi def link cleanSpecialType Type hi def link cleanFuncTypeDef Typedef " Special hi def link cleanSpecial Special hi def link cleanList Special hi def link cleanArray Special hi def link cleanRecord Special hi def link cleanTuple Special " Error " Todo hi def link cleanTodo Todo let b:current_syntax = "clean" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=4