I'm not sure having the image visible all the time is actually desirable.
For me is. And this is the main reason why I started this topic and shared my thoughts, since the
”necessity is the mother of invention”.

For instance, a few lines of code that implement a somewhat sophisticated concept may require an image that takes more space than what a few lines of code take, thereby requiring blank lines to account for the additional vertical size of the image.
You don't need to make a special place for the image, because typical source code has a lot of empty space that can be used. My main point is that if I have some code that does something that is not obvious and that is difficult to describe in words, there is always empty space around it, where you could insert a small picture illustrating what is going on. It was these empty spaces that gave me the idea of embedding images.
Also, I'm not sure that having a separate file for the images is a desirable solution because it opens the possibility of having source code reference non existent images (particularly if the image file is inadvertently deleted or corrupted).
That is not an argument. After all, we already have exactly the same situation, for example, in the case of forms — the
.lfm file with the form content and the
.pp file with its source code. There is still a fear that the data in both files will not match, that e.g. in the
.lfm file there will be an event assigned whose body does not exist in the
.pp file, but the IDE can detect and handle this situation.
In the case of embedding images, there would be no such problems, because the
.pp file (with the source code) would not contain any data about where to embed the images — the IDE would handle the resource files and pass the images to
SynEdit. There is no resource file, so there is nothing to pass to the component. The resource file is corrupted, the IDE displays an error when loading its content with the buttons to abort/ignore loading it, just as it displays an error when loading a corrupted
.lfm file.
SynEdit can handle and render anything we want, because its content is fully rendered by this component's code — every fragment (gutter, background, every line of text and every token of it). The problem is not whether it is possible to embed images and render them above/under text (because it can be done), but how to do it so that it is useful and does not hinder those who do not want to use image embedding. Well, I have already described how to do it so that these assumptions are met.