[MVExtensions] Visual Studio Code Extension from mvExtensions group

254 views
Skip to first unread message

David Knight

unread,
Feb 15, 2023, 10:17:04 AM2/15/23
to Pick and MultiValue Databases
Hi,
I am trying to get VSCode and this extension to work on a system comprising:

Workstation running W10Pro 64 bit
Server with d3/win and MVSToolkit installed running W2019 server standard and d3/win v10.3.2

Following the instructions on github at https://github.com/mvextensions/mvbasic/blob/develop/doc/Extension%20Guide.md I downloaded and installed VSCODE on my workstation.

Added in the extension.

First attempt, I wanted to put the MVGateway on the server as others may want to access via their own VSCODE implementations; but when I couldn't get that to work and tried installing it on my workstation.

Continuing to follow the instructions, I created a workspace and edited the json parameter file to look like this:

{
  "folders": [
    {
      "uri": "RestFS:/",
      "name": "Account – D3"
    }
  ],
  "settings": {
    "MVBasic.RestPath": "http://localhost:9005/",
    "MVBasic.UseGateway": true,
    "MVBasic.GatewayType": "D3",
    "MVBasic.RemoteHost": "192.168.60.101",
    "MVBasic.UserName": "MVSP",
    "MVBasic.AccountPassword": "",
    "MVBasic.Account": "h3o.webservices",
    "MVBasic.gatewayDebug": true
  }
}

Which is the provided sample modified for username and account and IP address of the server relative to my workstation.

When I try to run the extension as per instructions I receive an error:

Capture.JPG

Nothing is logged in C:\temp

The MVGateway service is running.

It seems to me that VSCODE cannot even find the extension to initialise RestFS which suggests the extension did not install correctly.

I have Googled the issue which was not helpful. I have tried disabling and re-enabling the extensions to no avail.

What am I doing wrong? Are any of the authors on this forum who can help me work this all out?

Thank you.

David

Dick Thiot

unread,
Feb 15, 2023, 10:32:50 AM2/15/23
to mvd...@googlegroups.com
David,

What terminal emulator do you use?  Unfortunately, I believe that MVGateway isn't working with the later releases of the extension.  It is on the list to resolve.  I will see if we can't look into that this week.  You have a few other options.  If you use Accuterm, there is now direct support for VSCode similar to the support for WEB where you use the VSCODE command at TCL.  Option #2 is if your source code is in directory-type files you open the directory or file directly through the file system.  YOu will have to have access to a share on the server that will allow you access to the source files.  The final option is using SSH or FTP.  Someone else would have to give you more details on that option.

Dick Thiot

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms
---
You received this message because you are subscribed to the Google Groups "Pick and MultiValue Databases" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mvdbms+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mvdbms/d1006c61-4e6f-413b-b669-ed4080c3b029n%40googlegroups.com.

David Knight

unread,
Feb 15, 2023, 11:47:09 AM2/15/23
to Pick and MultiValue Databases
Hi Dick,
Thank you.

I am not using Accuterm and so that is not an option.

I should have been clearer, sorry. I am using the branch of the tool which says one can use MVGateway; thus is [if I understand things correctly] emulator agnostic.

That is, VSCODE 'talks' to the MVGateway service, presumably passing it parameters which in turn tell MVGATEWAY how and where to connect to d3 via MVSP?

MVSP server is running correctly on this d3 server as it was and is already executing correctly supporting Rocket's MVSToolkit.

My point is it seems to me VSCODE was not even getting that far: It cannot even find the Extension; which may be what you are saying because of a later release of VSCODE?

