Commit graph appflowy-editor/lib/src/editor
Author SHA1 Message Date
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
cda17c7b94
feat: editor state update node (#405)
* 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).

* feat: editor state update node

Use update node when the purpose is only adding new attribute to
node. format node causes extra unnessesary delete operation.
2023-08-29 15:21:38 +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
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
Lucas.Xu
efba5ae5d3 feat: refactor floating toolbar positioning logic 2023-08-28 16:16:02 +08:00
Lucas.Xu
3a790e2f42 fix: update resizable image width calculation with minimum width constraint 2023-08-28 15:09:05 +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
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
Lucas.Xu
f4db21c367 fix: refactor _onSelectionChange method to update _showPlaceholder state more efficiently 2023-08-23 10:33:36 +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
Sean Riley Hawkins
1f2668c18a
fix: add variable to hold editor selection for colour menu (#400)
* fix: add variable to hold selection

* fix: keep the selection area when editing color

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-08-21 11:46:04 +08:00
MayurSMahajan
22b56130e8 refactor: show link menu command 2023-08-21 10:43:06 +08:00
MayurSMahajan
52231f885f feat: open link command 2023-08-21 10:43:06 +08:00
Mathias Mogensen
61be737fe2
fix: placeholder on paragraph when selected (#390)
* fix: placeholder on paragraph when selected

Closes: #380

* fix: review comment
2023-08-17 09:45:28 +02:00
Lucas.Xu
56474e8bd9 fix: revert the customSlashCommand function 2023-08-17 14:07:19 +08:00
Lucas.Xu
378ff75a97 fix: test error 2023-08-17 13:49:51 +08:00
Mathias Mogensen
0d4a00a848 chore: remove highlight toolbar item (unused) 2023-08-17 13:13:45 +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
f8632b68bf test: remove toolbarService getter from editorState 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
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
a564c10e87 chore: deprecate Selection.collapse + coverage for selection.dart 2023-08-17 13:13:45 +08:00
Mathias Mogensen
4daaaf0cc3 fix: execute character command on replace 2023-08-17 13:13:27 +08:00
Lucas.Xu
cf14e0de08 feat: paste from html 2023-08-17 13:08:19 +08:00
Lucas.Xu
4ccd811cda fix: link issue in the heading block 2023-08-13 16:37:21 +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
Lucas.Xu
2a8955b392 chore: format code 2023-08-08 15:09:09 +08:00
q200892907
4dd85449fd
Solve the problem of screen appearing at critical positions when there is a URL in the link menu (#346) 2023-08-08 15:05:03 +08:00
Mohammad Zolfaghari
de02b963a9
fix: show selection menu at left (#361)
When the selection rect is right half of editor show selection
menu on left.
2023-08-08 14:55:59 +08:00
Lucas.Xu
ab10257a01
fix: selection reason should be ui event when clicking (#359) 2023-08-06 12:29:08 +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
Lucas.Xu
4ba7ed3a85
chore: format code (#345) 2023-08-01 09:50:19 +08:00
Yijing Huang
212c69f1ad
feat: expose context in nodeBuilder (#350) 2023-08-01 09:49:57 +08:00
Lucas.Xu
b729aa9116
feat: support scroll without animation (#343) 2023-07-25 16:14:43 +08:00
Richard Shiue
3e99f19922
fix: improve performance on editor overlays (#336) 2023-07-25 10:33:19 +08:00
Ali Hassan
73d56b44e2
fix: copy handler migrated to latest api (#240) 2023-07-25 10:08:18 +08:00