Mercurial > vim
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 |