Workspace with multiple folders and intellisense

Here you can discuss the universal Integrated Development Environment for OpenVMS.
Post Reply

Topic author
mcloud123
Visitor
Posts: 1
Joined: Thu Dec 07, 2023 6:47 am
Reputation: 0
Status: Offline

Workspace with multiple folders and intellisense

Post by mcloud123 » Thu Dec 07, 2023 7:09 am

Hello!

I have a VS Code workspace with several projects (folders) in it. Mainly Fortran code with some C code here and there.

VMS-IDE intellisense is working great when I use "Go to Definition"/"Peek definition" on a subroutine being called/a structure being used, as long as the subroutine/structure is defined in the very same file. But when subroutine/structure definition is in another file (in the same folder or another project folder) intellisense won't find the definition of such subroutine/structure.

¿Is this VMS-IDE intellisense feature not implemented yet, or might it be due to some error I made in configuring VMS-IDE or the workspace itself?

Thanks to anyone who can provide any feedback!


alister
Contributor
Posts: 16
Joined: Fri Sep 29, 2023 3:00 am
Reputation: 0
Status: Offline

Re: Workspace with multiple folders and intellisense

Post by alister » Fri Dec 08, 2023 7:20 pm

Hey mcloud123,

I am interested in the language server implementation as well - it's the previous thread - viewtopic.php?f=29&t=8912. In that thread i also have issues navigating symbols and wondered if i explicitly had to issue the command "reparse basic Project". I can't give you solid answers, but we might be able to muddle through it together if you're willing/able to understand some of the vms-ide source.

Bear with me....
https://code.visualstudio.com/api/langu ... s/overview - a great overview of vs code language extensions. Importantly it calls our declaritive and programmatic language features - jump to definition is in the latter.

So, i think you're after these features
https://code.visualstudio.com/api/refer ... onProvider
https://code.visualstudio.com/api/langu ... -in-folder

As a quick aside, to cement the difference in language features, and to know what your NOT looking for here is some of the vms-ide language server implementation - you can see it certainly has the declaritive features implemented - text mate grammars etc (i am interested in basic, already had those links so have used those)
https://github.com/vmssoftware/vms-ide/ ... ation.json
https://github.com/vmssoftware/vms-ide/ ... guage.json

So, here is your registerDefinitionProvider for Fortran
https://github.com/vmssoftware/vms-ide/ ... ider.ts#L4

So, i now have three questions. Firstly does vms-ide implement a full language server extension, as - i can find the above defintion provider, but i can't find some of the other configuration that is suggested it should go with the above definition provider. See https://code.visualstudio.com/api/langu ... e-features and the section where it says
"In the response to the initialize method, your language server needs to announce that it provides goto-definition locations."
Now that i've found it again, it seems that config is related to a language server. So, my guess is that it this doesn't implement a full language server, rather provides this functionality inside the in process extensions

Secondly, does it handle multiple documents, or folders or multi-root workspaces . Vs code calls out "When the user opens a multi-root workspace, you might need to adapt your Language Server extensions accordingly. This topic discusses multiple approaches to supporting multi-root workspaces" - see https://code.visualstudio.com/api/langu ... ce-support

https://github.com/microsoft/vscode/wik ... space-APIs

So, the final question is, Is a language server necessary to do multi document, multi-folder definition navigation ?

Now the vms-ide videos, lead you down the path of multiple folders, one folder = one project, and hence down the multi-root workspace path, so you would think this has been accounted for - but as a dev myself, with only so many hours in the day, and my impression that VSI might be spread pretty thin - maybe not
Last edited by alister on Fri Dec 08, 2023 7:43 pm, edited 1 time in total.

Post Reply