2018-08-26 18:38:53 UTC
I have an idea to write new version of my text editor (not published -
only for my personal usage). Now it is monolithic app. But new version I
want to write in modular way.
+ edition in 2 modes: text and hex (they can be plugins like in Qt Creator)
+ plugins for every editor aspects: highlighting, spell checking, user
actions in context menu and in main menu (like text speech and search
phrase in the Internet, check word translation in the internet
dictionary), search and replace
+ should be resistant to editors or plugins failure
Two first points can be easily achieved by mimicry of the Qt Creator
architecture (in true I don't need every Qt Creator features). But I am
afraid that it is not true for third point.
Today I get some info about Chrome browser architecture from fairy old
, but I like that it is secure and fault resistant. I know I don't need
such high security, but crash resistant architecture seems attractive to me.
I also know that in forthcoming Qt 5.12 Qt Remote Objects will be
officially released. So maybe my simply text editor project will be
great opportunity to use this state of the art module?!?
I think that maybe it is not so crazy idea to design text editor like
multi process application?!? I mean to write thin kernel (like your core
plugin) and implement editors (text and hex) in separate processes and
design plugin system where each plugin resides in separate process. They
can be load on demand (not every at start). And I think that it is
possible to implement internal state diagnostic in order to detect
failures in editors or in plugins.
Main problems what I see is:
1) to design suitable Api for every part of my text editor (like you do
for Qt Creator)
2) efficient implementation of the editor text rendering
@1) I think I can study Qt Creator more carefully to understand every
nuances - so this require work on my site
@2) I have questions to you:
a) Do you have any advice how should I rendering text in separate
process and display it in main process (which displays Qt Gui)?
b) Is there some Qt solution for this case or I need to write my own
layer to cover Os specific shared memory Api?
c) Is Qt prepared for such cases like render QPlainText widget to the
buffer instead to the screen?
I know this question is not directly related to Qt Creator, but I think
it is advanced enough to ask experienced Qt Creators developers as Qt
user forums probably can't answer to such details.
thanks and best regards