[squeak-dev] The Trunk: Morphic-mt.1061.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Dec 22 15:47:09 UTC 2015
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1061.mcz
==================== Summary ====================
Name: Morphic-mt.1061
Author: mt
Time: 22 December 2015, 4:46:35.738 pm
UUID: af0fca47-4c9f-4973-ab53-a9fa9edcccef
Ancestors: Morphic-tpr.1060
Text editing: code clean-up and fix for in-place find. Here is how it works:
- You just moved your cursor to some place without selecting something.
- You type something.
- You hit CMD+G to "find again"
- The previous input will be removed and taken as search text.
- The next match will be selected.
- (If you err here, you can undo with CMD+Z to insert the input from above again.)
If you hit CMD+J, nothing will happen because there was no replace operation detected. If you, however, hit CMD+G to find the next match and then continue wit a CMD+J, it will find/replace the next match (with nothing) because your insertion was removed automatically as described above.
=============== Diff against Morphic-tpr.1060 ===============
Item was changed:
----- Method: TextEditor>>again (in category 'menu messages') -----
again
+ "Do the same find/replace command again. Looks up the editor's own command history and uses the previous command to determine find string and replace string."
- "Do the same replace command again. Unlike #findReplaceAgain, this looks up the editor's own command history and uses the previous command."
+ self history hasReplacedSomething
- (self history hasPrevious and: [self history previous hasReplacedSomething])
ifFalse: [morph flash. ^ false].
self
setSearchFromSelectionOrHistory;
setReplacementFromHistory.
"If we have no selection, give the user one to avoid annoying surprises."
^ self hasSelection
ifTrue: [self findReplaceAgainNow]
ifFalse: [self findAgainNow. false "see #againUpToEnd"]!
Item was changed:
----- Method: TextEditor>>findReplaceAgain (in category 'menu messages') -----
findReplaceAgain
-
- self
- setSearchFromSelectionOrHistory;
- setReplacementFromHistory.
+ ^ self again!
- ^ self findReplaceAgainNow!
Item was added:
+ ----- Method: TextEditor>>removePreviousInsertion (in category 'typing support') -----
+ removePreviousInsertion
+ "If the previous command was an insertion, remove it by not undoing it but replacing it with nothing."
+
+ self history hasInsertedSomething ifFalse: [morph flash. ^ false].
+
+ self
+ selectInvisiblyFrom: self history previous intervalBefore first
+ to: self history previous intervalAfter last.
+
+ self replaceSelectionWith: self nullText.
+
+ ^ true
+ !
Item was changed:
----- Method: TextEditor>>setReplacementFromHistory (in category 'accessing') -----
setReplacementFromHistory
"Use history to get the previous replacement."
+ self history hasReplacedSomething
- (self history hasPrevious and: [self history previous hasReplacedSomething])
ifTrue: [ChangeText := self history previous contentsAfter].!
Item was changed:
----- Method: TextEditor>>setSearchFromSelectionOrHistory (in category 'accessing') -----
setSearchFromSelectionOrHistory
"Updates the current string to find with the current selection or the last change if it replaced something and thus had a prior selection."
self hasSelection
ifTrue: [FindText := self selection]
+ ifFalse: [self history hasReplacedSomething
+ ifTrue: [FindText := self history previous contentsBefore]
+ ifFalse: [self history hasInsertedSomething
+ ifTrue: [
+ FindText := self history previous contentsAfter.
+ self removePreviousInsertion. "Undoable."]]]!
- ifFalse: [(self history hasPrevious and: [self history previous hasReplacedSomething])
- ifTrue: [FindText := self history previous contentsBefore]].!
Item was added:
+ ----- Method: TextEditorCommand>>hasInsertedSomething (in category 'testing') -----
+ hasInsertedSomething
+
+ ^ self contentsBefore isEmpty!
Item was added:
+ ----- Method: TextEditorCommandHistory>>hasInsertedSomething (in category 'testing') -----
+ hasInsertedSomething
+
+ ^ self hasPrevious and: [self previous hasInsertedSomething]!
Item was added:
+ ----- Method: TextEditorCommandHistory>>hasReplacedSomething (in category 'testing') -----
+ hasReplacedSomething
+
+ ^ self hasPrevious and: [self previous hasReplacedSomething]!
More information about the Squeak-dev
mailing list
|