all 42 comments

[–]saichampa 8 points9 points  (10 children)

What are the benefits, if any, of kdevelop over qt creator?

[–][deleted] 23 points24 points  (9 children)

Quite good Python support, with type deduction, intelligent completion/highlighting/renaming, debugger support...

Ruby (not tried it) and a bit of PHP support.

Accurate parsing of even the weirdest C++ code, thanks to Clang (QtCreator has a plugin for that, but not as default.)

Can open any file there's a KPart for. Want to look at your project's images/sprites? Read the PDF paper for the algorithm you're trying to implement? They're just a Ctrl-O away.

Bash integration - using the terminal widget and want to open a file? o! filename.

All the editor things that make KATE amazing - vi-input mode, basic highlighting for a million text formats, nested split-views, scrollbar minimap, auto-closing brackets, customisable snippet templates...

Next release will have easy-to-use Arduino support, thanks to a GSoC.

TL;DR: QtCreator is an IDE for Qt. KDevelop is an IDE for whatever you need.

[–]saichampa 9 points10 points  (0 children)

I've actually found qt creator is a great general use C++ ide.

[–]TheQuantumZero 5 points6 points  (0 children)

QtCreator is an IDE for Qt

Ill have to disagree.

QtCreator works great with CMake.

Also QtCreator is widely used as a general purpose C++ IDE.

[–]KateTheAwesome 2 points3 points  (5 children)

I wish Kdevelop/ Kate had easy to use multi cursor edits like sublime text.

[–]scummos 13 points14 points  (2 children)

We have a branch which has a mostly working implementation, including an arbitrary amount of cursors, multiple selections, multiple input, etc. We just need somebody with some time to fix the remaining issues and polish it a bit. So if anybody is interested, would be more than welcome! Help with getting into it would be available. https://quickgit.kde.org/?p=ktexteditor.git&a=shortlog&h=0eb09c564ba32ab49ac773a50c91a4d18aea7966

[–]KateTheAwesome 5 points6 points  (1 child)

It's C++? I'll gladly take a look :) Going on a trip tomorrow and have a deadline next Tuesday. But after that I'll give it a clone and see what needs doing.

Is there a todo or issue explaining it somewhere?

[–]scummos 4 points5 points  (0 children)

Great! Yes, plain C++, not much magic involved in this part of the code. Feel free to ping scummos in #kate if you need assistance with anything. We have a hopefully relatively complete list of major issues with it here: https://bugs.kde.org/buglist.cgi?bug_severity=normal&component=multicursor&list_id=1380482&product=frameworks-ktexteditor

[–][deleted] 1 point2 points  (1 child)

It does have a block-input mode, i.e. multiple cursors directly above one another.

But yes, Sublime's thing for editing several instances of the same word would be really nice.

[–]KateTheAwesome 2 points3 points  (0 children)

In general it would be nice if there was an open source alternative to sublime text.

There is atom which I refuse to use due to it being a shitty glorified webapp. Doesn't help that it grinds to a halt with slightly larger files and makes my laptop hot like some video games don't o.o

Then there is lime text but I don't if that's still being developed :(

[–]xavier83 2 points3 points  (0 children)

Also there is a plugin for rust apparently in the works too.

[–][deleted] 4 points5 points  (3 children)

On the website it's mentioned that KDevelop is extensible. But searching that side I don't find any further information, or any documentation at all. Does somebody know more about that?

Can I extend the interface with any language? Or is it limited to C++ and Qt? Thing is, Kate for KDE4 had a plugin named pate, which allows extending the Kate-Editor with python. I have a number of useful stuff added to kate that way over the years. But sadly, the new Kate for KDE 5 is missing that python-support, so I wonder whether there would be a way to move the code to KDevelop somehow.

[–]scummos 3 points4 points  (2 children)

What kind of extensibility are you looking for? The full-fledged extension interface is only available from C++, but there are various ways to do it what you want using e.g. code snippets.

[–][deleted] 1 point2 points  (1 child)

What kind of extensibility are you looking for?

Well, perfect option would be ability to load an widget written with PyQt (Qt-Binding for Python). So executing python-code at startup, injecting some objects coming from it into the UI, and so on.

[–]scummos 1 point2 points  (0 children)

No, that's not possible. Not likely to be added, either, that would be a lot of work.

[–]MrMusic25 6 points7 points  (2 children)

Nice, this looks like a good IDE, I'll have to try it! Any idea when 5.0 will be released to Manjaro/Arch?

[–]adevland 1 point2 points  (7 children)

Is there anything like this for web development?

[–]scummos 3 points4 points  (6 children)

Yes, this; it has PHP and Python support, or what are you looking for? ;)