As for your suggested options, unfortunately none are available to me:

  1. Use Accuterm. No, not an option I'm afraid. The idea is simply to use VSCODE as a syntax checking code editor which is more 'familiar' to newer c#, java etc coders; AND hopefully find a way to use Github at the same time for revision control.
  2. d3 does not [easily] support directory type files especially for source code where the intent is to compile. Unidata and Universe both allow for the dictionary and data levels of a given file to be in different locations; but not [sadly] d3/win. I've not been successful in creating an entry in the dictionary of a d3 file located in the FSI [ie a 'real' d3 dictionary] which defines a data level which is held in the Windows filespace. Even if I did, I am guessing the VSCODE's ability to 'compile' would not work since we would be accessing the source directly to Windows file-space; just like any other file.
  3. I have no idea how to use SSH or FTP in respect of this problem.

About the only thing I can think of would be to utilize MVSToolkit as an end-point and custom-write our own interface to and from source code to VSCODE; but I am trying to avoid such kludges. Or figure out how MvExtension talks and get it to talk via MVSToolkit calls.

Directly pulling source from files via this extension certainly seemed to be the way to go; but unfortunately you are saying MVGateway requires updating? I appreciate this is Open Source supported software, for which I am grateful. What is the likely timeframe for a fix if at all?

Thank you!

David

Rafa Frias

unread,
Feb 15, 2023, 12:34:34 PM2/15/23
to Pick and MultiValue Databases
Hi David,
I also tried to use MVGateway with VSCode. When it didn't work I tried to access with SFTP Extension and use RocketMV Extension to the code.
It's not the perfect solution, but I can connect to the server and code with VSCode, although I must compile with the old SSH connection we have.

Rafa

Peter Schellenbach

unread,
Feb 15, 2023, 2:26:56 PM2/15/23
to Pick and MultiValue Databases
MVExtensions uses a REST API to access the file system. The API is public and documented in the github repo. Its a pretty simple CRUD API, with a few special functions to catalog / compile programs. If anyone wishes, they could implement the server-side of the API to interface with VSCode. A quick look at the product page for MVSToolkit says it can provide RESTfull services, so might not be a big task.
Thanks, Pete

Joe Goldthwaite

unread,
Feb 15, 2023, 2:31:16 PM2/15/23
to mvd...@googlegroups.com
Easy for you.  For me a "REST API" involves a soft bed and pillow.

------- Original Message -------

David Knight

unread,
Feb 16, 2023, 5:16:34 AM2/16/23
to Pick and MultiValue Databases
Hi Peter,
Thank you. I had a look, and maybe I get this confused; but I think this is all backwards.

Yes MVExtensions has an API for accessing mv data from what I read; and this is for an app which is 'downstream' [my terminology] from mv. Typically a website, or VSCODE.

In that respect, MVSToolkit is the same; and could be used if one wanted to use MVSTookit to create a series of API's to retrieve and update mv data. Therefore, in my mind it is the 'same' thing.

What is missing from all this is the ability for VSCODE to access mv data and various other functions; and thus an 'extension' was written by persons unknown which integrates with VSCODE and leverages MVExtensions' API.

Therefore, if I am to follow your reasoning, you are saying we could write our own extension to VSCODE to do what we want either via MVExtensions' existing API's or via freshly made API's created by MVSToolkit. Have I got that correct?

If so, I guess that is a possible solution; but my OP was that the existing extension to VSCODE which is supposed to use MVExtensions' API; does not work with VSCODE. It does not run. It already is the extension you suggest! It is just not working.

On the assumption it should, and if it did run correctly then it would work: it eliminates the need to learn how to create an extension for VSCODE. For me that is something I'd prefer not to do.

So, rather than

  • Learn how to write an extension for VSCODE, then
  • Roll my own using either MVExtension's API or build new ones via MVSToolkit [which would be my preference btw]

I am hoping this existing facility can be repaired?

Maybe that's a wish-too-far; and if so then we are back to writing our own via MVSToolkit, and dropping MVEXTENSION all together.

Or have I entirely misunderstood the tech-stack?

Cheers

David

Peter Schellenbach

unread,
Feb 16, 2023, 1:04:49 PM2/16/23
to Pick and MultiValue Databases
Hi David -

