]> granicus.if.org Git - vim/commitdiff
patch 8.2.3358: structurizr files are not recognized v8.2.3358
authorBastian Venthur <bastian.venthur@flixbus.com>
Tue, 17 Aug 2021 21:44:54 +0000 (23:44 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 17 Aug 2021 21:44:54 +0000 (23:44 +0200)
Problem:    Structurizr files are not recognized.
Solution:   Recognize the file by contents. (Bastian Venthur, closes #8764)

runtime/filetype.vim
src/testdir/test_filetype.vim
src/version.c

index 648a19d9e091c4b58540bfbc107863b0893958b1..ad18b7655e31f55b5c61bea0215ac6cda01e9f76 100644 (file)
@@ -537,8 +537,13 @@ au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe       setf dracula
 " Datascript
 au BufNewFile,BufRead *.ds                     setf datascript
 
-" dsl
-au BufNewFile,BufRead *.dsl                    setf dsl
+" dsl: DSSSL or Structurizr
+au BufNewFile,BufRead *.dsl
+       \ if getline(1) =~ '^\s*<\!' |
+       \   setf dsl |
+       \ else |
+       \   setf structurizr |
+       \ endif
 
 " DTD (Document Type Definition for XML)
 au BufNewFile,BufRead *.dtd                    setf dtd
index cd40b6d3ca0a368c451a405559911c72a0a35597..bda6f3ccffe682df383f7a485a5de44058af660a 100644 (file)
@@ -151,7 +151,6 @@ let s:filename_checks = {
     \ 'dosini': ['.editorconfig', '/etc/pacman.conf', '/etc/yum.conf', 'file.ini', 'npmrc', '.npmrc', 'php.ini', 'php.ini-5', 'php.ini-file', '/etc/yum.repos.d/file', 'any/etc/pacman.conf', 'any/etc/yum.conf', 'any/etc/yum.repos.d/file', 'file.wrap'],
     \ 'dot': ['file.dot', 'file.gv'],
     \ 'dracula': ['file.drac', 'file.drc', 'filelvs', 'filelpe', 'drac.file', 'lpe', 'lvs', 'some-lpe', 'some-lvs'],
-    \ 'dsl': ['file.dsl'],
     \ 'dtd': ['file.dtd'],
     \ 'dts': ['file.dts', 'file.dtsi'],
     \ 'dune': ['jbuild', 'dune', 'dune-project', 'dune-workspace'],
@@ -834,4 +833,21 @@ func Test_ex_file()
   filetype off
 endfunc
 
+func Test_dsl_file()
+  filetype on
+
+  call writefile(['  <!doctype dsssl-spec ['], 'dslfile.dsl')
+  split dslfile.dsl
+  call assert_equal('dsl', &filetype)
+  bwipe!
+
+  call writefile(['workspace {'], 'dslfile.dsl')
+  split dslfile.dsl
+  call assert_equal('structurizr', &filetype)
+  bwipe!
+
+  call delete('dslfile.dsl')
+  filetype off
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
index 727257d28d491d66853fdd7a348241259d435fad..74b234aa8c8cfbc2f321d4646822cde3f27a772e 100644 (file)
@@ -755,6 +755,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3358,
 /**/
     3357,
 /**/