diff --git a/runtime/filetype.vim b/runtime/filetype.vim index df7624d41a..b067c70e6a 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -2454,8 +2454,7 @@ au BufNewFile,BufRead *.vroom setf vroom au BufNewFile,BufRead *.vue setf vue " WebAssembly -au BufNewFile,BufRead *.wat setf wat -au BufNewFile,BufRead *.wast setf wast +au BufNewFile,BufRead *.wat,*.wast setf wat " WebAssembly Interface Type (WIT) au BufNewFile,BufRead *.wit setf wit diff --git a/runtime/ftplugin/wast.vim b/runtime/ftplugin/wat.vim similarity index 93% rename from runtime/ftplugin/wast.vim rename to 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 -" 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 similarity index 93% rename from runtime/indent/wast.vim rename to 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 -" 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/makemenu.vim b/runtime/makemenu.vim index 0479f7ba7f..16af2035e3 100644 --- a/runtime/makemenu.vim +++ b/runtime/makemenu.vim @@ -651,7 +651,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 12cdcbdddf..b6ecf86449 100644 --- a/runtime/synmenu.vim +++ b/runtime/synmenu.vim @@ -618,7 +618,7 @@ an 50.160.330 &Syntax.UV.VSE\ JCL :cal SetSyn("vsejcl") an 50.170.100 &Syntax.WXYZ.WEB.CWEB :cal SetSyn("cweb") an 50.170.110 &Syntax.WXYZ.WEB.WEB :cal SetSyn("web") an 50.170.120 &Syntax.WXYZ.WEB.WEB\ Changes :cal SetSyn("change") -an 50.170.130 &Syntax.WXYZ.WebAssembly :cal SetSyn("wast") +an 50.170.130 &Syntax.WXYZ.WebAssembly :cal SetSyn("wat") an 50.170.140 &Syntax.WXYZ.Webmacro :cal SetSyn("webmacro") an 50.170.150 &Syntax.WXYZ.Website\ MetaLanguage :cal SetSyn("wml") an 50.170.170 &Syntax.WXYZ.wDiff :cal SetSyn("wdiff") 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 -" 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:]!#$%&'∗./:=>" 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=";\@ +" 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:]!#$%&'∗./:=>" 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=";\@> 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'],