I suppose that when we developed the MVExtensions VSCode extension for MVBasic, we should have created it as two separate VSCode extensions: one for MVBasic language features, and one for MV file system access. The original extension was donated to MVExtensions by Grant Harte from the MV# project, and Grant had a gateway app that provided access to many flavors of MV. As development of the MVBasic extension proceeded we extended and refined the API used for MV file access, and the gateway has not kept current with those changes, which is why its not working now. The gateway is fully not open source so none of the MVExtensions group has any way to fix it.

VSCode has a file system extension API and MVBasic's RestFS is an extension which implements that API. MVBasic RestFS itself has a REST API which may be implemented by anyone wishing to provide file access from MV (or any file system actually) to VSCode. The RestFS API is documented here, and has functions to retrieve a directory (list of files & items), read a record (program item), write a record (program item), delete, create, rename, get status, execute command (compile or catalog), and call a subroutine. You might think of the MVBasic RestFS extension as an adapter that exposes VSCode file system API as a REST client. To complete the system you need a complementary REST server.

AccuTerm provides a connector that implements this API (the REST server), and sets up the VSCode plumbing so you can use the same syntax as the "ED" verb to invoke VSCode as the editor.

MVSToolkit allows you to call a BASIC subroutine to implement a web service (REST server), so there is no reason that it could not be used to provide an implementation for the MVBasic RestFS API. I have not used MVSToolkit, so I don't have any experience creating web services using this tool, but from the documentation I looked at, it should be possible. The actual functions are pretty simple. For example, to read a record (program), the subroutine would need to open the file (using the URL path to get the file name and item ID), read a record from the file, format the record contents as a JSON array, and return the result in the web service response.

Thanks, Pete

Doug Averch

unread,
Feb 16, 2023, 1:43:02 PM2/16/23
to Pick and MultiValue Databases
[ad] If you are looking at trying an editor that works for D3 you might try XLr8Editor. See https://u2logic.com/tools.html for more information.

Brian Speirs

unread,
Feb 16, 2023, 2:13:35 PM2/16/23
to Pick and MultiValue Databases
Hi Pete,

I think your response here raises more questions than it does answers ...

In general, while MV developers have many (unappreciated) skills, developing REST API's and navigating the plumbing of VS Code probably don't feature highly. And it shouldn't really be the responsibility of individual developers to provide this functionality (even if we regularly do such things). So, to me, the question that needs to be asked is: "Is Rocket going to get this functionality working? And if so, what is the time frame for this to happen?"

Another question is: If you now think that the extensions should have been (originally) written as two separate extensions, is it too late to re-engineer it this way?

BTW: I don't use VS Code [WED suits me much better], so this doesn't affect me. But if I did, then the AccuTerm connector works just fine (thanks, Pete).

Cheers,

Brian

Jim Idle

unread,
Feb 16, 2023, 6:46:13 PM2/16/23
to mvd...@googlegroups.com
I would really encourage everyone to keep their source code in directories and stored in VSS such as private GitHub repos (free). 

But, I’ve been saying the equivalent of this for decades.

Jim

Joseba Real de Asua

unread,
Feb 17, 2023, 3:29:34 AM2/17/23
to Pick and MultiValue Databases
Hi David: 

You can use the  MV Basic Linkar VS CODE extension. It has been working for more than 3 years and it is very easy to install and connect to any mv database, D3 included and in the D3 file system VME or FSI in Windows, you choose and in the VME in Linux. 
And it has more things than just use VS Code for MV Basic, create dictionaries from VS Code...
.But you need at least one linkar server licence ($62 Licence + $19 per year subscription, mandatory first year). Of course you can use all the Linkar features with the licence. With one licence you can easily connect more than 5 developers to use VS Code. 
And of course, we can give you a temporal licence so you can test all the  MV Basic Linkar VS CODE extension before purchasing and we of course can help you with the first installation. 
And it works in Linux, Windows and MacOS so you can choose the platform. 
Take a look to our blog:

