Hello 2012/11/22 Igor Stasenko <[email protected]>
> On 22 November 2012 12:32, Igor Stasenko <[email protected]> wrote: > > On 22 November 2012 11:47, Stephan Eggermont <[email protected]> wrote: > >> Hi Igor, > >> > >> The TxText model to me seems to mix two concerns. > >> The storage of the text and manipulating it? Both cursor positioning > >> and selection manipulation are view dependent, and there might > >> be more than one. > >> > > > > No. Please read my other replies to topic. > > > > - you have text model > > - you have positions (in text) > > - you have selection which is two positions > > - you define operations, like insert, cut, replace which involving > > text and positions in them. > > - you cannot manipulate(edit) text without using positions > > > > where you see view dependent stuff? > > It is completely orthogonal. > > > > perhaps you talking about 'selection' which is part of TxModel state? > then i agree that we may need to separate concerns here: > - text storage > - text selection. > > but you can do it even right now: > > | text selection | > text := TxModel new. > selection := TxSelection on: text. > > selection replaceWith: 'ABC'. > selection all. > selection start moveRight. > selection end moveLeft. > selection replaceWith: '---'. > text asString > 'A---C' > > i think we should remove 'selection' from TxModel class. > And instead provide a protocol for getting a new one, i.e.: > > selection := text newSelection. > Agree with this
