annotate runtime/indent/occam.vim @ 26668:f2579ccc97db v8.2.3863

patch 8.2.3863: various build flags accidentally enabled Commit: https://github.com/vim/vim/commit/8d95d7091da08d0a236be4a16616e3dda388e58d Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 20 22:12:53 2021 +0000 patch 8.2.3863: various build flags accidentally enabled Problem: Various build flags accidentally enabled. Solution: Revert several lines in Makefile.
author Bram Moolenaar <Bram@vim.org>
date Mon, 20 Dec 2021 23:15:03 +0100
parents 9c221ad9634a
children 6dd88e45d47d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim indent file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: occam
25880
9c221ad9634a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 11518
diff changeset
3 " Maintainer: Mario Schweigler <ms44@kent.ac.uk> (Invalid email address)
9c221ad9634a Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 11518
diff changeset
4 " Doug Kearns <dougkearns@gmail.com>
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " Last Change: 23 April 2003
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 " Only load this indent file when no other was loaded.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 if exists("b:did_indent")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 let b:did_indent = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 "{{{ Settings
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 " Set the occam indent function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 setlocal indentexpr=GetOccamIndent()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 " Indent after new line and after initial colon
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 setlocal indentkeys=o,O,0=:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 "}}}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 " Only define the function once
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 if exists("*GetOccamIndent")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 endif
3526
dd6c2497c997 Fix more 'cpo' issues in runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
24 let s:keepcpo= &cpo
dd6c2497c997 Fix more 'cpo' issues in runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
25 set cpo&vim
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 "{{{ Indent definitions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 " Define carriage return indent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 let s:FirstLevelIndent = '^\C\s*\(IF\|ALT\|PRI\s\+ALT\|PAR\|SEQ\|PRI\s\+PAR\|WHILE\|VALOF\|CLAIM\|FORKING\)\>\|\(--.*\)\@<!\(\<PROC\>\|??\|\<CASE\>\s*\(--.*\)\=\_$\)'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 let s:FirstLevelNonColonEndIndent = '^\C\s*PROTOCOL\>\|\(--.*\)\@<!\<\(\(CHAN\|DATA\)\s\+TYPE\|FUNCTION\)\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 let s:SecondLevelIndent = '^\C\s*\(IF\|ALT\|PRI\s\+ALT\)\>\|\(--.*\)\@<!?\s*\<CASE\>\s*\(--.*\)\=\_$'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 let s:SecondLevelNonColonEndIndent = '\(--.*\)\@<!\<\(CHAN\|DATA\)\s\+TYPE\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 " Define colon indent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 let s:ColonIndent = '\(--.*\)\@<!\<PROC\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 let s:ColonNonColonEndIndent = '^\C\s*PROTOCOL\>\|\(--.*\)\@<!\<\(\(CHAN\|DATA\)\s\+TYPE\|FUNCTION\)\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 let s:ColonEnd = '\(--.*\)\@<!:\s*\(--.*\)\=$'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 let s:ColonStart = '^\s*:\s*\(--.*\)\=$'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 " Define comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 let s:CommentLine = '^\s*--'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 "}}}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 "{{{ function GetOccamIndent()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 " Auxiliary function to get the correct indent for a line of occam code
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 function GetOccamIndent()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 " Ensure magic is on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 let save_magic = &magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 setlocal magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 " Get reference line number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 let linenum = prevnonblank(v:lnum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 while linenum > 0 && getline(linenum) =~ s:CommentLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 let linenum = prevnonblank(linenum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 " Get current indent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 let curindent = indent(linenum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 " Get current line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 let line = getline(linenum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 " Get previous line number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 let prevlinenum = prevnonblank(linenum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 while prevlinenum > 0 && getline(prevlinenum) =~ s:CommentLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 let prevlinenum = prevnonblank(prevlinenum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 " Get previous line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 let prevline = getline(prevlinenum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 " Colon indent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 if getline(v:lnum) =~ s:ColonStart
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 let found = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 while found < 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 if line =~ s:ColonStart
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 let found = found - 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 elseif line =~ s:ColonIndent || (line =~ s:ColonNonColonEndIndent && line !~ s:ColonEnd)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 let found = found + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 if found < 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 let linenum = prevnonblank(linenum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 if linenum > 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 let line = getline(linenum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 let found = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 if linenum > 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 let curindent = indent(linenum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 let colonline = getline(v:lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 let tabstr = ''
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 while strlen(tabstr) < &tabstop
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 let tabstr = ' ' . tabstr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 let colonline = substitute(colonline, '\t', tabstr, 'g')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 let curindent = match(colonline, ':')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 " Restore magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 if !save_magic|setlocal nomagic|endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 return curindent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 if getline(v:lnum) =~ '^\s*:'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 let colonline = getline(v:lnum)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 let tabstr = ''
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 while strlen(tabstr) < &tabstop
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 let tabstr = ' ' . tabstr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 let colonline = substitute(colonline, '\t', tabstr, 'g')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 let curindent = match(colonline, ':')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 " Restore magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 if !save_magic|setlocal nomagic|endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 return curindent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 " Carriage return indenat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 \ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 \ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
11518
63b0b7b79b25 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 3526
diff changeset
135 let curindent = curindent + shiftwidth()
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 " Restore magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 if !save_magic|setlocal nomagic|endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 return curindent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 " Commented line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 if getline(prevnonblank(v:lnum - 1)) =~ s:CommentLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 " Restore magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 if !save_magic|setlocal nomagic|endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 return indent(prevnonblank(v:lnum - 1))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 " Look for previous second level IF / ALT / PRI ALT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 let found = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 while !found
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156
11518
63b0b7b79b25 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 3526
diff changeset
157 if indent(prevlinenum) == curindent - shiftwidth()
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 let found = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 if !found
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 let prevlinenum = prevnonblank(prevlinenum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 while prevlinenum > 0 && getline(prevlinenum) =~ s:CommentLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 let prevlinenum = prevnonblank(prevlinenum - 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 if prevlinenum == 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 let found = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 if prevlinenum > 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 if getline(prevlinenum) =~ s:SecondLevelIndent
11518
63b0b7b79b25 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 3526
diff changeset
175 let curindent = curindent + shiftwidth()
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 " Restore magic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 if !save_magic|setlocal nomagic|endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 return curindent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 "}}}
3526
dd6c2497c997 Fix more 'cpo' issues in runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
186
dd6c2497c997 Fix more 'cpo' issues in runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
187 let &cpo = s:keepcpo
dd6c2497c997 Fix more 'cpo' issues in runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
188 unlet s:keepcpo