Commit Graph

76 Commits (a35c9ea5853820e1d97c58a84b796bce0c7f390d)

Author SHA1 Message Date
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
Bruno Windels 8c0b8ff618 take part length into account as well 2019-05-24 15:43:55 +02:00
Bruno Windels 9d6a818591
Merge pull request #3024 from matrix-org/bwindels/autocomplete-tab
Message editing: tab completion
2019-05-24 13:29:10 +00:00
Bruno Windels cf5e4d3d94 make consecutive :/@/# separate pill candidates
e.g. accept the first character always to start the autocompletion
but after that refer to the plainpart logic to split up in
new pill candidates. Also, don't allow merging adjacent parts.

This makes sure that "@nonmatchingfoo @someuser"
only matches "someuser" in the autocomplete.
2019-05-24 12:38:19 +02:00
Bruno Windels a024fd8991 port tab completion from MessageComposerInput 2019-05-24 12:38:01 +02:00
Bruno Windels 23465c696f dont jump to next part when inserting at *start* of uneditable part 2019-05-24 10:08:47 +02:00
Bruno Windels 723086e4d7 Decend into P & DIV elements while parsing a message.
Also split on newline so all newlines are represented by a newlinepart
2019-05-22 16:19:07 +02:00
Bruno Windels 5f5a2f7140 put code block on new line 2019-05-22 16:19:07 +02:00
Bruno Windels 53b6586986 re-apply markdown when saving a message 2019-05-22 16:19:07 +02:00
Bruno Windels 5373007301 initial attempt at converting html back to markdown 2019-05-22 16:18:35 +02:00
Bruno Windels ff61376c07
Merge pull request #3004 from matrix-org/bwindels/update-link-previews-after-edit
Message editing: update link previews after editing
2019-05-22 14:17:34 +00:00
Bruno Windels 6b1134bdf0 add matrix foundation copyright header 2019-05-22 16:16:32 +02:00
Bruno Windels fb03b5b168 fix lint 2019-05-21 13:49:43 +02:00
Bruno Windels a75c948e2e don't cache DRP 2019-05-21 12:24:12 +02:00
Bruno Windels 5d184b3f77 reuse mx_Pill styles for editor pills to avoid style duplication
the avatar style code is still different though,
as it's implemented differently

This also prevents updating the css variables when not needed,
which caused the avatar to flicker when updating the editor.
2019-05-21 12:19:35 +02:00
Bruno Windels df4f380082 find room by alias in room pill 2019-05-20 15:34:15 +02:00
Bruno Windels 0e98b124ac undo thinko of passing current room as pill room 2019-05-20 15:33:54 +02:00
Bruno Windels c1b2f3dce1 make user pill avatars work in editor 2019-05-20 14:21:25 +02:00
Bruno Windels 3b598a1782 set pill avatar through css variables to set on psuedo-element
this way it won't interfere with editor selection/caret
2019-05-20 10:28:26 +02:00
Bruno Windels 710338c01f pass member and room to editor pills to get avatar url 2019-05-20 10:28:26 +02:00
Bruno Windels 690ee63bb4 prevent zero-length removals from deleting uneditable parts
This solves an issue where, when backspacing the proceeding character next to a pill,
chrome reports the caret as being in the pill node, not at
the start of the proceeding text node. This would cause the pill
to be removed together with proceeding character.

This is a bug in any case, removing 0 characters
shouldn't remove the part
2019-05-16 19:14:24 +01:00
Bruno Windels 245f48a22c set caret on mount as we usually do, so FF doesn't enter 2 newlines 🤯 2019-05-16 18:39:20 +01:00
Bruno Windels 98e033a529 don't allow newline parts of longer than one newline 2019-05-16 18:13:48 +01:00
Bruno Windels f27607a74c don't put cursor position in NewlinePart after adding it
You can't append to it anyway, so mark it uneditable and skip
uneditable parts if that's where an edit ended up.

This has the added advantage that if there is text after a newly
insert pill, the cursor will be put just before it rather than
in the pill, after the last character.
2019-05-16 17:58:22 +01:00
Bruno Windels 5805a88ab9 adjust to js-sdk changes of marking original event as replaced 2019-05-15 11:54:26 +01:00
Bruno Windels d83e278f6b PR feedback, cleanup 2019-05-15 09:46:08 +01:00
Bruno Windels fd31e793d1 fix lint 2019-05-14 15:49:53 +01:00
Bruno Windels e2388afb51 consistent naming between serialize and deserialize modules 2019-05-14 15:39:24 +01:00
Bruno Windels 34dbe5f314 add newline parts for text messages as well 2019-05-14 15:38:16 +01:00
Bruno Windels 3abdf6b100 also serialize to text and method to tell us if we need html for model 2019-05-14 15:38:16 +01:00
Bruno Windels 2fbe73e658 draft of formatting 2019-05-14 15:38:16 +01:00