Language server features in Simply Fortran IDE

Nice, out of curiosity does Simply Fortran have Language Server features, like autocompletion, hover messages, GoTo definition/references/implementation?

Simply Fortran doesn’t use a language server, but, yes, it does have context-specific autocompletion, goto definition, hover references, etc. using a custom engine. We don’t have listing references to a particular procedure/variable/type, though I’m not sure why not (since refactoring is supported…). I believe it is just because there isn’t a great way to display it in the UI.

1 Like

Thanks for giving me a quick overview of Simply Fortran. Seems like a nice tool. With regards to your debugger, I was wondering do you support MPI or OpenMP threads? Also, what about REPL in your debug windows could you for example call minval(array), would that work?

I am doing some work on VS Code’s Fortran debugger at the moment trying to make it more usable, add proper variable inspection and inline conditional breaking points, etc… Basically, I am trying to get ideas on how to implement these things, since I am not sure if GDB or LLDB are capable of performing such actions.

(For MPI I am sure it is not possible)

Simply Fortran just interfaces with the GNU Debugger behind the scenes. OpenMP is “supported” in the sense that the debugger itself supports threads, but nothing beyond that. We don’t support debugging across multiple processes simultaneously, so, no, it can’t be used on multiple MPI images (though it can attach to one image and you could start multiple instances of Simply Fortran to debug multiple images, I suppose… it would be ugly without a lot of screen real estate).

I think interfacing with multiple images would work with those debuggers, but I’m not sure what the best method would be. Starting multiple behind-the-scenes instances of GNU Debugger and having a management layer synchronize breakpoints, etc. between instances should be completely doable and not all that hard. That would allow MPI debugging.

I think we’re veering far from this thread’s topic, though…