Christian Williams
b7afcff62a
Merge branch 'dmrewrite' of ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor into dmrewrite
2012-05-18 15:20:01 -07:00
Christian Williams
6d15028c68
Making showCursor work again!
...
Change-Id: I97e1570ffba368e570b69085daa2798b8b2725f9
2012-05-18 15:19:31 -07:00
Rob Moen
f19c5917f2
remove hasChildren method as I was using it to debug something on
...
previous commit. change traverseLeafNode test name to follow
ve2 test naming scheme
Change-Id: I8b953e3405f42cd58a80da676ac9b16d64f5e72d
2012-05-18 14:11:23 -07:00
Rob Moen
e4a7a36761
Merge branch 'dmrewrite' of ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor into dmrewrite
2012-05-18 13:48:03 -07:00
Rob Moen
62959bec7a
ported traverseLeafNodes and tests to new dm
...
Change-Id: I98487267d6e3efc9e0c07a02b3d5acc8f8cdb4c6
2012-05-18 13:47:14 -07:00
Inez Korczynski
19a02f3798
Disable objectResizing and inlineTableEditing within execCommand
...
Change-Id: I06406bfd56e01e72b157fd8cb50da8d6173edc25
2012-05-18 11:40:22 -07:00
Inez Korczynski
32c2366dca
Logic for adding 'slugs' before, after and between nodes in certain cases
...
Change-Id: I91a1c58bdb7819503a9eb24221d6a358c804b57e
2012-05-18 11:34:07 -07:00
Trevor Parscal
4dd9a143ae
Added newFromAttributeChange and newFromAnnotation
...
Change-Id: I1e85ccee3fa1591867fea52359508bfa99bad7df
2012-05-17 15:17:17 -07:00
Trevor Parscal
445006d4a8
Made tests a bit stricter before iterating over annotations
...
Change-Id: I7c7f11395cfb4ad392bad9380119b647c0c1b629
2012-05-17 14:58:01 -07:00
Trevor Parscal
43d62ee8a7
Refactored getMatchingAnnotations and it's tests, and added offsetContainsMatchingAnnotations
...
Change-Id: I9098ef8d9c7f3a4f5db112cfdcb9edb7ffd17b80
2012-05-17 14:37:29 -07:00
Rob Moen
a937ad22f7
Fix getAnnotatedRange to return propper contained range.
...
Fixed tests
Change-Id: I305eb81644fb3c804455b4fc13bdabcce97ea471
2012-05-17 13:17:18 -07:00
Trevor Parscal
24c35b853f
Whitespace fixes
...
Change-Id: I691c4e16cf22de8dce0858cdcad522d1f6cfef72
2012-05-17 11:27:25 -07:00
Trevor Parscal
08765feab3
Merged ve.dm.DocumentFragment and ve.dm.Document
...
* Also fixed lots of whitespace issues and some global variable introductions
Change-Id: Ia6c82ef0c3b5c4938cf72afa86da6d79e4cb385a
2012-05-17 11:23:56 -07:00
Trevor Parscal
e8f15204e5
Added skeletons for transaction builders
...
Change-Id: Iabb2707d20c8b645ffef683f9d8160911c6dc92f
2012-05-17 10:51:01 -07:00
Rob Moen
c2a89626d5
Rewrite getMatchingAnnotations to return a hashmap of matching anntations
...
in the new DM. Change method name getAnnotationRange from offset to
getAnnotatedRangeFromOffset. Write tests
Change-Id: I7028803065409e271ceced73e4803954d4a956dc
2012-05-17 10:46:27 -07:00
Trevor Parscal
58aa0e8137
Whitespace fixes and cleanup
...
Change-Id: Id2220009ed7af7e895990dd4bb373b43d6089b7b
2012-05-16 20:26:05 -07:00
Catrope
bcd7431818
Remove getScope(), no longer used
...
Change-Id: I79e067a8e6b3eb151d3ebe1dfc3aaebe242aed39
2012-05-16 20:16:47 -07:00
Catrope
80db7a593e
Rethink of structural replacement code
...
Splits and merges now work, or at least the tests for it pass
The strategy I used is to gather the affected ranges for each of the
following:
* removed stuff
* the entirety of each node touched by a non-zero removal
* if the inserted data busts out of its parent, the entirety of that
parent node (the 'scope')
then get the covering range of all those ranges, and rebuild that.
Change-Id: I7c3b421abc0ba134157ac8b59042675bb1b5073c
2012-05-16 16:48:02 -07:00
Catrope
5e4f0293f2
Add ve.Range.coveringRange()
...
Change-Id: Ifd9932d7a9f9dae2354fa7aa75cee2e3e639ef42
2012-05-16 16:48:02 -07:00
Catrope
6f4b68274d
Rename removeLevel to insertLevel
...
Change-Id: I339c830547d19af0b04927e1ebccd0468c9e2a20
2012-05-16 16:48:02 -07:00
Rob Moen
fbaea888b9
Rewrite data model methods needed for ui tools
...
getAnnotationRangeFromOffset and offsetContainsAnnotation
which deprecated getAnnotationBoundaries, and getIndexOfAnnotation
write unit tests for proof
Change-Id: I6c0d4e3ca96dd569b1909cd22fce68c3a6fe382c
2012-05-16 15:55:01 -07:00
Catrope
d6cf4fff7f
Add comment about bug that makes tests accidentally pass
...
Change-Id: I842ffe00bdad025797f9c71f550efd24d2ce39da
2012-05-14 23:16:28 -07:00
Catrope
7e1aa2336e
Support splitting nodes in replace tree sync
...
This means inserting things like </p><p> are now synced correctly and
split the paragraph in the model tree. Merges (removing e.g. </p><p>)
aren't supported yet.
Also, this needs tests, Trevor tells me he's working on porting replace
tests from the old ve/ directory
Change-Id: Ic5050849d7d007a1696dc36548654979aedb53a8
2012-05-14 21:46:39 -07:00
Catrope
59f74de3b8
Fix bug causing replacement tree sync to adjust the wrong node
...
The tree sync for content replacements was adjusting the parent of the
text node affected, rather than the text node itself. This was because
it called getNodeFromOffset(), which returns branch nodes. Switched it
to use selectNodes() in leaves mode
Change-Id: I50a9be18151a1b75815ab19b787b16b6be385bf9
2012-05-14 21:42:53 -07:00
Catrope
2008858830
Fix bug in selectNodes: input (0,0) returned []
...
This was because the while loop was never entered as end >= left was
true from the start. Convert the while loop to a do-while loop to make
sure it runs at least once
Change-Id: I9c6436a7b296e65a36b8301095b6edd00507d321
2012-05-14 21:41:08 -07:00
Trevor Parscal
e28a1a188a
Fixes typo, need to check if object is empty, not if it's an object
...
Related to: 14a4c7b780
Change-Id: Iede66d1e01ed010705362611e90fb4b13e7e4a1c
2012-05-14 17:22:37 -07:00
Trevor Parscal
14a4c7b780
Fixed annotation processing to support leaf nodes and detect more errors
...
Also added lots of tests
Change-Id: I45fe4fb569d9050d7d79f71f777d82f5b34fdd11
2012-05-14 17:16:30 -07:00
Trevor Parscal
94613589e0
Removed more trailing whitespace in multi-line comment blocks
...
Continues cleanup work done in e0de881a8a
Change-Id: I7165a8f8c4b468793d936fe695de92335c106271
2012-05-14 17:16:30 -07:00
Rob Moen
68414e4d28
give array bulider loop better names
...
Change-Id: I67f5b89b3e58f052c197732a1298c60ec6b8fd89
2012-05-14 16:48:10 -07:00
Rob Moen
ca48a4a8a1
Merge branch 'dmrewrite' of ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor into dmrewrite
2012-05-14 16:44:08 -07:00
Rob Moen
d2fc95fa52
Optimize getAnnotationsFrom dramatically by less object manipulation
...
Now returning an empty array when a non annotated character is found
in the range. No longer looping through each annotation, simply
comparing to previous characters annotations and trimming differences.
Write additional test.
Change-Id: I41d2422a931a74325693edca409aed6d5da20ba8
2012-05-14 16:40:49 -07:00
Catrope
5b398f95f8
Fix botched rename: opReplacement -> opInsert
...
Change-Id: I34091dbbc9a46466823ee7407f151fd67112ee03
2012-05-14 15:12:44 -07:00
Trevor Parscal
e0de881a8a
Removed trailing whitespace in multi-line comment blocks
...
JSHint and various git tools complain about this, so let's just do away with them altogether
Change-Id: I731866bd21f1ee0088fb0a71df3abf92692aca23
2012-05-14 15:05:09 -07:00
Trevor Parscal
03be3c0668
Removed debugger statement from 5b9a2645a6
...
Change-Id: I047b0c89a7420a86b9350a8d0c0fc8aec695227f
2012-05-14 14:34:50 -07:00
Rob Moen
17b58db5c6
Optimize getAnnotationsFromOffset with ve.getObjectValues
...
Change-Id: I2150335b6f0fa305c1d1bc93e50d30d874c76345
2012-05-14 11:34:08 -07:00
Trevor Parscal
f40e4f2f9d
Added ve.getObjectValues
...
Could maybe be optimized with map or something?
Change-Id: I033804e893bfa93f991dee9efefaa2c2d1740627
2012-05-14 11:31:18 -07:00
Trevor Parscal
d7febe6009
Merge branch 'dmrewrite' of ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor into dmrewrite
2012-05-14 11:15:02 -07:00
Trevor Parscal
1363e7ff89
Added ve.getObjectKeys which falls back to Object.keys if present
...
Change-Id: I9eedf93239b22497fe6fe6497e20b1fe0525de9c
2012-05-14 11:14:54 -07:00
Rob Moen
b8302c715f
Rewrite getAnnotationsFromOffset to work with new Linear Model.
...
Properly init variables in getAnnotationsFromRange
Polish up tests.
Change-Id: Idc231998ce27e3a1c64363e862da22c837ea2ca2
2012-05-14 10:47:48 -07:00
Rob Moen
bd9a0b6fba
Rewrite DocumentFragment getAnnotationsFromRange method
...
Write unit tests for getAnnotationsFromRange
Change-Id: I82ff15e97378c07e5c555a72231da4161a72993c
2012-05-11 16:14:46 -07:00
Catrope
5b9a2645a6
Port getScope() from the old VE code and add tests for it
...
Change-Id: I8c34fed919e60fa1b8cb6a13cb9ca98f3e695421
2012-05-11 16:03:46 -07:00
Catrope
43c2393c03
Remove outdated comment
...
Change-Id: I3a5db50aafa01d07bfb34359dfbe73812b3a7ab5
2012-05-11 16:03:46 -07:00
Trevor Parscal
db0e050b39
Renamed uses of "replacement" to "insert"
...
Change-Id: I69ad0f84e8fefe1715339068b7685958f8f8546f
2012-05-11 15:25:01 -07:00
Christian Williams
13f26682da
Removing data from annotations when empty, more tests for HTMLConverter
...
Change-Id: I3c3e234e9392e4afdcb4c8bc748aaa74a1fb30ca
2012-05-11 14:07:20 -07:00
Trevor Parscal
9cdfb84f9b
Added tests to getRelativeContentOffset
...
Also fixed a typo in the implementation
Change-Id: I86855795009e34d42a3a5857addc5ccb6366130f
2012-05-11 12:14:29 -07:00
Rob Moen
469a55bde4
Merge branch 'dmrewrite' of ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor into dmrewrite
2012-05-11 10:31:12 -07:00
Rob Moen
ced54d06a9
Write better test for DocumentFragment getAnnotationsFromOffset
...
Fix errors in example test data
Remove whitespace
Change-Id: Ibb2b5c0851d6abac9974035753b95354b3c8dd5e
2012-05-11 10:29:09 -07:00
Catrope
ca17ea0943
Port structural replace code from the old VE code
...
This makes TransactionProcessor work for regular replacements, as well
as insertions and deletions of self-contained pieces of data. This does
NOT yet work for inserting and deleting unbalanced data
(splitting/merging nodes).
I've tested this from the console for insertions and deletions and
simple replacements, but I haven't tested wrappings. We should write a
bunch of unit tests for this some time :)
Change-Id: Ic2fd75d1cf2e127bc9ae58debce67576be2c912f
2012-05-10 20:20:42 -07:00
Catrope
3cc22b00cb
Use index and indexFromNode (from selectNodes()) in DocumentSynchronizer
...
This makes insertions work (using indexFromNode), and eliminates the
indexOf() call (using index)
Change-Id: Ibfa77353af99534edc324c0e314c8b95c5136d8b
2012-05-10 20:20:42 -07:00
Catrope
6652f7573b
Add indexInNode to selectNodes() output
...
This is for the case where we have a zero-length range in between two
siblings, and we need to know what index that corresponds to in order to
be able to insert nodes there (rebuildNodes() will use it for this
purpose)
Change-Id: I357d1cd665667a76f955a10b8d9d2810976cdbd7
2012-05-10 20:20:42 -07:00