David Knight

unread,
Feb 17, 2023, 9:44:33 AM2/17/23
to Pick and MultiValue Databases
What do you mean by VSS? Volume Shadow Copy Service? Or do you mean Virtual Storage Service?

I hate all these TLA's [Three Letter Acronyms]. Lol.

Dick Thiot

unread,
Feb 17, 2023, 9:53:35 AM2/17/23
to mvd...@googlegroups.com
Brian,

The OP was asking about the MVextensions VSCode extension for MultiValue, not the Rocket VSCode extension.  While your comments are valid for Rocket and their extension, Pete's comments were regarding the community-supported VSCode extension.  It is open source and was started prior to Rocket's purchase of Zumasys.  Zumasys committed personnel resources to the community process.  Pete was one of those people that knows a lot about the MVextensions version of the extension.  Everyone that has participated in developing and maintaining that version of the extension does so on their own time as volunteers.  I just wanted to clarify the difference.  

There are multiple VSCode extensions for MultiValue, the original one from ONgroup, the community-supported one from the MVextensions group, the one from Linkar, and the one from Rocket.  VSCode has become the de facto editor in the overall development community and has many other features built into that benefit MultiValue as well as simultaneous support for other languages and capabilities like Base64 encoding, making REST requests, etc.

Dick

Dick Thiot

unread,
Feb 17, 2023, 9:54:47 AM2/17/23
to mvd...@googlegroups.com
David,

I think that Jim was referring to a prior source code repository tool from Microsoft called Visual Source Safe or VSS.  His point is that we should all maintain our code in some sort of source code repository that tracks changes and gives the ability to roll back to prior versions.

Dick

MAV

unread,
Feb 17, 2023, 10:20:54 AM2/17/23
to Pick and MultiValue Databases
Hi

The MVBasic RestFS  API specification is very interesting. 

With QM, collections (json) and WEBSVC you can implement an API REST server that implements that specification.

Grettings,

Marcos Alonso Vega
INGESCO Sistemas Informáticos.

David Knight

unread,
Feb 17, 2023, 10:36:20 AM2/17/23
to Pick and MultiValue Databases
Hi Pete,
Maybe I'm too daft to 'get' all this;  but I am struggling to lineup the dominoes in what appears to me as an overly complicate set of 'things'.

To me the BROAD concept is simple:

I want VSCode [or even better: Visual Studio] to be used as a well-known, easily taught Integrated Development Environment that is uber-familiar to most 'modern' developers; because right now things mv scare the crap out of them because they want it to all work just like anything else: c#, java etc.

Therefore to me I want to be 'inside' VSCODE and do something like:

VSCODE <--> Source code entry ultimately stored in d3/win

That is, I can open, edit, save and compile but ALSO with:

  • Intellisense code correction as I type; and
  • Some kind of version control automatically via something like GITHUB

So when I read about all the parts you mention; I get totally lost. Conceptually I thought the elements were:

[VSCODE <--> MVBasic extension] <--> MVGateway service <--> [MVSP <--> d3/win]

That is, within VSCODE is an 'extension' which 'talks' to MVGateway service which understands 'how to' to talk to MVSP which is within d3. Such that within VSCODE I can 'see' and 'list' entries in d3, open one, change it, and save it back.

The MVBasic extension added into VSCODE provides the Intellisense ability so VSCODE 'understand' mv syntax.

If I've understood you correctly, MVGateway is broken and will not be fixed as source is not available/allowed or whatever. The reason is moot. The point is: ain't happening. So we move on.

But then I hear you and others speak of MVBasic's RESTFS and other 'bits' such as Accuterm [why do I need a terminal emulator? What has that got to do with VSCODE?]; and I just cannot get my head straight about the linear inter-connection of what plugs to what, why, and how.

