Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Need Advice on Text Editor Design

Hi,

I'll give it a try.

> So, the question is: how does one typically design the editor 
> for such a 
> situation?  Should I be using a partition or is a specialized 
> DamagerRepairer the correct way to go?

I don't think that there is only one correct solution.
The partitioner solution might be better performance-wise,
but depending on whether or not the partitioning is also used
for other features, this might cause additional work to correctly
handle the additional partition.

That's just my 2 cent, though. 

The Eclipse Platform guys could possibly provide more insight/advice.
Try the eclipse.platform newsgroup. They are usually very responsive.

Toni

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Jeff Johnston
> Sent: Friday, November 10, 2006 1:14 AM
> To: cdt-dev@xxxxxxxxxxx
> Subject: [cdt-dev] Need Advice on Text Editor Design
> 
> I have started writing my first text editor and have run into 
> a problem.
> 
> In the document that will be edited there are macro calls 
> which I would 
> eventually like to process for correctness (e.g. number of 
> parameters is 
> correct for specified macro).  However, within these macro 
> calls, a user 
> can have inlined code sections which typically start and end with 
> special keywords.  I would like to uniformly colorize the 
> inlined code 
> section and italicize it so it is obvious it is inlined code.
> 
> A MultiLineRule seems to be a perfect fit for how to detect 
> this section.
> 
> I don't know whether to give the section its own partition.  
> If I give 
> it its own partition, it would appear that I would semantically break 
> the document up incorrectly as macros could be split into 
> multiple pieces.
> 
> When I try and treat a macro as a partition and then use a 
> RuleBasedScanner that has a MultiLineRule to find the inlined code 
> section within it, editing within the inlined section doesn't 
> work.  I 
> am finding that the DefaultDamagerRepairer I am using has no 
> concept of 
> damage to a multi-line area.  When it detects a change, it creates a 
> damage area that it calculates from the line info (DefaultLineTracker 
> which gives back line start and length).  This causes problems later 
> when we try and evaluate the damage using the 
> RuleBasedScanner for the 
> macro partition.  The MultiLineRule for the inlined code needs to see 
> both the start-sequence and end-sequence to give back the 
> correct token. 
>   This never happens because the damage region is restricted 
> to one line 
> in the document.  Thus, any change to an inlined code section 
> causes it 
> to incorrectly change color and font style for that line.
> 
> When I give the inlined code its own partition, it all works fine 
> because the partitioner correctly processes all the lines 
> involved after 
> the change.
> 
> So, the question is: how does one typically design the editor 
> for such a 
> situation?  Should I be using a partition or is a specialized 
> DamagerRepairer the correct way to go?
> 
> -- Jeff J.
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> 


Back to the top