Mercurial > vim
view runtime/syntax/chaiscript.vim @ 16003:879829e44091 v8.1.1007
patch 8.1.1007: using closure may consume a lot of memory
commit https://github.com/vim/vim/commit/209b8e3e3bf7a4a3d102134124120f6c7f57d560
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Mar 14 13:43:24 2019 +0100
patch 8.1.1007: using closure may consume a lot of memory
Problem: Using closure may consume a lot of memory.
Solution: unreference items that are no longer needed. Add a test. (Ozaki
Kiichi, closes #3961)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 14 Mar 2019 13:45:06 +0100 |
parents | b9e314fe473f |
children | d46f974fd69e |
line wrap: on
line source
" Vim syntax file " Language: ChaiScript " Maintainer: Jason Turner <lefticus 'at' gmail com> " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") finish end syn case match " syncing method syn sync fromstart " Strings syn region chaiscriptString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=chaiscriptSpecial,chaiscriptEval,@Spell " Escape characters syn match chaiscriptSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}" " String evals syn region chaiscriptEval contained start="${" end="}" " integer number syn match chaiscriptNumber "\<\d\+\>" " floating point number, with dot, optional exponent syn match chaiscriptFloat "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>" " floating point number, starting with a dot, optional exponent syn match chaiscriptFloat "\.\d\+\%(e[-+]\=\d\+\)\=\>" " floating point number, without dot, with exponent syn match chaiscriptFloat "\<\d\+e[-+]\=\d\+\>" " Hex strings syn match chaiscriptNumber "\<0x\x\+\>" " Binary strings syn match chaiscriptNumber "\<0b[01]\+\>" " Various language features syn keyword chaiscriptCond if else syn keyword chaiscriptRepeat while for do syn keyword chaiscriptStatement break continue return syn keyword chaiscriptExceptions try catch throw "Keyword syn keyword chaiscriptKeyword def true false attr "Built in types syn keyword chaiscriptType fun var "Built in funcs, keep it simple syn keyword chaiscriptFunc eval throw "Let's treat all backtick operator function lookups as built in too syn region chaiscriptFunc matchgroup=chaiscriptFunc start="`" end="`" " Account for the "[1..10]" syntax, treating it as an operator " Intentionally leaving out all of the normal, well known operators syn match chaiscriptOperator "\.\." " Guard seperator as an operator syn match chaiscriptOperator ":" " Comments syn match chaiscriptComment "//.*$" contains=@Spell syn region chaiscriptComment matchgroup=chaiscriptComment start="/\*" end="\*/" contains=@Spell hi def link chaiscriptExceptions Exception hi def link chaiscriptKeyword Keyword hi def link chaiscriptStatement Statement hi def link chaiscriptRepeat Repeat hi def link chaiscriptString String hi def link chaiscriptNumber Number hi def link chaiscriptFloat Float hi def link chaiscriptOperator Operator hi def link chaiscriptConstant Constant hi def link chaiscriptCond Conditional hi def link chaiscriptFunction Function hi def link chaiscriptComment Comment hi def link chaiscriptTodo Todo hi def link chaiscriptError Error hi def link chaiscriptSpecial SpecialChar hi def link chaiscriptFunc Identifier hi def link chaiscriptType Type hi def link chaiscriptEval Special let b:current_syntax = "chaiscript" " vim: nowrap sw=2 sts=2 ts=8 noet