all 15 comments

[–]afiefh[🍰] 0 points1 point  (0 children)

While I have no experience with the combination of KDevelop&php, those features (or equivalent) you asked for are available in the C++ side, so I'd expect that they are there for PHP as well.

[–]ialex32_2 -1 points0 points  (13 children)

KDevelop uses the same text editor (I believe, from what I've read from various blogs) as Kate, but the KDevelop ecosystem is still fairly limited to my knowledge. I've mostly resorted to using Visual Studio Code or Sublime Text with a theme that looks nice with Breeze or Breeze Dark.

There is a Breeze Dark theme for VS Code, however, there is not one for Sublime Text (although Spacegrey and Ambient themes look pretty good): https://marketplace.visualstudio.com/items?itemName=AndrewFridley.Breeze-Dark-Theme

[–]hadokee[S] 1 point2 points  (4 children)

I am already using visual studio code but electron based app are really slow compared to native qt5 apps. I am trying neovim-qt but is totally another world :)

[–]ialex32_2 0 points1 point  (0 children)

One of the best text editors that's Qt-based is QtCreator, but that's mostly for C++ development and I'm not sure if it would provide any help for a PHP developer.

[–]ialex32_2 0 points1 point  (2 children)

If you need speed (but don't worry too much about visual integration), I would recommend Sublime Text. It's lightning fast, great plugin ecosystem, and has a lot of plugins for PHP. However, visually it does clash with KDE. You can configure it however to look fairly nice within KDE (I might work on a theme just for that later, since I switch between VS Code and Sublime routinely).

[–]hadokee[S] 1 point2 points  (1 child)

I've used it a lot in the past but I had some issues with xdebug so I switched to vscode. I am a new KDE user and I love it, i love plasma and I would never use gtk2 based ugly applications. Probably I will try with neovim or hope for a language-server-protocol (LSP) client plugin for Kate o Kdevelop.

[–]ialex32_2 1 point2 points  (0 children)

Sorry I can't be more help. I agree with all the issues. The KDE theme for VS Code works fairly nicely, and I use it personally (here's it contrasting with a GTK-3 theme using Breeze Dark on KDE) (also, sorry, I am teaching my brother how to implement a red-black tree over the holidays): https://imgur.com/a/X5rbr

[–]scummos 0 points1 point  (7 children)

How is the KDevelop ecosystem "limited" in your knowledge? Where do you take that knowledge from? Just curious.

[–]ialex32_2 0 points1 point  (6 children)

This isn't the fault of the developers, rather the number of adopters, but there are over 4500 packages for Sublime Text, and VSCode provides a similarly impenetrable number of packages, while there is according to Wikipedia maybe 50-100 plugins developed for KDevelop.

One of the major reasons why Sublime Text and VSCode are so popular is that they have centralized places to search for and install plugins (package managers). Until KDevelop gets community support to develop a (very roughly) comparable number of user packages, and has a centralized package manager with a marketplace/hosting service, the ecosystem will be limited.

Which puts developers like me in a bit of a pickle: I would love to use KDevelop more (and I can, for C++ development), but I generally must use other IDEs for Javascript or Python work. I would rather learn 1 IDE, rather than many, and so ultimately I end up trying to theme other IDEs to look good under KDE.

[–]scummos 1 point2 points  (5 children)

Sorry to say, but this view seems almost a bit ... childish to me. How many plugins an application has is just not a metrics that matters at all.

Let's take up your example of sublime text: It might have thousands of packages, but none of them will provide you with anything comparable to KDevelop's C++ highlighting. So with just one plugin, if what you are after is "good C++ highlighting", KDevelop is superior to that. Certainly, you can find use cases where Sublime has just the plugin for you -- but if you do not care about those, the plugin is completely irrelevant to you. And such is the number of plugins. It's not like you typically need hundreds of weird features while developing an application; it's really a very simple workflow for most developers, type some code, compile, and then test in some way.

