LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Use Visual Studio Code as editor for LabWindows/CVI projects

Does someone know if it's possible to use Microsoft Visual Studio Code (this is not the "old well-known" Visual Studio) as an editor for LabWindows/CVI projects?

 

Every CVI developer knows the the editor itself is really poor (compared to what is available).

 

I think NI could/should consider the idea to develop a plugin for this editor (someone in the past proposed to switch to Eclipse).

In this way NI can concentrate its efforts in developing analysis libraries and integrating "common" third parties libraries (web, JSON, OPC-UA, ...) relying over:

  • a standard compiler (LLVM/CLANG)
  • a standard and actively developed editor
Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
Message 1 of 9
(6,419 Views)

I would be very interested in making our own extension for VSCode for CVI. For compilation, it would need to utilize the command line.

 

How hard can it be? 😉

0 Kudos
Message 2 of 9
(2,122 Views)

Stay tuned everyone... 🤗

Message 3 of 9
(1,885 Views)

👀

I can't wait for news on this topic...

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 4 of 9
(1,867 Views)

I’m reviving this year-old post to make sure you know about this: LabWindows/CVI Project Manager 

I’ve been using it for a few days now as a complete replacement for the LabWindows IDE, and - aside from a couple of things I miss and a few minor bugs - there is simply no comparison


I haven't yet found a way to contact the author to provide feedback.

Carlo A.
Megaris srl
Italy

Message 5 of 9
(123 Views)

Thanks.

 

I'm not able to find any reference of the author nowhere.

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 6 of 9
(110 Views)

Hello, I did some serious stalking 😀 and I've finally found his github

https://github.com/monkeyAtheist/VScode_Ext_CVI 

 

Carlo A.
Megaris srl
Italy

0 Kudos
Message 7 of 9
(107 Views)

@carlox wrote:

Hello, I did some serious stalking 😀 and I've finally found his github

https://github.com/monkeyAtheist/VScode_Ext_CVI 

 


I simply generated Rust bindings from the CVI headers using bindgen, and now I’m using Rust as the main programming language. CVI’s documentation covers building a project with an external compiler, but nothing says that the compiler has to be C ultimately — the Rust works just as well. All calls from Rust into CVI functions are unsafe, of course, because they go through FFI, the parameters the same. AI can generate Rust code as long as you tell it that you already have CVI bindings available. I’m using GitHub Copilot for this, and it works well. To edit the *.uir panel files obviously I still use CVI, which I keep open side‑by‑side with JetBrains RustRover, my IDE. Bindgen runs on every build to ensure the control IDs are always up to date. The callbacks are handled through the .obj file using CVI’s external‑compiler support, and everything is linked together with the CVI libraries — and it works.

0 Kudos
Message 8 of 9
(49 Views)

@Andrey_Dmitriev wrote:


I simply generated Rust bindings from the CVI headers using bindgen, and now I’m using Rust as the main programming language. CVI’s documentation covers building a project with an external compiler, but nothing says that the compiler has to be C ultimately — the Rust works just as well. All calls from Rust into CVI functions are unsafe, of course, because they go through FFI, the parameters the same. AI can generate Rust code as long as you tell it that you already have CVI bindings available. I’m using GitHub Copilot for this, and it works well. To edit the *.uir panel files obviously I still use CVI, which I keep open side‑by‑side with JetBrains RustRover, my IDE. Bindgen runs on every build to ensure the control IDs are always up to date. The callbacks are handled through the .obj file using CVI’s external‑compiler support, and everything is linked together with the CVI libraries — and it works.


I don't know anything about Rust, so I can't judge how efficient it is to call C functions via bindings.
In any case, I suspect you'll run into hidden compatibility issues sooner or later. Of course, I hope that doesn't happen, but in my experience, such combinations are rarely trouble-free.

It certainly isn't the right choice for someone maintaining very large, existing projects—like mine—where the standard IDE is no longer viable because it's too limited, throws "out of memory" errors, disables code browsing, and crashes after a while, among other issues.

The VS Code solution, at least for me, is really just about using an IDE that is far more advanced when it comes to text editing.


Regardless, I'm glad there are people out there fighting the good fight and finding alternative paths 😀

Carlo A.
Megaris srl
Italy

0 Kudos
Message 9 of 9
(13 Views)