changeset 33767:4913b4f5a133 v9.0.2104

patch 9.0.2104: wast filetype should be replaced by wat filetype Commit: https://github.com/vim/vim/commit/bc8f79d36a456054ed29f46585830af6d71f57c8 Author: rhysd <lin90162@yahoo.co.jp> Date: Tue Nov 14 16:46:07 2023 +0100 patch 9.0.2104: wast filetype should be replaced by wat filetype Problem: wast filetype should be replaced by wat filetype Solution: start using the official wat filetype name runtime: rename `wast` filetype to `wat` (Wasm text format) The problem is the name of the current filetype wast. When the plugin was initially created, the file extension for Wasm text format was not fixed and .wast was more popular. However, recently .wat became the official file extension for WebAssembly text (WAT) format and .wast is now a file extension for the unofficial WAST format, which is a superset of .wat for the convenience to describe the Wasm specification conformance tests. https://webassembly.js.org/docs/contrib-wat-vs-wast.html However for now, let's keep using the `wat` filetype even for the .wast extension, so that we at least do not lose the filetype settings and syntax highlighting. This can be adjusted later, if it turns out to have a separate need for. closes: #13533 Signed-off-by: rhysd <lin90162@yahoo.co.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 14 Nov 2023 17:15:03 +0100
parents fc557aa379ef
children 95830543949f
files runtime/filetype.vim runtime/ftplugin/wast.vim runtime/ftplugin/wat.vim runtime/indent/wast.vim runtime/indent/wat.vim runtime/makemenu.vim runtime/synmenu.vim runtime/syntax/wast.vim runtime/syntax/wat.vim src/testdir/test_filetype.vim
diffstat 10 files changed, 135 insertions(+), 137 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -2454,8 +2454,7 @@ au BufNewFile,BufRead *.vroom			setf vro
 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
rename from runtime/ftplugin/wast.vim
rename to runtime/ftplugin/wat.vim
--- 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")
rename from runtime/indent/wast.vim
rename to runtime/indent/wat.vim
--- 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")
--- 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
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -618,7 +618,7 @@ an 50.160.330 &Syntax.UV.VSE\ JCL :cal S
 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>
deleted file mode 100644
--- 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
new file mode 100644
--- /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
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -786,8 +786,7 @@ def s:GetFilenameChecks(): dict<list<str
     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'],