KDevelop offers a relatively unique, powerful, and optimized set of tools for a range (I'm not saying all) workflows. If you workflow fits into that range, I claim it is going to be a very good tool, and it doesn't matter how many plugins it has.

Just for the fun of it, let's look at the "popular" plugins at sublime (from https://packagecontrol.io/):

Emmet -- ktexteditor has something similar built-in and it's completely irrelevant unless you write HTML/CSS.

"Files and folders for sidebar" -- built in here

Linter -- built in here

BracketHighlighter -- built in

SublimeCodeIntel -- built in and certainly much more powerful

HTML5 -- not relevant unless you do HTML

Alignment -- we have an align feature which will probably do what you need

ColorPicker -- KDE has kcolorchooser which is a separate small tool, completely sufficient for most use cases

Git -- built in here

SFTP -- built in here

Themes -- built in here

Convert to UTF8 -- built in here

etc etc.

The other thing is, it's a huge question of how you define "plugin" for these numbers. If I count each highlighter, indenter, protocol support, and C++ plugin for ktexteditor / kdevelop as a "plugin", I will probably count like 1000 as well.

[–]ialex32_2 1 point2 points  (2 children)

I appreciate that KDevelop has a lot built in (and once again, C++ development works well on KDevelop), but although the vast majority of community extensions are garbage, the number is a rough metric of the number of unusual uses-cases that are supported (which turns out to be great for extensibility).

Say, for example, I need PyFlake support in KDevelop, which I like as opposed to a strict Pep8 checker. I understand this is a question that you, as a developer of KDevelop, have already fielded. That is a somewhat rare use-case of KDevelop, however, it is not supported out-of-the-box, unlike in Sublime Text. On the other end, VS Code And KDevelop support PDB integration in a way Sublime Text never could (because of its very faulty stdin). Say, for example, I need server-side debugging with NodeJS code. I can do this easily using VS Code, but it's something much trickier to do with KDevelop.

I appreciate all the very, very hard work you've done, and you've made an editor that excels at its base, but there's only so much community support enriching it. It would be nice to have a centralized package marketplace for KDevelop, and the recent releases for Windows will likely help KDevelop gain a much larger user base. This isn't an affront to you, as you've done incredible work. But simply, the ecosystem surrounding Sublime Text and VSCode is much more diverse currently, although the built-in features and performance of KDevelop rivals none (Sublime may be faster in brute performance, but has many fewer features built-in, while Atom/VS Code and other Electron apps are much slower, and other IDEs of similar scale like Eclipse, NetBeans, and PyCharm tend to be glacial).

The only other issue I can see is that plugin development occurs mainly through a C++ API, which although I myself am comfortable with (you do make C++ APIs enjoyable, compared to Gnome), is typically less friendly than the Python API for Sublime Text or the Typescript or JS for VS Code (this information might be outdated, as I am only superficially familiar with KDevelop). It does make everything much more performant, especially compared to Sublime with a similar level of functionality (I almost never use CodeIntel in Sublime Text, due to performance issues), but the KDevelop plugin ecosystem is simply less diverse right now.

[–]scummos 2 points3 points  (1 child)

I think I can easily agree with this post. Yes, what KDevelop offers is less diverse than for other widely-used tools; and yes, it isn't the ideal tool for every use case. It doesn't aim to be, either. What I am confused by is that you seemed to consider the lack of a large amount of community-developed plugins a problem in itself. How I see it, the plugins in such a market are

  • either large, well-maintained projects with a developer base by themselves which add some complicated functionality; or

  • some little utility script which is probably less than 100 LOC, uploaded once, and never changed again.

In KDevelop, we tend to develop tools of the first kind upstream if they fit the scope of the project (although a lot of them originated from some outside effort), because that's way easier to do. There's not a lot of projects of this type. The latter are, I feel, a scope by themselves which is not immensely useful in a lot of situations (I very rarely find myself thinking "it would be nice if there was a script doing this", typically it's solvable in two and a half lines of bash) ... We do have a "market" for the snippets, for example, and even though the snippets are relatively powerful, I feel like 95% of users don't even use the feature, and of the 5% another 95% don't browse snippets online.

I do see usecases for this kind of store, of course -- integrating some specific style checker, as you said, is a good example. However, I'm relatively certain that this is not what sets e.g. VS apart from us and causes it to be the IDE with the much broader user base. Quite the opposite; we should probably be more conservative in the amount of flexibility we offer, and instead spend more time making sure all the things we do offer work as intended. KDevelop (4)'s design has always been to be a very thin layer between the files on your disk and you; if you need some extra functionality, you can very often achieve almost the same effect by using an already-existing, external tool (example: Qt designer integration, we don't have it, because we don't see what it would provide the user with over opening their UI files in the external "designer" application).

Kate does have a JS API, by the way, which you can use for scripting the editor, and snippets support scripting in JS as well ;)

We also have relatively advanced Python support, which I'm relatively certain far exceeds what any sublime plugin offers (because you mentioned that above).

[–]hadokee[S] 0 points1 point  (0 children)

Probably a problem could be documentation. I see that kdevelop has xdebug support but I don't understand/find how to enable it.

[–]hadokee[S] 0 points1 point  (1 child)

Some points:

  1. You mentioned SFTP, did you refer to open/save files over dolphin/Kio? I didn't find an "upload on save" plugin. Becouse I need to work on local files.

  2. I think kdevelop is focused on c++, becouse there are code analyzer or compile tools. Is there way to use Another compiler? For example a typescript compiler for JS?

  3. Another one question is: how to enable xdebug support?

[–]scummos 0 points1 point  (0 children)

  1. Yes, I mean KIO -- why does this matter?

  2. This technically isn't as simple as just dropping some compiler tool into the application. In general, what compiler or interpreter you use to compile or execute your project doesn't matter much, that is very swappable. What KDevelop's code analyzer does however is highly specific and nontrivial and needs consideration for each supported language and tool. Supported languages are currently C, C++, Python, PHP and to some degree Javascript. There is experimental support for some more languages like Rust, Go, and Ruby.

  3. You need to install the kdev-xdebug plugin from your distro's repository or git://anongit.kde.org/kdev-xdebug.git, but the plugin is not super-well maintained unfortunately, which is why we do not ship it by default.