"The plugin"
|
Languages
/ | \
C/C++ Python Java
| | |
P&R E P&R E P&R E
--------------------------------
Common Parser | Common Refactor
--------------------------------
bool ExtractMethod(wxString[] codeblock);
I would like to know why you want to do a full-rewrite, instead of improving the already existing plugin :?.
I would like to know why you want to do a full-rewrite, instead of improving the already existing plugin :?.
Because there comes a point where the weaknesses of the design start to show through ;).
Honestly, although I initially created the codecompletion plugin, I don't feel like it has much potential in it yet...
Yes, Rick did a hell of a job with it during the last months. It will not be dropped, at least not any time soon ;)
Even if Arto comes up with a working plugin during the summer, we will have a choice between two plugins. Choice is A Good Thing (tm). Only when (and if) Arto's plugin proves its worthiness it will become our standard :) (I hope it will, though).
Anyway, there will be probably people in this forum that would like to help or at least to give useful advices/comments/critics.
------------------------------------
internal source code model
-----------------------------------------------------------------------------------
an interface for manipulations with internal model
-----------------------------------------------------------------------------------
/\ | | /\ /\ |
| | \/ | | \/
------ ------------------ ------------------- ----------
parser source code styler UML representation refactoring
------ ------------------- ------------------- plugin
| | -----------
| \/
-------------------------------
source code listing,
edit window or something similar
-------------------------------
May be caсhe can be implemented as a service. If cache implementation for c++ will provide all functionality needed for other languages, i can use cache service whitout integrating its source code in my language library.
In the original idea I was going to add some sort of meta block to the cache and every language could add some important data to it for further usage.That would certainly add some flexibility and ease-of-use to it -- but is it the best way to do it? I just know someone would come along and implement the entire language in the meta block, or do something else stupid with it.
The only thing you can do with the current level of information the code-completion provides is code complete. You need a full abstract syntax tree of a language to create good UML diagrams and do reliable refactoring. That AST will be at the very least langauge specific and even parser specific. The current code completion plugin is general enough for any language. Non OO languages can just have everything at global scope for now.
I don't think you can create a general AST that a UML/Refactoring program can rely on. The UML/Refactoring program is going to have to be dependent on the langauge module (parser and AST).
Like you said it will probably be possible to create a general thread safe cache system that can store any kind of data you want.
Maybe if I have the time I will whip a UML diagram, in the end there should definetly be one made before the codeing starts.
That would certainly add some flexibility and ease-of-use to it -- but is it the best way to do it? I just know someone would come along and implement the entire language in the meta block, or do something else stupid with it.
I think we shouldn't look too hard for common structure between languages when it isn't there. How, for instance, would you design a cache system that could store C++ abstract syntax trees, F77 structure models, CSS structures, and Bison grammars? I haven't tried, but there might end up being so many differences that the best common ground we find would be reading and writing some sort of "nodes" whose structures depend on the language.
In the end, I don't know exactly what I'm saying, except "do it right". The interfaces you design should be, if not simple, then hopefully intuitive.
I think it's time update this topic aswell so you know what's going on.
About three weeks ago I was in a car accident. It was a side collision so I hit my head to the side glass and my left arm got some pretty bad hit too. Later it was discovered that my back had taken some damage too.
I don't know how long it will take to recover so I won't be working with this plugin anymore. Sorry.
It's been great working with you and hopefully we will meet again someday.
Until then, goodbye. :(
Arto
Don't you see what's happenning, guys?
We just talk too much and nothing is going to be done.
Blah-blah-blah. People just come and go.
Sorry, but I am quite shocked by your post :shock:.
First of all, I find that the devs of Code::Blocks are doing a great work :D. Morevover, they work in their free time and they get not paid for it.
Second, I do not like to much to always ask for new features, bug fixes, and so on without trying to contribute to the project. Consequently, I try to help as I can in my free and not free time :D.
Third, it is true that code completion needs some improvments, but anyway, it is not so bad. Rickg22 did a good job with it :D. Arto has had an accident (I hope he will get well soon). If not I am sure he would have done a good job.
And also, help is welcome :D. May be you can help in developing the code completion or taking the work initially started by Arto :).
Best wishes,
Michael
But the difference between October's RC2 and the most recent one is quite small. I don't feel relief from version to version.Not sure whether or not to take that statement for serious... an ousider might be tempted to believe that you have never used a recent build. :)
Sorry, but I am quite shocked by your post :shock:.
That's alright. Sometimes it is very good for our health to be shoked (adrenaline, you know) :)
First of all, I find that the devs of Code::Blocks are doing a great work :D. Morevover, they work in their free time and they get not paid for it.
My big respect to all of devs. But the difference between October's RC2 and the most recent one is quite small. I don't feel relief from version to version. I don't care how much IDE is looking good, but I care the functionalities it offers. Wrong development accents?
Second, I do not like to much to always ask for new features, bug fixes, and so on without trying to contribute to the project. Consequently, I try to help as I can in my free and not free time :D.
Applauses. But I prefer to do things that I can do best. If I have no idea how refactoring or effective parcer work than I will not begin to do this because others already have some good ideas on this account. So, why to create doubts and chaos? Donation? :)
Third, it is true that code completion needs some improvments, but anyway, it is not so bad. Rickg22 did a good job with it :D. Arto has had an accident (I hope he will get well soon). If not I am sure he would have done a good job.
Aha. I always turn this plugin off because it slows down my programming but it's supposed to make programming faster! When I download a new version of Code::Blocks, in hope, the first thing I do is turning the code completion plugin on, testing it for a minute and than turning it off again. Know why, because it's not helping me but slowing down my work. I need it but I cannot work faster with the present version of the plugin.
And also, help is welcome :D. May be you can help in developing the code completion or taking the work initially started by Arto :).
I'm kind of a sound programmer :). Will multimedia save the world and relief the pain? :)
Best wishes,
Michael
Thank you, Michael, for your respond. I really like the way you've tried to protect development and to argue back to me, but...
All the best to you.
Ok, guys.
First, I'm sorry, guys, for my offensive words towards Arto. I'm really sorry. I didn't mean that.
Well, let's imagine my situation.
I've started using CB about a half year ago. I've created a project and been working on it. I update CB bona fide, time to time with the nightly builds. And continue working. An IDE for me is a kind of a tool that helps me to EDIT my source code, BUILD it and DEBUG it in a convenient way. Generally, it must help me to work. When I said that there was no difference between RC2 and the most recent build then I've ment that the new versions hadn't facilitate eighter my EDITing or BUILDing or DEBUGing processes. For me, CB has changed visually for me but its new features didn't reflect on my work. For instance, I use cups to drink and I really do not care how it looks like. The main thing, the cup lets me drink - it is its general usage (it does the work it's supposed to do) :). So, here it is.
Anyway, guys, I love what you are doing. And sure, you want to turn CB into something amazing.
All my strict words were said because I want CB become something amazing and I care it.
I've just been frightened of myself when I wanted to change the IDE I love (CB) to UPP... so, I've seethed up...
When I said that there was no difference between RC2 and the most recent build then I've ment that the new versions hadn't facilitate eighter my EDITing or BUILDing or DEBUGing processesAnd here is the proof, you have *obviously* never used the debugger :lol:
QuoteWhen I said that there was no difference between RC2 and the most recent build then I've ment that the new versions hadn't facilitate eighter my EDITing or BUILDing or DEBUGing processesAnd here is the proof, you have *obviously* never used the debugger :lol:
The debugger in RC2 was unusable, a pain at best. The present version is (although still work in progress) simply amazing.
Ok, guys.
First, I'm sorry, guys, for my offensive words towards Arto. I'm really sorry. I didn't mean that.
Well, let's imagine my situation.
I've started using CB about a half year ago. I've created a project and been working on it. I update CB bona fide, time to time with the nightly builds. And continue working. An IDE for me is a kind of a tool that helps me to EDIT my source code, BUILD it and DEBUG it in a convenient way. Generally, it must help me to work. When I said that there was no difference between RC2 and the most recent build then I've ment that the new versions hadn't facilitate eighter my EDITing or BUILDing or DEBUGing processes. For me, CB has changed visually for me but its new features didn't reflect on my work. For instance, I use cups to drink and I really do not care how it looks like. The main thing, the cup lets me drink - it is its general usage (it does the work it's supposed to do) :). So, here it is.
Anyway, guys, I love what you are doing. And sure, you want to turn CB into something amazing.
All my strict words were said because I want CB become something amazing and I care it.
I've just been frightened of myself when I wanted to change the IDE I love (CB) to UPP... so, I've seethed up...
I understand all the features you might want, but you must understand two things:
-C::B is under heavy development.
-Lack of human resources (time). All of this is being done by few people in spare time and in a free way.
What you can do from your position is: spread the word, so more developers can join the effort, report bugs, send patches, etc.
Particularly on CodeCompletion, right now, the only devs working (coding) on redesign it are TDragon and ddiego (in separate ways).
You might know that C++ parsing is hell, and so is CodeCompletion, along with threading, performance issues, etc.
It's not an easy topic.
Agreed (partially).
Takeshi Miya, look what only two men could create in a short time. Can you compare it to CB, please? (http://upp.sourceforge.net)
-TDragon's parser (current status unknown, but I think he's still developing it according a few mails with him).While I'm thinking about it, this seems an appropriate place for a quick update on that. :)
You mean, what about an incomplete structure that hasn't seen a release since 2004-08? :lol:
i really like it
i'll like it
i really like it
i really really like.
I'm feeling a lot better now and I had the courage to drive a car again (which I thought I would never do). [...]I'm glad you recovered well (I know what it's like after a car accident).
I'm feeling a lot better now and I had the courage to drive a car again (which I thought I would never do).
I also need to read at least one book about refactoring to get better idea of the whole process.