Make it possible to load Perl dynamically on Unix. (James Vega)
This commit is contained in:
@ -1,16 +1,16 @@
|
||||
" Vim syntax file
|
||||
" Language: Fortran95 (and Fortran90, Fortran77, F and elf90)
|
||||
" Version: 0.88
|
||||
" Version: 0.89
|
||||
" URL: http://www.unb.ca/chem/ajit/syntax/fortran.vim
|
||||
" Last Change: 2008 Nov 01
|
||||
" Last Change: 2010 July 21
|
||||
" Maintainer: Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
|
||||
" Usage: Do :help fortran-syntax from Vim
|
||||
" Usage: For instructions, do :help fortran-syntax from Vim
|
||||
" Credits:
|
||||
" Version 0.1 was based on the fortran 77 syntax file by Mario Eusebio and
|
||||
" Preben Guldberg. Useful suggestions were made by: Andrej Panjkov,
|
||||
" Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
|
||||
" Walter Dieudonn<6E>, Alexander Wagner, Roman Bertle, Charles Rendleman,
|
||||
" and Andrew Griffiths. For instructions on use, do :help fortran from vim
|
||||
" Andrew Griffiths, Joe Krahn, and Hendrik Merx.
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit if a syntax file is already loaded
|
||||
@ -74,7 +74,7 @@ if !exists("b:fortran_fixed_source")
|
||||
" Detection becomes more accurate and time-consuming if more lines
|
||||
" are checked. Increase the limit below if you keep lots of comments at
|
||||
" the very top of each file and you have a fast computer.
|
||||
let b:lmax = 250
|
||||
let b:lmax = 500
|
||||
if ( b:lmax > line("$") )
|
||||
let b:lmax = line("$")
|
||||
endif
|
||||
@ -82,7 +82,7 @@ if !exists("b:fortran_fixed_source")
|
||||
let b:ln=1
|
||||
while b:ln <= b:lmax
|
||||
let b:test = strpart(getline(b:ln),0,5)
|
||||
if b:test[0] !~ '[Cc*!#]' && b:test !~ '^ \+[!#]' && b:test =~ '[^ 0-9\t]'
|
||||
if b:test !~ '^[Cc*]' && b:test !~ '^ *[!#]' && b:test =~ '[^ 0-9\t]' && b:test !~ '^[ 0-9]*\t'
|
||||
let b:fortran_fixed_source = 0
|
||||
break
|
||||
endif
|
||||
@ -207,7 +207,8 @@ endif
|
||||
|
||||
syn keyword fortranTypeEx external
|
||||
syn keyword fortranIOEx format
|
||||
syn keyword fortranKeywordEx continue
|
||||
syn match fortranKeywordEx "\<continue\>"
|
||||
syn match fortranKeyword "^\s*\d\+\s\+continue\>"
|
||||
syn match fortranKeywordEx "\<go\s*to\>"
|
||||
syn region fortranStringEx start=+'+ end=+'+ contains=fortranContinueMark,fortranLeftMargin,fortranSerialNumber
|
||||
syn keyword fortran77IntrinsicEx dim lge lgt lle llt mod
|
||||
@ -290,6 +291,40 @@ if b:fortran_dialect == "f95" || b:fortran_dialect == "F"
|
||||
endif
|
||||
endif
|
||||
|
||||
if b:fortran_dialect == "f95"
|
||||
" F2003
|
||||
syn keyword fortran03Intrinsic command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of
|
||||
" ISO_C_binding
|
||||
syn keyword fortran03Constant c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab
|
||||
syn keyword fortran03Constant c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr
|
||||
syn keyword fortran03Intrinsic iso_c_binding c_loc c_funloc c_associated c_f_pointer c_f_procpointer
|
||||
syn keyword fortran03Type c_ptr c_funptr
|
||||
" ISO_Fortran_env
|
||||
syn keyword fortran03Constant iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit
|
||||
" IEEE_arithmetic
|
||||
syn keyword fortran03Intrinsic ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode
|
||||
|
||||
syn keyword fortran03ReadWrite flush wait
|
||||
syn keyword fortran03IO decimal round iomsg
|
||||
syn keyword fortran03Type asynchronous nopass non_overridable pass protected volatile abstract extends import
|
||||
syn keyword fortran03Type non_intrinsic value bind deferred generic final enumerator class
|
||||
syn match fortran03Type "\<associate\>"
|
||||
syn match fortran03Type "\<end\s*associate"
|
||||
syn match fortran03Type "\<enum\s*,\s*bind\s*(\s*c\s*)"
|
||||
syn match fortran03Type "\<end\s*enum"
|
||||
syn match fortran03Conditional "\<select\s*type"
|
||||
syn match fortran03Conditional "\<type\s*is\>"
|
||||
syn match fortran03UnitHeader "\<abstract\s*interface\>"
|
||||
syn match fortran03Operator "\([\|]\)"
|
||||
|
||||
" F2008
|
||||
syn keyword fortran08Intrinsic acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2
|
||||
syn keyword fortran08Intrinsic atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits
|
||||
syn keyword fortran08Intrinsic bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image
|
||||
syn keyword fortran08IO newunit
|
||||
syn keyword fortran08Type contiguous
|
||||
endif
|
||||
|
||||
syn cluster fortranCommentGroup contains=fortranTodo
|
||||
|
||||
if (b:fortran_fixed_source == 1)
|
||||
@ -324,9 +359,9 @@ syn match cInclude "^\s*#\s*include\>\s*["<]" contains=cIncluded
|
||||
if exists("fortran_fold") || exists("fortran_more_precise")
|
||||
syn sync fromstart
|
||||
elseif (b:fortran_fixed_source == 0)
|
||||
syn sync linecont "&" minlines=20
|
||||
syn sync linecont "&" minlines=30
|
||||
else
|
||||
syn sync minlines=20
|
||||
syn sync minlines=30
|
||||
endif
|
||||
|
||||
if version >= 600 && exists("fortran_fold")
|
||||
@ -336,15 +371,17 @@ if version >= 600 && exists("fortran_fold")
|
||||
syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
|
||||
syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
|
||||
syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
|
||||
syn region fortranBlockData transparent fold keepend start="\<block\s*data\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
else
|
||||
syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
|
||||
syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
|
||||
syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
|
||||
syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
|
||||
syn region fortranBlockData transparent fold keepend start="\<block\s*data\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
|
||||
endif
|
||||
|
||||
if exists("fortran_fold_conditionals")
|
||||
@ -390,26 +427,41 @@ if version >= 508 || !exists("did_fortran_syn_inits")
|
||||
" fortranMultiCommentLines
|
||||
HiLink fortranKeyword Keyword
|
||||
HiLink fortranConstructName Identifier
|
||||
HiLink fortran03Conditional fortranConditional
|
||||
HiLink fortranConditional Conditional
|
||||
HiLink fortranRepeat Repeat
|
||||
HiLink fortranTodo Todo
|
||||
HiLink fortranContinueMark Todo
|
||||
if (b:fortran_fixed_source == 1)
|
||||
HiLink fortranContinueMark Todo
|
||||
else
|
||||
HiLink fortranContinueMark Keyword
|
||||
endif
|
||||
HiLink fortranString String
|
||||
HiLink fortranNumber Number
|
||||
HiLink fortran03Operator fortranOperator
|
||||
HiLink fortranOperator Operator
|
||||
HiLink fortranBoolean Boolean
|
||||
HiLink fortranLabelError Error
|
||||
HiLink fortranObsolete Todo
|
||||
HiLink fortran03Type fortranType
|
||||
HiLink fortran08Type fortranType
|
||||
HiLink fortranType Type
|
||||
HiLink fortranStructure Type
|
||||
HiLink fortranStorageClass StorageClass
|
||||
HiLink fortranCall fortranUnitHeader
|
||||
HiLink fortranCall Function
|
||||
HiLink fortran03UnitHeader fortranUnitHeader
|
||||
HiLink fortranUnitHeader fortranPreCondit
|
||||
HiLink fortran03ReadWrite fortranReadWrite
|
||||
HiLink fortranReadWrite Keyword
|
||||
HiLink fortran03IO fortranIO
|
||||
HiLink fortran08IO fortranIO
|
||||
HiLink fortranIO Keyword
|
||||
HiLink fortran95Intrinsic fortran90Intrinsic
|
||||
HiLink fortran77Intrinsic fortran90Intrinsic
|
||||
HiLink fortran90Intrinsic Function
|
||||
HiLink fortran03Intrinsic Function
|
||||
HiLink fortran08Intrinsic Function
|
||||
HiLink fortran03Constant Function
|
||||
|
||||
if ( b:fortran_dialect == "elf" || b:fortran_dialect == "F" )
|
||||
HiLink fortranKeywordOb fortranObsolete
|
||||
|
||||
Reference in New Issue
Block a user