Skip to content

Commit

Permalink
Merge pull request #68 from eirik-kjonstad/development
Browse files Browse the repository at this point in the history
Development into main for release 1.6.0
  • Loading branch information
eirik-kjonstad authored Jan 18, 2022
2 parents 5f3458a + 08ba32a commit ec2048d
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 3 deletions.
27 changes: 26 additions & 1 deletion modern-fortran.sublime-syntax
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ contexts:
- include: constants
- include: class-accessing
- include: io
- include: associate
- include: block
- include: function-call
- include: pointer-symbol
- include: match-end
Expand Down Expand Up @@ -648,7 +650,7 @@ contexts:
pop: true

match-end:
- match: \bend\b
- match: (?i)\bend\b
scope: keyword.control.fortran

match-variable:
Expand Down Expand Up @@ -683,3 +685,26 @@ contexts:
captures:
1: keyword.control.fortran
2: keyword.control.fortran

associate:
- match: (?i)\b(associate)
scope: keyword.control.fortran

block:
- match: (?i){{firstOnLine}}(\w+)\s*(\:)\s*(block)
captures:
1: entity.name.label.block.fortran
2: punctuation.separator.single-colon.fortran
3: keyword.control.fortran
- match: (?i){{firstOnLine}}\b(block)
scope: keyword.control.fortran
- match: (?i){{firstOnLine}}(end)\s+(block)
captures:
1: keyword.control.fortran
2: keyword.control.fortran
push:
- include: comment-pop
- include: newline-pop
- match: \b(\w+)
scope: entity.name.label.block.fortran
pop: true
34 changes: 32 additions & 2 deletions syntax_test_fortran.F90
Original file line number Diff line number Diff line change
Expand Up @@ -808,6 +808,8 @@ MODULE SUBROUTINE MY_SUBROUTINE(A, B, C)
K(I) = K(I) – M
!
END DO
! ^^^ keyword.control.fortran
! ^^ keyword.control.fortran
!
extraordinaryLoop: do i = 1, 5
! ^^^^^^^^^^^^^^^^^ entity.name.label.conditional.fortran
Expand Down Expand Up @@ -1070,5 +1072,33 @@ MODULE SUBROUTINE MY_SUBROUTINE(A, B, C)
!
integer, dimension
! ^^^^ storage.type.intrinsic.fortran


!
associate(tmp_arr => jkl%abc)
! ^^^^^^^^^ keyword.control.fortran
! ^ meta.parens.fortran punctuation.section.parens.begin.fortran
! ^^^^^^^ meta.parens.fortran variable.other.fortran
! ^^ meta.parens.fortran keyword.operator.points-to.fortran
! ^^^ meta.parens.fortran storage.type.class.fortran
! ^ meta.parens.fortran punctuation.accessor.fortran
! ^^^ meta.parens.fortran variable.other.fortran
! ^ meta.parens.fortran punctuation.section.parens.end.fortran
!
end associate
! ^^^ keyword.control.fortran
! ^^^^^^^^^ keyword.control.fortran
!
block
! ^^^^^ keyword.control.fortran
!
INNER: BLOCK
! ^^^^^ entity.name.label.block.fortran
! ^ punctuation.separator.single-colon.fortran
! ^^^^^ keyword.control.fortran
...
END BLOCK INNER ! here is a comment
! ^^^ keyword.control.fortran
! ^^^^^ keyword.control.fortran
! ^^^^^ entity.name.label.block.fortran
end block ! also a comment
! ^^^ keyword.control.fortran
! ^^^^^ keyword.control.fortran

0 comments on commit ec2048d

Please sign in to comment.