VS Code Modern Fortran v3.4.0 Pre-Release

This is a pre-release version in an attempt to test some of the features that will be added in v4.0. A lot of exciting features have been added. Please have a look at the release notes bellow

What’s New (PRE RELEASE)

:tada: Modern Fortran Release of v3.4 :tada:!

Run and Debug individual files

You can now run and debug individual files. This is useful for debugging small snippets of code. To do this, right-click on the file and select Run File or Debug File from the context menu.

LFortran Linter support

The LFortran linter is now available in the extension. It can be enabled by setting the fortran.linter.compiler setting to lfortran.

Log Channel improvements

The Modern Fortran log channel has had a small revamp.

Colourized Logs

Logs are now colorised to make reading them easier


Setting verbosity level

You can now choose the verbosity level of the extension by setting the following option in the settings

  "fortran.logging.level": "Error"

Improved Installation of dependencies using VS Code Tasks

The extension dependencies are now installed using Visual Studio Code’s Tasks. That means that the commands are run from within the VS Code terminal, inheriting any environment variables already present. Particularly useful when using Python virtual environments.

fypp linting support

Adds some initial support for fypp when using gfortran. More compilers will follow soon!


Improved linter diagnostics

Add support for parsing plain text diagnostics from gfortran v11+
thus allowing the display of multiline diagnostics

module err_mod
    implicit none   ! <- Error here previously not shown
        subroutine foo(arg1, arg2)
            integer, intent(in) :: arg1, arg2
            print*, 'arg1:', arg1, 'arg2:', arg2
        end subroutine foo
        subroutine proc_with_err()
            call foo()
        end subroutine proc_with_err
end module err_mod

Performance Improvements

Some additional performance improvements have been made to the extension.

Improved performance of the linter

Converted the linter into using asynchronous processes, which should improve the overall performance and responsiveness of the diagnostics.

Update native symbol provider

The native symbol provider (one used when fortls) is not present) has been updated
to use the new VS Code API.

Added options

Hide Release Notes

Hide release notes when the extension in being installed or updated.

"fortran.notifications.releaseNotes": true

Added Fortran Logo icon

Added a new icon for the Fortran Language files