--- a/Tools__DiffCodeView2.st Fri Mar 09 23:06:58 2012 +0000
+++ b/Tools__DiffCodeView2.st Fri Mar 16 17:08:17 2012 +0000
@@ -27,20 +27,13 @@
"{ NameSpace: Tools }"
-TwoColumnTextView subclass:#DiffCodeView2
+SyncedMultiColumnTextView subclass:#DiffCodeView2
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Interface-CodeView'
!
-Object subclass:#DiffData
- instanceVariableNames:'text1 text2 inserted deleted changed'
- classVariableNames:''
- poolDictionaries:''
- privateIn:DiffCodeView2
-!
-
!DiffCodeView2 class methodsFor:'documentation'!
copyright
@@ -96,32 +89,6 @@
textViews do:[:each|each languageHolder: aValueModel].
"Created: / 19-07-2011 / 12:55:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-text1:t1 text2:t2
- |data|
-
- data := self computeDiffDataForText1:t1 text2:t2.
-
- (textViews at:1)
- contents:(data text1);
- deletedLines:(data deleted);
- changedLines:(data changed);
- insertedLines:#();
- originDiffText:t1;
- emptyLines:(data inserted).
-
- (textViews at:2)
- contents:(data text2);
- deletedLines:#();
- changedLines:(data changed);
- insertedLines:(data inserted);
- originDiffText:t2;
- emptyLines:(data deleted).
-
- "Created: / 06-03-2010 / 10:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 22-06-2010 / 21:36:35 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 15-07-2010 / 23:08:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!DiffCodeView2 methodsFor:'initialization'!
@@ -143,201 +110,6 @@
"Modified: / 23-06-2010 / 19:36:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!DiffCodeView2 methodsFor:'private'!
-
-computeDiffDataForText1:t1 text2:t2
- "created diffText object from two string"
-
- |array1 array2 diff change index1 index2 text1 text2 i diffHelper deleted inserted helperText addConstant1 addConstant2 changed helper ins del pom|
-
- "cerate array from origin text(1 item=1 row)"
- array1 := self createArray:t1.
- array2 := self createArray:t2.
- "inserted,deleted, cahnged lines"
- inserted := OrderedCollection new.
- deleted := OrderedCollection new.
- changed := OrderedCollection new.
- "indicates which row of origin text is added to ne text"
- index1 := 1.
- index2 := 1.
- "indicate how much rows were deleted or inserted "
- addConstant1 := 0.
- addConstant2 := 0.
- text1 := ''.
- text2 := ''.
- diff := Diff new.
- diff a:array1 b:array2.
- change := diff diff:false.
- diffHelper := DiffData new.
- [ change notNil ] whileTrue:[
- "check first lines which are same"
- (((change line0) > 0) and:[ ((change line1) > 0) ]) ifTrue:[
- [
- index1 <= (change line0)
- ] whileTrue:[
- helperText := (array1 at:index1) asText.
- text1 := text1 asString , helperText asString.
- index1 := index1 + 1.
- ].
- [
- index2 <= (change line1)
- ] whileTrue:[
- helperText := (array2 at:index2) asText.
- text2 := text2 , helperText.
- index2 := index2 + 1.
- ].
- ].
- ins := change inserted.
- del := change deleted.
- index1 := (change line0) + 1.
- index2 := (change line1) + 1.
- "find replace files "
- ((del > 0) and:[ ins > 0 ]) ifTrue:[
- helper := del - ins.
- (helper <= 0) ifTrue:[
- pom := change deleted.
- ].
- (helper > 0) ifTrue:[
- pom := change inserted.
- ].
- "its same count row"
- i := 1.
- [ i <= pom ] whileTrue:[
- changed add:index1 + addConstant1.
- text1 := text1 , (array1 at:index1) asString.
- text2 := text2 , (array2 at:index2) asString.
- index1 := index1 + 1.
- index2 := index2 + 1.
- del := del - 1.
- ins := ins - 1.
- i := i + 1.
- ].
- ].
- "find deleted files"
- (del > 0) ifTrue:[
- i := 1.
- [ i <= del ] whileTrue:[
- deleted add:index1 + addConstant1.
- text2 := text2 , Character cr.
- addConstant2 := addConstant2 + 1.
- text1 := text1 , (array1 at:index1) asString.
- index1 := index1 + 1.
- i := i + 1.
- ].
- ].
- "find inserted lines"
- (ins > 0) ifTrue:[
- i := 1.
- [ i <= ins ] whileTrue:[
- inserted add:index2 + addConstant2.
- text1 := text1 , Character cr.
- addConstant1 := addConstant1 + 1.
- text2 := text2 , (array2 at:index2) asString.
- index2 := index2 + 1.
- i := i + 1.
- ].
- ].
- change := change nextLink.
- ].
- "kontrola zda nam nechybi posledni znaky"
- (index1 <= (array1 size)) ifTrue:[
- [
- index1 <= (array1 size)
- ] whileTrue:[
- helperText := (array1 at:index1) asText.
- text1 := text1 , helperText.
- index1 := index1 + 1.
- ].
- ].
- (index2 <= (array2 size)) ifTrue:[
- [
- index2 <= (array2 size)
- ] whileTrue:[
- helperText := (array2 at:index2) asText.
- text2 := text2 , helperText.
- index2 := index2 + 1.
- ].
- ].
- diffHelper text1:text1.
- diffHelper text2:text2.
- diffHelper changed:changed.
- diffHelper inserted:inserted.
- diffHelper deleted:deleted.
- ^ diffHelper.
-
- "Modified: / 22-06-2010 / 21:02:50 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 24-06-2010 / 21:07:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-createArray:text1
-
- | array src line c |
- array := StringCollection new.
- src := text1 readStream.
- line := (String new: 80) writeStream.
- [ src atEnd ] whileFalse:[
- c := src next.
- line nextPut: c.
- c == Character cr ifTrue:[
- array add: line contents.
- line reset.
- ]
- ].
- line position ~~ 0 ifTrue:[
- array add: line contents
- ].
- ^array
-
- "Created: / 22-03-2010 / 14:48:27 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified (comment): / 19-07-2011 / 11:14:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!DiffCodeView2::DiffData methodsFor:'accessing'!
-
-changed
-
- ^changed copy
-
- "Modified: / 02-05-2010 / 19:31:18 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 16-07-2010 / 09:35:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-changed:something
- changed := something.
-!
-
-deleted
- ^ deleted
-!
-
-deleted:something
- deleted := something.
-!
-
-inserted
- ^ inserted
-!
-
-inserted:something
- inserted := something.
-!
-
-text1
- ^ text1
-!
-
-text1:something
- text1 := something.
-!
-
-text2
- ^ text2
-!
-
-text2:something
- text2 := something.
-! !
-
!DiffCodeView2 class methodsFor:'documentation'!
version_CVS
@@ -345,5 +117,5 @@
!
version_SVN
- ^ '$Id: Tools__DiffCodeView2.st 7854 2012-01-30 17:49:41Z vranyj1 $'
-! !
\ No newline at end of file
+ ^ '$Id: Tools__DiffCodeView2.st 7925 2012-03-16 17:08:17Z vranyj1 $'
+! !