diff options
-rw-r--r-- | runtime/ftplugin/wat.vim (renamed from runtime/ftplugin/wast.vim) | 2 | ||||
-rw-r--r-- | runtime/indent/wat.vim (renamed from runtime/indent/wast.vim) | 2 | ||||
-rw-r--r-- | runtime/lua/vim/filetype.lua | 2 | ||||
-rw-r--r-- | runtime/makemenu.vim | 2 | ||||
-rw-r--r-- | runtime/synmenu.vim | 2 | ||||
-rw-r--r-- | runtime/syntax/wast.vim | 97 | ||||
-rw-r--r-- | runtime/syntax/wat.vim | 97 | ||||
-rw-r--r-- | test/old/testdir/test_filetype.vim | 3 |
8 files changed, 103 insertions, 104 deletions
diff --git a/runtime/ftplugin/wast.vim b/runtime/ftplugin/wat.vim index 0d9e98d37a..35d2d6a322 100644 --- a/runtime/ftplugin/wast.vim +++ b/runtime/ftplugin/wat.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: WebAssembly " Maintainer: rhysd <lin90162@yahoo.co.jp> -" Last Change: Jul 29, 2018 +" Last Change: Nov 14, 2023 " For bugs, patches and license go to https://github.com/rhysd/vim-wasm if exists("b:did_ftplugin") diff --git a/runtime/indent/wast.vim b/runtime/indent/wat.vim index 1be234b6e9..08997f1a98 100644 --- a/runtime/indent/wast.vim +++ b/runtime/indent/wat.vim @@ -1,7 +1,7 @@ " Vim indent file " Language: WebAssembly " Maintainer: rhysd <lin90162@yahoo.co.jp> -" Last Change: Jul 29, 2018 +" Last Change: Nov 14, 2023 " For bugs, patches and license go to https://github.com/rhysd/vim-wasm if exists("b:did_indent") diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index aae63af132..217f673b5e 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -1074,7 +1074,7 @@ local extension = { wrl = 'vrml', vroom = 'vroom', vue = 'vue', - wast = 'wast', + wast = 'wat', wat = 'wat', wdl = 'wdl', wm = 'webmacro', diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim index 8eea49d711..5d288e2f40 100644 --- a/runtime/makemenu.vim +++ b/runtime/makemenu.vim @@ -649,7 +649,7 @@ SynMenu UV.VSE\ JCL:vsejcl SynMenu WXYZ.WEB.CWEB:cweb SynMenu WXYZ.WEB.WEB:web SynMenu WXYZ.WEB.WEB\ Changes:change -SynMenu WXYZ.WebAssembly:wast +SynMenu WXYZ.WebAssembly:wat SynMenu WXYZ.Webmacro:webmacro SynMenu WXYZ.Website\ MetaLanguage:wml SynMenu WXYZ.wDiff:wdiff diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim index fec5cc4b06..43aae6f88b 100644 --- a/runtime/synmenu.vim +++ b/runtime/synmenu.vim @@ -623,7 +623,7 @@ an 50.160.330 &Syntax.UV.VSE\ JCL :cal SetSyn("vsejcl")<CR> an 50.170.100 &Syntax.WXYZ.WEB.CWEB :cal SetSyn("cweb")<CR> an 50.170.110 &Syntax.WXYZ.WEB.WEB :cal SetSyn("web")<CR> an 50.170.120 &Syntax.WXYZ.WEB.WEB\ Changes :cal SetSyn("change")<CR> -an 50.170.130 &Syntax.WXYZ.WebAssembly :cal SetSyn("wast")<CR> +an 50.170.130 &Syntax.WXYZ.WebAssembly :cal SetSyn("wat")<CR> an 50.170.140 &Syntax.WXYZ.Webmacro :cal SetSyn("webmacro")<CR> an 50.170.150 &Syntax.WXYZ.Website\ MetaLanguage :cal SetSyn("wml")<CR> an 50.170.170 &Syntax.WXYZ.wDiff :cal SetSyn("wdiff")<CR> diff --git a/runtime/syntax/wast.vim b/runtime/syntax/wast.vim deleted file mode 100644 index 113d65c5a1..0000000000 --- a/runtime/syntax/wast.vim +++ /dev/null @@ -1,97 +0,0 @@ -" Vim syntax file -" Language: WebAssembly -" Maintainer: rhysd <lin90162@yahoo.co.jp> -" Last Change: Aug 7, 2023 -" For bugs, patches and license go to https://github.com/rhysd/vim-wasm - -if exists("b:current_syntax") - finish -endif - -let s:cpo_save = &cpo -set cpo&vim - -syn cluster wastNotTop contains=wastModule,wastInstWithType,wastInstGetSet,wastInstGeneral,wastParamInst,wastControlInst,wastSimdInst,wastString,wastNamedVar,wastUnnamedVar,wastFloat,wastNumber,wastComment,wastList,wastType - -" Instructions -" https://webassembly.github.io/spec/core/text/instructions.html -" Note: memarg (align=,offset=) can be added to memory instructions -syn match wastInstWithType "\%((\s*\)\@<=\<\%(i32\|i64\|f32\|f64\|memory\)\.[[:alnum:]_]\+\%(/\%(i32\|i64\|f32\|f64\)\)\=\>\%(\s\+\%(align\|offset\)=\)\=" contained display -syn match wastInstGeneral "\%((\s*\)\@<=\<[[:alnum:]_]\+\>" contained display -syn match wastInstGetSet "\%((\s*\)\@<=\<\%(local\|global\)\.\%(get\|set\)\>" contained display -" https://webassembly.github.io/spec/core/text/instructions.html#control-instructions -syn match wastControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|then\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display -" https://webassembly.github.io/spec/core/text/instructions.html#parametric-instructions -syn match wastParamInst "\%((\s*\)\@<=\<\%(drop\|select\)\>" contained display -" SIMD instructions -" https://webassembly.github.io/simd/core/text/instructions.html#simd-instructions -syn match wastSimdInst "\<\%(v128\|i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2)\)\.[[:alnum:]_]\+\%(\s\+\%(i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2\)\)\=\>" contained display - -" Identifiers -" https://webassembly.github.io/spec/core/text/values.html#text-id -syn match wastNamedVar "$\+[[:alnum:]!#$%&'∗./:=><?@\\^_`~+-]*" contained contains=wastEscapeUtf8 -syn match wastUnnamedVar "$\+\d\+[[:alnum:]!#$%&'∗./:=><?@\\^_`~+-]\@!" contained display -" Presuming the source text is itself encoded correctly, strings that do not -" contain any uses of hexadecimal byte escapes are always valid names. -" https://webassembly.github.io/spec/core/text/values.html#names -syn match wastEscapedUtf8 "\\\x\{1,6}" contained containedin=wastNamedVar display - -" String literals -" https://webassembly.github.io/spec/core/text/values.html#strings -syn region wastString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=wastStringSpecial -syn match wastStringSpecial "\\\x\x\|\\[tnr'\\\"]\|\\u\x\+" contained containedin=wastString display - -" Float literals -" https://webassembly.github.io/spec/core/text/values.html#floating-point -syn match wastFloat "\<-\=\d\%(_\=\d\)*\%(\.\d\%(_\=\d\)*\)\=\%([eE][-+]\=\d\%(_\=\d\)*\)\=" display contained -syn match wastFloat "\<-\=0x\x\%(_\=\x\)*\%(\.\x\%(_\=\x\)*\)\=\%([pP][-+]\=\d\%(_\=\d\)*\)\=" display contained -syn keyword wastFloat inf nan contained -syn match wastFloat "nan:0x\x\%(_\=\x\)*" display contained - -" Integer literals -" https://webassembly.github.io/spec/core/text/values.html#integers -syn match wastNumber "\<-\=\d\%(_\=\d\)*\>" display contained -syn match wastNumber "\<-\=0x\x\%(_\=\x\)*\>" display contained - -" Comments -" https://webassembly.github.io/spec/core/text/lexical.html#comments -syn region wastComment start=";;" end="$" -syn region wastComment start="(;;\@!" end=";)" - -syn region wastList matchgroup=wastListDelimiter start="(;\@!" matchgroup=wastListDelimiter end=";\@<!)" contains=@wastNotTop - -" Types -" https://webassembly.github.io/spec/core/text/types.html -" Note: `mut` was changed to `const`/`var` at Wasm 2.0 -syn keyword wastType i64 i32 f64 f32 param result funcref func externref extern mut v128 const var contained -syn match wastType "\%((\_s*\)\@<=func\%(\_s*[()]\)\@=" display contained - -" Modules -" https://webassembly.github.io/spec/core/text/modules.html -syn keyword wastModule module type export import table memory global data elem contained -syn match wastModule "\%((\_s*\)\@<=func\%(\_s\+\$\)\@=" display contained - -syn sync maxlines=100 - -hi def link wastModule PreProc -hi def link wastListDelimiter Delimiter -hi def link wastInstWithType Operator -hi def link wastInstGetSet Operator -hi def link wastInstGeneral Operator -hi def link wastControlInst Statement -hi def link wastSimdInst Operator -hi def link wastParamInst Conditional -hi def link wastString String -hi def link wastStringSpecial Special -hi def link wastNamedVar Identifier -hi def link wastUnnamedVar PreProc -hi def link wastFloat Float -hi def link wastNumber Number -hi def link wastComment Comment -hi def link wastType Type -hi def link wastEscapedUtf8 Special - -let b:current_syntax = "wast" - -let &cpo = s:cpo_save -unlet s:cpo_save diff --git a/runtime/syntax/wat.vim b/runtime/syntax/wat.vim new file mode 100644 index 0000000000..a6b926be98 --- /dev/null +++ b/runtime/syntax/wat.vim @@ -0,0 +1,97 @@ +" Vim syntax file +" Language: WebAssembly +" Maintainer: rhysd <lin90162@yahoo.co.jp> +" Last Change: Nov 14, 2023 +" For bugs, patches and license go to https://github.com/rhysd/vim-wasm + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn cluster watNotTop contains=watModule,watInstWithType,watInstGetSet,watInstGeneral,watParamInst,watControlInst,watSimdInst,watString,watNamedVar,watUnnamedVar,watFloat,watNumber,watComment,watList,watType + +" Instructions +" https://webassembly.github.io/spec/core/text/instructions.html +" Note: memarg (align=,offset=) can be added to memory instructions +syn match watInstWithType "\%((\s*\)\@<=\<\%(i32\|i64\|f32\|f64\|memory\)\.[[:alnum:]_]\+\%(/\%(i32\|i64\|f32\|f64\)\)\=\>\%(\s\+\%(align\|offset\)=\)\=" contained display +syn match watInstGeneral "\%((\s*\)\@<=\<[[:alnum:]_]\+\>" contained display +syn match watInstGetSet "\%((\s*\)\@<=\<\%(local\|global\)\.\%(get\|set\)\>" contained display +" https://webassembly.github.io/spec/core/text/instructions.html#control-instructions +syn match watControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|then\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display +" https://webassembly.github.io/spec/core/text/instructions.html#parametric-instructions +syn match watParamInst "\%((\s*\)\@<=\<\%(drop\|select\)\>" contained display +" SIMD instructions +" https://webassembly.github.io/simd/core/text/instructions.html#simd-instructions +syn match watSimdInst "\<\%(v128\|i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2)\)\.[[:alnum:]_]\+\%(\s\+\%(i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2\)\)\=\>" contained display + +" Identifiers +" https://webassembly.github.io/spec/core/text/values.html#text-id +syn match watNamedVar "$\+[[:alnum:]!#$%&'∗./:=><?@\\^_`~+-]*" contained contains=watEscapeUtf8 +syn match watUnnamedVar "$\+\d\+[[:alnum:]!#$%&'∗./:=><?@\\^_`~+-]\@!" contained display +" Presuming the source text is itself encoded correctly, strings that do not +" contain any uses of hexadecimal byte escapes are always valid names. +" https://webassembly.github.io/spec/core/text/values.html#names +syn match watEscapedUtf8 "\\\x\{1,6}" contained containedin=watNamedVar display + +" String literals +" https://webassembly.github.io/spec/core/text/values.html#strings +syn region watString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=watStringSpecial +syn match watStringSpecial "\\\x\x\|\\[tnr'\\\"]\|\\u\x\+" contained containedin=watString display + +" Float literals +" https://webassembly.github.io/spec/core/text/values.html#floating-point +syn match watFloat "\<-\=\d\%(_\=\d\)*\%(\.\d\%(_\=\d\)*\)\=\%([eE][-+]\=\d\%(_\=\d\)*\)\=" display contained +syn match watFloat "\<-\=0x\x\%(_\=\x\)*\%(\.\x\%(_\=\x\)*\)\=\%([pP][-+]\=\d\%(_\=\d\)*\)\=" display contained +syn keyword watFloat inf nan contained +syn match watFloat "nan:0x\x\%(_\=\x\)*" display contained + +" Integer literals +" https://webassembly.github.io/spec/core/text/values.html#integers +syn match watNumber "\<-\=\d\%(_\=\d\)*\>" display contained +syn match watNumber "\<-\=0x\x\%(_\=\x\)*\>" display contained + +" Comments +" https://webassembly.github.io/spec/core/text/lexical.html#comments +syn region watComment start=";;" end="$" +syn region watComment start="(;;\@!" end=";)" + +syn region watList matchgroup=watListDelimiter start="(;\@!" matchgroup=watListDelimiter end=";\@<!)" contains=@watNotTop + +" Types +" https://webassembly.github.io/spec/core/text/types.html +" Note: `mut` was changed to `const`/`var` at Wasm 2.0 +syn keyword watType i64 i32 f64 f32 param result funcref func externref extern mut v128 const var contained +syn match watType "\%((\_s*\)\@<=func\%(\_s*[()]\)\@=" display contained + +" Modules +" https://webassembly.github.io/spec/core/text/modules.html +syn keyword watModule module type export import table memory global data elem contained +syn match watModule "\%((\_s*\)\@<=func\%(\_s\+\$\)\@=" display contained + +syn sync maxlines=100 + +hi def link watModule PreProc +hi def link watListDelimiter Delimiter +hi def link watInstWithType Operator +hi def link watInstGetSet Operator +hi def link watInstGeneral Operator +hi def link watControlInst Statement +hi def link watSimdInst Operator +hi def link watParamInst Conditional +hi def link watString String +hi def link watStringSpecial Special +hi def link watNamedVar Identifier +hi def link watUnnamedVar PreProc +hi def link watFloat Float +hi def link watNumber Number +hi def link watComment Comment +hi def link watType Type +hi def link watEscapedUtf8 Special + +let b:current_syntax = "wat" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim index d0361d6a87..b45895d608 100644 --- a/test/old/testdir/test_filetype.vim +++ b/test/old/testdir/test_filetype.vim @@ -708,8 +708,7 @@ func s:GetFilenameChecks() abort \ 'vrml': ['file.wrl'], \ 'vroom': ['file.vroom'], \ 'vue': ['file.vue'], - \ 'wat': ['file.wat'], - \ 'wast': ['file.wast'], + \ 'wat': ['file.wat', 'file.wast'], \ 'wdl': ['file.wdl'], \ 'webmacro': ['file.wm'], \ 'wget': ['.wgetrc', 'wgetrc'], |