Commit Graph

201 Commits (c91af5ae498d9562cca7d91dd3afde58f7a868ad)

Author SHA1 Message Date
Michael Telatynski 93ecc9839b Fix linty failures 2019-10-22 13:49:02 +01:00
Tulir Asokan 75bcc3f849
Update src/editor/deserialize.js
Co-Authored-By: Bruno Windels <bruno@windels.cloud>
2019-10-18 19:58:55 +03:00
Tulir Asokan a95f7be22d Persist list indexes when editing
Signed-off-by: Tulir Asokan <tulir@maunium.net>
2019-10-13 14:31:32 +03:00
Tulir Asokan 29367766fd Fix "decend" typo
Signed-off-by: Tulir Asokan <tulir@maunium.net>
2019-10-13 14:31:32 +03:00
Tulir Asokan a160bdf4df Persist code block language when editing
Signed-off-by: Tulir Asokan <tulir@maunium.net>
2019-10-13 14:31:32 +03:00
Bruno Windels 905aa81bf8 safeguard if the offsetnode is null when determining caret position 2019-10-10 16:39:41 +02:00
Travis Ralston fc66e69c02 Rename RoomPermalinkCreator -> Permalinks due to scope
The file handles more than just a RoomPermalinkCreator, so we should name it accordingly.
2019-09-30 20:39:58 -06:00
Travis Ralston ce0a534db1 Fix pills for CIDER too 2019-09-30 20:37:24 -06:00
Bruno Windels 4933b9b050
Merge pull request #3468 from matrix-org/bwindels/cider-autocomplete-fixes
Fix: when using autocomplete, ensure command is not sent as text, and @room notifs gets needed suffix
2019-09-23 13:57:07 +00:00
Bruno Windels 04720db2a3 don't append extra newline after blockquote anymore
now that P prepends newline when not first element
2019-09-23 15:33:30 +02:00
Bruno Windels 2445421270 add extra newline before P tags (when not first node) 2019-09-23 15:06:22 +02:00
Bruno Windels 0a663398ed Use underscore for <em> when doing html > md
to be consistent with the format bar, which also uses underscores for italics
2019-09-23 14:59:53 +02:00
Bruno Windels 40f7fa8f94 add suffixes from provider to room and @room completions
this prevents the @room not working when not typing an extra space
2019-09-23 14:40:41 +02:00
Bruno Windels 228905bec2 insert command completion as command part (instead of plain)
this prevents the command being sent as plain text

this adds a `type` property to completions to decide which
parts should be inserted into the composer, hence deciding how
they will be rendered.
2019-09-23 14:39:19 +02:00
Bruno Windels 26bd694c6a support toggling inline formatting 2019-09-06 16:25:55 +02:00
Bruno Windels 5014b606db
Merge pull request #3391 from matrix-org/bwindels/cider-format-history
New composer: ensure undo history is persisted before applying formatting
2019-09-06 09:28:18 +00:00
Bruno Windels df4762871a
Merge pull request #3392 from matrix-org/bwindels/cider-paste-plain
New composer: fix pasting from word processors
2019-09-06 09:22:37 +00:00
Bruno Windels 6b104f6344
Merge pull request #3393 from matrix-org/bwindels/cider-fix-lastcaret
New composer: fix needing to push arrow-up twice after sending first message after switching to a room
2019-09-06 09:22:10 +00:00
Bruno Windels 9dac91a70d ensure step before formatting is persisted in undo history 2019-09-06 11:20:24 +02:00
Bruno Windels 0252c7ae37 force pasting as plain text in new composer 2019-09-06 11:10:41 +02:00
Bruno Windels 2596281a7c update last caret from update callback instead of input event
many editor updates are not caused by an input event, so
the last caret wasn't always up to date.

Updating the caret from the update callback ensures that every
time the editor contents is changed, the last caret is updated.
2019-09-06 11:09:01 +02:00
Bruno Windels 02681d50b9
Merge pull request #3386 from matrix-org/bwindels/cider-formatbar
New composer: show format bar on selection
2019-09-06 08:38:01 +00:00
Bruno Windels d2949babcd copyright is solely assigned to matrix foundation now, copy paste error 2019-09-06 10:29:12 +02:00
Bruno Windels 124b7135cd make sure the update callback gets a caret when calling reset 2019-09-05 17:54:08 +02:00
Bruno Windels 2ea556e0b4 support update callback setting selection instead of caret 2019-09-04 16:40:34 +02:00
Bruno Windels 037ac29c57 be more forgiving with offset that don't have atNodeEnd=true
if index is not found, it means the last position should be returned
if there is any.

