LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

In large-scale LabVIEW projects, performing a text search across the entire project hierarchy can take a significant amount of time to complete, especially when the codebase contains numerous VIs, libraries, and dependencies. Currently, the search results can be browsed(doble click and locate the search result in the code) only after the entire search operation has finished.

It would be highly beneficial if the search results could be browsed incrementally while the search is still in progress. In many practical cases, the desired result appears early in the search process. Allowing users to review and navigate through the partial results as they are discovered would enable them to quickly locate the needed item without waiting for the full search to complete. If the relevant result is found early, the user could simply stop the search operation, thereby saving valuable time and improving overall productivity when working with large LabVIEW codebases.

 

Sample.png

 

Please add your opinion.

 

Regards,

Adarsha Pakala

LabVIEW from 2006

CLA From 2014 

 

drag.gif

Dragging block diagram objects across structure boundaries preserves wiring correctly when tunnels are involved, but it fails when shift registers are used. It should be feasible to adjust this.

When I draw an case structure around existing code, it should be possible to choose the existing code to go to the false case.

 

E.g. holding ctrl down when selecting or drawing the case structure.

 

It is the last step I would like to save, by just pressing a key.

Optagelse 2026-03-13 132056.gif

Currently each error in terminal contains the following description: "<B>error in</B> can accept error information wired from VIs previously called. Use this information to decide if any functionality should be bypassed in the event of errors from other VIs. Right-click the <B>error in</B> control on the front panel and select <B>Explain Error</B> or <B>Explain Warning</B> from the shortcut menu for more information about the error." This occupies 367 characters (bytes).

 

Currently each error out terminal contains the following description: "<B>error out</B> passes error or warning information out of a VI to be used by other VIs. Right-click the <B>error out</B> indicator on the front panel and select <B>Explain Error</B> or <B>Explain Warning</B> from the shortcut menu for more information about the error." This occupies 271 characters (bytes).

 

This applies to terminals of all styles: Classic, Modern, Silver, Fuse Design System.

 

This adds a total of 638 characters (0.62 KB) to each and every VI that uses a pair of error in/out terminals, which is probably a majority of VIs in LabVIEW.

 

The descriptions appear in the Context Help window and can be useful to beginners. But this benefit is not worth 638 bytes of space in so many VIs. The contents of the descriptions should be mentioned in training material such as LabVIEW Core 1 or the LabVIEW Help.


This proposal is to remove (clear) the error in and error out descriptions, such that VIs are "slimmer" and codebases are smaller.

 

Combined.png

When working with classes and interfaces, I often use the right-click option on classes to navigate to their parent class.  I regularly find myself trying to do this with classes that inherit from interfaces too, but...this isn't made easy.  It'd be nice if there was a right-click menu option on classes to navigate to their parent interface(s):

 

Untitled.jpg

Replacing a cluster constant should not alter its 'View Cluster As Icon' setting.

 

Combined Image.png

 

The bug manifests itself regardless of the method used to replace the constant: via QuickDrop Ctrl + P tool or via right-click >> Replace menu.

For the "OS" and "CPU" symbols, the documentation states: "The VI must be in a LabVIEW project to access this symbol."

 

The documentation is correct and reflects the current behavior of LabVIEW. Instead, the condition should reflect the operating system where LabVIEW is running, like the "TARGET_BITNESS" and "TARGET_TYPE" symbols.

1.png

 

 

 

 

 

 

 

 

 

 

 

 

2.png

 

Idea: The "Text Color" and "Background Color" fields of LVTextColorsTypeDef.ctl should be replaced with a Color Box

 

This suggestion is very similar to the following idea, which was kindly implemented in LabVIEW 2025 Q1: The "Color" field of LvFontTypeDef.ctl should be replaced with a Color Box

 

It would be helpful if we could display a nice looking cluster array on the front panel with column titles. I mean something like a multicolumn listbox, but without having to extract data and from the cluster array to fill a multicolumn listbox for display. The cluster element names should be displayed only once, as column titles.

