Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Auto-generation of launch.json and tasks.json #977

Open
1 task done
yuxuan-z19 opened this issue Aug 17, 2023 · 3 comments
Open
1 task done

feat: Auto-generation of launch.json and tasks.json #977

yuxuan-z19 opened this issue Aug 17, 2023 · 3 comments

Comments

@yuxuan-z19
Copy link

yuxuan-z19 commented Aug 17, 2023

Is there an existing request for this?

  • I have searched the existing issues

Feature Request

I'd like to request a feature "Fortran: gfortran build and debug active file", just like what the C/C++ extension does when someone debugs his .c or .cpp source code. Obviously we need tasks.json configured as well (to setup a preLaunchTask).

Here are my configurations:

// .vscode/launch.json
{
    "configurations": [
        {
            "name": "Fortran: gfortran build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "preLaunchTask": "Fortran: gfortran build active file", 
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
// .vscode/tasks.json
{
    "tasks": [
        {
            "type": "shell",
            "label": "Fortran: gfortran build active file",
            "command": "/usr/bin/gfortran",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger"
        }
    ],
    "version": "2.0.0"
}

I was wondering if there's a way to generate launch.json and tasks.json automatically with minor modification to this extension.

@fedebenelli
Copy link

fedebenelli commented Sep 19, 2023

While I agree that some automatic generation of tasks.json and launch.json files for debugging would be really nice.

I think that a more complete approach would be a command that generates a new fpm project at the current directory with something like fpm new --backfill and also the .vscode files with some setting similar to fortran-lang/fpm#479 (reply in thread)

@gnikit
Copy link
Member

gnikit commented Sep 19, 2023

While I agree that some automatic generation of tasks.json and launch.json files for debugging would be really nice.

I think that a more complete approach would be a command that generates a new fpm project at the current directory with something like fpm new --backfill and also the .vscode files with some setting similar to fortran-lang/fpm#479 (reply in thread)

This is a great idea @fedebenelli. FYI there are plans for making fpm fully integrated with VS Code similar to CMake, but we will probably save that for a GSoC project or a funding proposal, since the dev time required would be in the hundreds of hours.

@gnikit
Copy link
Member

gnikit commented Sep 19, 2023

@yuxuan-z19 No it is not currently possible. We rely 100% on the C++ extension so for me software-wise it makes sense not duplicating these file generation processes, since they will inevitably get outdated. I appreciate that this is not the most reasonable thing for a user though. Users just want to have these scripts ready.

Maybe there is a way (through some registered command) to call the C++ extension's task and launch generation scripts and then edit them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants