[Cuis-dev] [ChangeSet] source code intervals + changes on refactorings
Juan Vuletich
juan at jvuletich.org
Mon May 18 09:16:00 PDT 2020
Hi Folks,
Any news wrt this? An implementation taking account of all the great
insights in this thread would be great.
Nahuel? Hernán?
Thanks,
On 5/11/2020 7:41 PM, Nicolas Cellier via Cuis-dev wrote:
>
>
> Le mar. 12 mai 2020 à 00:37, Nicolas Cellier
> <nicolas.cellier.aka.nice at gmail.com
> <mailto:nicolas.cellier.aka.nice at gmail.com>> a écrit :
>
>
>
> Le lun. 11 mai 2020 à 23:26, Phil B <pbpublist at gmail.com
> <mailto:pbpublist at gmail.com>> a écrit :
>
> Nicolas,
>
> On Mon, May 11, 2020 at 5:02 PM Nicolas Cellier via Cuis-dev
> <cuis-dev at lists.cuis.st <mailto:cuis-dev at lists.cuis.st>> wrote:
>
>
>
> Le lun. 11 mai 2020 à 22:58, Luciano Notarfrancesco via
> Cuis-dev <cuis-dev at lists.cuis.st
> <mailto:cuis-dev at lists.cuis.st>> a écrit :
>
>
>
> On Tue, 12 May 2020 at 3:44 AM, Nicolas Cellier via
> Cuis-dev <cuis-dev at lists.cuis.st
> <mailto:cuis-dev at lists.cuis.st>> wrote:
>
> Can you represent empty ranges?
>
> For example,
> (5,5) could be empty (marking a position before or
> after 5th character - your choice)
>
>
> Definitely. That's why start<=end. Needed for things like
> errors where you might only essentially know the position
> something occurred at but need to return a range for whatever
> reason.
>
> (5,6) a one character range (from left to right)
>
>
> Yep.
>
> (5,4) too (from right to left).
>
>
> My thinking was that this could get swapped during instance
> creation. If end<start, then swap. (i.e. only for source code
> ranges would start<=end always be the case, the more general
> range superclass would allow the inversion)
>
>
> Good question. Kind of looks like a pathological case,
> do you really need that? Is it for the cursor position?
>
> For example if we want to use that Range in Text
> selection, then yes.
>
>
> While the text could be selected from end to start, would
> anything be lost by flipping the positions around in the range
> created?
>
> Oups, sorry to repeat, my intention was this to be in public
> discussion, but I'm bad with reply, reply all ..
>
> As you noted, backward ranges like (5,4) have an interest for
> interactive selection: the start is the pivot point, and the end
> gives the direction (we are extending selection toward left or
> right around the pivot).
> Peserving the pivot is an advantage when you later extend/shrink
> the selection with cursor keys for example...
>
> Of course, this can be (and is) the responsibility of specialized
> editor, but I have the feeling that Range serves this purpose well
> without too much complexification...
>
> Currently most models (Browser, Debugger, etc...) are using
> Interval for contentsSelection which does not sound good.
> What if you want to have more control on the direction of the
> selection?
> Recently, there was a hack in Squeak which reverted the pcRange in
> Debugger so as to show the beginning of selected text rather than
> the end for the case when the window is small. That would not work
> in Cuis due to cleaner Interval implementation, and that did not
> work either in a Squeak after I cleaned the Interval too :(
> Not sure if it is the right fix, but backward Range would fit...
>
> Correction: that would work in Cuis thanks to negative count, I did
> not notice this before...
>
>
>
> Le lun. 11 mai 2020 à 01:22, Phil B via Cuis-dev
> <cuis-dev at lists.cuis.st
> <mailto:cuis-dev at lists.cuis.st>> a écrit :
>
> Luciano,
>
> Since the vast majority of ranges I'd be
> working with are programmatically created, #..
> wouldn't really help me (i.e. Range #from:to:
> would be fine and consistent with Interval in
> meaning) but I'm not opposed to it if it would
> help you. However, I would not be in favor of
> overloading #, since that seems confusing
> given other implementors of #,.
>
>
> Yeah, I wouldn’t want to overload #, and my suggestion
> about #.. mainly was about allowing it as a binary
> operator that might be nice to have available for
> whatever people decide to use it. #from:to: looks nice
> enough, tho.
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
--
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20200518/fbb4e951/attachment-0001.htm>
More information about the Cuis-dev
mailing list