The Build status window should display the amount of time that has elapsed since the build started. The two screenshots below show a possible implementation.

1 (edited).png

 

2 (edited).png

The QuickDrop insert shortcut (Ctrl + I) is extremely useful already. The following enhancements would make it even more so.

Enhancement 1.png

 

 

Enhancement 2.png

 

 

 

Enhancement 3.png

The Rearrange Cases window (which appears when clicking the Rearrange Cases... menu item on Case Structures and Event Structures) would benefit from having "Move Up" and "Move Down" buttons, just like the "Edit Enum Items..." window.

 

Rearranging cases currently requires dragging and dropping. Using Move Up/Move Down buttons can be more precise and easier on the hand.

 

1 (edited).png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.png

Occasionally, we want to defer panel updates and most often it is just the current front panel. Unfortunately, the defer property node absolutely requires a wired reference to the panel.

altenbach_2-1770235627004.png

 

 

 

In the past it always took me quite a while with many dead ends to get it right. For example, one might try to do the obvious and "right-click...link to..Panel", but that does not work! I challenge anyone to get that panel reference in under 60 seconds starting with a generic property node from the palette. Just try! (Hint. After selecting the right class (VI Server...VI...VI), the drop down lists it as "Front Panel" and not "Panel".)

 

The idea would be to allow defer nodes without a wired panel reference and they would just act on the current front panel and not break the VI.

 

Note that the panel reference defaults to the current VI and does not require a reference, so why can't the defer node do the same?

 

(Note that we also have this old idea, which would simplify things...)

 

For pass-through values like errors, classes, visa sessions, etc. it's a hassle to insert a vi into existing wires.    It would be intuitive and very efficient if you could "pick up" the wire, hover over the vi terminals, and have the connections made automatically.

The window for selecting interface inheritance isn't resizable -- and is rather painful to use as a result since interface names from dependency libraries are almost always going to be long. Allowing this window to be resizable would be a simple way to make this more pleasant.

 

_carl_0-1771513150988.png

 

 

(Adding a search/filter option would also be great, along with just generally making all windows resizable, but that's a bigger ask, and has been requested elsewhere.) 

The Class Browser (Ctrl-Shift-B) is a little-known LabVIEW feature that makes it much easier to work with property-based class hierarchies in LabVIEW (VI Server, DAQmx, VISA, Sys Config, your own .lvclasses, etc.). The Class Browser search function is particularly helpful when you aren't exactly sure what property or method you need, or if it even exists. Unfortunately, the search results are often very difficult to navigate, as in this example:

Darren_0-1767913475591.png


I was looking for a property or method relating to locking controls on the front panel, so I searched for "lock". Over 1000 results were returned. But the results include a tremendous number of duplicates. If there is a property of a parent class (like the Is On Block Diagram? property of the Generic class in the screenshot above), then that property will be duplicated for all child classes of that parent class... in this case, there are hundreds of children of the Generic class! It took me a few minutes just to scroll through all these duplicate results to finally find what I was looking for (the "Lock Objects" method of the Pane class).

Idea: Only show the parent class property/method in the search results of the Class Browser window. Do not show child class entries for that same property/method.

In the example above, if duplicates had been removed, then my "lock" search would have returned 49 results, which is a much more reasonably sized list of results to dig through.

Option to automatically generate Set or Maps on the outpout tunnel of a loop would be nice.

 

setmap.jpg

Sometimes I want to have global static constants which I can read in multiple different places and update in only one.

 

I either have to do this in some clunky fashion with an in-lined VI that just has a constant on the block diagram which gets wired out, or I use a global variable with default values set and just never write to it.

 

The global variable option is a way cleaner implementation but has the disadvantage that there isn't technically anything preventing it from being written I just have to rely on/promise that I (or anyone else) won't write it.

 

I would be awesome if there was a property which could be set on a global which allowed it to only function in the read direction.