Releases: Rosemoe/sora-editor
0.16.3
0.16.2
Updates
- fix potential bug in ContentCreator when reading CRLF text
- fix bug in Content#copyText
- fix occasional concurrent modification error when invoking
ContentBidi
andCachedIndexer
- performance enhancement in text copying
- some internal code style uniformation
- add some potential combined character clusters
0.16.1
Updates
- Specify line separators for new lines when users edit text in editor
- Fix Content#subSequence bugs in CRLF text
- Fix composing text bug in a specific situations when
trackComposingText
is enabled - Do not highlight delimiters when text is selected
- Remove debug logs
- Performance enhancement in ContentLine#subSequence
0.16.0
Performance Enhancements
This release is mainly focused on performance and display correctness. We optimized the speed of highlighting delimiters and the time cost when text is editted. We also add a new mode called "Basic Display Mode", which provides basic display of text and fast measuring speed. However, some features such as RTL and ligatures are disabled when this is enabled.
New Features
- correct LTR and RTL mixed display
- customizible round text background factor
- side icon for lines and its click event are available now
- mixed CR,LF,CRLF in
Content
(Note that CodeEditor#setLineSeparator is not complete yet. editor still uses LF for newlines when you edit text in editor)
Bugs fixed
- fix the width measurement of RTL texts
- fix bugs in
TextRegionIterator
0.15.1
0.15.1
This is a major update of sora-editor
New features
editor-lsp
for LSP users, provided by @dingyi222666- new selection position can be provided by formatters
- code completion in language-textmate (optional)
- specify whether a scheme is dark and some new color ids for completion window (#215)
- specify line background color from language analyzer and these backgrounds are automatically shifted when text is editted
- highlight matching delimiters (including underline, bold and background) (optional)
Improvements
- quicker speed when finding index in text
- use Android 12 introduced new
EdgeEffect
- reusing layout objects and async loading
- editor is still partially interactive when formatting
- draw only visible region of diagnostics
- optimize shifting logic of diagnostics
- optimize the speed of deleting texts in editor, especially when deleting text with a lot of lines
- better display of symbols in wordwrap mode, especially in Chinese and Japanese
- do not recreate layout when text size is not actually changed when the user finishes scaling
- better user experience when editor is not editable
- more switches in
DirectAccessProps
Fixed bugs
- fix potential NPE during destruction of
AsyncIncrementalAnalyzeManager
- fix concurrent issue of
InsertTextHelper
(critical) - fix sometimes wrongly drawn newline markers on high API devices
Notice
From next version of sora-editor, the min SDK version will rise to Android API 24 due to better maintainence.
0.14.0
Bug fix
- Fix unnotified text change for IME when undo/redo (#210 )
- Fix bad scroll range (#212 )
- Bounds check in Content
- Reset batch edit when
Content
object is detached - Reset all styles when text or language changes
Improvements
Indexer
andContent
share a lockContent
has 8x faster speed when insertingContent
now recoginzes newline correctly: CR, LF, CRLF are all considered '\n'
New Features
- Brackets matching and highlighting in language-java and language-textmate (#194 )
0.13.1
0.13.0
Improvements
- Fix unexpectedly created 512 bytes array when drawing
- Fix text width caching
- Optimize memory usage of language-java, language-textmate
- Optimize speed of analyzing code blocks in language-textmate
- Cache theme colors in textmate
- Track composing text when external text changes occur (#186 #204)
- Add new APIs in
Layout
- Fix some deprecations and better RTL support (@PranavPurwar )
- Add line spacing APIs
- Add option for round text background
Chores
- Update dependencies of textmate & testing instrumentations
Breaking changes
UIThreadIncrementalAnalyzeManager
is removedIdentifierAutoComplete
is updated so that it can be used incrementallyIncrementalAnalyzeManager
now have integer for line index passed intokenizeLine
0.12.0
Bug fix
- Fix parent view of Magnifier
- Fix missing
invalidate()
call insetFontFeatureSettings()
- Remove unnecessary string resource items
- Adapt Mircosoft Swift Key
- Fix potential invalid state of SHIFT and ALT in
EditorKeyEvent
- Fix invalid error indicator line display (invalid phi for the wavy lines)
- Fix 1 char invisible at line ending sometimes when wordwrap is enabled
New & Improvements
- Custom scale factor in
Magnifier
- Add time limit for merging undo actions (can be modified by
UndoManager#setMergeTimeLimit(long)
) - Better magnifier image quality (@massivemadness )
- Better magnifer position when sticky cursor is enabled (@massivemadness )
KeyBindingEvent
and some new built-in keybindings (@itsaky )- Improved cursor animation (
ScaleCursorAnimation
) - Diagnostics APIs
- More diagnostic indicator styles (
DiagnosticIndicatorStyle
) - Approriate default size for diagnostic indicator lines
Breaking changes
Span#problemFlags
,MappedSpans#markProblemRegion
andMappedSpans.Builder#markProblemRegion
are removed. Instead, you are expected to replace them with Diagnostic APIs- In order to catch up with the updates from tm4e in time, some packages in language-textmate are moved to its original package in tm4e project.
Migration Guide
->Mainly, your work will be miragting your problem marking logic to the new diagnostic API.
Now, the diagnostics are sent by calling StyleReceiver#setDiagnostics(DiagnosticContainer)
. You are expected to add your DiagnosticRegion
objects to the DiagnosticContainer
. The container will maintain the positions of those added regions. And also, DiagnosticRegion
is described by the start index and end index of the diagnostic item, but not by (line, column) pairs. So you need to compute the index by shadowed Content.
Note that it is not recommended to add new regions to a container that is already being used by editor though the class is thread-safe.
See package io.github.rosemoe.sora.lang.diagnostic
.
->package io.github.rosemoe.langs.textmate.core
and io.github.rosemoe.langs.textmate.languageconfiguration
are moved to org.eclipse.tm4e.core
and org.eclipse.tm4e.languageconfiguration
More information
Now editor will show diagnostics with zero length. The editor will show the indicator with a width of the character 'a'.
Note
Maven artifact language-textmate 0.12.0 is broken. Use 0.12.0-1 instead.