[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
f90.el matching END statements
From: |
Salvatore Filippone |
Subject: |
f90.el matching END statements |
Date: |
Thu, 28 Nov 2019 11:39:21 +0000 |
Dear All,
I have recently run into an issue with f90.el, version 26.2
distributed with fedora 30.
The issue is with the autocompletion feature; Fortran 2008 has
introduced submodules; among the changes entailed by this, it is now
possible to have a piece of code like the following:
--------------------
interface
module subroutine foo(bar)
integer :: bar
end subroutine foo
end interface
---------------------
Now, if I hit TAB on the first "end" the autocompletion feature tries to insert
end module subroutine
which is wrong, whereas I would like to insert
end subroutine foo
I have found a fix for this. I changed file f90.el:1385-1386 from
-------------
((and (not (looking-at "module[ \t]*procedure\\_>"))
(looking-at "\\(module\\)[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>"))
--------------
to
--------------
((and (not (or
(looking-at "module[ \t]*procedure\\_>")
(looking-at "module[ \t]*subroutine\\_>")))
(looking-at "\\(module\\)[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>"))
---------------
and I got the desired behaviour.
It is quite possible that somebody on this list will have a better
solution, but this does the job.
Hope this helps
Salvatore Filippone
- f90.el matching END statements,
Salvatore Filippone <=