Author Topic: Visual Assist instrumentor  (Read 9844 times)

Offline drac

  • Multiple posting newcomer
  • *
  • Posts: 27
Visual Assist instrumentor
« on: February 25, 2009, 07:46:24 pm »
Hi,

I've posted a suggestion on the Visual Assist forum, http://www.wholetomato.com/forum/topic.asp?TOPIC_ID=8570

It's just an idea, would others be interested in such a thing?

Cheers
« Last Edit: February 25, 2009, 08:43:26 pm by drac »

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Visual Assist instrumentor
« Reply #1 on: February 26, 2009, 02:55:39 am »
is it possible to craft Visual Assist on top of Code::Blocks for example?
Cheers
NO, I don't think so. Visual Assist is a commercial product. But CB is an open source product.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline drac

  • Multiple posting newcomer
  • *
  • Posts: 27
Re: Visual Assist instrumentor
« Reply #2 on: February 26, 2009, 08:24:31 am »
I am aware that Visual Assist is a commercial product and that Code::Blocks is a open source project.

I would gladly use Code::Blocks everywhere, but the truth is that its C++ parser capability cannot compare with Visual Assist's.
I have bought Visual Assist because of that, I use it every day at work and for private projects.

My point was that I would also use Code::Blocks with other C++ compilers.

Code::Blocks is GPL, if the Visual Assist integration would be made as a GPL plugin would it pass as legal?

Oh well, it was just an idea.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Visual Assist instrumentor
« Reply #3 on: February 26, 2009, 08:29:58 am »
Quote
Code::Blocks is GPL, if the Visual Assist integration would be made as a GPL plugin would it pass as legal?

I don't think that Visual assist will release a plugin for Code::Blocks at any license. :D

We should learn form "CTags" or other tools to refine CodeCompletion.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline drac

  • Multiple posting newcomer
  • *
  • Posts: 27
Re: Visual Assist instrumentor
« Reply #4 on: February 26, 2009, 11:03:14 am »
I don't think that Visual assist will release a plugin for Code::Blocks at any license. :D

No, the Visual Assist Instrumentor should be released as GPL. Visual Assist would remain closed source, the Instrumentor would
implement the Visual Studio 6 COM interfaces needed by Visual Assist, like list of files in the project, what's the code editing window
handle and stuff like that.

This would be available only on Windows and for those who have bought a Visual Assist license. This would increase
Code::Blocks visibility / popularity in business environments! You cannot import Visual Studio 2008 project files in Visual Studio 6,
but you might in Code::Blocks!  You cannot have SVN integration with Visual Studio 6 but you can with Code::Blocks!

I already have made a Visual Studio 6 keyboard layout for Code::Blocks, now I only need Visual Assist  :D

Code::Blocks needs something like this to exit the hobby market and to be recognized as a viable business solution. The pricing for Visual Assist can be found here, and with Code::Blocks it would make a cheaper
offer than SlickEdit. Not to mention that Code::Blocks has integration to CDB, which currently SlickEdit doesn't have.

You can easily deploy Debugging Tools for Windows (17Mbytes) with Code::Blocks (10Mbytes) on your client's machine, in order to debug a corner case, the same is not so easy with Visual Studio 6, 2002, 2003, 2005, 2008.

I don't think it's a shame of not having a good C++ CodeCompletion plugin, Microsoft was not able to do it for a decade, Visual Assist was, C++ is a difficult language to parse.

Think about it!

Cheers!
« Last Edit: February 26, 2009, 12:00:27 pm by drac »

Offline drac

  • Multiple posting newcomer
  • *
  • Posts: 27
Re: Visual Assist instrumentor
« Reply #5 on: February 26, 2009, 05:34:54 pm »
"VA works by hooking into the IDE in deep and difficult ways, so adapting it to work on some other IDE will be very difficult indeed."

That's bad news. I'm going to drop this idea, without their help it's difficult. Maybe one day they would have an API to their code
functionality.

Despite all of this, this is how I would have started:

1. Make proxy COM Interfaces by using CoGetTreatAsClass for the Visual Studio 6.  DirectShow Filter Graph SPY illustrates this method.

2. Route all the DLL imports from Visual Assist through proxy functions, by using Detours, this way all the custom Windows messages would be recorded.

This is painstaking work, it's not worth it.

It would have been nice though!

Cheers!