Commit graph appflowy-editor/test
Author SHA1 Message Date
Lucas.Xu
dd59eb5210
feat: implement delta diff and provide external values (#444)
* feat: support diff funciton in delta

* feat: support diff funciton in delta
2023-09-11 11:29:25 +08:00
Mohammad Zolfaghari
b429ae6b96
fix: better column resize performance (#434)
* fix: table padding when it gets scrolled

The handler was getting out of region when table width was wider
than editor size.

* fix: modify scroll view padding

* fix: better column resize performance
2023-09-01 10:48:13 +08:00
Lucas.Xu
f205f8040a
fix: table block bugs (#431)
* fix: resizing the table won't send transaction

* fix: lost selection after inserting table block

* fix: test

* refactor: don't pass editorState to TableNode

pass only transaction to methods directly.

* refactor: reduce extra transactions

* fix: mitigate Appflowy transaction adapter problem

With current transaction adapter in Appflowy which creates `BlockActionPB`
for `documentService` (backend). Its not possible to have multiple
`InsertOperation`s separately as a single transaction (multiple
`transaction.insertNode()`). The `BlockActionPB` creator (`toBlockAction`)
can't figure out the `prevId` (previous node of inserting node id), The
first insert operations shifts all next nodes path.
Because of this situation we decided to apply the insert operations one by
one.

* fix: table actions keep selection

* fix: on add col|row respect row|col bg color

* refactor: moving cell related keys to TableCellBlockKeys

* style: dart format

---------

Co-authored-by: Mohammad Zolfaghari <zidom72@gmail.com>
2023-08-31 10:35:23 +08:00
Mayur Mahajan
7a03439c82
feat: toggle highlight using ctrl/cmd + shift + h (#333)
* feat: add highlight command shortcut

* feat: toggle highlight in markdown commands

* refactor: customizable highlight color

* feat: taking color from editor page
2023-08-29 15:25:08 +08:00
Mohammad Zolfaghari
dd52ce6718
feat: table plugin (#62)
* feat: table plugin requisites

* feat: moved table plugin to appflowy-editor

* fix: flutter analyze

* fix: dont use nested maps in node attributes

rust backend (flowy-document) doesn't support it.

* feat: add table to appflowy editor default selection menu

* feat table markdown encoder

* refactor: apply @Xazin review suggestions

* refactor: merge main and fix color picker conflicts

* feat: table markdown decoder

* fix: use specific backgroun generator for table

* feat: table plugin

* style: adapt new structure

* fix: table columns border height

* fix: adapt new style key commands

* fix: remove table context menu

* test: adapt to main branch changes

* fix: backspace handling regarding table

* fix: flutter analyze

* fix: enter when table cell is bullet list

* fix: selection bug on large table

* feat: row/col action menu

* fix: row action handler positioning

* refactor: merge row and col handler widget

* refactor: add size and color to handler icon

* style(merge): merge main

* feat: added padding and action wrapper

* feat: enable customizing icons and etc

* feat: table menu builder

* fix: table getBlockRect

* refactor: table action button design

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-08-29 15:24:25 +08:00
Mohammad Zolfaghari
e2fc87f892
fix: exception on prev node text direction null (#404)
* feat: default text direction property

Introduced default text direction property on editor style. which
accepts rtl|ltr|auto for controlling default fallback direction.
Before this we had something controlled by Directionality but it
had two problems:
1. It didn't accept auto text direction. We had to introduce our
own Directionality component.
2. Directionality also affects layout direction, for example
setting Directionality to RTL will cause the handlers and other
things move to right side of the screen. While this is good but
there are cases which we don't want to change whole layout direction
but only the text default direction to for example auto.

* fix: flutter analyze

* fix: exception on prev node text direction null

The code was throwing excenption on changing current node text
direction to auto when the previous node had text direction attribute
with null value.
Also changed to only use direct previous node text direction and
direct parent for inheriting text direction when the current node
text direction is auto and undeterminable (e.g. empty text).
2023-08-29 15:20:50 +08:00
Ali Hassan
72d6c52f25
fix: html encoder not adding multiple text decorations (#424)
* fix: html encoder not adding multiple text decorations

* fix: html encoder with multiple attributes more test added
2023-08-29 15:02:01 +08:00
Mohammad Zolfaghari
9105812cbc
feat: default text direction property (#402)
* feat: default text direction property

Introduced default text direction property on editor style. which
accepts rtl|ltr|auto for controlling default fallback direction.
Before this we had something controlled by Directionality but it
had two problems:
1. It didn't accept auto text direction. We had to introduce our
own Directionality component.
2. Directionality also affects layout direction, for example
setting Directionality to RTL will cause the handlers and other
things move to right side of the screen. While this is good but
there are cases which we don't want to change whole layout direction
but only the text default direction to for example auto.

* fix: flutter analyze

* fix: bugfix on auto as default text direction

* docs: make documentation clear
2023-08-28 17:13:04 +08:00
Mukund Tandon
5a0a6fa5e0
fix: fixed the cursor not moving to next line after inserting divider (#371)
* fix: fixed the cursor not moving to next line after inserting divider

* test: added test

* fix: fixed failing checks

* fix: fixed issues from code review

* refactor: removed the use of depriciated function
2023-08-28 17:11:58 +08:00
Mayur Mahajan
e38b07d13b
fix: replace matches on the same node (#418)
* test: failing test for expected behavior

* test: fix test by removing enter

* fix: replace all fixed

* chore: remove unused code

* test: replace selected called multiple times

* chore: remove unused variable
2023-08-28 11:02:41 +08:00
Lucas.Xu
a9af2bbd37
fix: rect of the divider block is incorrect (#415)
* fix: rect of the divider block is incorrect

* fix: only show the context menu when the gesture hit the selection area

* chore: change image upload widget UI

* fix: context menu test
2023-08-25 18:02:24 +08:00
Lucas.Xu
1922e56903
feat: migrate copy paste command from AppFlowy (#413) 2023-08-25 15:58:33 +08:00
Mukund Tandon
687af49f63
feat: added support for custom parser for markdown to document (#403) 2023-08-25 15:58:22 +08:00
APPFLOWY\tsuiy
790d3fda53 feat: improve CJK IME support 2023-08-25 14:56:28 +08:00
Lucas.Xu
28c5adf0f9 feat: add support for context menu items to the editor 2023-08-24 19:17:13 +08:00
Johan Sutrisno
5e78abc36f
feat: skip whitespace between words while navigating with CTRL+ARROW keys (#363)
* feat: skip whitespace between words while navigating with CTRL+ARROW keys

* refactor: testing for arrow keys handler

* refactor: testing for arrow keys handler

* refactor: refactor var to final

* test: Presses arrow left/right/up/down + meta in not collapsed and forward selection except macos

* refactor: refactor test alt+arrow up

* refactor: refactor test alt+arrow down

* refactor: resolve suggestion of code

* refactor: resolve suggestion of code

* refactor: resolve suggestion of code

---------

Co-authored-by: Johan Sutrisno <johan@zero-one-group.com>
2023-08-21 11:47:07 +08:00
Mathias Mogensen
2eb801e7f5
feat: double hyphen to em dash (#395)
* feat: double hyphen to em dash

* chore: fix tests

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-08-21 11:46:45 +08:00
MayurSMahajan
de779ab87a test: open link command 2023-08-21 10:43:06 +08:00
MayurSMahajan
807a8dfb96 refactor: show link command test 2023-08-21 10:43:06 +08:00
Lucas.Xu
378ff75a97 fix: test error 2023-08-17 13:49:51 +08:00
Mathias Mogensen
2dabbebb43 test: improve coverage of link mobile toolbar item 2023-08-17 13:13:45 +08:00
Mathias Mogensen
52486cc6a3 test: improve coverage 2023-08-17 13:13:45 +08:00
Mathias Mogensen
c38fe1625d test: mobile selection gesture 2023-08-17 13:13:45 +08:00
Mathias Mogensen
0bad8d67d1 test: improve coverage for editor_style 2023-08-17 13:13:45 +08:00
Mathias Mogensen
daab208f54 test: clean slash_command.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
027bcdff71 test: improve coverage for auto scroller 2023-08-17 13:13:45 +08:00
Mathias Mogensen
afa06095b0 test: improve coverage for renderer/ 2023-08-17 13:13:45 +08:00
Mathias Mogensen
999ec073cd chore: fix deprecation warnings 2023-08-17 13:13:45 +08:00
Mathias Mogensen
b79aded8bb test: improve coverage for delta input 2023-08-17 13:13:45 +08:00
Mathias Mogensen
9eb60cc6aa test: improve coverage of editor/block_component/ 2023-08-17 13:13:45 +08:00
Mathias Mogensen
7c19368334 test: improve coverage of transaction.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
639ebf1415 test: improve coverage of operations.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
a564c10e87 chore: deprecate Selection.collapse + coverage for selection.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
29d7ace457 test: coverage for position.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
36d6c779be test: coverage for text_delta.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
668feddf56 test: doc node.dart and coverage path.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
b2f6c9c206 test: increase coverage for document.dart 2023-08-17 13:13:45 +08:00
Lucas.Xu
016e141f51 fix: import single line delta failed 2023-08-17 13:09:34 +08:00
Lucas.Xu
cf14e0de08 feat: paste from html 2023-08-17 13:08:19 +08:00
Lucas.Xu
5df1d3ab35 fix: link is not auto formatted 2023-08-13 18:14:58 +08:00
Mayur Mahajan
f5c6dc2ce7
feat: find dialog 1760 (#106)
* feat: make find menu widget

* feat: service for find menu

* feat: add find menu shortcut event

* feat: create a search service

* docs: explain search service

* fix: unhighlight method takes searched word

* fix: unhighlight before each search

* feat: navigate between matches

* feat: forget highlighting from undo stack

* feat: replace logic and ui

* feat: replace shortcut handler and widget

* test: find functionality

* test: replace menu tests

* refactor: separate class for search algo

* refactor: suggested changes

* refactor: remove unhighlight method

* feat: add find highlight color

* refactor: name of the search algo class

* test: unit tests for search algorithm

* chore: simplify syntax

* test: renamed test group

* refactor: move to editor

* refactor: add shortcut for find

* refactor: use new api

* refactor: add abstrac class search algo

* fix: avoid multiple instances of find dialog

* refactor: xazin's suggestions

* chore: separately build input decor

* test: search algorithm

* chore: unhighlight properly

* refactor: replace handler

* refactor: move tests into new

* test: find menu widget test

* test: replace menu

* fix: localizations + resolve scroll bug partially

* fix: without update selection on highlight

* fix: do not select words when highlighting

* test: update expected selection

* fix: matches and styling

* feat: separate attribute for highlighting

* feat: unique color for selected match

* test: unique color for selected match

* refactor: cleaning the code

* fix: navigate to first match

* fix: tests and replace logic

---------

Co-authored-by: Mathias Mogensen <mathiasrieckm@gmail.com>
Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
2023-08-10 13:08:45 +02:00
Lucas.Xu
953249fefd
fix: lose selection after pasting (#365)
* fix: the selection area delay to update after typing enter

* fix: selection will lose after pasting
2023-08-10 15:22:43 +08:00
Mohammad Zolfaghari
2ab007415b
fix: selection menu respects current node direction (#360)
modified insertNodeAfterSelection to copy current node text direction
to the node which is going to get inserteded.

resolves #331
2023-08-08 14:56:27 +08:00
q200892907
fbc1ecdcf0
fix: desktop color picker issue 2023-08-06 11:44:33 +08:00
Mayur Mahajan
2b517b2a5b
feat: paste plaintext shortcut (#338)
* feat: shortcut for pasting plaintext

* test: paste without formatting

* chore: use text directly

* refactor: add cut command
2023-08-02 10:03:03 +08:00
Mukund Tandon
c3f62b3086
fix: fixed unresponsive behaviour of context menu items (#349)
* fix: fixed unresponsive behaviour of context menu items

* test: added test for context menu
2023-08-02 10:00:02 +08:00
Mukund Tandon
b26a2ea99f
fix: fixed the issue of code block not being exported in markdown (#347) 2023-08-01 09:56:16 +08:00
Ali Hassan
73d56b44e2
fix: copy handler migrated to latest api (#240) 2023-07-25 10:08:18 +08:00
Mukund Tandon
d77ff1b2ac
fix: fixed numbered list being treated as a paragraph (#335) 2023-07-21 15:40:52 +08:00
Lucas.Xu
1205e7b00b
fix: unable to paste multiple lines (#332) 2023-07-20 18:03:49 +08:00