I've used MVSTookit successfully to provide bi-directional data into and out of d3/win; which if I understand matters works like this:

[Outside system wanting something] <--> [Standalone custom d3 web-server which handles requests 'built' by MVSToolkit] <--> [MVSP <--> d3/win]

In that respect, I guess you mean something like:

[VSCODE <--> (some user-built extension)]  <--> [Standalone custom d3 web-server which handles requests 'built' by MVSToolkit] <--> [MVSP <--> d3/win]

Which if I am correct, requires:

  1. Some 'extension' to be built within VSCODE; and
  2. Appropriate REST services to be built by MVSToolkit to 'drive' or configure the services delivered by the  [Standalone custom d3 web-server which handles requests 'built' by MVSToolkit] part?
Now, I can probably do the second bit; but what is missing is the VSCODE extension part.

Is my analysis reasonable? How then, do the 'bits' you mention help with or form part of this schema?

Am I being too simplistic?

So, things like 'RestFS API'? Is that part of d3? Why would I need that, when it seems to me MVSToolkit does it? What does this have to do with VSCODE's filesystem API which RESTFS implements? How does everything line-up?

I'm feeling rather foolish not understanding the terminology; and so am looking for someone to explain it more simply.

As it stands right now, apart from tools like Linkar which may possibly be the solution; I am struggling to 'get it' and whether there actually is a solution which isn't held together with string and duct-tape!

And IMHO, this is one of the reasons why the latest batch of developers run a mile from the environment: It is all too hard, overly complicated when all they want is for it to work like other environments. Yet I KNOW, it is not this complicated.

David

David Knight

unread,
Feb 17, 2023, 10:43:35 AM2/17/23
to Pick and MultiValue Databases
Ahh, Thank you. Yes, that is something which is a goal of the current project.

I guess I want something within VSCODE [or even Visual Studio] which [somehow]:

  • Allows for 'checking out' of source from some source-control repository [Github?]
  • Pushes that into a 'dev' system within d3, compiling to ensure the code matches up.
  • Then has a syntax checking, Intellisense IDE coding tool which can:
    • Save changes to the d3 system, compiling for execution/testing via some browser or terminal emulator [as is the case]; AND
    • Automatically updates whatever source control system is attached the allow for version control, rollback, roll forward and so on.
It seems to me that the first step is simply to get VSCode to open and edit d3 code from a d3 system.

Cheers
David

David Knight

unread,
Feb 17, 2023, 10:47:48 AM2/17/23
to Pick and MultiValue Databases
I had a look, and it seems interesting.

Are you aware of any way to have VSCODE concurrently use a code versioning tool while updating d3? That is, the writes go in two directions:
  • One to d3 for compilation etc and then if successful compile
    • Update a 'sub-version' with changes tracked to a code versioning tool such as Github [I have no idea how to use github; I just notice everyone does!]
??

Dick Thiot

unread,
Feb 17, 2023, 12:12:21 PM2/17/23
to mvd...@googlegroups.com
David,

First, MVGateway might get updated to work with the newer versions of the MVextensions VSCode extension.  That is not out of the question and I will see if I can get the developer to spend a little time on that.  However, I don't know if that will include MVSP unless you are willing to be a tester.

Second, the Linkar solution could be a straight-forward solution for you to implement.  VSCode is FREE as are most of the extensions including the MVextensions MultiValue extension.  Linkar on the other hand has a commercial product and therefore paid for support.

Third, regarding Source Code repositories, is your source code currently locked in an environment that doesn't have a connection to any source code repositories?  It is usually a simple task to get your source code into a place where it can be pushed into a repository.  This usually involves the source code (text files) being moved or copied into a directory on a server where a script can act upon it to push it into a repo.  There are a large number of ways to do this, both Windows and Linux.  

You seem to want to expand your development environment to more modern tools and that is a really good thing so keep at it.  I hope that you are learning through this discussion!

