[PATCH] D95552: [vim] Add initial syntax definition for .mir files

Cassie Jones via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 16 23:41:25 PST 2021


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGc6a96df37520: [vim] Add initial syntax definition for .mir files (authored by porglezomp).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95552/new/

https://reviews.llvm.org/D95552

Files:
  llvm/utils/vim/ftdetect/mir.vim
  llvm/utils/vim/ftplugin/mir.vim
  llvm/utils/vim/syntax/machine-ir.vim
  llvm/utils/vim/syntax/mir.vim


Index: llvm/utils/vim/syntax/mir.vim
===================================================================
--- /dev/null
+++ llvm/utils/vim/syntax/mir.vim
@@ -0,0 +1,48 @@
+" Vim syntax file
+" Language:   mir
+" Maintainer: The LLVM team, http://llvm.org/
+" Version:      $Revision$
+
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn case match
+
+" MIR is embedded in a yaml container, so we load all of the yaml syntax.
+runtime! syntax/yaml.vim
+unlet b:current_syntax
+
+" The first document of a file is allowed to contain an LLVM IR module inside
+" a top-level yaml block string.
+syntax include @LLVM syntax/llvm.vim
+" FIXME: This should only be allowed for the first document of the file
+syntax region llvm start=/\(^---\s*|\)\@<=/ end=/\(^\.\.\.\)\@=/ contains=@LLVM
+
+" The `body:` field of a document contains the MIR dump of the function
+syntax include @MIR syntax/machine-ir.vim
+syntax region mir start=/\(^body:\s*|\)\@<=/ end=/\(^[^[:space:]]\)\@=/ contains=@MIR
+
+" Syntax-highlight lit test commands and bug numbers.
+syn match  mirSpecialComment /#\s*PR\d*\s*$/
+syn match  mirSpecialComment /#\s*REQUIRES:.*$/
+syn match  mirSpecialComment /#\s*RUN:.*$/
+syn match  mirSpecialComment /#\s*ALLOW_RETRIES:.*$/
+syn match  mirSpecialComment /#\s*CHECK:.*$/
+syn match  mirSpecialComment "\v#\s*CHECK-(NEXT|NOT|DAG|SAME|LABEL):.*$"
+syn match  mirSpecialComment /#\s*XFAIL:.*$/
+
+if version >= 508 || !exists("did_c_syn_inits")
+  if version < 508
+    let did_c_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink mirSpecialComment SpecialComment
+endif
+
+let b:current_syntax = "mir"
Index: llvm/utils/vim/syntax/machine-ir.vim
===================================================================
--- /dev/null
+++ llvm/utils/vim/syntax/machine-ir.vim
@@ -0,0 +1,11 @@
+" Vim syntax file
+" Language:   mir
+" Maintainer: The LLVM team, http://llvm.org/
+" Version:      $Revision$
+
+" FIXME: MIR doesn't actually match LLVM IR. Reimplement this.
+" See the MIR LangRef: https://llvm.org/docs/MIRLangRef.html
+unlet b:current_syntax  " Unlet so that the LLVM syntax will load
+runtime! syntax/llvm.vim
+unlet b:current_syntax
+let b:current_syntax = "mir"
Index: llvm/utils/vim/ftplugin/mir.vim
===================================================================
--- /dev/null
+++ llvm/utils/vim/ftplugin/mir.vim
@@ -0,0 +1,13 @@
+" Vim filetype plugin file
+" Language: LLVM Machine IR
+" Maintainer: The LLVM team, http://llvm.org/
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+setlocal softtabstop=2 shiftwidth=2
+setlocal expandtab
+setlocal comments+=:;
+
Index: llvm/utils/vim/ftdetect/mir.vim
===================================================================
--- /dev/null
+++ llvm/utils/vim/ftdetect/mir.vim
@@ -0,0 +1 @@
+au BufRead,BufNewFile *.mir set filetype=mir


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95552.324200.patch
Type: text/x-patch
Size: 2960 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210217/42e3400d/attachment.bin>


More information about the llvm-commits mailing list