annotate runtime/autoload/dist/ft.vim @ 32214:a4dafbd8b7d5 v9.0.1438

patch 9.0.1438: .fs files are falsely recognized as forth files Commit: https://github.com/vim/vim/commit/065088d5549e7711668321cc5a77c9a9b684b142 Author: Johan Kotlinski <kotlinski@gmail.com> Date: Sun Apr 2 20:29:38 2023 +0100 patch 9.0.1438: .fs files are falsely recognized as forth files Problem: .fs files are falsely recognized as forth files. Solution: Check 100 lines for something that looks like forth. (Johan Kotlinski, closes #12219, closes #11988)
author Bram Moolenaar <Bram@vim.org>
date Sun, 02 Apr 2023 21:30:05 +0200
parents 7d68a90cbf5c
children 91bb2a8cc866
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1 vim9script
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
3 # Vim functions for file type detection
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
4 #
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
5 # Maintainer: Bram Moolenaar <Bram@vim.org>
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31449
diff changeset
6 # Last Change: 2022 Dec 14
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
8 # These functions are moved here from runtime/filetype.vim to make startup
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
9 # faster.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
11 export def Check_inp()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 if getline(1) =~ '^\*'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 setf abaqus
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
15 var n = 1
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
16 var nmax = line("$") > 500 ? 500 : line("$")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 while n <= nmax
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 if getline(n) =~? "^header surface data"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 setf trasys
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 break
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
22 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
25 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
27 # This function checks for the kind of assembly that is wanted by the user, or
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
28 # can be detected from the first five lines of the file.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
29 export def FTasm()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
30 # make sure b:asmsyntax exists
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 if !exists("b:asmsyntax")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
32 b:asmsyntax = ""
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 if b:asmsyntax == ""
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
36 FTasmsyntax()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
39 # if b:asmsyntax still isn't set, default to asmsyntax or GNU
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 if b:asmsyntax == ""
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 if exists("g:asmsyntax")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
42 b:asmsyntax = g:asmsyntax
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
44 b:asmsyntax = "asm"
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
48 exe "setf " .. fnameescape(b:asmsyntax)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
49 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
51 export def FTasmsyntax()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
52 # see if the file contains any asmsyntax=foo overrides. If so, change
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
53 # b:asmsyntax appropriately
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
54 var head = " " .. getline(1) .. " " .. getline(2) .. " "
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
55 .. getline(3) .. " " .. getline(4) .. " " .. getline(5) .. " "
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
56 var match = matchstr(head, '\sasmsyntax=\zs[a-zA-Z0-9]\+\ze\s')
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 if match != ''
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
58 b:asmsyntax = match
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59 elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
60 b:asmsyntax = "vmasm"
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
62 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
64 var ft_visual_basic_content = '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)'
27493
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
65
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
66 # See FTfrm() for Visual Basic form file detection
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
67 export def FTbas()
27287
9f72ec92d361 patch 8.2.4172: filetype detection for BASIC is not optimal
Bram Moolenaar <Bram@vim.org>
parents: 27162
diff changeset
68 if exists("g:filetype_bas")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
69 exe "setf " .. g:filetype_bas
27287
9f72ec92d361 patch 8.2.4172: filetype detection for BASIC is not optimal
Bram Moolenaar <Bram@vim.org>
parents: 27162
diff changeset
70 return
9f72ec92d361 patch 8.2.4172: filetype detection for BASIC is not optimal
Bram Moolenaar <Bram@vim.org>
parents: 27162
diff changeset
71 endif
9f72ec92d361 patch 8.2.4172: filetype detection for BASIC is not optimal
Bram Moolenaar <Bram@vim.org>
parents: 27162
diff changeset
72
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
73 # most frequent FreeBASIC-specific keywords in distro files
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
74 var fb_keywords = '\c^\s*\%(extern\|var\|enum\|private\|scope\|union\|byref\|operator\|constructor\|delete\|namespace\|public\|property\|with\|destructor\|using\)\>\%(\s*[:=(]\)\@!'
29326
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
75 var fb_preproc = '\c^\s*\%(' ..
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
76 # preprocessor
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
77 '#\s*\a\+\|' ..
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
78 # compiler option
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
79 'option\s\+\%(byval\|dynamic\|escape\|\%(no\)\=gosub\|nokeyword\|private\|static\)\>\|' ..
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
80 # metacommand
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
81 '\%(''\|rem\)\s*\$lang\>\|' ..
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
82 # default datatype
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
83 'def\%(byte\|longint\|short\|ubyte\|uint\|ulongint\|ushort\)\>' ..
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
84 '\)'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
85 var fb_comment = "^\\s*/'"
29326
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
86
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
87 # OPTION EXPLICIT, without the leading underscore, is common to many dialects
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
88 var qb64_preproc = '\c^\s*\%($\a\+\|option\s\+\%(_explicit\|_\=explicitarray\)\>\)'
27287
9f72ec92d361 patch 8.2.4172: filetype detection for BASIC is not optimal
Bram Moolenaar <Bram@vim.org>
parents: 27162
diff changeset
89
29326
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
90 for lnum in range(1, min([line("$"), 100]))
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
91 var line = getline(lnum)
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
92 if line =~ ft_visual_basic_content
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
93 setf vb
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
94 return
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
95 elseif line =~ fb_preproc || line =~ fb_comment || line =~ fb_keywords
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
96 setf freebasic
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
97 return
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
98 elseif line =~ qb64_preproc
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
99 setf qb64
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
100 return
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
101 endif
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
102 endfor
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
103 setf basic
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
104 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
106 export def FTbtm()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 setf dosbatch
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 setf btm
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
112 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
114 export def BindzoneCheck(default = '')
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
115 if getline(1) .. getline(2) .. getline(3) .. getline(4)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
116 =~ '^; <<>> DiG [0-9.]\+.* <<>>\|$ORIGIN\|$TTL\|IN\s\+SOA'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 setf bindzone
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
118 elseif default != ''
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
119 exe 'setf ' .. default
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
120 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
121 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
122
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
123 # Returns true if file content looks like RAPID
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
124 def IsRapid(sChkExt: string = ""): bool
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
125 if sChkExt == "cfg"
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
126 return getline(1) =~? '\v^%(EIO|MMC|MOC|PROC|SIO|SYS):CFG'
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
127 endif
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
128 # called from FTmod, FTprg or FTsys
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
129 return getline(nextnonblank(1)) =~? '\v^\s*%(\%{3}|module\s+\k+\s*%(\(|$))'
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
130 enddef
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
131
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
132 export def FTcfg()
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
133 if exists("g:filetype_cfg")
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
134 exe "setf " .. g:filetype_cfg
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
135 elseif IsRapid("cfg")
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
136 setf rapid
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
137 else
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
138 setf cfg
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
139 endif
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
140 enddef
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
141
29326
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
142 export def FTcls()
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
143 if exists("g:filetype_cls")
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
144 exe "setf " .. g:filetype_cls
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
145 return
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
146 endif
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
147
30873
d4c8fdaa3ae7 patch 9.0.0771: cannot always tell the difference beween tex and rexx files
Bram Moolenaar <Bram@vim.org>
parents: 30023
diff changeset
148 if getline(1) =~ '^\v%(\%|\\)'
29326
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
149 setf tex
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
150 elseif getline(1)[0] == '#' && getline(1) =~ 'rexx'
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
151 setf rexx
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
152 elseif getline(1) == 'VERSION 1.0 CLASS'
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
153 setf vb
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
154 else
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
155 setf st
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
156 endif
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
157 enddef
1f1d99bba06c patch 9.0.0006: not all Visual Basic files are recognized
Bram Moolenaar <Bram@vim.org>
parents: 28517
diff changeset
158
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
159 export def FTlpc()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
160 if exists("g:lpc_syntax_for_c")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
161 var lnum = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
162 while lnum <= 12
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
163 if getline(lnum) =~# '^\(//\|inherit\|private\|protected\|nosave\|string\|object\|mapping\|mixed\)'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
164 setf lpc
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
165 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
166 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
167 lnum += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
169 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
170 setf c
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
171 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
173 export def FTheader()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 if match(getline(1, min([line("$"), 200])), '^@\(interface\|end\|class\)') > -1
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 if exists("g:c_syntax_for_h")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 setf objc
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 setf objcpp
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 elseif exists("g:c_syntax_for_h")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181 setf c
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 elseif exists("g:ch_syntax_for_h")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 setf ch
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 setf cpp
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
187 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
189 # This function checks if one of the first ten lines start with a '@'. In
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
190 # that case it is probably a change file.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
191 # If the first line starts with # or ! it's probably a ch file.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
192 # If a line has "main", "include", "//" or "/*" it's probably ch.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
193 # Otherwise CHILL is assumed.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
194 export def FTchange()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
195 var lnum = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
196 while lnum <= 10
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
197 if getline(lnum)[0] == '@'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 setf change
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
199 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
200 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
201 if lnum == 1 && (getline(1)[0] == '#' || getline(1)[0] == '!')
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
202 setf ch
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
203 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
204 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
205 if getline(lnum) =~ "MODULE"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
206 setf chill
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
207 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
208 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
209 if getline(lnum) =~ 'main\s*(\|#\s*include\|//'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
210 setf ch
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
211 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
212 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
213 lnum += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
214 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
215 setf chill
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
216 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
217
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
218 export def FTent()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
219 # This function checks for valid cl syntax in the first five lines.
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
220 # Look for either an opening comment, '#', or a block start, '{'.
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
221 # If not found, assume SGML.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
222 var lnum = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
223 while lnum < 6
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
224 var line = getline(lnum)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
225 if line =~ '^\s*[#{]'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
226 setf cl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
227 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
228 elseif line !~ '^\s*$'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
229 # Not a blank line, not a comment, and not a block start,
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
230 # so doesn't look like valid cl code.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
231 break
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
232 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
233 lnum += 1
27972
9c0b7953016e patch 8.2.4511: filetype test fails
Bram Moolenaar <Bram@vim.org>
parents: 27903
diff changeset
234 endwhile
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
235 setf dtd
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
236 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
237
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
238 export def ExCheck()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
239 var lines = getline(1, min([line("$"), 100]))
25026
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
240 if exists('g:filetype_euphoria')
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
241 exe 'setf ' .. g:filetype_euphoria
25026
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
242 elseif match(lines, '^--\|^ifdef\>\|^include\>') > -1
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
243 setf euphoria3
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
244 else
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
245 setf elixir
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
246 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
247 enddef
25026
fda44c0b4b7b patch 8.2.3050: cannot recognize elixir files
Bram Moolenaar <Bram@vim.org>
parents: 23584
diff changeset
248
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
249 export def EuphoriaCheck()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
250 if exists('g:filetype_euphoria')
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
251 exe 'setf ' .. g:filetype_euphoria
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
252 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
253 setf euphoria3
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
254 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
255 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
256
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
257 export def DtraceCheck()
27877
834d3fba1e7c patch 8.2.4464: Dtrace files are recognized as filetype D
Bram Moolenaar <Bram@vim.org>
parents: 27845
diff changeset
258 if did_filetype()
834d3fba1e7c patch 8.2.4464: Dtrace files are recognized as filetype D
Bram Moolenaar <Bram@vim.org>
parents: 27845
diff changeset
259 # Filetype was already detected
834d3fba1e7c patch 8.2.4464: Dtrace files are recognized as filetype D
Bram Moolenaar <Bram@vim.org>
parents: 27845
diff changeset
260 return
834d3fba1e7c patch 8.2.4464: Dtrace files are recognized as filetype D
Bram Moolenaar <Bram@vim.org>
parents: 27845
diff changeset
261 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
262 var lines = getline(1, min([line("$"), 100]))
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
263 if match(lines, '^module\>\|^import\>') > -1
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
264 # D files often start with a module and/or import statement.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
265 setf d
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
266 elseif match(lines, '^#!\S\+dtrace\|#pragma\s\+D\s\+option\|:\S\{-}:\S\{-}:') > -1
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
267 setf dtrace
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
268 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
269 setf d
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
270 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
271 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
272
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
273 export def FTe()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
274 if exists('g:filetype_euphoria')
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
275 exe 'setf ' .. g:filetype_euphoria
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
276 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
277 var n = 1
16024
7fd3a9eaeedb patch 8.1.1017: off-by-one error in filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 15527
diff changeset
278 while n < 100 && n <= line("$")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
279 if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
280 setf specman
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
281 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
282 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
283 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
284 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
285 setf eiffel
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
286 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
287 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
288
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
289 export def FTfrm()
27493
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
290 if exists("g:filetype_frm")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
291 exe "setf " .. g:filetype_frm
27493
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
292 return
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
293 endif
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
294
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
295 var lines = getline(1, min([line("$"), 5]))
27493
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
296
27845
e63514ae0c29 patch 8.2.4448: filetype detection is failing
Bram Moolenaar <Bram@vim.org>
parents: 27557
diff changeset
297 if match(lines, ft_visual_basic_content) > -1
27493
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
298 setf vb
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
299 else
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
300 setf form
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
301 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
302 enddef
27493
3af3dee7e5d9 patch 8.2.4274: Basic and form filetype detection is incomplete
Bram Moolenaar <Bram@vim.org>
parents: 27492
diff changeset
303
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
304 # Distinguish between Forth and F#.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
305 # Provided by Doug Kearns.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
306 export def FTfs()
26311
ce3678583211 patch 8.2.3686: filetype detection often mixes up Forth and F#
Bram Moolenaar <Bram@vim.org>
parents: 26296
diff changeset
307 if exists("g:filetype_fs")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
308 exe "setf " .. g:filetype_fs
26311
ce3678583211 patch 8.2.3686: filetype detection often mixes up Forth and F#
Bram Moolenaar <Bram@vim.org>
parents: 26296
diff changeset
309 else
32214
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
310 var n = 1
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
311 while n < 100 && n <= line("$")
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
312 # Forth comments and colon definitions
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
313 if getline(n) =~ "^[:(\\\\] "
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
314 setf forth
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
315 return
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
316 endif
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
317 n += 1
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
318 endwhile
a4dafbd8b7d5 patch 9.0.1438: .fs files are falsely recognized as forth files
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
319 setf fsharp
26311
ce3678583211 patch 8.2.3686: filetype detection often mixes up Forth and F#
Bram Moolenaar <Bram@vim.org>
parents: 26296
diff changeset
320 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
321 enddef
26311
ce3678583211 patch 8.2.3686: filetype detection often mixes up Forth and F#
Bram Moolenaar <Bram@vim.org>
parents: 26296
diff changeset
322
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
323 # Distinguish between HTML, XHTML and Django
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
324 export def FThtml()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
325 var n = 1
16024
7fd3a9eaeedb patch 8.1.1017: off-by-one error in filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 15527
diff changeset
326 while n < 10 && n <= line("$")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
327 if getline(n) =~ '\<DTD\s\+XHTML\s'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
328 setf xhtml
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
329 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
330 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
331 if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
332 setf htmldjango
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
333 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
334 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
335 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
336 endwhile
16024
7fd3a9eaeedb patch 8.1.1017: off-by-one error in filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 15527
diff changeset
337 setf FALLBACK html
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
338 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
339
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
340 # Distinguish between standard IDL and MS-IDL
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
341 export def FTidl()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
342 var n = 1
16024
7fd3a9eaeedb patch 8.1.1017: off-by-one error in filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 15527
diff changeset
343 while n < 50 && n <= line("$")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
344 if getline(n) =~ '^\s*import\s\+"\(unknwn\|objidl\)\.idl"'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
345 setf msidl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
346 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
347 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
348 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
349 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
350 setf idl
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
351 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
352
29659
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
353 # Distinguish between "default", Prolog and Cproto prototype file.
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
354 export def ProtoCheck(default: string)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
355 # Cproto files have a comment in the first line and a function prototype in
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
356 # the second line, it always ends in ";". Indent files may also have
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
357 # comments, thus we can't match comments to see the difference.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
358 # IDL files can have a single ';' in the second line, require at least one
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
359 # chacter before the ';'.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
360 if getline(2) =~ '.;$'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
361 setf cpp
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
362 else
29659
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
363 # recognize Prolog by specific text in the first non-empty line
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
364 # require a blank after the '%' because Perl uses "%list" and "%translate"
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
365 var l = getline(nextnonblank(1))
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
366 if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
367 setf prolog
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
368 else
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
369 exe 'setf ' .. default
2198955f9e27 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29493
diff changeset
370 endif
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
371 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
372 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
373
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
374 export def FTm()
25727
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
375 if exists("g:filetype_m")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
376 exe "setf " .. g:filetype_m
25727
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
377 return
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
378 endif
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
379
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
380 # excluding end(for|function|if|switch|while) common to Murphi
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
381 var octave_block_terminators = '\<end\%(_try_catch\|classdef\|enumeration\|events\|methods\|parfor\|properties\)\>'
25727
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
382
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
383 var objc_preprocessor = '^\s*#\s*\%(import\|include\|define\|if\|ifn\=def\|undef\|line\|error\|pragma\)\>'
26296
9f32ccdadd22 patch 8.2.3679: objc file detected as Octave
Bram Moolenaar <Bram@vim.org>
parents: 25794
diff changeset
384
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
385 var n = 1
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
386 var saw_comment = 0 # Whether we've seen a multiline comment leader.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
387 while n < 100
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
388 var line = getline(n)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
389 if line =~ '^\s*/\*'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
390 # /* ... */ is a comment in Objective C and Murphi, so we can't conclude
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
391 # it's either of them yet, but track this as a hint in case we don't see
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
392 # anything more definitive.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
393 saw_comment = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
394 endif
26296
9f32ccdadd22 patch 8.2.3679: objc file detected as Octave
Bram Moolenaar <Bram@vim.org>
parents: 25794
diff changeset
395 if line =~ '^\s*//' || line =~ '^\s*@import\>' || line =~ objc_preprocessor
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
396 setf objc
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
397 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
398 endif
25794
374adc90efa5 patch 8.2.3432: octave/Matlab filetype detection does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 25727
diff changeset
399 if line =~ '^\s*\%(#\|%!\)' || line =~ '^\s*unwind_protect\>' ||
25727
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
400 \ line =~ '\%(^\|;\)\s*' .. octave_block_terminators
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
401 setf octave
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
402 return
71d3ebfb00b6 patch 8.2.3399: Octave files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 25026
diff changeset
403 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
404 # TODO: could be Matlab or Octave
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
405 if line =~ '^\s*%'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
406 setf matlab
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
407 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
408 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
409 if line =~ '^\s*(\*'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
410 setf mma
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
411 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
412 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
413 if line =~ '^\c\s*\(\(type\|var\)\>\|--\)'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
414 setf murphi
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
415 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
416 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
417 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
418 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
419
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
420 if saw_comment
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
421 # We didn't see anything definitive, but this looks like either Objective C
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
422 # or Murphi based on the comment leader. Assume the former as it is more
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
423 # common.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
424 setf objc
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
425 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
426 # Default is Matlab
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
427 setf matlab
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
428 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
429 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
430
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
431 export def FTmms()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
432 var n = 1
19039
d20ed2e5a776 Update a few runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 16086
diff changeset
433 while n < 20
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
434 var line = getline(n)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
435 if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
436 setf mmix
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
437 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
438 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
439 if line =~ '^\s*#'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
440 setf make
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
441 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
442 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
443 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
444 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
445 setf mmix
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
446 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
447
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
448 # This function checks if one of the first five lines start with a dot. In
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
449 # that case it is probably an nroff file: 'filetype' is set and 1 is returned.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
450 export def FTnroff(): number
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
451 if getline(1)[0] .. getline(2)[0] .. getline(3)[0]
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
452 .. getline(4)[0] .. getline(5)[0] =~ '\.'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
453 setf nroff
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
454 return 1
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
455 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
456 return 0
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
457 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
458
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
459 export def FTmm()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
460 var n = 1
19968
1908e92b02fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19039
diff changeset
461 while n < 20
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
462 if getline(n) =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
463 setf objcpp
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
464 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
465 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
466 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
467 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
468 setf nroff
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
469 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
470
29338
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
471 # Returns true if file content looks like LambdaProlog module
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
472 def IsLProlog(): bool
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
473 # skip apparent comments and blank lines, what looks like
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
474 # LambdaProlog comment may be RAPID header
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
475 var l: number = nextnonblank(1)
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
476 while l > 0 && l < line('$') && getline(l) =~ '^\s*%' # LambdaProlog comment
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
477 l = nextnonblank(l + 1)
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
478 endwhile
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
479 # this pattern must not catch a go.mod file
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
480 return getline(l) =~ '\<module\s\+\w\+\s*\.\s*\(%\|$\)'
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
481 enddef
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
482
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
483 # Determine if *.mod is ABB RAPID, LambdaProlog, Modula-2, Modsim III or go.mod
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
484 export def FTmod()
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
485 if exists("g:filetype_mod")
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
486 exe "setf " .. g:filetype_mod
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
487 elseif IsLProlog()
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
488 setf lprolog
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
489 elseif getline(nextnonblank(1)) =~ '\%(\<MODULE\s\+\w\+\s*;\|^\s*(\*\)'
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
490 setf modula2
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
491 elseif IsRapid()
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
492 setf rapid
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
493 elseif expand("<afile>") =~ '\<go.mod$'
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
494 setf gomod
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
495 else
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
496 # Nothing recognized, assume modsim3
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
497 setf modsim3
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
498 endif
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
499 enddef
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
500
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
501 export def FTpl()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
502 if exists("g:filetype_pl")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
503 exe "setf " .. g:filetype_pl
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
504 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
505 # recognize Prolog by specific text in the first non-empty line
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
506 # require a blank after the '%' because Perl uses "%list" and "%translate"
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
507 var l = getline(nextnonblank(1))
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
508 if l =~ '\<prolog\>' || l =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || l =~ ':-'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
509 setf prolog
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
510 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
511 setf perl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
512 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
513 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
514 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
515
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
516 export def FTinc()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
517 if exists("g:filetype_inc")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
518 exe "setf " .. g:filetype_inc
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
519 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
520 var lines = getline(1) .. getline(2) .. getline(3)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
521 if lines =~? "perlscript"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
522 setf aspperl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
523 elseif lines =~ "<%"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
524 setf aspvbs
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
525 elseif lines =~ "<?"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
526 setf php
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
527 # Pascal supports // comments but they're vary rarely used for file
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
528 # headers so assume POV-Ray
27845
e63514ae0c29 patch 8.2.4448: filetype detection is failing
Bram Moolenaar <Bram@vim.org>
parents: 27557
diff changeset
529 elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? ft_pascal_keywords
23584
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
530 setf pascal
29493
6c1e06abff2c patch 9.0.0088: pattern for detecting bitbake files is not sufficient
Bram Moolenaar <Bram@vim.org>
parents: 29427
diff changeset
531 elseif lines =~# '\<\%(require\|inherit\)\>' || lines =~# '[A-Z][A-Za-z0-9_:${}]*\s\+\%(??\|[?:+]\)\?= '
29427
2830faa3e100 patch 9.0.0055: bitbake files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 29338
diff changeset
532 setf bitbake
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
533 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
534 FTasmsyntax()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
535 if exists("b:asmsyntax")
29427
2830faa3e100 patch 9.0.0055: bitbake files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 29338
diff changeset
536 exe "setf " .. fnameescape(b:asmsyntax)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
537 else
29427
2830faa3e100 patch 9.0.0055: bitbake files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 29338
diff changeset
538 setf pov
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
539 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
540 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
541 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
542 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
543
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
544 export def FTprogress_cweb()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
545 if exists("g:filetype_w")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
546 exe "setf " .. g:filetype_w
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
547 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
548 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
549 if getline(1) =~ '&ANALYZE' || getline(3) =~ '&GLOBAL-DEFINE'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
550 setf progress
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
551 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
552 setf cweb
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
553 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
554 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
555
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
556 export def FTprogress_asm()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
557 if exists("g:filetype_i")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
558 exe "setf " .. g:filetype_i
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
559 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
560 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
561 # This function checks for an assembly comment the first ten lines.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
562 # If not found, assume Progress.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
563 var lnum = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
564 while lnum <= 10 && lnum < line('$')
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
565 var line = getline(lnum)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
566 if line =~ '^\s*;' || line =~ '^\*'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
567 FTasm()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
568 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
569 elseif line !~ '^\s*$' || line =~ '^/\*'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
570 # Not an empty line: Doesn't look like valid assembly code.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
571 # Or it looks like a Progress /* comment
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
572 break
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
573 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
574 lnum += 1
27972
9c0b7953016e patch 8.2.4511: filetype test fails
Bram Moolenaar <Bram@vim.org>
parents: 27903
diff changeset
575 endwhile
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
576 setf progress
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
577 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
578
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
579 var ft_pascal_comments = '^\s*\%({\|(\*\|//\)'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
580 var ft_pascal_keywords = '^\s*\%(program\|unit\|library\|uses\|begin\|procedure\|function\|const\|type\|var\)\>'
23584
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
581
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
582 export def FTprogress_pascal()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
583 if exists("g:filetype_p")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
584 exe "setf " .. g:filetype_p
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
585 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
586 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
587 # This function checks for valid Pascal syntax in the first ten lines.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
588 # Look for either an opening comment or a program start.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
589 # If not found, assume Progress.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
590 var lnum = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
591 while lnum <= 10 && lnum < line('$')
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
592 var line = getline(lnum)
27845
e63514ae0c29 patch 8.2.4448: filetype detection is failing
Bram Moolenaar <Bram@vim.org>
parents: 27557
diff changeset
593 if line =~ ft_pascal_comments || line =~? ft_pascal_keywords
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
594 setf pascal
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
595 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
596 elseif line !~ '^\s*$' || line =~ '^/\*'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
597 # Not an empty line: Doesn't look like valid Pascal code.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
598 # Or it looks like a Progress /* comment
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
599 break
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
600 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
601 lnum += 1
27972
9c0b7953016e patch 8.2.4511: filetype test fails
Bram Moolenaar <Bram@vim.org>
parents: 27903
diff changeset
602 endwhile
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
603 setf progress
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
604 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
605
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
606 export def FTpp()
23584
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
607 if exists("g:filetype_pp")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
608 exe "setf " .. g:filetype_pp
23584
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
609 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
610 var line = getline(nextnonblank(1))
27845
e63514ae0c29 patch 8.2.4448: filetype detection is failing
Bram Moolenaar <Bram@vim.org>
parents: 27557
diff changeset
611 if line =~ ft_pascal_comments || line =~? ft_pascal_keywords
23584
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
612 setf pascal
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
613 else
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
614 setf puppet
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
615 endif
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
616 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
617 enddef
23584
397f95f103e8 patch 8.2.2334: Pascal-like filetypes not always detected
Bram Moolenaar <Bram@vim.org>
parents: 21991
diff changeset
618
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
619 # Determine if *.prg is ABB RAPID. Can also be Clipper, FoxPro or eviews
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
620 export def FTprg()
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
621 if exists("g:filetype_prg")
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
622 exe "setf " .. g:filetype_prg
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
623 elseif IsRapid()
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
624 setf rapid
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
625 else
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
626 # Nothing recognized, assume Clipper
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
627 setf clipper
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
628 endif
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
629 enddef
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
630
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
631 export def FTr()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
632 var max = line("$") > 50 ? 50 : line("$")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
633
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
634 for n in range(1, max)
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
635 # Rebol is easy to recognize, check for that first
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
636 if getline(n) =~? '\<REBOL\>'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
637 setf rebol
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
638 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
639 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
640 endfor
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
641
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
642 for n in range(1, max)
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
643 # R has # comments
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
644 if getline(n) =~ '^\s*#'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
645 setf r
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
646 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
647 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
648 # Rexx has /* comments */
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
649 if getline(n) =~ '^\s*/\*'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
650 setf rexx
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
651 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
652 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
653 endfor
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
654
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
655 # Nothing recognized, use user default or assume Rexx
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
656 if exists("g:filetype_r")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
657 exe "setf " .. g:filetype_r
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
658 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
659 # Rexx used to be the default, but R appears to be much more popular.
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
660 setf r
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
661 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
662 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
663
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
664 export def McSetf()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
665 # Rely on the file to start with a comment.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
666 # MS message text files use ';', Sendmail files use '#' or 'dnl'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
667 for lnum in range(1, min([line("$"), 20]))
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
668 var line = getline(lnum)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
669 if line =~ '^\s*\(#\|dnl\)'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
670 setf m4 # Sendmail .mc file
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
671 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
672 elseif line =~ '^\s*;'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
673 setf msmessages # MS Message text file
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
674 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
675 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
676 endfor
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
677 setf m4 # Default: Sendmail .mc file
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
678 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
679
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
680 # Called from filetype.vim and scripts.vim.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
681 export def SetFileTypeSH(name: string)
15527
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
682 if did_filetype()
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
683 # Filetype was already detected
15527
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
684 return
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
685 endif
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
686 if expand("<amatch>") =~ g:ft_ignore_pat
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
687 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
688 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
689 if name =~ '\<csh\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
690 # Some .sh scripts contain #!/bin/csh.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
691 SetFileTypeShell("csh")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
692 return
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
693 elseif name =~ '\<tcsh\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
694 # Some .sh scripts contain #!/bin/tcsh.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
695 SetFileTypeShell("tcsh")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
696 return
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
697 elseif name =~ '\<zsh\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
698 # Some .sh scripts contain #!/bin/zsh.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
699 SetFileTypeShell("zsh")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
700 return
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
701 elseif name =~ '\<ksh\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
702 b:is_kornshell = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
703 if exists("b:is_bash")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
704 unlet b:is_bash
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
705 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
706 if exists("b:is_sh")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
707 unlet b:is_sh
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
708 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
709 elseif exists("g:bash_is_sh") || name =~ '\<bash\>' || name =~ '\<bash2\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
710 b:is_bash = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
711 if exists("b:is_kornshell")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
712 unlet b:is_kornshell
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
713 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
714 if exists("b:is_sh")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
715 unlet b:is_sh
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
716 endif
31203
8a54e866a5db patch 9.0.0935: when using dash it may not be recognize as filetype "sh"
Bram Moolenaar <Bram@vim.org>
parents: 30890
diff changeset
717 elseif name =~ '\<sh\>' || name =~ '\<dash\>'
8a54e866a5db patch 9.0.0935: when using dash it may not be recognize as filetype "sh"
Bram Moolenaar <Bram@vim.org>
parents: 30890
diff changeset
718 # Ubuntu links "sh" to "dash", thus it is expected to work the same way
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
719 b:is_sh = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
720 if exists("b:is_kornshell")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
721 unlet b:is_kornshell
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
722 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
723 if exists("b:is_bash")
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
724 unlet b:is_bash
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
725 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
726 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
727 SetFileTypeShell("sh")
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
728 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
729
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
730 # For shell-like file types, check for an "exec" command hidden in a comment,
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
731 # as used for Tcl.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
732 # Also called from scripts.vim, thus can't be local to this script.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
733 export def SetFileTypeShell(name: string)
15527
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
734 if did_filetype()
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
735 # Filetype was already detected
15527
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
736 return
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
737 endif
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
738 if expand("<amatch>") =~ g:ft_ignore_pat
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
739 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
740 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
741 var l = 2
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
742 while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
743 # Skip empty and comment lines.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
744 l += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
745 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
746 if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
747 # Found an "exec" line after a comment with continuation
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
748 var n = substitute(getline(l), '\s*exec\s\+\([^ ]*/\)\=', '', '')
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
749 if n =~ '\<tclsh\|\<wish'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
750 setf tcl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
751 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
752 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
753 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
754 exe "setf " .. name
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
755 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
756
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
757 export def CSH()
15527
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
758 if did_filetype()
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
759 # Filetype was already detected
15527
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
760 return
963dd629d19a patch 8.1.0771: some shell filetype patterns end in a star
Bram Moolenaar <Bram@vim.org>
parents: 14999
diff changeset
761 endif
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
762 if exists("g:filetype_csh")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
763 SetFileTypeShell(g:filetype_csh)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
764 elseif &shell =~ "tcsh"
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
765 SetFileTypeShell("tcsh")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
766 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
767 SetFileTypeShell("csh")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
768 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
769 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
770
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
771 var ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
772 export def FTRules()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
773 var path = expand('<amatch>:p')
21853
aab3fe874b05 patch 8.2.1476: filetype test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 21849
diff changeset
774 if path =~ '/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|\%(usr/\)\=lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
775 setf udevrules
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
776 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
777 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
778 if path =~ '^/etc/ufw/'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
779 setf conf # Better than hog
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
780 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
781 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
782 if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
783 setf javascript
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
784 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
785 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
786 var config_lines: list<string>
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
787 try
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
788 config_lines = readfile('/etc/udev/udev.conf')
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
789 catch /^Vim\%((\a\+)\)\=:E484/
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
790 setf hog
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
791 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
792 endtry
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
793 var dir = expand('<amatch>:p:h')
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
794 for line in config_lines
27845
e63514ae0c29 patch 8.2.4448: filetype detection is failing
Bram Moolenaar <Bram@vim.org>
parents: 27557
diff changeset
795 if line =~ ft_rules_udev_rules_pattern
e63514ae0c29 patch 8.2.4448: filetype detection is failing
Bram Moolenaar <Bram@vim.org>
parents: 27557
diff changeset
796 var udev_rules = substitute(line, ft_rules_udev_rules_pattern, '\1', "")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
797 if dir == udev_rules
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
798 setf udevrules
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
799 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
800 break
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
801 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
802 endfor
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
803 setf hog
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
804 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
805
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
806 export def SQL()
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
807 if exists("g:filetype_sql")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
808 exe "setf " .. g:filetype_sql
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
809 else
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
810 setf sql
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
811 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
812 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
813
28443
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
814 # This function checks the first 25 lines of file extension "sc" to resolve
31449
429bed14e24b patch 9.0.1057: conflict between supercollider and scala filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
815 # detection between scala and SuperCollider.
429bed14e24b patch 9.0.1057: conflict between supercollider and scala filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
816 # NOTE: We don't check for 'Class : Method', as this can easily be confused
429bed14e24b patch 9.0.1057: conflict between supercollider and scala filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
817 # with valid Scala like `val x : Int = 3`. So we instead only rely on
429bed14e24b patch 9.0.1057: conflict between supercollider and scala filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
818 # checks that can't be confused.
28443
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
819 export def FTsc()
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
820 for lnum in range(1, min([line("$"), 25]))
31449
429bed14e24b patch 9.0.1057: conflict between supercollider and scala filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
821 if getline(lnum) =~# 'var\s<\|classvar\s<\|\^this.*\||\w\+|\|+\s\w*\s{\|\*ar\s'
28443
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
822 setf supercollider
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
823 return
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
824 endif
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
825 endfor
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
826 setf scala
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
827 enddef
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
828
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
829 # This function checks the first line of file extension "scd" to resolve
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
830 # detection between scdoc and SuperCollider
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
831 export def FTscd()
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
832 if getline(1) =~# '\%^\S\+(\d[0-9A-Za-z]*)\%(\s\+\"[^"]*\"\%(\s\+\"[^"]*\"\)\=\)\=$'
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
833 setf scdoc
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
834 else
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
835 setf supercollider
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
836 endif
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
837 enddef
5896c0f6cdd7 patch 8.2.4746: supercollider filetype not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28390
diff changeset
838
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
839 # If the file has an extension of 't' and is in a directory 't' or 'xt' then
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
840 # it is almost certainly a Perl test file.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
841 # If the first line starts with '#' and contains 'perl' it's probably a Perl
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
842 # file.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
843 # (Slow test) If a file contains a 'use' statement then it is almost certainly
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
844 # a Perl file.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
845 export def FTperl(): number
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
846 var dirname = expand("%:p:h:t")
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
847 if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt')
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
848 setf perl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
849 return 1
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
850 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
851 if getline(1)[0] == '#' && getline(1) =~ 'perl'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
852 setf perl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
853 return 1
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
854 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
855 var save_cursor = getpos('.')
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
856 call cursor(1, 1)
27557
ce72087b601f patch 8.2.4305: tex filetype detection fails
Bram Moolenaar <Bram@vim.org>
parents: 27538
diff changeset
857 var has_use = search('^use\s\s*\k', 'c', 30) > 0
13051
a6d3e2081544 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12816
diff changeset
858 call setpos('.', save_cursor)
a6d3e2081544 Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12816
diff changeset
859 if has_use
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
860 setf perl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
861 return 1
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
862 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
863 return 0
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
864 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
865
29338
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
866 # LambdaProlog and Standard ML signature files
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
867 export def FTsig()
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
868 if exists("g:filetype_sig")
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
869 exe "setf " .. g:filetype_sig
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
870 return
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
871 endif
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
872
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
873 var lprolog_comment = '^\s*\%(/\*\|%\)'
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
874 var lprolog_keyword = '^\s*sig\s\+\a'
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
875 var sml_comment = '^\s*(\*'
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
876 var sml_keyword = '^\s*\%(signature\|structure\)\s\+\a'
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
877
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
878 var line = getline(nextnonblank(1))
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
879
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
880 if line =~ lprolog_comment || line =~# lprolog_keyword
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
881 setf lprolog
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
882 elseif line =~ sml_comment || line =~# sml_keyword
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
883 setf sml
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
884 endif
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
885 enddef
f4f531986753 patch 9.0.0012: signature files not detected properly
Bram Moolenaar <Bram@vim.org>
parents: 29326
diff changeset
886
30023
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
887 # This function checks the first 100 lines of files matching "*.sil" to
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
888 # resolve detection between Swift Intermediate Language and SILE.
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
889 export def FTsil()
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
890 for lnum in range(1, [line('$'), 100]->min())
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
891 var line: string = getline(lnum)
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
892 if line =~ '^\s*[\\%]'
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
893 setf sile
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
894 return
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
895 elseif line =~ '^\s*\S'
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
896 setf sil
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
897 return
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
898 endif
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
899 endfor
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
900 # no clue, default to "sil"
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
901 setf sil
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
902 enddef
87063bfe81cd patch 9.0.0349: filetype of *.sil files not well detected
Bram Moolenaar <Bram@vim.org>
parents: 29659
diff changeset
903
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
904 export def FTsys()
28445
7f0ec490d608 patch 8.2.4747: no filetype override for .sys files
Bram Moolenaar <Bram@vim.org>
parents: 28443
diff changeset
905 if exists("g:filetype_sys")
7f0ec490d608 patch 8.2.4747: no filetype override for .sys files
Bram Moolenaar <Bram@vim.org>
parents: 28443
diff changeset
906 exe "setf " .. g:filetype_sys
7f0ec490d608 patch 8.2.4747: no filetype override for .sys files
Bram Moolenaar <Bram@vim.org>
parents: 28443
diff changeset
907 elseif IsRapid()
28390
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
908 setf rapid
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
909 else
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
910 setf bat
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
911 endif
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
912 enddef
cc4d3ded4004 patch 8.2.0003: Build file dependencies are incomplete
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
913
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
914 # Choose context, plaintex, or tex (LaTeX) based on these rules:
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
915 # 1. Check the first line of the file for "%&<format>".
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
916 # 2. Check the first 1000 non-comment lines for LaTeX or ConTeXt keywords.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
917 # 3. Default to "plain" or to g:tex_flavor, can be set in user's vimrc.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
918 export def FTtex()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
919 var firstline = getline(1)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
920 var format: string
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
921 if firstline =~ '^%&\s*\a\+'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
922 format = tolower(matchstr(firstline, '\a\+'))
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
923 format = substitute(format, 'pdf', '', '')
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
924 if format == 'tex'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
925 format = 'latex'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
926 elseif format == 'plaintex'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
927 format = 'plain'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
928 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
929 elseif expand('%') =~ 'tex/context/.*/.*.tex'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
930 format = 'context'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
931 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
932 # Default value, may be changed later:
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
933 format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
934 # Save position, go to the top of the file, find first non-comment line.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
935 var save_cursor = getpos('.')
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
936 call cursor(1, 1)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
937 var firstNC = search('^\s*[^[:space:]%]', 'c', 1000)
27557
ce72087b601f patch 8.2.4305: tex filetype detection fails
Bram Moolenaar <Bram@vim.org>
parents: 27538
diff changeset
938 if firstNC > 0
ce72087b601f patch 8.2.4305: tex filetype detection fails
Bram Moolenaar <Bram@vim.org>
parents: 27538
diff changeset
939 # Check the next thousand lines for a LaTeX or ConTeXt keyword.
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
940 var lpat = 'documentclass\>\|usepackage\>\|begin{\|newcommand\>\|renewcommand\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
941 var cpat = 'start\a\+\|setup\a\+\|usemodule\|enablemode\|enableregime\|setvariables\|useencoding\|usesymbols\|stelle\a\+\|verwende\a\+\|stel\a\+\|gebruik\a\+\|usa\a\+\|imposta\a\+\|regle\a\+\|utilisemodule\>'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
942 var kwline = search('^\s*\\\%(' .. lpat .. '\)\|^\s*\\\(' .. cpat .. '\)',
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
943 'cnp', firstNC + 1000)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
944 if kwline == 1 # lpat matched
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
945 format = 'latex'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
946 elseif kwline == 2 # cpat matched
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
947 format = 'context'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
948 endif # If neither matched, keep default set above.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
949 # let lline = search('^\s*\\\%(' . lpat . '\)', 'cn', firstNC + 1000)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
950 # let cline = search('^\s*\\\%(' . cpat . '\)', 'cn', firstNC + 1000)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
951 # if cline > 0
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
952 # let format = 'context'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
953 # endif
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
954 # if lline > 0 && (cline == 0 || cline > lline)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
955 # let format = 'tex'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
956 # endif
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
957 endif # firstNC
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
958 call setpos('.', save_cursor)
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
959 endif # firstline =~ '^%&\s*\a\+'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
960
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
961 # Translation from formats to file types. TODO: add AMSTeX, RevTex, others?
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
962 if format == 'plain'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
963 setf plaintex
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
964 elseif format == 'context'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
965 setf context
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
966 else # probably LaTeX
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
967 setf tex
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
968 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
969 return
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
970 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
971
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
972 export def FTxml()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
973 var n = 1
16024
7fd3a9eaeedb patch 8.1.1017: off-by-one error in filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 15527
diff changeset
974 while n < 100 && n <= line("$")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
975 var line = getline(n)
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
976 # DocBook 4 or DocBook 5.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
977 var is_docbook4 = line =~ '<!DOCTYPE.*DocBook'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
978 var is_docbook5 = line =~ ' xmlns="http://docbook.org/ns/docbook"'
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
979 if is_docbook4 || is_docbook5
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
980 b:docbk_type = "xml"
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
981 if is_docbook5
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
982 b:docbk_ver = 5
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
983 else
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
984 b:docbk_ver = 4
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
985 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
986 setf docbk
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
987 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
988 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
989 if line =~ 'xmlns:xbl="http://www.mozilla.org/xbl"'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
990 setf xbl
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
991 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
992 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
993 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
994 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
995 setf xml
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
996 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
997
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
998 export def FTy()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
999 var n = 1
16024
7fd3a9eaeedb patch 8.1.1017: off-by-one error in filetype detection
Bram Moolenaar <Bram@vim.org>
parents: 15527
diff changeset
1000 while n < 100 && n <= line("$")
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1001 var line = getline(n)
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1002 if line =~ '^\s*%'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1003 setf yacc
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1004 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1005 endif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1006 if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1007 setf racc
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1008 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1009 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1010 n += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1011 endwhile
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1012 setf yacc
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1013 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1014
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1015 export def Redif()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1016 var lnum = 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1017 while lnum <= 5 && lnum < line('$')
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1018 if getline(lnum) =~ "^\ctemplate-type:"
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1019 setf redif
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1020 return
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1021 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1022 lnum += 1
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1023 endwhile
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1024 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1025
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1026 # This function is called for all files under */debian/patches/*, make sure not
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1027 # to non-dep3patch files, such as README and other text files.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1028 export def Dep3patch()
26628
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1029 if expand('%:t') ==# 'series'
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1030 return
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1031 endif
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1032
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1033 for ln in getline(1, 100)
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1034 if ln =~# '^\%(Description\|Subject\|Origin\|Bug\|Forwarded\|Author\|From\|Reviewed-by\|Acked-by\|Last-Updated\|Applied-Upstream\):'
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1035 setf dep3patch
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1036 return
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1037 elseif ln =~# '^---'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1038 # end of headers found. stop processing
26628
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1039 return
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1040 endif
7efd8f561d04 patch 8.2.3843: dep3patch files are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
1041 endfor
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1042 enddef
12816
218102da5226 patch 8.0.1285: occasional crash when using a channel
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1043
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1044 # This function checks the first 15 lines for appearance of 'FoamFile'
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1045 # and then 'object' in a following line.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1046 # In that case, it's probably an OpenFOAM file
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1047 export def FTfoam()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1048 var ffile = 0
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1049 var lnum = 1
27070
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1050 while lnum <= 15
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1051 if getline(lnum) =~# '^FoamFile'
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1052 ffile = 1
27070
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1053 elseif ffile == 1 && getline(lnum) =~# '^\s*object'
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1054 setf foam
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1055 return
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1056 endif
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1057 lnum += 1
27070
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1058 endwhile
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1059 enddef
27070
b353bd9faec8 patch 8.2.4064: foam files are not detected
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1060
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1061 # Determine if a *.tf file is TF mud client or terraform
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1062 export def FTtf()
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1063 var numberOfLines = line('$')
27420
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1064 for i in range(1, numberOfLines)
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1065 var currentLine = trim(getline(i))
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1066 var firstCharacter = currentLine[0]
27420
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1067 if firstCharacter !=? ";" && firstCharacter !=? "/" && firstCharacter !=? ""
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1068 setf terraform
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1069 return
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1070 endif
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1071 endfor
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1072 setf tf
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1073 enddef
27420
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1074
28483
62a0dd56466c patch 8.2.4766: KRL files using "deffct" not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28445
diff changeset
1075 var ft_krl_header = '\&\w+'
28351
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1076 # Determine if a *.src file is Kuka Robot Language
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1077 export def FTsrc()
28483
62a0dd56466c patch 8.2.4766: KRL files using "deffct" not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28445
diff changeset
1078 var ft_krl_def_or_deffct = '%(global\s+)?def%(fct)?>'
28351
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1079 if exists("g:filetype_src")
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1080 exe "setf " .. g:filetype_src
28483
62a0dd56466c patch 8.2.4766: KRL files using "deffct" not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28445
diff changeset
1081 elseif getline(nextnonblank(1)) =~? '\v^\s*%(' .. ft_krl_header .. '|' .. ft_krl_def_or_deffct .. ')'
28351
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1082 setf krl
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1083 endif
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1084 enddef
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1085
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1086 # Determine if a *.dat file is Kuka Robot Language
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1087 export def FTdat()
28483
62a0dd56466c patch 8.2.4766: KRL files using "deffct" not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28445
diff changeset
1088 var ft_krl_defdat = 'defdat>'
28351
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1089 if exists("g:filetype_dat")
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1090 exe "setf " .. g:filetype_dat
28483
62a0dd56466c patch 8.2.4766: KRL files using "deffct" not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28445
diff changeset
1091 elseif getline(nextnonblank(1)) =~? '\v^\s*%(' .. ft_krl_header .. '|' .. ft_krl_defdat .. ')'
28351
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1092 setf krl
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1093 endif
1aa3460f799d patch 8.2.4701: Kuka Robot Language files not recognized
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
1094 enddef
27420
978890380129 patch 8.2.4238: *.tf file could be fileytpe "tf" or "terraform"
Bram Moolenaar <Bram@vim.org>
parents: 27287
diff changeset
1095
30890
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1096 export def FTlsl()
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1097 if exists("g:filetype_lsl")
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1098 exe "setf " .. g:filetype_lsl
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1099 endif
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1100
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1101 var line = getline(nextnonblank(1))
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1102 if line =~ '^\s*%' || line =~# ':\s*trait\s*$'
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1103 setf larch
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1104 else
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1105 setf lsl
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1106 endif
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1107 enddef
ebcaf6bbb410 patch 9.0.0779: lsl and lm3 file extensions are not recognized
Bram Moolenaar <Bram@vim.org>
parents: 30873
diff changeset
1108
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27493
diff changeset
1109 # Uncomment this line to check for compilation errors early
27538
f37561549ec2 Update runtime files; use compiled functions
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
1110 # defcompile