comparison runtime/syntax/fortran.vim @ 7384:aea5ebf352c4

commit https://github.com/vim/vim/commit/256972a9849b5d575b62a6a71be5b6934b5b0e8b Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 29 19:10:25 2015 +0100 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Tue, 29 Dec 2015 19:15:06 +0100
parents 435956324539
children 88207f4b861a
comparison
equal deleted inserted replaced
7383:377a68b9fa06 7384:aea5ebf352c4
1 " Vim syntax file 1 " Vim syntax file
2 " Language: Fortran 2008 (and earlier versions: 2003, 95, 90, and 77) 2 " Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
3 " Version: 0.95 3 " Version: 0.96
4 " Last Change: 2015 Jan. 15 4 " Last Change: 2015 Nov. 30
5 " Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/> 5 " Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
6 " Usage: For instructions, do :help fortran-syntax from Vim 6 " Usage: For instructions, do :help fortran-syntax from Vim
7 " Credits: 7 " Credits:
8 " Version 0.1 was based on the fortran 77 syntax file by Mario Eusebio and 8 " Version 0.1 was based on the fortran 77 syntax file by Mario Eusebio and
9 " Preben Guldberg. Useful suggestions were made by: Andrej Panjkov, 9 " Preben Guldberg. Useful suggestions and contributions were made by: Andrej Panjkov,
10 " Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile, 10 " Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
11 " Walter Dieudonné, Alexander Wagner, Roman Bertle, Charles Rendleman, 11 " Walter Dieudonné, Alexander Wagner, Roman Bertle, Charles Rendleman,
12 " Andrew Griffiths, Joe Krahn, Hendrik Merx, and Matt Thompson. 12 " Andrew Griffiths, Joe Krahn, Hendrik Merx, and Matt Thompson.
13 13
14 if exists("b:current_syntax") 14 if exists("b:current_syntax")
17 17
18 let s:cpo_save = &cpo 18 let s:cpo_save = &cpo
19 set cpo&vim 19 set cpo&vim
20 20
21 " Choose fortran_dialect using the priority: 21 " Choose fortran_dialect using the priority:
22 " source file directive > buffer-local value > global value > default 22 " source file directive > buffer-local value > global value > file extension
23 " try using directive in first three lines of file 23 " first try using directive in first three lines of file
24 let b:fortran_retype = getline(1)." ".getline(2)." ".getline(3) 24 let b:fortran_retype = getline(1)." ".getline(2)." ".getline(3)
25 if b:fortran_retype =~? '\<fortran_dialect\s*=\s*F\>' 25 if b:fortran_retype =~? '\<fortran_dialect\s*=\s*F\>'
26 let b:fortran_dialect = "F" 26 let b:fortran_dialect = "F"
27 elseif b:fortran_retype =~? '\<fortran_dialect\s*=\s*f08\>' 27 elseif b:fortran_retype =~? '\<fortran_dialect\s*=\s*f08\>'
28 let b:fortran_dialect = "f08" 28 let b:fortran_dialect = "f08"
48 elseif exists("fortran_free_source") 48 elseif exists("fortran_free_source")
49 " User guarantees free source form for all fortran files 49 " User guarantees free source form for all fortran files
50 let b:fortran_fixed_source = 0 50 let b:fortran_fixed_source = 0
51 elseif exists("fortran_fixed_source") 51 elseif exists("fortran_fixed_source")
52 " User guarantees fixed source form for all fortran files 52 " User guarantees fixed source form for all fortran files
53 let b:fortran_fixed_source = 1
54 elseif expand("%:e") ==? "f\<90\|95\|03\|08\>"
55 " Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers
56 let b:fortran_fixed_source = 0
57 elseif expand("%:e") ==? "f\|f77\|for"
58 " Fixed-form file extension defaults
53 let b:fortran_fixed_source = 1 59 let b:fortran_fixed_source = 1
54 else 60 else
55 " Modern fortran still allows both free and fixed source form. 61 " Modern fortran still allows both free and fixed source form.
56 " Assume fixed source form unless signs of free source form 62 " Assume fixed source form unless signs of free source form
57 " are detected in the first five columns of the first s:lmax lines. 63 " are detected in the first five columns of the first s:lmax lines.
65 let b:fortran_fixed_source = 1 71 let b:fortran_fixed_source = 1
66 let s:ln=1 72 let s:ln=1
67 while s:ln <= s:lmax 73 while s:ln <= s:lmax
68 let s:test = strpart(getline(s:ln),0,5) 74 let s:test = strpart(getline(s:ln),0,5)
69 if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t' 75 if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
70 let b:fortran_fixed_source = 0 76 let b:fortran_fixed_source = 0
71 break 77 break
72 endif 78 endif
73 let s:ln = s:ln + 1 79 let s:ln = s:ln + 1
74 endwhile 80 endwhile
75 unlet! s:lmax s:ln s:test 81 unlet! s:lmax s:ln s:test
76 endif 82 endif