Releases: Rosemoe/sora-editor
0.23.7
Bugs Fixed
- empty text committed by IME is unexpectedly ignored
- missing some communication method implementations in input connection (fix GBoard undo/redo support)
- missing highlighted delimiter foreground color in some built-in color schemes
Notice
Since v0.23.7 (inclusive):
- the group namespace is migrated to
io.github.rosemoe
instead ofio.github.Rosemoe.sora-editor
bom
module is renamed toeditor-bom
Due to the migration to Central Portal, the old namespace can not be used anymore.
This won't affect any previously published version.
0.23.6
Enhancements
- improve character deleting on Android P and above
- disable desugaring in textmate to let app developer choose whether desugaring is enabled (#641 by @MohammedKHC )
- LSP improvements (#635, #681 by @dingyi222666 )
- add monarch support for editor (#580 by @dingyi222666 )
- add regex back-reference in regex search-replace (#639)
- add default night colors for editor text action window (#644)
- do not stroke matching delimeters (#663 by @massivemadness )
- allow to control current line background overlapping behavior (#679 by @itsaky )
- allow to intercept
SideIconClickEvent
(#680 by @itsaky ) - provide motion region and bounds info in
EditorMotionEvent
(#682 by @itsaky )
Bugs Fixed
- clipboard content is sometimes pasted like
ClipData.Item {...}
- text position error when tab width is not 4
- mess text display after font change
- fix unexpectedly thrown exception in Java tokenizer that leads to syntax-highlight crash
- conflict between symbol completion and search-replace (#638)
- possible concurrent modification to tree-sitter AST
- negative Y offset leads to crash if overscroll is enabled (#655)
editor.foreground
not working for textmate color scheme (#656)- fix measure size when
wrap_content
is used on editor (#658 by @StarkZhidian ) - fix magnifier in sticky text selection mode (#659 by @massivemadness )
- current line is highlighted when it is supposed to be disabled (#662 by @massivemadness )
- rounded selection region not applied for empty line (#667 by @massivemadness )
0.23.5
Fixes and Enhancements
- fix some compatibility issues in textmate and
Language
interface - fix crash in finding word boundary (#618)
- add Ctrl+DEL and Ctrl+Backspace keybindings (#625)
- fix a display issue between character TAB and
:.
in some fonts - add workaround for unsupported regular expressions in textmate grammars
- fix some issues in symbol pairs (#602, #609, #610, #611, #612)
- fix possible crash during
setText
(#561, #562) - fix selection handle can easily set wrong selection position when text size is small (#554)
- fix possible NPE in
SearchThread
(#568) - show scrollbars when mouse inside
- add ripple background for action window buttons
- some memory usage enhancement
0.23.4
Fixes and Enhancements
- add logic for typing dead chars and avoid crashing for some keyboard (#547)
- cancel selection handle animation when mouse is connected
- fix view scrolling not being cancelled after mouse button is released
- fix input sometimes unexpectedly entering inactive mode
- fix inconsistent scroll position after scaling in wordwrap mode
- fix a compatibility issue in textmate after upstream sync (devices under API 34 are affected)
- update dependencies
Documentation Site
Previous pages in sora-editor main repository are removed and unpublished.
Introduction part of sora-editor is available at here, including a brief overview of editor and basic usage/knowledge for getting started.
0.23.3
Fixes
- add static APIs in
Span
toSpanFactory
to avoidNoSuchMethodError
when app minSdk < 24
Migrate toSpanFactory
recommended.
Documentation
We are adding documentation for sora-editor now!
Currently, you can visit here to explore the documentation, though it's incomplete.
0.23.2
Fixes and Enhancements
- fix editor cursor animation
- fix wrong keyboard meta states used when printing key is pressed
- fix editor is not focused when soft keyboard is disabled
- add context-click, hover, and context menu events
- add mouse support for editor (#472)
- select text
- drag and drop text in editor
- drag text into editor from other widgets (like TextView)
- diagnostic tooltip on hover
- built-in context menu
- strengthened mouse wheel function
0.23.1
Hello, 2024! Here's the first major update of sora-editor in 2024.
Release Notes for 0.23.0
Fixes and Enhancements
Editor Core
- add more XML attributes
- optionally report cursor anchor position on screen to input method
- fix failure in fetching scroll factor (#532 by @dingyi222666 )
- fix completion window being cut (#420 by @dingyi222666 )
- fix fuzzyScore sort for completion items (#538 by @dingyi222666 )
- fix that text styles are still used after editor is released
- add
PlainTextAnalyzeManager
for plain text that requires completion - fix incorrect rendering order of sticky lines and pinned line numbers (#539 )
- fix stack overflow when cutting line on last editor line
- fix thread-safety issues in
Content
- add extended attributes objects for
Span
, and makeSpan
an interface - add span and span range in editor's motion events (click, double-click and long-click) (#540 )
- add more editor state events for implementing user-side features
- fix diagnostic tooltip is not dismissed on focus lost
- add
EditorSpanInteractionHandler
as base implementation for clickable spans - cut line forward or backward (#508)
- fix scroll position auto-adjust
- add
Ctrl+PgUp
,Ctrl+PgDn
,Ctrl+Shift+PgUp
,Ctrl+Shift+PgDn
shortcuts
Language Textmate
- merge TM4E update from upstream
- enable symbol pairs by default
Language LSP
- refactor LSP library by Kotlin (#457 by @dingyi222666 )
- add Java sample for language-lsp usage
Language Tree-sitter
- fix access violation to tree-sitter native objects and thread-safety issues (#497 )
Language Java
- add detection for links
Sample App
- open links in code editor by double-click on it
Breaking Changes and Migration
Editor Selection API
The legacy moveSelectionUp
, moveSelectionDown
and other methods for moving/extending selection are removed.
Now selection moving and extending are seperated.
moveSelection
method: de-select any text and move the cursor based on given movement typeextendSelection
method: update selected range, based on the movement type passed and anchor for current text selecting- selection anchor is updated as selection changes and text updates
For selection movement types, please see SelectionMovement
enum.
Span API (for custom languages)
Span
is now interface class. To migrate to new API, note:
- replace your field access with setters and getters
- do not use builder-like calls to set properties of
Span
- you can not directly get
underlineColor
because it is resolved when the span is rendered
Release Notes for 0.23.1
Apply a minor fix to selection anchor updating.
0.22.2
Note: the version is already released on Nov 26, 2023, not now. v0.23.0 will be published recently
Fixes and Enhancements
Editor Core
- pointer icon for mouse input
- single direction fling for better scrolling experience (enabled by default)
- indent selected text on TAB key event (#482 by @itsaky )
- add
StaticColorSpan
for dynamicly setting color from the analysis (#485 by @itsaky ) - add null checks for
CodeBlock
list during rendering (#498 by @itsaky ) - add switches to enable/disable soft keyboard (#505 by @itsaky )
- update
Numbers
class to latest JDK implementation - dependency updates
TreeSitter
0.22.1
Fixes and Enhancements
- add more textmate colors for tooltip (#467 by @PranavPurwar )
- collapse sticky scroll lines automatically when text is selected for better reading (#468)
- memorize cursor position in undo (#471, originally posted in AndroidIDE#1206)
- ability to select text between two points. This avoids dragging on screen for long time. (originally posted in AndroidIDE#1215)
- update tree-sitter version and replace deprecated usages with new ones
- fix
TSTree
access violation when fetching bracket pairs - remove for-removal outdated class
ContentCreator
0.22.0
This is a major update of editor.
Bugs Fixed
editor core
- text action tool window causes some bugs in Gboard (#401 )
- editor string resource ids can be shadowed easily (#406 by @summerain0 )
- clipboard text inserted is wrong when using code snippets (#409 by @itsaky )
- text regions is sometimes wrongly patched by highlighted delimiters
- error on old Android device because of un-desugared classes (#417 by @MuntashirAkon )
- platform API
TypedArray#close
called on unsupported devices - null reference in code block list causes crash (#433 by @itsaky )
- inactive tab stops in code snippets mode are wrongly computed (#438 by @yuruxuan )
- platform deprecated class
MutableInt
is used - scaling is still possible when any selection handle is hold (#452 by @summerain0 )
Styles#finishBuilding
call is missing in languages- selection handle is not taken into account when editor tries to intercept parent from handling motion events (#456 )
language-java
- keyword completion has mis-positioned words (#453 by @yuruxuan )
editor-lsp
LspLanguage#getFormatter
may return null values
language-textmate
- illegal argument is not recognized but NPE is thrown when loading textmate grammar files
New Features and Enhancements
build and CI
editor core
- code snippets: nested placeholder support (#409 by @itsaky )
- better selection handle experience with expanded region for touch detection (#358 )
- add sticky scroll for better code reading (#376, experimental)
- specific line number background can be modified by applying
LineGutterBackground
(#361 ) - scroll fast when
ALT
key is pressed
language-textmate
- add completion window/item background color in theme (#455 by @PranavPurwar )
tree-sitter
docs
- update documentation (by @summerain0 )
- add README in Japanese (translated by @soloopooo )
About Sticky Scroll Preview
This is the first preview of sticky scroll feature and the feature is disabled by default. Please provide feedbacks if you have any.
Sticky Scroll helps you stay oriented in your code as you scroll, which is also introduced in Visual Studio and Visual Studio Code. Refer to this post of Visual Studio for animated preview of the original feature.
In sora-editor, it's now experimentally supported, including the sticky line display and options like scope-keeping policy
and max sticky line count
. We also added support for click navigation - jumping to the sticky line when clicked.
Hope this feature help you enjoy a better coding experience.