2013/4/27 Denis Kudriashov <dionisiydk@gmail.com>2013/4/27 stephane ducasse <stephane.ducasse@free.fr>Nice!Denis did you see the benchs that doru tried to see if we can use Rubric?Because it is interesting to see if we can load and manipulate really large file.Now it would be good that alain releases Rubric with a stable version and check how to take advantage of the new TextMorph.I saw his post.
And just now I check this test with TxTextMorph with unwrapped strategy. Similar results like at Rubric test. nearly 30 secs.
I generate 50 mb string� with almost million lines:
TxModel building get 10 seconds. Layout building get 20 seconds.
If you want repeat this test you should not use #newTextContents: method. You should build text model manually and put it at morph by #textModel:.
#newTextContents: method should be optimized. When I try test with #newTextContents: it was hang on very long time and I stop it.
And now text editing has no optimization. After each edit full text layout rebuilt. So pressing some character in our test take another 20 seconds.
It should be just fixed
�StefOn Apr 26, 2013, at 11:19 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:Hi guys.
I'm happy to announce that new text editor based on new text model done. You can load configuration from http://www.smalltalkhub.com/#!/~sig/TxText. Last version: 0.6.
See class side example methods.
What available now in TxTextMorph:
- cursor navigation with move left, right, down, up and mouse click
- text selection with move left, right, down, up and mouse movement
- editing by keyboard input
- text wrap
- #addCursor/#removeCursor
- #enableSelection.
- #beEditable
- all keyboard interractions based on shortcuts
Little details about navigation and editing:
There is TxEditor object which know about cursor position and text selection. Text morph ask him to perform all navigation and editing behaviour.
It has cursorMode which knows how to change editor selection when cursor moved. Editor delegates all move actions to cursorPosition by #doesNotUnderstand method. It is simplified adding new navigation methods. For example see TxTextMorph>>enableSelection
aTxTextMorph>>moveEditorOn: Character arrowLeft by: #moveLeft.This expression adds two shortcuts: to move editor left and to select text left (when selectionModeModifier active).
What next:
- Remains standart navigation and editing features like copy/paste, move to line end, to text end and etc.
- halo menu items to edit text and layout properties
- Edit decorators to get mask behaviour like "(999)***-**-**", pretty numbers like "1'000'000", secrete field like "***"
- Value specs to filter inserted text (only numbers, only english and etc)
There are some problems with focus behaviour now. And drawing text morph with transparent back color works bad. It will be cool if somebody with good knowledge at this topics can fix it.
Best regards,
Denis