Thank you for your replies.
Hum, before starting drawing class diagram, you should have an idea of the different subsystems of the editor. (the editor, and e.g. to support plugin, there will be a plugin manager ), what constitute those subsystems and how they collaborates.
Then you might find out how to implement those subsystem and infer a class hierarchy, thus allowing you to get your diagram.
So this is what i've already done.
The actual problem is more about how to arrange these information and put it all together in the diagram. Sometimes the amount of information is just too high and if you want to set all the dependencies visible in the diagram, you have to work on several classes at the same time. But this can get counter-productive simply because you are working a bit here and a bit there.
So i was looking for something more abstract, something that has a strict procedure (kind of guideline).
I always start with a deck of index cards, as i find it's much quicker to try new ideas, and i'm less prone to wasting time making it pretty as i would with a dedicated uml program(starUML is my personal favorite btw). I got the idea about using CRC cards, from an article I cannot recall, but this covers it pretty well.
I start usually with classes i know will exist(usually model classes), and and a scratch pad of paper. I use the paper to prototype the interactions of classes, which i can then turn into real code down the line. As the design evolves, I start to get an idea of new classes that may be neccessary to facilite these interactions. I can write specific properties of classes on the back side when i know they will be needed. With a basic rough plan, I'll check and see if there are opportunities to use composition or inheritence to save work when it comes to coding. I model these relationships on a cork board with safety pins and string. If i like how it comes together I'll take a picture, and can use that as a reference for later. Once I've got a paper prototype down, I'll move it all into starUML, and export as a c++ project, which basically does all the boilerplate for you, and then I can go back to my scratch pad scrawlings to start writing implementations.
This is something that sounds great to me because it breaks down the complexity.
I'll give it a try and keep you up to date on how it evolves.
Moreover i found some interesting articles about CRC cards: