Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Assist++ future
Assist++ future [message #10914] Sat, 04 August 2007 15:06 Go to next message
Defre is currently offline  Defre
Messages: 1
Registered: August 2007
Location: France
Junior Member
Hi everybody, it's my first post.
First of all, thank you for U++, beautiful piece of software.

I have some interrogation about the future of Assist++:
- when will code completion be improved? (i have encountered some problem with pointer manipulations). More precisely, will preprocessing be included in the analysis?
- is refactoring a part of your plan?

I'm thinking of writing some C++ analysis tools, but nothing serious, just to learn. Concerning preprocessing, since a preprocessor output is generally composed of tens of thousand of lines, performance is an obvious problem. Some kind of "PCH" would be a solution...
Actually i'm just beginning the scanner, there is a long way to go.

Very truly,
Fred
Re: Assist++ future [message #10915 is a reply to message #10914] Sat, 04 August 2007 15:16 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Code completition: Currently in research phase of #include parsing. I guess you nailed the problem - speed is the trouble. But I believe that it can be solved.

Refactoring - not planned yet. Ask when preprocessing is finished.

BTW, current parser (in CodeBase) is quite a nice thing to play with too... See examples/CodeMetric.
Re: Assist++ future [message #10917 is a reply to message #10915] Sat, 04 August 2007 20:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
BTW, thinking about it, I guess it is worth considering to create some semi-automatic testing of Assist++ and to start collecting code that it does not parse properly....
Re: Assist++ future [message #10918 is a reply to message #10914] Sat, 04 August 2007 22:47 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 825
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor
Quote:

and to start collecting code that it does not parse properly....


I think I will provide plenty of those over time.. Wink

But it's not only about preprocessing, I have some more basic problems, like I don't have local variables parsed.

void TestLocalVariablesParsing( int variableone, int anothervariable, int thirdvariable )
{
//here write "vari" and hit Ctrl+Space .. nothing is suggested.
//here write "ano" and hit Ctrl+Space .. nothing is suggested.
String tempstring;
//here write "temps" and hit Ctrl+Space .. nothing is suggested.
}


It annoys me a lot personally, I'm used to IDEs which do parse local variables. (MSVS, VSlick).
Re: Assist++ future [message #10924 is a reply to message #10918] Sun, 05 August 2007 10:05 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
mr_ped wrote on Sat, 04 August 2007 16:47

Quote:

and to start collecting code that it does not parse properly....


I think I will provide plenty of those over time.. Wink

But it's not only about preprocessing, I have some more basic problems, like I don't have local variables parsed.

void TestLocalVariablesParsing( int variableone, int anothervariable, int thirdvariable )
{
//here write "vari" and hit Ctrl+Space .. nothing is suggested.
//here write "ano" and hit Ctrl+Space .. nothing is suggested.
String tempstring;
//here write "temps" and hit Ctrl+Space .. nothing is suggested.
}


It annoys me a lot personally, I'm used to IDEs which do parse local variables. (MSVS, VSlick).


I will check soon... but in fact, in this case, it perhaps is not parser bug, just problem in editor. You can easily check: type "tempstring."

Mirek
Re: Assist++ future [message #10926 is a reply to message #10914] Sun, 05 August 2007 12:57 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 825
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor
Quote:

You can easily check: type "tempstring."


Yes, it does offer the members of String class, so you are right, the parser is ok. I didn't think about the issue into the depth to distinguish it from editor problem.

(it still annoys me anyway Wink )

At least you can see you should think also in terms of what editor should provide out from parser, and if your test procedure should test also editor's ability to work with parser, or parser itself only.
Standard array not parsed [message #10927 is a reply to message #10917] Sun, 05 August 2007 13:29 Go to previous messageGo to next message
andrei-catalin is currently offline  andrei-catalin
Messages: 62
Registered: May 2006
Location: Romania
Member
Standard array is not parsed by Assist

//$-
int step[11]={0,1,2,5,10,20,50,100,200,500,1000}; //Whithout parser directives assist don't work
//$+

struct Foo
{
	void ShowStep(int n);
};

//test Alt+C/Ctrl+V
void Foo::ShowStep(int n)
{
	Cout()<<"Step["<<n<<"] = "<<step[n]<<"\n";
}


CONSOLE_APP_MAIN
{
	Cout()<<"Start"<<"\n";
	Foo foo;
	//test autocompletion
	foo.ShowStep(5);
}


Andrei
Re: Assist++ future [message #12166 is a reply to message #10914] Mon, 15 October 2007 01:29 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 825
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor
I have problem with Assist++ not showing member of S_A struct in this case:
class C_A {
public:
	struct S_A {	int x;	S_A() : x(1) {} };
};
class C_B : public C_A {
public:
	struct S_B : public S_A {	S_B() { x = 3; } };
};
C_B::S_B b;

CONSOLE_APP_MAIN
{
	UPP::Cout().Put( UPP::AsString(b.x) + "\r\n" );
//put "b." here, the "x" of S_A will be not shown
}


(P.S. the simple form without C_A and C_B encapsulation works OK, only this more complex case does not work)

[Updated on: Mon, 15 October 2007 01:30]

Report message to a moderator

Re: Assist++ future [message #12182 is a reply to message #10918] Mon, 15 October 2007 21:49 Go to previous messageGo to next message
zsolt is currently offline  zsolt
Messages: 697
Registered: December 2005
Location: Budapest, Hungary
Contributor
mr_ped wrote on Sat, 04 August 2007 22:47

Quote:

and to start collecting code that it does not parse properly....


I think I will provide plenty of those over time.. Wink

But it's not only about preprocessing, I have some more basic problems, like I don't have local variables parsed.

void TestLocalVariablesParsing( int variableone, int anothervariable, int thirdvariable )
{
//here write "vari" and hit Ctrl+Space .. nothing is suggested.
//here write "ano" and hit Ctrl+Space .. nothing is suggested.
String tempstring;
//here write "temps" and hit Ctrl+Space .. nothing is suggested.
}


It annoys me a lot personally, I'm used to IDEs which do parse local variables. (MSVS, VSlick).


Use Ctrl+, for local variables.
Re: Assist++ future [message #12183 is a reply to message #12182] Mon, 15 October 2007 22:56 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1366
Registered: November 2005
Location: Poland
Ultimate Contributor

zsolt wrote on Mon, 15 October 2007 15:49


Use Ctrl+, for local variables.

I'm using it too, but without any doubts ctrl+space should show them as well.
Re: Assist++ future [message #16977 is a reply to message #10914] Thu, 24 July 2008 10:24 Go to previous messageGo to next message
mr_ped is currently offline  mr_ped
Messages: 825
Registered: November 2005
Location: Czech Republic - Praha
Experienced Contributor
I got some idea today and I wonder if it makes sense.

What about search function cooperating with Assist++ parsed data, like you would enter "\assignment x" (eventually with whole word flag), and from source
void foo( int & x )
{
  int b = x * 10;
  x = b - x;
}

it would find only the line "x = " and ignore those x in function parameters and calculation.

Mirek, after parser refactoring, would you store some data similar to this, so you can tell whether some piece of source is assignment / usage / class definition / inheritance definition / etc..?
And if yes, does anyone think such extended search would be practical and good to use?
(*I* can imagine to use it rarely, so I would need easy way to see what options I can use (probably droplist after "\" character, because I would not remember all the options)
Re: Assist++ future [message #16978 is a reply to message #16977] Thu, 24 July 2008 12:19 Go to previous message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Wouldn't this be more easily implemented as an advanced condition text search? Something like regular expressions, only simpler to use?

I think implementing it in the parser would be very complicated (and it's complicated enough already Smile), a would presumably reduce scanning performace.

[Updated on: Thu, 24 July 2008 12:19]

Report message to a moderator

Previous Topic: U++ infrastructure server...
Next Topic: Decimal
Goto Forum:
  


Current Time: Wed Apr 24 00:12:23 CEST 2024

Total time taken to generate the page: 0.01985 seconds