Dick

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms
---
You received this message because you are subscribed to the Google Groups "Pick and MultiValue Databases" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mvdbms+un...@googlegroups.com.

Wol

unread,
Feb 17, 2023, 1:55:11 PM2/17/23
to mvd...@googlegroups.com
On 17/02/2023 14:54, Dick Thiot wrote:
> David,
>
> I think that Jim was referring to a prior source code repository tool
> from Microsoft called Visual Source Safe or VSS.  His point is that we
> should all maintain our code in some sort of source code repository that
> tracks changes and gives the ability to roll back to prior versions.
>
I've worked with Visual Source Safe and Universe / VB code. It wasn't
pleasant.

The problem is VSS isn't (or wasn't back then) a DVCS, and we were
forever tripping over each other.

Cheers,
Wol

Wol

unread,
Feb 17, 2023, 2:01:25 PM2/17/23
to mvd...@googlegroups.com
On 17/02/2023 15:36, David Knight wrote:
> Hi Pete,
> Maybe I'm too daft to 'get' all this;  but I am struggling to lineup the
> dominoes in what appears to me as an overly complicate set of 'things'.
>
> To me the BROAD concept is simple:
>
> I want VSCode [or even better: Visual Studio] to be used as a
> well-known, easily taught Integrated Development Environment that is
> uber-familiar to most 'modern' developers; because right now things mv
> scare the crap out of them because they want it to all work just like
> anything else: c#, java etc.


The problem from MY point of view, is that I am also struggling to line
up the dominoes in what appears to me as an overly complicated set of
"things". VSCode, REST, json, c#, Java ...

I've spent most of the last 18 months programming in Excel VBA with
database "connectivity" if I can call it that ... it's horrendous.

Cheers,
Wol

Peter Schellenbach

unread,
Feb 17, 2023, 2:02:13 PM2/17/23
to Pick and MultiValue Databases
Hi David -
Sorry to overcomplicate this. I was hoping to inspire others to explore the idea of creating the server side for file system access. You don't need to know anything about VSCode extensions or APIs. Simply installing the MVBasic extension is sufficient. There is a setting in MVBasic extension configuration for "Rest Path". This is just a URL, and the server (D3 with MVSToolkit) needs to listen at that URL for file system requests, as documented in the spec. The requests / response are simple JSON strings. Here's an example of a request to get a list of files in an account: GET http://localhost:3181/mvsvr/restfs/dir/MD/?max_items=250&attr=32976  . The response is an array of files and items. When VSCode receives the response it populates the file explorer with this info. If anyone is interested in working on alternative (non-AccuTerm) implementations, and would like help navigating the API spec, please open an issue on the github site where we can discuss details.
Thanks, Pete

tomma...@aircraftspruce.com

unread,
Feb 17, 2023, 2:13:28 PM2/17/23
to mvd...@googlegroups.com

I’m probably late to the party on this, but for what it’s worth, we’re leveraging OSFI in D3 for external access with php.  It supports full CRUD capability out of the box, and I use triggers to perform functions that OSFI does not support (like, EXECUTE and CALL)

 

Tom

joseba