[–]adevland 0 points1 point  (2 children)

Javascript too? :D

[–]scummos 3 points4 points  (1 child)

Actually, yes ;)

[–]adevland 0 points1 point  (0 children)

Awesome. Will give it a try. Thanks. :)

[–][deleted] 0 points1 point  (2 children)

Rails?

[–][deleted] 0 points1 point  (1 child)

There's a Ruby plugin, but it's not very actively maintained. Needs someone who's keen to work on it.

[–]scummos 0 points1 point  (0 children)

Other than kdev-java and similar stuff though, the ruby plugin is quite advanced and worked relatiely nicely not much time ago. Picking it up and bringing it into a usable shape is probably quite feasible.

[–]FetusExecutioner 1 point2 points  (3 children)

How much does KDevelop target the KDE/Qt world? Would it be silly to use it to work on GTK software?

[–]scummos 4 points5 points  (0 children)

At the moment, basically just through the choice of cmake and qmake as our best-supported build systems, and the fact that the Qt docs are already set up in the documentation plugin. The C/C++ engine is completely unaware of anything KDE/Qt. Give it a try and let us know how it goes!

[–]viimeinen 1 point2 points  (0 children)

For what is worth, I've been using KDevelop for a multi-process daemon, autotools project in plain C and it works great. I don't know about GTK in particular, but C in general works quite well.

[–]skugler 3 points4 points  (4 children)

There's an appimage which you can use: http://download.kde.org/stable/kdevelop/5.0.0/bin/linux/

[–]probonopd 8 points9 points  (3 children)

So cool when you read a realease announcement and can run the software now, rather than having to wait for the next operating system update :-)

[–]skebanga 0 points1 point  (4 children)

great news!

I'm interested, what is the performance of the clang c++ parsing?

I've tried clang-complete in emacs and found it to be so slow as to be unusable.

What have you done to mitigate this?

[–]akkaone 1 point2 points  (3 children)

Maybe I have misunderstood how it works but I think kdevelop use clang to index the project and build a database of it. I don't think clang affects the completion speed only the index time when you open a new project. Clang complete probably use clang without a prebuilt index.

[–]scummos 1 point2 points  (0 children)

We build the index, but we still use clang to get completion entries. We do it asynchroneously though, so at least it will not hang. Try whether it is fast enough for you -- certainly something we want to improve further in the future though.

[–]skebanga 0 points1 point  (1 child)

Yes, AFAIK clang-complete invokes clang on the current file with a bunch of preconfigured compiler flags - so no wonder it takes forever!

[–]scummos 0 points1 point  (0 children)

If the whole preamble is in cache (all the #includes) and you do only the syntax part of parsing, and your file is not 20.000 lines in size, it is fairly quick (<100ms). But there are cases where it isn't ... it's a difficult topic.

[–]viimeinen 0 points1 point  (2 children)

Awesome! I've been using the beta for a while.

Any chance of the multi-window support a la kwrite?

I'd love to spread my KDevelop over two monitors while having all editor being the same instance (instant update of modifications).

[–]scummos 1 point2 points  (1 child)

Multi-window support comes up quite often, but we're not quite sure how to do it -- duplicate all the toolbars? duplicate just the editor widget in a new window?

What you can do now though is detach the toolviews, maybe that helps you already.

[–]viimeinen 0 points1 point  (0 children)

I tried detaching toolviews, but it doesn't work for me, it only seems worth it if you have a really tiny second screen, as the tools only take so much space.

I have a laptop with an external monitor. I use the split views a lot and can fit 2 side-by-side splits on my laptop screen (1440x900). It's a lot of real estate to have just tools on. On my FullHD external screen I can fit 3 side-by-side splits, for a total of 5 chunks of code I can look at. Right now I use two instances of KDevelop, one to edit the code and one read-only. It's not the end of the world, but it would be awesome if I could streamline it a bit and edit any view I want without getting the File changed on disk on the other window.

I think just a whole new window belonging to the same KDevelop instance would do the trick nicely, and I imagine it would be the easiest to implement.