]> granicus.if.org Git - vim/commitdiff
patch 8.2.4701: Kuka Robot Language files not recognized v8.2.4701
authorBram Moolenaar <Bram@vim.org>
Wed, 6 Apr 2022 17:57:39 +0000 (18:57 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 6 Apr 2022 17:57:39 +0000 (18:57 +0100)
Problem:    Kuka Robot Language files not recognized.
Solution:   Recognize *.src and *.dat files. (Patrick Meiser-Knosowski,
            closes #10096)

runtime/autoload/dist/ft.vim
runtime/filetype.vim
src/testdir/test_filetype.vim
src/version.c

index a36f615d61e7587c89d69f93c80f19f7b826ee3e..fd1406235654e1836c060c755b56c13041338084 100644 (file)
@@ -896,6 +896,23 @@ export def FTtf()
   setf tf
 enddef
 
+# Determine if a *.src file is Kuka Robot Language
+export def FTsrc()
+  if exists("g:filetype_src")
+    exe "setf " .. g:filetype_src
+  elseif getline(nextnonblank(1)) =~? '^\s*\%(&\w\+\|\%(global\s\+\)\?def\>\)'
+    setf krl
+  endif
+enddef
+
+# Determine if a *.dat file is Kuka Robot Language
+export def FTdat()
+  if exists("g:filetype_dat")
+    exe "setf " .. g:filetype_dat
+  elseif getline(nextnonblank(1)) =~? '^\s*\%(&\w\+\|defdat\>\)'
+    setf krl
+  endif
+enddef
 
 # Uncomment this line to check for compilation errors early
 # defcompile
index 7aeed626a9a56aff7127599850d45ac39657abfc..9d63a7fe8995f90d7db975f7afe50f0d7c27a35d 100644 (file)
@@ -951,6 +951,11 @@ au BufNewFile,BufRead *.jl                 setf julia
 " Kixtart
 au BufNewFile,BufRead *.kix                    setf kix
 
+" Kuka Robot Language
+au BufNewFile,BufRead *.src\c                  call dist#ft#FTsrc()
+au BufNewFile,BufRead *.dat\c                  call dist#ft#FTdat()
+au BufNewFile,BufRead *.sub\c                  setf krl
+
 " Kimwitu[++]
 au BufNewFile,BufRead *.k                      setf kwt
 
index 4f0dbd7d6f15531cb83fb3d725024179be2d33eb..dc2dc5ae4e254b0be1977e6fc06aa6f1c9c81f60 100644 (file)
@@ -290,6 +290,7 @@ let s:filename_checks = {
     \ 'kivy': ['file.kv'],
     \ 'kix': ['file.kix'],
     \ 'kotlin': ['file.kt', 'file.ktm', 'file.kts'],
+    \ 'krl': ['file.sub', 'file.Sub', 'file.SUB'],
     \ 'kscript': ['file.ks'],
     \ 'kwt': ['file.k'],
     \ 'lace': ['file.ace', 'file.ACE'],
@@ -869,6 +870,30 @@ func Test_d_file()
   call delete('Xfile.d')
 endfunc
 
+func Test_dat_file()
+  filetype on
+
+  call writefile(['&ACCESS'], 'datfile.dat')
+  split datfile.dat
+  call assert_equal('krl', &filetype)
+  bwipe!
+  call delete('datfile.dat')
+
+  call writefile(['  DEFDAT datfile'], 'datfile.Dat')
+  split datfile.Dat
+  call assert_equal('krl', &filetype)
+  bwipe!
+  call delete('datfile.Dat')
+
+  call writefile(['', 'defdat  datfile'], 'datfile.DAT')
+  split datfile.DAT
+  call assert_equal('krl', &filetype)
+  bwipe!
+  call delete('datfile.DAT')
+
+  filetype off
+endfunc
+
 func Test_dep3patch_file()
   filetype on
 
@@ -1311,6 +1336,30 @@ func Test_pp_file()
   filetype off
 endfunc
 
+func Test_src_file()
+  filetype on
+
+  call writefile(['&ACCESS'], 'srcfile.src')
+  split srcfile.src
+  call assert_equal('krl', &filetype)
+  bwipe!
+  call delete('srcfile.src')
+
+  call writefile(['  DEF srcfile()'], 'srcfile.Src')
+  split srcfile.Src
+  call assert_equal('krl', &filetype)
+  bwipe!
+  call delete('srcfile.Src')
+
+  call writefile(['', 'global  def  srcfile()'], 'srcfile.SRC')
+  split srcfile.SRC
+  call assert_equal('krl', &filetype)
+  bwipe!
+  call delete('srcfile.SRC')
+
+  filetype off
+endfunc
+
 func Test_tex_file()
   filetype on
 
index 6900961a99adccb312f770e2765b2b91c40577e4..f00fbcb27b12fa5c9eec5b1af9cceb7243534b60 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4701,
 /**/
     4700,
 /**/