[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnustep-cvs] r32503 - in /libs/gui/trunk: ChangeLog Headers/AppKit/
From: |
Eric Wasylishen |
Subject: |
Re: [Gnustep-cvs] r32503 - in /libs/gui/trunk: ChangeLog Headers/AppKit/NSLayoutManager.h Source/NSLayoutManager.m |
Date: |
Sat, 12 Mar 2011 01:13:03 -0700 |
On 2011-03-10, at 1:15 AM, Richard Frith-Macdonald wrote:
>
> On 9 Mar 2011, at 18:38, Fred Kiefer wrote:
>
>> Am 09.03.2011 06:28, schrieb Eric Wasylishen:
>>> Author: ericwa
>>> Date: Wed Mar 9 06:28:47 2011
>>> New Revision: 32503
>>>
>>> URL: http://svn.gna.org/viewcvs/gnustep?rev=32503&view=rev
>>> Log:
>>> gui: implement NSLayoutManager temporary attributes
>>>
>>> Modified:
>>> libs/gui/trunk/ChangeLog
>>> libs/gui/trunk/Headers/AppKit/NSLayoutManager.h
>>> libs/gui/trunk/Source/NSLayoutManager.m
>>
>> Excellent change! During FOSDEM Richard and I discussed about extracting
>> the basic attribute handling from NSAttributedString to allow
>> implementing temporary attribute handling on top of that. But your
>> solution is a lot more elegant than that.
>
> I agree that this a an elegant and simple solution ... but it's also very
> fragile as it depends on an implementation detail of
> NSMutableAttributedString (the fact that it happens to create its internal
> string storage using the -mutableCopy method of the string passed to its
> initialiser) rather than a guaranteed/documented behavior. I'll add comments
> in the source code to remind us about this.
Thanks. I agree it's somewhat of a hack, but at least the worst that should
happen if NSMutableAttributedString were implemented differently would be
higher memory usage (say if it called [NSMutableString stringWithString:]
instead of -mutableCopy).
> So I think your idea of creating a new class to store attributes in ranges
> without a string behind it is still a good one in the long run.
Yeah, that could be better. I'm not sure, but it might be useful to have in
other places as well.
btw, I committed an implementation of continuous spell checking which uses the
temporary attributes. I just need to add a menu item in Ink to turn it on so
people can test it more easily. :-)
Cheers
Eric