We still return -1 for empty documents, as index should always point
to a valid part if positive.
2019-09-04 16:40:34 +02:00
Bruno Windels 42c37d8293 fixup: improve quote and code block newline handling 2019-09-04 16:40:34 +02:00
Bruno Windels e0668e8517 improve algorithm to reduce selection to text node + charactar offset
this follows the documentation of {focus|anchor}{Offset|Node} better
and was causing problems for creating ranges from the document selection
when doing ctrl+A in firefox as the anchorNode/Offset was expressed
as childNodes from the editor root.
2019-09-04 16:40:34 +02:00
Bruno Windels 4691108a16 only increase offset if caret hasn't been found yet
also rename caret away as this isn't used for the caret solely anymore
2019-09-04 16:40:34 +02:00
Bruno Windels 7a01d1407f make _replaceRange internal only 2019-09-04 16:40:34 +02:00
Bruno Windels 6e694c113a add support for inline/block code formatting 2019-09-04 16:40:34 +02:00
Bruno Windels b35a3531bb move quote formatting out of react component 2019-09-04 16:40:34 +02:00
Bruno Windels b72d1a78ec move inline formatting code out of react component 2019-09-04 16:40:34 +02:00
Bruno Windels 47d8d86bbe whitespace (in model) 2019-09-04 16:40:23 +02:00
Bruno Windels c15dfc3c05 make Range start and end public 2019-09-04 16:38:42 +02:00
Bruno Windels 77b14beb1f add getter for intersecting parts of range, and total length
we'll need this when replacing selection, to preserve
newlines, etc ... in the selected range (e.g. we can't just
use range.text).
2019-09-04 16:35:03 +02:00
Bruno Windels 48f1bf1816 sort positions in Range constructor, so start always comes before end 2019-09-04 16:35:03 +02:00
Bruno Windels 4575aaa9f6
Merge pull request #3382 from matrix-org/bwindels/escape-command-slash
New composer: allow escaping the first slash to not write a command
2019-09-03 16:04:23 +00:00
Bruno Windels 0d02ab59d6 allow starting a range with both positions known already
we'll need this to start a range for the selection
2019-09-03 16:00:50 +02:00
Bruno Windels eb87301855 allow getting the DocumentOffset for any node+offset, not just focusNode
we need this to get both offsets of the selection boundaries

getSelectionOffsetAndText offers the extra flexibility,
getCaretOffsetAndText keeps the old api for focusNode/focusOffset

Also did some renaming here now that it's not just for the caret anymore
2019-09-03 15:58:50 +02:00
Bruno Windels 648ae37ff4 make DocumentOffset compatible with what is returned from dom/getCaret
so we can return a DocumentOffset from there without breakage
2019-09-03 15:58:05 +02:00
Bruno Windels 712c3e5450 allow escaping the first slash to not write a command 2019-09-02 17:53:14 +02:00
Bruno Windels 6a0842d1ab
Merge pull request #3379 from matrix-org/bwindels/cider-deserialize-headers
Message editing: deserialize headers from html back to markdown
2019-09-02 14:58:54 +00:00
Bruno Windels c4d7df768d
Merge pull request #3375 from matrix-org/bwindels/cider-colononmention
New composer: share user pill postfix between autocomplete and insert mention
2019-09-02 14:58:23 +00:00
Bruno Windels 5b54cf566d deserialize headers from html back to markdown 2019-09-02 16:23:56 +02:00
Bruno Windels 2683627a82 disable spell check for pills in the new composer 2019-09-02 14:26:15 +02:00
Bruno Windels c595371845 share user pill postfix between autocomplete and insert mention
where we decide to add a colon only if the composer is empty
2019-09-02 14:06:30 +02:00
Bruno Windels 4329d8c4ef
Merge pull request #3372 from matrix-org/bwindels/fix-command-tab-complete
New composer: fix tab-complete in commands
2019-09-02 11:38:13 +00:00
Bruno Windels 00d81eece9 don't accept @/#/: as part of command, allow to create pill candidate
so if you type these 3 characters, you get the correct autocomplete
2019-09-02 11:26:20 +02:00
Bruno Windels a4376a76f0 only pass keyboard to autocomplete when it has selections
otherwise if tab is pressed, try to tab complete the last word
2019-09-02 11:25:29 +02:00