سؤال

This may be a question more suited some Programming Meta Discussions.

I was trying to delve deeper into the inner plugin management feature for QT Creator 2.x IDE provided by Digia Inc. So I effectively downloaded the source code for QT Creator and built it to debug how this functionality is implemented.

Hence I used an IDE to debug the same IDE. So my question is are there any pit-falls while doing so? Is it recommended that in such a scenario it's better to use two different IDEs (e.g. using Visual Studio to build QT Creator).

هل كانت مفيدة؟

المحلول

It's really no different than building an application that can have multiple instances of itself.

From my experience, the biggest hangup is the persistence layer. Whether that's a configuration file or a call to a database, apps seem to get trapped into accessing a specific persistence object in a specific way which makes it all the more difficult to have multiple instances in place.

After that, you have to be a bit intelligent in how you lay things out. Visual indicators such as different backgrounds; title bar text; fonts; different account logins; different monitor locations; etc... all help make it clear which editor is primary / stable and which editor is in development.

It should be obvious, but this implies two separate code trees in the example you provided. One for the primary editor which is never changed. Another for the secondary editor which is under development.

And this approach holds up even to the extent of using the primary IDE to debug the development IDE as you mentioned in your question. When you're debugging the debugger capabilities of an IDE, then you'll need to feed a separate application into the development editor so it has something different to debug. In reality, that's not all that different from the tertiary project you would need to create in the secondary (development) editor in order to test the changes you made to the secondary editor.

It can be pretty easy to wrap your head around an axle with the meta aspects of building an IDE. The key is to clearly differentiate what each project is doing.

نصائح أخرى

Just a suggestion if you are on Ubuntu;

Download the Ubuntu SDk or just stock qtcreator from the repos, and use that to build a version of QtCreator you downloaded from source.

I tried doing it where I used the source version to edit the source version, and experienced frequent hangups and crashing.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى softwareengineering.stackexchange
scroll top