hbayraktaroglu / Guide_VSCode-fortran

A comprehensive guide on how to set up a complete development environment for Fortran in Visual Studio Code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Fortran is not well supported by a lot of IDEs. Microsoft Visual Studio has syntax highlighting but missing a lot of great features, when it comes to auto completion, signature help, find and peek references. Visual Studio Code in comparison has some great extensions and is running on MacOs, Linux and Windows.

This small Guide should help you to setup a full development environment for Fortran.

Visual Studio Code

Editor Rulers

If you are working with Fortran in the fixed-column format it is useful to setup rulers at the relevant columns. Add this to your settings.json:

"[FortranFixedForm]": {
    "editor.rulers": [
            {
                "column": 72,
                "color": "#E06C75"
            },
            {
                "column": 6,
                "color": "#E06C75"
            }
        ]
},

Cursive italics and Ligature

Some might like this and some wont: Using cursive italics and programming symbol ligatures.

code snippet

  1. Download the font 'Victor Mono' from here: https://github.com/rubjo/victor-mono or here https://rubjo.github.io/victor-mono/

  2. Activate font ligatures and select the font:

    "editor.fontLigatures": true,
    "editor.fontFamily": "Victor Mono, Consolas, 'Courier New', monospace",
  3. In the standard settings for fortran syntax highlighting nothing more then paramter are italic and therefore then cursive. You can customize this quite easy:

    "editor.tokenColorCustomizations": {
         "textMateRules": [
             {
                 "name": "comment",
                 "scope": [
                     "comment",
                     "constant.language.logical",
                     "keyword.logical",
                     "variable.parameter.dummy-variable.fortran.modern",
                     "string.quoted.single.fortran",
                     "string.quoted.double.fortran",
                     "support.function.intrinsic.fortran"
                 ],
                 "settings": {
                     "fontStyle": "italic"
                 }
             },
             {
                 "name": "comment",
                 "scope": [
                     "variable.parameter.fortran"
                 ],
                 "settings": {
                     "fontStyle": ""
                 }
             }
         ]
    }

    To find out the scope you can type in the command palette (ctrl + shift + p): Developer: Inspect Editor Tokens and Scopes and hover over your source code.

Visual Studio Code Extensions

There are some extensions that are very useful. Modern Fortran can be used for syntax highlighting and snippets. For features like Signature help or GoTo/Peek definition and much more FORTRAN IntelliSense should be installed. If you also want to debug, you have to download the extension Fortran Breakpoint Support.

Modern Fortran

Overview

Settings

Basic symbol functionality or hover information is also provided by Modern Fortran. Using Modern Fortran and FORTRAN IntelliSense simultaneously those should be deactivated in your settings.json:

"fortran.provideCompletion": false,
"fortran.provideSymbols": false,
"fortran.provideHover": false,

FORTRAN IntelliSense

Overview

This Extension needs fortls (not maintained original version: fortran-language-server) to operate because it is just an interface for the language server which can be used by different IDEs. It is written in python.

Requirements

  1. Install python
  2. Install pip
  3. Install fortls

Settings

To setup fortls a file named .fortls is needed in your workspace in Visual Studio Code. It is written in JSON. Example .fortls:

{
  "mod_dirs": [
    "src",
    "ins"
  ],
  "excl_paths": ["src/Debug", "src/Release"],
  "excl_suffixes": [".u2d", ".vfproj", ".sln", ".txt"],
  "lowercase_intrinsics": false,
  "debug_log": false
}

Fortran Breakpoint Support

  • Description:

Add breakpoint support for fortran [https://github.com/ekibun/FortranBreaker]

Build & Debug

In general you have to define a tasks.json for the build and link process and a launch.json to start to debug.

Also have a look at: https://code.visualstudio.com/docs/editor/debugging

Install compiler

  • Windows: gfortran via MinGW for example
  • Linux: sudo apt-get install gfortran, sudo pacman -S gcc-fortran
  • OSX:

Create launch.json:

{
  "version": "2.0.0",
  "configurations": [
    {
      "name": "Debug Fortran & build",
      "type": "cppdbg",
      "request": "launch",
      "targetArchitecture": "x86",
      "program": "${workspaceRoot}\\${fileBasenameNoExtension}.exe",
      "miDebuggerPath": "gdb.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceRoot}",
      "externalConsole": true,
      "preLaunchTask": "build_gfortran"
    }
  ]
}

Create tasks.json

The gfortran compiler should be accessible via the command line.

Create tasks.json:

{
  "version": "2.0.0",
  "_runner": "terminal",
  "tasks":[
    {
      "label": "build_gfortran",
      "type": "shell",
      "windows": {
        "command": "gfortran"
      },
      "linux": {
        "command": "gfortran"
      },
      "osx": {
        "command": "gfortran"
      },
      "args": [
        "-g",
        "${file}",
        "-o",
        "${workspaceRoot}\\${fileBasenameNoExtension}.exe"
      ]
    }
  ],
}

Debugging

Click on the debug symbol in Visual Studio Code, choose the debug configuration and press start.

About

A comprehensive guide on how to set up a complete development environment for Fortran in Visual Studio Code.


Languages

Language:Fortran 100.0%