unread,
Feb 17, 2023, 4:25:16 PM2/17/23
to Pick and MultiValue Databases
Only to clarify. Kosday participates in the MV Extension Group and actually the Linkar version is an extension of the mvextension group. The main difference is the way we use to connect to the database and we use Linkar Server for that like Zumasys used Accuterm for that. We also add more things to the extension as a way to create dictionaries from VS Code, generete equates from the dictionaries and some other features. And ALL the mvextension is opens source and free and you have all the source code at Github. Other thing is that you need at least one Linkar Server licence to connect to the database (only one licence and you can share it with multiple VS Codes in different OS...

joseba

unread,
Feb 17, 2023, 4:27:15 PM2/17/23
to Pick and MultiValue Databases
Yes, you can use Github with vscode so you will have a copy of the source code of the mv box at github. Of course you must learn to use Github and vscode. 

joseba

unread,
Feb 17, 2023, 4:34:02 PM2/17/23
to Pick and MultiValue Databases
Sorry to say it again but I want to clarify. The Linkar vscode extension is the mv group vscode extension with some add-ins and is totally free and open source. It is not a commercial version. But it needs a Linkar server to connect with the database exactly the same as the Accuterm mv group vs code extension. Accuterm is also a commercial product and the extension uses it to connect to the database.

KOSDAY SOLUTIONS

unread,
Feb 18, 2023, 3:41:38 AM2/18/23
to Pick and MultiValue Databases
David, our experience, in case it can help: We use VSCode to create and compile all BASIC programming on the different MV platforms and we also use Subversion as Source Control. The extensions we use in VSCode are MV BASIC LINKAR and SVN. We use Subversion for our convenience, we could use Git as well.

We basically program in OpenQM and the program files are "Directory" files in Windows, so Source Control becomes "easy".

Indeed, with D3 it is complicated to support a Source Control because the files to compile are not from the operating system. For this you have two solutions. Let's say your program file is called TEST.BP in D3. And we will create a file in your host operating system (Windows or Linux) also called TEST.BP:
  1. You create a trigger that runs on your D3 TEST.BP file. This trigger will copy or delete the record to the TEST.BP file on Windows or Linux. You can now plan a Source Control management with the external file.
  2.  If what you want to carry are only successful compilations, I would make a BASIC program that does this:
    1. Compile the program
    2. If there are no errors save the program in the external file. 
            From VSCode you will use this program instead of the traditional BASIC or COMPILE command. In the MV Basic Linkar extension you can customize which commands to use for compiling, cataloguing, etc. etc.

This approach is as valid if you use Linkar or Accuterm as a connector to the database. Both are open source in VSCode, but private in their connectors.

I don't know MVSTookit and you could also use it as a connector as they tell you, but I guarantee you that it is NOT EASY to make changes and adaptations in VSCODE extensions, even if you have the sources published in GitHub.

In favor of Linkar I will tell you that in addition to its very low price, you open yourself to another world of programming possibilities and connectivity with MV. But this is too much advertising, sorry.

This has been our daily routine for a few years now, thanks to modern tools that we MultiValue people also want to use.
I attach some images to support the above.

I hope this helps you find a solution that will be right for you.
Angel
Samples.pdf

Brian Speirs

unread,
Feb 18, 2023, 8:24:35 PM2/18/23
to Pick and MultiValue Databases
Hi Dick,

You are quite right - I was confusing the community MV extensions with the Rocket MVVS (MV Visual Studio) product.

Adding D3 to the MVVS product IS on the Rocket roadmap ... but the timeframe is "future" rather than being specifically on the roadmap for 2023 or 2024.

Cheers,

Brian

Francis gg

unread,
Feb 18, 2023, 10:39:40 PM2/18/23
to Pick and MultiValue Databases
I've already created a vs code extension that parses your source code as you type and reports errors and warnings with source code. The project is still in development though, and it only works for Open Insight. 

David Knight

unread,
Feb 21, 2023, 8:35:26 AM2/21/23
to Pick and MultiValue Databases
Hi Dick,
Thank you for your thoughts on this.

The situation is becoming clearer to me thanks to the efforts of many in this thread.

Here is my summary:

In practice the missing piece is [my term] 'middleware' which sits between any mv extension to VSCODE and d3. The term I used originally for 'MVEXTENSION' as found on github from the mvgroup comprised two parts, the syntax extension and a 'middleware' connector; which the current github held documentation implies works; but it does not. That is sad, and I hope someone will update the doc to reflect that and stop people wasting their time!

I appreciate someone may get around to fixing that 'middleware' but that is for now an unknown quantity and so another available 'middleware' component which plays nice with the mvextension added to VSCODE; and with d3 is required. It seems there are two available today; as you say: The one which comes with Accuterm; and the one which comes with Linkar.

Given Accuterm is now a Rocket product; one would have thought prising the Accuterm 'middleware' component out and making it available to quickly solve this MvExtension package issue should be a doddle; but I digress!

While I have not tested anything, the stuff I have been sent and seen in this thread looks mighty impressive for Linkar; and is something I think will work; and can be done 'now' for modest price, with what appears so far to be fantastic pre-sales support.

For anyone else looking at this thread later; there is an interesting example of how to best handle the combination of wanting VSCODE with Intellisense, and version control such as Github.

Perhaps when I get this going; I shall update further with my experience.

Cheers, one and all.

David

Brandon Robinson

unread,
Feb 27, 2023, 2:20:38 PM2/27/23
to Pick and MultiValue Databases
Hello Pete! We want to help look at this! Issue #183 opened on the GitHub site. 

I hope all is well!

tomma...@aircraftspruce.com

unread,
Feb 27, 2023, 2:25:59 PM2/27/23
to mvd...@googlegroups.com

I always found the MVSToolkit cumbersome, counter intuitive, and difficult to get to work right.

 

Instead, for our PHP environment, I put together osfi.class and picknfs.class to access the builtin network file sharing that D3 has had since version 7.

 

It can do full CRUD and using a trigger, I can also do call, execute, and other functions that I needed that could not be done easily in PHP but really only on the virtual machine.

It is socket based and for increased security, the server is only listening on localhost and I use a secure tunnel (stunnel) to encrypt it when accessing from another box.

 

I can share it on github if anyone is interested.  No warranties, expressed or implied, use at your own risk, but we find it works nicely.

 

Tom

 

 

From: mvd...@googlegroups.com <mvd...@googlegroups.com> On Behalf Of Brandon Robinson
Sent: Monday, February 27, 2023 11:04 AM
To: Pick and MultiValue Databases <mvd...@googlegroups.com>
Subject: Re: [mvdbms] [MVExtensions] Visual Studio Code Extension from mvExtensions group

 

Hello Pete! We want to help look at this! Issue #183 opened on the GitHub site. 

Nathan Rector

unread,
Feb 28, 2023, 9:24:33 AM2/28/23
to tommarracci via Pick and MultiValue Databases

Tom,

I would be interested in seeing you did here.  

-Nathan

To view this discussion on the web visit https://groups.google.com/d/msgid/mvdbms/030901d94ae1%2450ec49e0%24f2c4dda0%24%40aircraftspruce.com.
-- 
--------------------------------------------
Nathan Rector
International Spectrum, Inc
http://www.intl-spectrum.com
Phone: 720-259-1356

Dick Thiot

unread,
Feb 28, 2023, 9:26:19 AM2/28/23
to mvd...@googlegroups.com
Nathan,

Good to see you in the group!  You've been quiet lately and I for one have missed your smiling face!

Dick

tomma...@aircraftspruce.com

unread,
Feb 28, 2023, 11:23:56 AM2/28/23
to mvd...@googlegroups.com

Hi Nathan,

 

Sure. I’ll pack it up from my home machine and upload tonight. I’ll post a link to the project tomorrow.

 

Thanks for the interest.

tomma...@aircraftspruce.com

unread,
Feb 28, 2023, 6:37:41 PM2/28/23
to mvd...@googlegroups.com

Hi Nathan,

 

You can clone my OSFI interface for PHP from github with this URL:

 

https://github.com/tmarracci/osfi.git

 

Any feedback would be appreciated.

 

Thanks

Tom

 

 

From: mvd...@googlegroups.com <mvd...@googlegroups.com> On Behalf Of Nathan Rector


Sent: Tuesday, February 28, 2023 6:24 AM

Reply all
Reply to author
Forward
0 new messages