7 ms·
Show HN: LeanCreator – a stripped-down QtCreator for C/C++, LeanQt and BUSY
- glitchc 4y agoThis looks great, but I am a bit dismayed by one "will not tackle" feature: qmake support. Why make this call? Most qt projects default to qmake by default. Making this a will not tackle acts as a big barrier to anyone looking to port their projects over to LeanCreator.
- Rochus 4y agoI still use Qt Creator for my qmake projects until everything is migrated. It doesn't make sense to add qmake support to LeanCreator because Qt Creator is still available on all platforms and continues to support qmake (at least I have no other information). If people port their projects, they actually don't port to LeanCreator, but to the BUSY build system, which in turn can generate qmake projects in case you want/have to use Qt Creator for some tasks.
- simplotek 4y ago> It doesn't make sense to add qmake support to LeanCreator because Qt Creator is still available on all platforms and continues to support qmake (at least I have no other information). This take sounds ridiculous. It's ok if you want to use the project to try to drive up the adoption of a build system, but it's absurd to argue against the adoption of a widely established build system by stating that people should instead use other IDEs.
- Rochus 4y agoCould it be that you have not understood the argument?
- EStudley 4y agoWhy no QML support? Interested in OP's decisions there. Would it just bring in too much bloat?
- Rochus 4y agoQML and Qt Quick are mostly useful for mobile applications, but were barely able to prevail in this market. Qt originated as a desktop application framework. LeanQt aims at the original purpose and strength of Qt.
- jenadine 4y agoAny plan to support LSP to work with more programming languages? Or is the plan to focus on C++ only?
- Kelteseth 4y agoI really dont get this project. If you want LSP support just use regular QtCreator.
- Conscat 4y agoLSP support is considered a basic requirement for any modern code editor, but especially a C++ editor. If (respectfully) dinky TUI editors like Kakoune, Micro, and Helix have working LSP these days, it doesn't seem ridiculous to me to suppose that this might too.
- sho_hn 4y ago> LSP support is considered a basic requirement for any modern code editor, but especially a C++ editor. I'd say a C++ editor is by far the type of editor least in need of LSP support, given there's a lot of great C++ infra and integration that pre-dates LSP (e.g. using libclang directly, or even fully custom). It's relatively more the newer languages that went with LSP from the start or that are just too niche to get attention from IDE dev teams that benefit. That said, LSP is a great idea for the ecosystem in general.
- Rochus 4y agoI will likely add support for my Oberon+ language and also migrate the Verilog and Lola plugins to LeanCreator. LSP support is not planned so far, because for each language also the toolchain must be supported including e.g. a decent debugger integration, which is far more effort than just parsing the language.
- humanrebar 4y agoThe Debug Adapter Protocol might be interesting for similar reasons as the Language Server Protocol if you haven't seen it yet: https://microsoft.github.io/debug-adapter-protocol// https://microsoft.github.io/debug-adapter-protocol//
- ur-whale 4y agoEdit and continue supported?
- Rochus 4y agoI suppose you mean editing source code during a debug session and continue with the new version of the compiled code from where the debugger was; no, that's completely out of scope and affects the whole toolchain, not only the IDE. But of course you can edit the values of variables in the debugger and continue with the new values.
- ur-whale 4y ago> I suppose you mean editing source code during a debug session and continue with the new version of the compiled code Yes, correct. That's something Visual C++ has been able to do for the past 20 years and the Linux ecosystem has never managed to catch up to. It's unfortunate, because it's a really useful feature, especially when you build GUIs.
- Rochus 4y agoI never used it on Windows and never missed it on Linux or Mac. And it's likely very complex to implemenent, and more the concern of the toolchain than the IDE. Anyway, LeanCreator does not support it; the focus is more on simplicity and cross-platform.
- turbobooster 4y ago[flagged]
- lockhouse 4y agoAren't they different use cases for the most part? Qt is good for cross platform desktop software, but very clunky for mobile. Flutter is good for cross platform mobile software, but very clunky for desktop.
- freedomben 4y ago"Just throw out all the knowledge and experience you've gained in C++/Qt over the years (possibly decades) and use a completely different language and framework" Not great advice IMHO. Even for people new to both there are still compelling reasons to use Qt. Flutter looks great and I'm optimistic about the future, but it's still young and there are a lot of things it can't do.
- marsven_422 4y agoLove to but it doesn't support 32bit ARM
- codazoda 4y agoThis readme could use a definition for those of us that don’t know qt creator. Here’s what I think it might be after reading half of this doc. LeanCreator is a lean cross-platform integrated development environment (IDE) based on Qt Creator but stripped down to a single file, easy to build, light weight executable with no external dependencies.
- Rochus 4y agoThat's one part of the story; LeanCreator is rather "derived from" than "based on" QtCreator, because there was a lot of refactoring and redesign; it's also important to note that it uses the BUSY build system which is fully integrated with the IDE with semantic navigationt through the build specification files (instead of qmake, see https://github.com/rochus-keller/busy); https://github.com/rochus-keller/busy); and with "stripped-down" and "lean" I mean that I kicked out all stuff I never touched during the last twenty years.
- Brian_K_White 4y ago"I kicked out all stuff I never touched during the last twenty years." A fine and eminently defensible filter.
- hermitcrab 4y agoI've been using qmake for >20 years. Its good enough for my purposes. I have no plan to switch to cmake or any other build system, unless I have to. But I am also using Subversion, so I am not one of the 'cool kids'.
- Rochus 4y agoSame here in principle; the problems start when you have big project which require qmake SUBDIRS and the like; it's ugly and very slow. I'm neither one of the 'cool kids' ;-)
- hermitcrab 4y ago
- AshamedCaptain 4y agoIt's a sad story about the state of Qt Creator's plugin API. In any case, I kind of agree with the author here that QtCreator basically peaked in both usability and performance somewhere around Qt Creator 3.4 . I would even say 3.3 since that's when it could no longer be built with Qt 4. The biggest problem with such older versions of QtCreator is however the internal C++ parser limitations, e.g. poor 'auto' support. The outdated C++ parser is the main reason I had to stop using old QtC -- at some point, the parsing is so bad that Find Usages stops being reliable. Any clang based replacement is just 100x slower and tends to have even worse support of recovering from parse errors than the internal parser. I ponder what the author's using -- I can't guess from the screenshots.
- pixelesque 4y agoI agree too on the peak being 3.3 or so - I'm still using 3.3.2 on my Intel Linux machines - unfortunately on my main new AMD machine I had to move to newer versions due to core plugin crashes in older versions in order to get it to run, and the Build Kit infrastructure is just a mess there IMO (I know it was added to allow flexibility, but I never needed that functionality, I wanted one debug build for use in an IDE, and I'd build release / deploy stuff outside of the IDE). The main annoyance I had with older QtCreator versions was that you couldn't actually text edit CMakeLists.txt files in the editor, it would treat them as Project files regardless of how you tried to open them, so had to use an external editor for those files, which seems a bit silly. It's been my main C++ dev IDE since 2010, but I'm starting to think about moving to VSCode, but not really happy with that either for editing (in either C/C++ or Rust with RustAnalyzer, but I find it good for Python and JS): auto-indent is very primitive and rarely does the right thing, and tooltip popups for hints and errors just seem random and inconsistent to me. It's functional though, but I wouldn't say great compared to my QtCreator experience of just very fluently typing out large amounts of code the way I want it.
- zerr 4y agoWhy not KDevelop?
- 4y ago