LabWindows/CVI Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
menchar

Implement a bunch of the Visual Studio 2008 editor features in the CVI editor ;-)

Seriously, NI should look over the newer Visual Studio IDE's as well as NetBeans for some good ideas ...

 

Here's a few:

 

1.  When using the F2 function to find a previously marked spot, you can't easily look for the next bookmark going backwards or restricitng the search to the current module.  You can in Viusal Studio.

2.  There's no clue offered for the extent of a block - other IDE's either backlight the match braces (VS 2008) or draw vertical lines showing the block extent (a popular VB add-in tool does this).

3.  Refine the search selection to be current module, current project, or current workspace ...

4.  Allow concurrent builds of multiple projects within a workspace - VS 2008 allows this, in fact, the default is to build everything in the current solution (solution = workspace).

5.  Allow toggled commenting of multiple lines of selected text, rather than the "exclude" option that won't let you save excluded lines without commenting them - then the IDE lets you comment them, but not until then.  Same thing with un-comment.

6.  Implement a lazy background re-compile that re-compiles as you type - saves you a jillion CTRL-K keystrokes to do it yourself.  Couple this with near real time notification of compile errors as you type.

7.  Fix the &*!)$@^ CVI linker to allow 16 byte alignment.

8.  Implement full C99 (MS hasn't done this though and apparently never will).

9.  Dim conditionally compiled source that isn't going to compile - nothing is more irritating to me when editing than forcing yourself to ignore conditionally compiled code that's not going to compile.  It's tricky to make this work right but it'd stil be worth a try.  VS 2008 kind of does this.

10. Provide a pull down menu of functions within a module - this is better than the CVI source browser which is a PITA to use - ti's no wonder to me that this is the most requested improvement so far.

11 Comments
vix
Active Participant
Active Participant

I'd like all these ideas except the #6.

I don't like the auto-compile feature at all, but this is a personal opinion.

Kudos!

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

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
menchar
Active Participant

Yup, background compile is kind of a mixed blessing.  It can be really annoying if it compiles too quickly and pesters you with syntax errors for incomplete statements that you're still entering.

 

On the other hand, I compulsively hit CTRL-K every few seconds or so to do the same thing, though I obviously don't foul myself up by checking incomplete statements, and the background compile would save me doing this.  The Visual Studio IDE's have been doing this for at least ten years, maybe more.

 

NI obviously doesn't have the resources of MS to implement a totally slick editor, but then, they did ask for our ideas 😉

 

Thanks for the kudos!

 

Menchar

jared
Member

Thanks for the good ideas. I wanted to comment on a few of them, as some of the features are already there, or at least there are some workarounds.

 

1.  When using the F2 function to find a previously marked spot, you can't easily look for the next bookmark going backwards or restricitng the search to the current module.  You can in Viusal Studio.

 

>>There is a 'Previous Tag' item in the View menu with the shortcut <Ctrl+F2>. Right below that, there is a submenu 'Tag Scope', which you can set to 'Window'. Isn't this what you want?

 

2.  There's no clue offered for the extent of a block - other IDE's either backlight the match braces (VS 2008) or draw vertical lines showing the block extent (a popular VB add-in tool does this).

 

>>There are a couple current workarounds to this. You could use 'Balance' from the Edit menu with the shortcut <Ctrl+B>. This selects the current block. You could also use the mouse cursor to hover over the collapsible regions column, which will hilite (in the collapsible region column) the block that the mouse cursor is over.

 

3.  Refine the search selection to be current module, current project, or current workspace ...

 

>>The 'Find' item in the Edit menu (with the shortcut <Ctrl+F>) brings up the Find dialog with the option 'Multiple files...' unchecked. This searches the current file. The 'Find in Files' (<Ctrl+Shift+F>) brings up the same dialog with the option 'Multiple files...' checked by default. Here you can choose to search all files of certain types in a particular directory, or choose specific files. Buttons to the right easily allow you to check files in the project, workspace, etc.

LuisG
NI Employee (retired)
Status changed to: Under Consideration
 
menchar
Active Participant

Reply to comments:

 

1.  Fair enough, hadn't realized you could restrict the scope of the tag search - by default it takes off and finds tags pretty much anywhere.

2.  True, but other IDE's provide this automatically - no need to do the CTRL-B thing.  I kindof like the greyed background on the innermost enclosing braces around the insertion point that VS 2008 does - don't get rid of the CTRL-B functionality, it's good, but it's nice to have a sortof lightweight auto CTRL-B that doesn't select everything in the block, it just gives you a visual cue as to the block scope for what you're editing.  There's a VB 3rd party add-on that goes so far as to draw faint dashed vertical lines that show you the block scope for all blocks greater than a user-set block size (in lines).  This really helps when dealing with nested blocks, especially when you're looking at poorly written code that's nested way too deep.

3.  OK, but how about simple selections for file/module/project/workspace so I don't have to hack the file selections.  You could have this set on top of your current implementation by having new code auto-check the multiple files based on project/workspace.

 

Some of the things I asked for aren't editor issues - 16 byte alignment, C99, etc.  I guess I got carried away.

 

Another thing I'd like is a CVI hookup with a good static analyzer - Klocwork is one - maybe since you're offering the Clang someone's got a static analyzer hooked up to it.  I like using the free SourceMonitor tool for a lightweight but useful look at some simple metrics.  One of the issues is that if you turn on strong error checking in the Intel compiler for example, it kicks out hordes of warnings on not-so-kosher stuff NI has done in header files, and a static analyzer's going to go nuts on these too.

 

One feature in NetBeans I REALLY like is the incremental history feature where you instantly can roll back to an editing checkpoint.  And the color-coded file source comparison tool you can use on the checkpointed source versions is really cool as well - when you see it work, you kindof slap your forehead and go "duh - why aren't all IDE's this way?".

 

 

 

 

menchar
Active Participant

And here's another thing VS does that's a fine idea.

 

You can right click on a variable name and select "refactor" from the context menu, and one of your options is to "rename" the variable - the IDE goes off and automagically renames the variable everywhere it should, since it knows the scope of the variable in quesiton.  Much more convenient than find and replace.

 

Coming back to CVI after using VS for the last 9 months, I REALLY miss the method finder pull down list - the CVI source code browser just doesn't provide the convenience - 90% of the time you're looking for the function/method, and having the pick list of method names in a handy control really works well.

Wolfgang
Trusted Enthusiast

the refactor/rename variable mentioned by menchar sounds really useful and it would be great to have it implemented!

menchar
Active Participant

Wie Geht's Wolfgang?

 

Yes, this renaming/refactoring feature in VS works pretty well - you don't have to find and review every instance of the variable.  But, I think VS is creating abstract syntax tree/compiling in the background all of the time so this type of info is readily available - I suspect CVI compiler's not as sophisticated.  Micro$oft has thousands of developers with nothing else to do so you see lots of elaboration in their tools.

 

Kind of hard to come back to CVI after getting used to VS 😉

ZVS
Member
Member

Paragraph 5 in initial post is quite important to me. I need to make multiline comments with // style since many lines keeps comments in /**/ style already. And this is routine job.

And yes, "Togle Exclusion" is quite different and almost useless for me.

40tude
NI Employee (retired)

I would add :

 

1 - Being able to copy/paste URL in the source code would be nice 

Later on, one we can click on the link and CVI IDE open the default browser

This really help for documentation and I love this feature in MSVC editor

 

2 - Edit in the source code editor any .txt file we have in the project. 

Currently CVI IDE invoke the default .txt editor (notepad most of the time)

 

Best regards, 40tude

Regards, Philippe proud to be using LabWindows since version 1.2
// --------------------------------------------------------------------------------------------