Releases: Rosemoe/sora-editor
Releases · Rosemoe/sora-editor
0.10.4
0.10.3
0.10.2
0.10.1
Improvements
- Event can be intercepted separately for different receivers
- Event subscription now has a receipt for unsubscribing outside the receiver it self
- Add
MatchHelper
- Optimize multiple line deletion performance
ContentCreator
for loading text from reader or input stream- CodeEditor reuses the text object given by
setText()
by default if it is an instance ofContent
- Scrollbars are now not awaked by default when editor size changes (#150)
- Add options for problem indicators drawing parameters (#149)
Bug fix
- Fix unusual crash when editor size changes
Contributed updates
- Fixed flickering of completion window when invoked multiple times. by @tyron12233 in #148
- Separate rendering logic with the View by @tyron12233 in #151
New Contributors
- @tyron12233 made their first contribution in #148
Full Changelog: 0.10.0...0.10.1
0.10.0
0.9.3
Bug fix
- Fix wrongly positioned background for span
Improvements
- Better support for selection moving and performance in wordwrap mode
- Optional automatically scrolling when editor's height changed
- Adapte InputConnection implementation to API 31
- Parcelable and public UndoManager instance for data saving
0.9.2
Improvements
- Do not block scaling when reached max/min size
- Optional thread-safe for Content
- Optimize avoidable allocations in textmate
- Remove unnecessary Span copying in
AsyncIncrementalAnalyzeManager
- Cancellable code block analysis for
AsyncIncrementalAnalyzeManager
- Incremental language-java available
Bug fix
- Fix unability to delete line without deleteEmptyLineFast on
0.9.1
0.9.0
0.9.0
A major update for sora-editor
Improvements
- Selected text is optional to be painted in another color (set SELECTED_TEXT color to 0)
- Option for drawing whitespaces in selected region
- Scale text with focus
- Draw short background for selected empty lines
- Completion window scrolls as text scrolls
- Updated selection handle style
- Selection handle follow thumb when held
- Optimized text action popup
- Better support for ligatures
- Event system with various events
- Add check to avoid OOM when the width of view is too small to display content in wordwrap mode
- Delete empty line quickly
- Delete batch spaces by one DEL press
- Async and customizable auto-completion APIs
- Add option to remove keyboard suggestions forcibly
- Open code analysis framework
- Incremental highlighting analysis for textmate
- Thread-safe support for Content
- Control editor's IPC text length max
- Better schedule for auto-completion
- Set no completion flag for some regions
- Removable built-in components
- Improved cursor shifting for RTL natural languages
- Interrupt auto-completion threads in time
- Expose more public APIs
Bug fix
- Invalid code block lines in language-textmate
Breaking changes
Almost everything has changed. lol...
But, some IMPORTANT Tips:
- Migrate your legacy addIfNeeded() invocations directly with a colorId to a checked one generated by
TextStyle#makeStyle(...)
to specify your styles and some other attributes (such as no completion). Unless you are confident that your values are valid (for fear that the bit count for foregroundColorId can be decreased in future releases. currently is 20 bits, far from we needed). - Legacy analysis can be quickly migrated by using
SimpleAnalyzeManager
- Spans are not always stored by an internal
List<List<Span>>
. Use Reader and Modifier APIs to get access to its content, unless you are sure about the instance's implementation. - It's recommended that you use only one
Spans.Reader
and oneSpans.Modifier
at the same time. - New completion system provides nothing but the exact position to complete in text. How to do the completion is up to you.
- The
SimpleCompletionItem
can not take the place of the oldCompletionItem
- Shared data between auto-completion and analysis thread is not maintained by editor. You have to manage that by yourself
- CodeEditor adds a new method
release()
to stop completion threads and the analysis. It's recommended to invoke this method when the editor is no longer used(such as being removed from view forever or when activity ends). - Avoid use CodeEditor's protected
drawXxx()
methods, they are likely to be changed. Also, methods or fields marked by annotation@UnsupportedUserUsage
should not be used. Classes related to drawing should not be used (HwAccerelatedRenderer
andGraphicTextRow
). - EditorPopupWindow provides some useful actions to create your own window in editor with good support
- NavigationItem is removed. It should be implemented by your
Language
BlockLine
is renamed toCodeBlock
- Fields in
DirectAccessProps
can be directly modified. They are not required by editor at the time they are set. Modification takes effect the next time the actual value is accessed by editor.
Thanks to
- People who contribute to this project
- People who test the application and provide feedback
- People who star this repo
0.8.4
This includes a set of bug fixes and small improvements.
Bug fix
- Fix Textmate illegal display in some conditions (@Coyamo )
- Fix cursor animation position and add switch
- Fix composing text prevents auto-completion
- Hide completion panel when undo/redo
- Fix crash bug when click enter with the completion window shown
- Fix text style rendering on devices before Android Q (API 29)
- Fix invalid parameter passed to ContentListener#afterDelete
- Fix unreported modification in Content
- Fix text can be modified by action window when not editable
- Fix that mis-colored text is shown when modification is made but analysis is not done
- Fix error layout offset in CodeEditor#getOffset
Improvements
- Hide completion panel when undo/redo
- Magnifier will not show, when text size is big
- Color of EdgeEffect is automatically extracted from context theme's
colorPrimary
- Supports 4-char emoji display and edit
- Improve performance of magnifier on old devices
- Draw shadow for divider if line number is pinned
- Maintain code blocks on edit