GSOC 2012
Henry Miller
hank at millerfarm.com
Fri Feb 17 02:34:24 UTC 2012
On Thursday 16 February 2012 12:14:24 Milian Wolff wrote:
>
> Please don't add your ideas there on your own. Present them here, after all
> only ideas for which we have a mentor should end up on this page.
>
I have two ideas that seem like they could be done (if someone can mentor, I
don't feel like I know the code well enough to do so, nor am I'm sure I'd have
the time).
Extract method refactoring for C++. I want to highlight a section of code,
select extract method, and have it turned into a new function (either class
private, or in an anonymous namespace are the normal case, but sometimes other
scopes are desirable). You need to pass in any local variables as parameters.
Ideally before it does this, it would allow me to select constants within the
code that could be passed in as well. Probably not possible, in GSOC, but the
ultimate ideal would be look through my class and find other functions that
have the same logic that can not call the new function. If there is time,
look at other IDEs and see what refactorings they offer and implement some of
them as well.
This is important to me, but I don't have the time to do it myself. We
choose qt creator at work mostly because kdevelop 4.2 parsing was so slow. If
kdevelop had a working extract method I could probably convince a lot of
people to switch. This is the one thing we miss most from visual studio
(actualy from visual assist - an add on to visual studio) when developing on
linux.
Second:
Before configuring CMake (other build systems optional), check to see what
compilers are on the system, and have a way to select each. On my personal
computer gcc is version 4.2, there is also gcc34, gcc46, gcc47 and clang.
Intel's compiler should be supported if possible too. Some systems have
cross compilers as well. (ice cream/distcc are a special cases to watch out
for - may want to handle them differently)
This could extend into some of what Steffen Ohrendorf suggested: a student who
knows Microsoft Windows and gets this far can figure out MinGC and msvc
without too much mentor help.
It would be also useful to finish this with support for more than one build
tree. In one project I work on I have 4 build trees: gcc debug, gcc release,
gcc release for atom, and clang (there are rumors I that ARM may be added to
the list latter. While kdevelop supports this, it isn't obvious how to make
it work, and switching is cumbersum. What I'd like is build debug with my
prefered compiler (probably clang for the error messages), and if that works
start background builds of the others. (the idea is when I'm ready to test my
code with a different target only the last change set needs to be built most
of the time - unless something is broke in one configuration: then I found out
fairly soon even when I'm in a different one)
More information about the KDevelop-devel
mailing list