Commit Graph

106 Commits (0b92077bba5a8dd3e2435bf2f6141e049b728f0d)

Author SHA1 Message Date
Bruno Windels 0b92077bba tests for turning caret position from model into dom position 2019-07-25 18:38:00 +02:00
Bruno Windels f8e1977f0a remove dead code 2019-07-25 14:50:20 +02:00
Bruno Windels 9bfba9db3e make PartCreator a bit more testable by not asking for deps of dep 2019-07-25 14:50:20 +02:00
Bruno Windels 419c800167 add tests for diffAtCaret 2019-07-25 14:50:20 +02:00
Bruno Windels 595dc82543 unit test + fixes + comments + simplication for diffDeletion 2019-07-25 14:50:20 +02:00
Bruno Windels 3753e5261d Implement diffing html messages in the edit history 2019-07-24 11:28:56 +02:00
Bruno Windels ee9dd8ce81 adjust jsdoc 2019-07-12 10:06:38 +02:00
Bruno Windels dedf978948 prevent inserting parts at index -1 for empty documents 2019-07-11 18:46:56 +02:00
Bruno Windels 06fb892df9 prevent autocomplete when doing bulk insertion (paste, drop text) 2019-07-11 18:46:56 +02:00
Bruno Windels f6e71b2335 turn flag into options object 2019-07-08 16:55:56 +02:00
Bruno Windels 888e4d1ec2 preserve reply fallback when editing 2019-07-08 15:25:44 +02:00
Bruno Windels 1c7af38d83
Merge pull request #3126 from matrix-org/bwindels/caret-refactoring
Editor caret improvements
2019-06-21 15:02:41 +00:00
Bruno Windels c443dd7a32 clarify why use a BOM marker for the caret nodes 2019-06-21 16:37:29 +02:00
Bruno Windels 503d702f47 take list nesting into account for indenting 2019-06-21 11:40:27 +02:00
Bruno Windels da766b8cba caretNode is a better className 2019-06-21 11:21:38 +02:00
Bruno Windels c5c987f62e use BOM marker instead of ZWS
that's what others do ...
2019-06-21 11:21:13 +02:00
Bruno Windels 366a4aa308 put zero-width spaces in caret nodes so chrome doesn't ignore them
this requires an update of the editor DOM > text & caret offset logic,
as the ZWS need to be ignored.
2019-06-20 14:44:18 +02:00
Bruno Windels f0271b593d remove special casing for moving caret after newline and pills
not needed anymore with new caret logic and having caret nodes
2019-06-19 17:42:18 +02:00
Bruno Windels a229641985 use caret nodes in caret positioning code, to move caret out of pills 2019-06-19 17:42:18 +02:00
Bruno Windels 607fc328ed also process first part when processing empty and mergeable parts
this was preventing clearing an emtpy plain part when inserting
a pill-candidate at the beginning of the model, which
prevented a caret node from being inserted before the pill.
2019-06-19 17:42:18 +02:00
Bruno Windels 75fc769742 insert "caret nodes" where pills don't have an adjacent text node
just empty spans, where the caret can be placed.
2019-06-19 17:42:18 +02:00
Bruno Windels 1db505c667 comment typo 2019-06-18 09:50:31 +02:00
Bruno Windels 3119feaa17 whitespace 2019-06-18 09:48:25 +02:00
Bruno Windels 47579f37e8 clarify why its always safe to not append @room at end while parsing 2019-06-18 08:40:58 +02:00
Bruno Windels d9e62b54fc also support deserializing at-room-pill when transferring editor state 2019-06-14 18:42:30 +02:00
Bruno Windels 78971f168f create AtRoomPill when autocomplete returns @room 2019-06-14 18:28:44 +02:00
Bruno Windels 65d56d1490 transform @room to AtRoomPill while deserializing html to md 2019-06-14 18:28:44 +02:00
Bruno Windels 63b11f5001 (de)serialize at-room-pills just like pill-candidate (no html needed) 2019-06-14 18:28:44 +02:00
Bruno Windels dfec5058c5 support creating @room pills in partcreator 2019-06-14 18:28:44 +02:00
Bruno Windels eb4ff50c3c do parts creation only in PartCreator to not scatter dependencies 2019-06-14 18:28:44 +02:00
Bruno Windels 3cfdd518ee detect emote when sending (and trim "/me " for content) 2019-06-14 11:02:20 +02:00
Bruno Windels aecfbce55c prepend "/me " to emotes when parsing them to edit 2019-06-14 11:01:52 +02:00
Bruno Windels 48f5cf1523
Merge pull request #2966 from npny/npny/autocomplete-arrow-keys
Allow arrow keys navigation in autocomplete list
2019-06-13 15:38:36 +00:00
Bruno Windels d40f49e2c2 fix lint 2019-06-12 19:09:27 +02:00
Bruno Windels 41e41269dc use EditorStateTransfer to pass on state to newly mounted editor 2019-06-12 18:52:34 +02:00
Bruno Windels e674f39e3b support (de)serializing parts with other dependencies than text 2019-06-12 18:32:32 +02:00
Pierre Boyer 8158567640 Remove left/right autocomplete navigation for MessageEditor 2019-06-05 10:49:49 +02:00
Pierre Boyer a4dec88c65 Add back on..Arrow functions. Add left/right key navigation in MessageEditor 2019-06-04 13:57:15 +02:00
Pierre Boyer ed6427571e Update src/editor/autocomplete to correctly call countCompletions and moveSelection 2019-06-04 13:24:24 +02:00
Bruno Windels 2d8c523642
Merge pull request #3040 from matrix-org/bwindels/editor-remaining-md
Fix: better HTML > MD conversion for editing, including lists and quotes
2019-05-31 09:21:43 +00:00
Bruno Windels 78fbea307c less escaping for backticks 2019-05-31 11:06:15 +02:00
Bruno Windels eb8dd52437
Merge pull request #3029 from matrix-org/bwindels/pill-n-newlines
Fix: maintain caret at current line when position is on newline part
2019-05-31 08:44:02 +00:00
Bruno Windels 686045b46a rewrite HTML>MD conversion,handle (nested) block elements&quotes better
Re-use walkDOMDepthFirst we already had for turning the editor into
a string, which also allows us to detect when leaving a node better,
which is needed to decide how block elements create newline parts
is more centralized and robust manner, more in line with
how html works (consecutive block elements break the line)
instead of hacky special casing from before.

Also, to support every line of MD generated
within a BLOCKQUOTE, the parts an element creates are returned
and then centrally prepended with "> ", instead of passing in
the parts array and doing it in every parse... function.
2019-05-29 14:46:15 +02:00
Bruno Windels b0d87e7e47 allow enterNodeCallback to decide whether to decend into a node 2019-05-29 14:27:36 +02:00
Bruno Windels 6b680ff681 fallback to setting caret on line node for empty lines
instead of setting at the end of the editor
2019-05-28 10:34:29 +02:00
Bruno Windels 4fc23022f4 remove all non-first-br nodes on new empty line, not just first one
nextSibling returned null after calling removeNode,
so get the nextSibling first
2019-05-28 10:01:16 +02:00
Bruno Windels 080a6301b1
Merge pull request #3032 from matrix-org/bwindels/filterreply
Message editing: fix reply text appearing in edit
2019-05-27 15:12:18 +00:00
Bruno Windels f5da8162c1 filter out reply text when editing 2019-05-27 17:04:26 +02:00
Aaron Raimist fec5abadd6
Message editing: preserve strikethrough as well
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-05-24 13:57:09 -05:00
Bruno Windels b2592583c4 maintain caret at current line when position is on newline part 2019-05-24 18:54:29 +02:00