capacitor-sora-editor 1.0.10 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEPENDENCY_SOLUTION.md +87 -0
- package/DEVELOPMENT.md +152 -0
- package/WORDWRAP_FLICKER_FIX.md +205 -0
- package/android/build.gradle +52 -13
- package/android/sora-editor/editor/src/main/AndroidManifest.xml +27 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/I18nConfig.java +69 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/annotations/Experimental.java +41 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/annotations/InvalidateRequired.java +40 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/annotations/UnsupportedUserUsage.java +39 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/ClickEvent.java +49 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/ColorSchemeUpdateEvent.kt +43 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/ContentChangeEvent.java +122 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/DoubleClickEvent.java +50 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/EditorKeyEvent.java +157 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/EditorMotionEvent.java +212 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/Event.java +132 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/EventManager.java +328 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/EventReceiver.java +33 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/HandleStateChangeEvent.java +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/InterceptTarget.java +44 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/KeyBindingEvent.java +77 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/LongPressEvent.java +53 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/ResultedEvent.java +63 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/ScrollEvent.java +126 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/SelectionChangeEvent.java +155 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/SideIconClickEvent.kt +37 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/SnippetEvent.java +92 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/SubscriptionReceipt.java +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/Unsubscribe.java +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/Utils.kt +37 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/event/editorMinorEvents.kt +162 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/BubbleHelper.java +76 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/BufferedDrawPoints.java +66 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/GraphemeBoundsBreaker.java +55 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/GraphicCharacter.java +52 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/GraphicsCompat.java +55 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/Paint.java +159 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/RectUtils.java +39 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/SingleCharacterWidths.java +160 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/TextRow.java +1402 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/TextRowParams.kt +73 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/inlayHint/ColorInlayHintRenderer.kt +91 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/inlayHint/InlayHintRenderer.kt +129 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/inlayHint/InlayHintRendererProvider.kt +32 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/graphics/inlayHint/TextInlayHintRenderer.kt +116 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/EmptyLanguage.java +159 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/Language.java +215 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/QuickQuoteHandler.java +78 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/AnalyzeManager.java +97 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/AsyncIncrementalAnalyzeManager.java +604 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/IncrementalAnalyzeManager.java +120 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/SequenceUpdateRange.kt +43 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/SimpleAnalyzeManager.java +238 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/StyleReceiver.java +90 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/analysis/StyleUpdateRange.kt +44 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/brackets/BracketsProvider.java +49 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/brackets/OnlineBracketsMatcher.java +112 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/brackets/PairedBracket.java +57 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/brackets/SimpleBracketsCollector.java +83 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/CompletionCancelledException.java +44 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/CompletionHelper.java +72 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/CompletionItem.java +163 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/CompletionItemKind.kt +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/CompletionPublisher.java +284 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/IdentifierAutoComplete.java +359 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/MatchHelper.java +131 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/SimpleCompletionIconDrawer.kt +99 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/SimpleCompletionItem.java +112 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/SimpleSnippetCompletionItem.java +71 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/SnippetDescription.kt +38 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/comparators.kt +320 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/filters.kt +709 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/CodeSnippet.java +223 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/ConditionalFormat.java +68 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/FormatString.java +30 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/InterpolatedShellItem.java +55 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/NextUpperCaseFormat.java +28 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/NoFormat.java +43 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/PlaceHolderElement.kt +32 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/PlaceholderDefinition.kt +35 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/PlaceholderItem.java +58 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/PlainPlaceholderElement.kt +32 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/PlainTextItem.java +56 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/SnippetItem.java +70 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/Transform.java +54 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/VariableItem.java +81 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/parser/CodeSnippetParser.java +571 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/parser/CodeSnippetTokenizer.java +131 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/parser/Token.java +47 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/completion/snippet/parser/TokenType.java +59 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/diagnostic/DiagnosticDetail.kt +37 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/diagnostic/DiagnosticRegion.java +95 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/diagnostic/DiagnosticsContainer.java +148 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/diagnostic/Quickfix.kt +51 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/folding/FoldingRegion.java +89 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/format/AsyncFormatter.java +198 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/format/Formatter.java +104 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/smartEnter/NewlineHandleResult.java +47 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/smartEnter/NewlineHandler.java +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/BlocksUpdater.java +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/CodeBlock.java +182 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/EmptyReader.java +66 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/HighlightTextContainer.kt +345 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/MappedSpanUpdater.java +190 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/MappedSpans.java +264 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/Span.java +203 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/SpanFactory.java +73 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/SpanPool.kt +91 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/Spans.java +133 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/Styles.java +280 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/StylesUtils.java +108 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/TextStyle.java +141 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/TextStyle.kt +37 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/color/ConstColor.kt +56 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/color/EditorColor.kt +40 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/color/ResolvableColor.kt +40 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/inlayHint/InlayHint.kt +52 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/inlayHint/InlayHintsContainer.kt +32 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/inlayHint/IntSetUpdateRange.kt +58 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/inlayHint/SparseUpdateRange.kt +52 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/inlayHint/inlayHints.kt +57 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/line/LineAnchorStyle.kt +66 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/line/LineBackground.kt +61 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/line/LineGutterBackground.kt +37 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/line/LineSideIcon.kt +35 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/line/LineStyles.kt +85 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/patching/SparseStylePatches.kt +115 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/patching/StylePatch.kt +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanClickableUrl.kt +41 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanColorResolver.kt +48 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanConstColorResolver.kt +48 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanExt.kt +35 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanExtAttrs.java +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanExternalRenderer.kt +70 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/SpanInteractionInfo.kt +40 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/internal/NoExtSpanImpl.java +165 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/span/internal/SpanImpl.java +188 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/styling/util/PointAnchorContainer.kt +168 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/util/BaseAnalyzeManager.java +95 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/util/PlainTextAnalyzeManager.java +65 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/lang/util/PlainTextSpans.java +78 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/AndroidEmoji.java +95 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/CachedIndexer.java +458 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/CharArrayWrapper.java +81 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/CharPosition.java +150 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/CharSequenceIterator.java +109 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/ComposingText.java +91 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/Content.java +1306 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/Content.kt +38 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/ContentIO.java +173 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/ContentLine.java +405 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/ContentListener.java +81 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/ContentReference.java +212 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/Cursor.java +374 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/FunctionCharacters.java +71 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/ICUUtils.java +85 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/Indexer.java +92 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/InsertTextHelper.java +117 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/LineSeparator.java +123 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/SpanRecycler.java +103 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/TextLayoutHelper.java +122 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/TextRange.java +85 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/TextReference.java +132 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/TextUtils.java +196 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/TextUtilsP.java +236 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/UndoManager.java +750 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/UnicodeIterator.java +106 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/bidi/BidiRequirementChecker.java +31 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/bidi/ContentBidi.java +143 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/bidi/Directions.java +79 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/bidi/IDirections.java +39 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/bidi/TextBidi.java +93 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/bidi/VisualDirections.java +88 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/breaker/WordBreaker.java +47 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/breaker/WordBreakerEmpty.java +38 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/breaker/WordBreakerIcu.java +62 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/breaker/WordBreakerProgram.java +54 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/text/method/KeyMetaStates.java +93 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/BinaryHeap.java +239 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/BlockIntList.java +366 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/CharCode.kt +132 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/Chars.kt +151 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/ClipDataUtils.java +55 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/EditorHandler.kt +30 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/Floats.java +33 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/IntPair.java +96 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/KeyboardUtils.kt +55 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/Logger.java +109 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/LongArrayList.java +132 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/MutableInt.java +43 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/MyCharacter.java +143 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/Numbers.java +123 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/ObjectPool.java +77 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/RegionIterator.java +162 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/RendererUtils.kt +66 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/ReversedListView.kt +36 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/SegmentList.java +323 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/ShareableData.kt +50 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/TemporaryCharBuffer.java +52 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/TemporaryFloatBuffer.java +68 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/ThemeUtils.java +38 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/TrieTree.java +177 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/ViewUtils.java +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/regex/RegexBackrefGrammar.java +40 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/regex/RegexBackrefHelper.java +53 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/regex/RegexBackrefParser.java +119 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/util/regex/RegexBackrefToken.java +65 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/CodeEditor.java +5433 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/CursorBlink.java +98 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/DirectAccessProps.java +561 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/Editor.kt +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorInputConnection.java +714 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorKeyEventHandler.java +646 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorRenderer.java +2620 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorScroller.java +119 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorSearcher.java +553 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorStyleDelegate.java +143 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/EditorTouchEventHandler.java +1306 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/LanguageHelper.java +66 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/RegionResolver.kt +66 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/SelectionMovement.kt +252 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/SymbolInputView.java +154 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/SymbolPairMatch.java +334 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/base/EditorPopupWindow.java +351 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/CompletionLayout.java +89 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/DefaultCompletionItemAdapter.java +76 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/DefaultCompletionLayout.java +206 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/DefaultDiagnosticTooltipLayout.kt +165 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/DiagnosticTooltipLayout.kt +43 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/EditorAutoCompletion.java +684 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/EditorBuiltinComponent.java +48 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/EditorCompletionAdapter.java +118 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/EditorContextMenuCreator.kt +221 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/EditorDiagnosticTooltipWindow.kt +332 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/EditorTextActionWindow.java +362 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/component/Magnifier.java +396 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/ext/EditorSpanInteractionHandler.kt +157 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/AbstractLayout.java +158 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/Layout.java +185 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/LineBreakLayout.java +393 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/Row.java +77 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/RowElement.java +70 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/RowElementTypes.java +41 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/RowIterator.java +67 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/ViewMeasureHelper.java +123 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/layout/WordwrapLayout.java +683 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/MeasureCacheItem.kt +35 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/RenderCache.kt +109 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/RenderContext.kt +79 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/RenderNodeHolder.kt +178 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/RenderingConstants.java +79 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/TextAdvancesCache.java +122 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/rendering/package-info.java +30 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/schemes/EditorColorScheme.java +544 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/schemes/SchemeDarcula.java +70 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/schemes/SchemeEclipse.java +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/schemes/SchemeGitHub.java +54 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/schemes/SchemeNotepadXX.java +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/schemes/SchemeVS2019.java +70 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/SnippetController.kt +561 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/TransformApplier.java +134 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/ClipboardBasedSnippetVariableResolver.java +61 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/CommentBasedSnippetVariableResolver.java +77 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/CompositeSnippetVariableResolver.java +79 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/EditorBasedSnippetVariableResolver.java +76 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/FileBasedSnippetVariableResolver.java +39 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/ISnippetVariableResolver.java +49 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/RandomBasedSnippetVariableResolver.java +55 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/TimeBasedSnippetVariableResolver.java +101 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/snippet/variable/WorkspaceBasedSnippetVariableResolver.java +39 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/CursorAnimator.java +78 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/DiagnosticIndicatorStyle.java +37 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/LineInfoPanelPosition.java +33 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/LineInfoPanelPositionMode.java +30 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/LineNumberTipTextProvider.kt +44 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/SelectionHandleStyle.java +98 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/DefaultLineNumberTip.kt +34 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/FadeCursorAnimator.java +179 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/HandleStyleDrop.java +80 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/HandleStyleNone.java +28 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/HandleStyleSideDrop.java +60 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/MoveCursorAnimator.java +159 -0
- package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/style/builtin/ScaleCursorAnimator.java +166 -0
- package/android/sora-editor/editor/src/main/res/anim/anim_diagnostic_tooltip_window_enter.xml +39 -0
- package/android/sora-editor/editor/src/main/res/anim/anim_diagnostic_tooltip_window_exit.xml +41 -0
- package/android/sora-editor/editor/src/main/res/anim/anim_text_action_popup_enter.xml +33 -0
- package/android/sora-editor/editor/src/main/res/anim/anim_text_action_popup_exit.xml +33 -0
- package/android/sora-editor/editor/src/main/res/drawable/baseline_more_vert_24.xml +37 -0
- package/android/sora-editor/editor/src/main/res/drawable/editor_text_select_start.xml +35 -0
- package/android/sora-editor/editor/src/main/res/drawable/ic_more_vert_black_20dp.xml +29 -0
- package/android/sora-editor/editor/src/main/res/drawable/ic_sora_handle_drop.xml +37 -0
- package/android/sora-editor/editor/src/main/res/drawable/line_break.xml +43 -0
- package/android/sora-editor/editor/src/main/res/drawable/magnifier_background.xml +29 -0
- package/android/sora-editor/editor/src/main/res/drawable/round_content_copy_20.xml +36 -0
- package/android/sora-editor/editor/src/main/res/drawable/round_content_cut_20.xml +39 -0
- package/android/sora-editor/editor/src/main/res/drawable/round_content_paste_20.xml +36 -0
- package/android/sora-editor/editor/src/main/res/drawable/round_save_20.xml +35 -0
- package/android/sora-editor/editor/src/main/res/drawable/round_select_all_20.xml +84 -0
- package/android/sora-editor/editor/src/main/res/drawable/softwrap_left.xml +49 -0
- package/android/sora-editor/editor/src/main/res/drawable/softwrap_right.xml +50 -0
- package/android/sora-editor/editor/src/main/res/layout/default_completion_result_item.xml +71 -0
- package/android/sora-editor/editor/src/main/res/layout/diagnostic_tooltip_window.xml +98 -0
- package/android/sora-editor/editor/src/main/res/layout/magnifier_popup.xml +31 -0
- package/android/sora-editor/editor/src/main/res/layout/text_compose_panel.xml +91 -0
- package/android/sora-editor/editor/src/main/res/values/attrs.xml +74 -0
- package/android/sora-editor/editor/src/main/res/values/colors.xml +29 -0
- package/android/sora-editor/editor/src/main/res/values/dimens.xml +27 -0
- package/android/sora-editor/editor/src/main/res/values/strings.xml +42 -0
- package/android/sora-editor/editor/src/main/res/values/style.xml +34 -0
- package/android/sora-editor/editor/src/main/res/values-night/colors.xml +28 -0
- package/android/sora-editor/editor/src/main/res/values-zh/strings.xml +39 -0
- package/android/sora-editor/language-textmate/src/main/AndroidManifest.xml +27 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/MyState.java +46 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/TextMateAnalyzer.java +301 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/TextMateColorScheme.java +369 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/TextMateLanguage.java +314 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/TextMateNewlineHandler.java +547 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/TextMateSymbolPairMatch.java +240 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/folding/FoldingHelper.java +35 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/folding/FoldingRegion.java +51 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/folding/FoldingRegions.java +96 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/folding/IndentRange.java +169 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/folding/PreviousRegion.java +41 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/folding/RangesCollector.java +71 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/FileProviderRegistry.java +83 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/GrammarRegistry.java +321 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/ThemeRegistry.java +186 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/dsl/GrammarDefinitionDSL.kt +94 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/model/DefaultGrammarDefinition.java +121 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/model/GrammarDefinition.java +51 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/model/ThemeModel.java +106 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/provider/AssetsFileResolver.java +58 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/provider/FileResolver.java +56 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/registry/reader/LanguageDefinitionReader.java +133 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/utils/ColorUtils.java +79 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/utils/MatcherUtils.java +54 -0
- package/android/sora-editor/language-textmate/src/main/java/io/github/abc15018045126/sora/langs/textmate/utils/StringUtils.java +64 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/TMException.java +29 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/IGrammar.java +125 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/IStateStack.java +27 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/IToken.java +40 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/grammar/ITokenizeLineResult.java +40 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/AttributedScopeStack.java +204 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/BalancedBracketSelectors.java +76 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/BasicScopeAttributes.java +32 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/BasicScopeAttributesProvider.java +141 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/Grammar.java +389 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/Injection.java +50 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/LineTokenizer.java +570 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/LineTokens.java +248 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/ScopeStack.java +118 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/StateStack.java +344 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/TokenTypeMatcher.java +38 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/TokenizeLineResult.java +50 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/dependencies/AbsoluteRuleReference.java +62 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/dependencies/IncludeReference.java +65 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/dependencies/ScopeDependencyProcessor.java +256 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawCaptures.java +29 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawGrammar.java +56 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawRepository.java +51 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/IRawRule.java +77 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawCaptures.java +27 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawGrammar.java +158 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawGrammarReader.java +67 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawRepository.java +67 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/raw/RawRule.java +177 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/EncodedTokenAttributes.java +100 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/EncodedTokenDataConsts.java +61 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/OptionalStandardTokenType.java +44 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/grammar/tokenattrs/StandardTokenType.java +33 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/Matcher.java +34 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/MatcherBuilder.java +199 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/MatcherWithPriority.java +28 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/matcher/NameMatcher.java +65 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigCaptureIndex.java +64 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigRegExp.java +23 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigResult.java +24 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigScanner.java +21 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigScannerMatch.java +20 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/OnigString.java +194 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/Oniguruma.java +59 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/OnigScannerMatchImpl.java +105 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/joni/JoniOnigRegExp.java +133 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/joni/JoniOnigResult.java +65 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/joni/JoniOnigScanner.java +46 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/joni/JoniOnigSearcher.java +81 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/onig/NativeOnigConfig.java +47 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/onig/NativeOnigRegExp.java +86 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/onig/NativeOnigResult.java +53 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/onig/NativeOnigScanner.java +41 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/oniguruma/impl/onig/NativeOnigSearcher.java +83 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/PropertySettable.java +42 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParser.java +70 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserJSON.java +84 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserPList.java +221 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserPropertyPath.java +75 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/parser/TMParserYAML.java +39 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/registry/IGrammarRepository.java +44 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/registry/IThemeProvider.java +29 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/registry/SyncRegistry.java +134 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/BeginEndRule.java +116 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/BeginWhileRule.java +116 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/CaptureRule.java +51 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/CompilePatternsResult.java +33 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/CompiledRule.java +40 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IGrammarRegistry.java +32 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IRuleFactoryHelper.java +26 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IRuleRegistry.java +34 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/IncludeOnlyRule.java +69 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/MatchRule.java +67 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RegExpSource.java +189 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RegExpSourceList.java +102 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/Rule.java +80 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RuleFactory.java +255 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/rule/RuleId.java +79 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ColorMap.java +96 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/FontStyle.java +63 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/IThemeSetting.java +26 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ParsedThemeRule.java +84 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/StyleAttributes.java +63 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/Theme.java +306 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ThemeTrieElement.java +191 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/ThemeTrieElementRule.java +98 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/IRawTheme.java +26 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/IRawThemeSetting.java +34 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/RawTheme.java +67 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/theme/raw/RawThemeReader.java +63 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/AbstractListeners.java +68 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/MoreCollections.java +121 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/NullSafetyHelper.java +76 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/ObjectCloner.java +117 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/RegexSource.java +128 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/ScopeNames.java +49 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/internal/utils/StringUtils.java +201 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IGrammarConfiguration.java +51 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IGrammarSource.java +176 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IRegistryOptions.java +51 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/IThemeSource.java +179 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/core/registry/Registry.java +247 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/AutoClosingPair.java +30 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/AutoClosingPairConditional.java +42 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/CharacterPair.java +57 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/CommentRule.java +49 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/CompleteEnterAction.java +43 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/EnterAction.java +100 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/FoldingRules.java +47 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/IndentForEnter.java +45 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/IndentationRules.java +58 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/LanguageConfiguration.java +459 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/OnEnterRule.java +78 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/model/RegExPattern.java +137 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/CharacterPairSupport.java +95 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/CommentSupport.java +83 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/IndentRulesSupport.java +79 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/supports/OnEnterSupport.java +138 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/utils/RegExpUtils.java +52 -0
- package/android/sora-editor/language-textmate/src/main/java/org/eclipse/tm4e/languageconfiguration/internal/utils/TextUtils.java +216 -0
- package/android/sora-editor/oniguruma-native/src/main/AndroidManifest.xml +4 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/CMakeLists.txt +12 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/binding.cpp +227 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/.github/workflows/cifuzz.yml +36 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/.github/workflows/codeql.yml +41 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/.travis.yml +17 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/AUTHORS +1 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/CMakeLists.txt +262 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/COPYING +26 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/ChangeLog +0 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/HISTORY +2521 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/INSTALL +368 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/Makefile.am +87 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/NEWS +0 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/README +203 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/README.md +268 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/README_japanese +183 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/autogen.sh +9 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/cmake/Config.cmake.in +4 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/compile +348 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/config.guess +1687 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/config.sub +1851 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/configure.ac +102 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/depcomp +791 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/API +1105 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/API.ja +1108 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/CALLOUTS.API +397 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/CALLOUTS.API.ja +393 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/CALLOUTS.BUILTIN +104 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/CALLOUTS.BUILTIN.ja +101 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/FAQ +12 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/FAQ.ja +22 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/RE +597 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/RE.ja +604 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/SYNTAX.md +1126 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/UNICODE_PROPERTIES +873 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/doc/onig_syn_md.c +693 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/ascii_compatible.dict +113 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/base.c +749 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/deluxe.c +206 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/dict_conv.py +72 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/fuzzer.options +2 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/libfuzzer-onig.cpp +45 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/harnesses/regset.c +392 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/index.html +192 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/index_ja.html +195 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/install-sh +541 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/m4/.whatever +0 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/make_win.bat +5 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/make_win32.bat +5 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/make_win64.bat +5 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/missing +215 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/onig-config.cmake.in +80 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/onig-config.in +78 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/oniguruma.pc.cmake.in +13 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/oniguruma.pc.in +13 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/CMakeLists.txt +35 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/Makefile.am +53 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/bug_fix.c +93 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/callback_each_match.c +166 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/callout.c +268 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/count.c +125 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/crnl.c +129 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/echo.c +136 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/encode.c +215 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/listcap.c +118 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/names.c +79 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/posix.c +107 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/regset.c +95 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/scan.c +102 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/simple.c +63 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/sql.c +81 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/syntax.c +77 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sample/user_property.c +92 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/sbom.cdx.json +44 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/Makefile.am +84 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/Makefile.windows +196 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/ascii.c +125 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/big5.c +200 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/config.h.cmake.in +68 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/config.h.win32 +56 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/config.h.win64 +56 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/config.h.windows.in +62 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/cp1251.c +213 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/euc_jp.c +308 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/euc_jp_prop.c +158 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/euc_jp_prop.gperf +26 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/euc_kr.c +200 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/euc_tw.c +194 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/gb18030.c +596 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/gperf_fold_key_conv.py +74 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/gperf_unfold_key_conv.py +60 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_1.c +280 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_10.c +230 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_11.c +105 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_13.c +215 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_14.c +231 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_15.c +221 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_16.c +228 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_2.c +226 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_3.c +222 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_4.c +225 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_5.c +226 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_6.c +105 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_7.c +214 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_8.c +105 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/iso8859_9.c +215 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/koi8.c +244 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/koi8_r.c +212 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_property.sh +21 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_egcb.sh +7 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_egcb_data.py +268 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_fold.sh +36 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_fold_data.py +486 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_property.sh +27 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_property_data.py +645 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_wb.sh +7 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/make_unicode_wb_data.py +268 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/mktable.c +1188 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/onig_init.c +45 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/oniggnu.h +87 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/onigposix.h +193 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/oniguruma.h +1102 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regcomp.c +8589 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regenc.c +998 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regenc.h +286 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regerror.c +416 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regexec.c +7002 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regext.c +202 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/reggnu.c +143 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regint.h +1070 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regparse.c +9493 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regparse.h +494 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regposerr.c +145 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regposix.c +389 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regsyntax.c +373 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regtrav.c +76 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/regversion.c +59 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/sjis.c +312 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/sjis_prop.c +158 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/sjis_prop.gperf +26 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/st.c +562 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/st.h +64 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode.c +1240 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_egcb_data.c +1424 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_fold1_key.c +3138 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_fold2_key.c +227 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_fold3_key.c +137 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_fold_data.c +1619 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_property_data.c +33967 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_property_data_posix.c +5975 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_unfold_key.c +3498 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/unicode_wb_data.c +1138 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/utf16_be.c +277 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/utf16_le.c +277 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/utf32_be.c +166 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/utf32_le.c +167 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/src/utf8.c +290 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/CMakeLists.txt +55 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/Makefile.am +83 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/test.sh +17 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/test_back.c +1450 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/test_options.c +228 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/test_regset.c +466 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/test_syntax.c +417 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/test_utf8.c +1801 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/testc.c +914 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/testp.c +613 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test/testu.c +963 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/test-driver +150 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/stub.c +3 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/test_back.config +26 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/test_regset.config +20 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/test_syntax.config +26 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/test_utf8.config +25 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/testc.config +26 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis-ci/testu.config +24 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/tis.config +1336 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/windows/CMakeLists.txt +8 -0
- package/android/sora-editor/oniguruma-native/src/main/cpp/oniguruma/windows/testc.c +865 -0
- package/android/sora-editor/oniguruma-native/src/main/java/io/github/abc15018045126/oniguruma/OnigNative.java +121 -0
- package/android/src/main/java/com/abc15018045126/capacitor/soraeditor/compose/ui/EditorScreen.kt +27 -14
- package/package.json +1 -1
- package/android/libs/editor-release.aar +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Dependency Solution: Full Source Integration (Standalone Mode)
|
|
2
|
+
|
|
3
|
+
## Problem Statement
|
|
4
|
+
|
|
5
|
+
This Capacitor plugin (`capacitor-sora-editor`) needs to include the `sora-editor` library. We initially tried:
|
|
6
|
+
1. **Local Project Dependency** ❌ (Fails for end-users without source)
|
|
7
|
+
2. **JitPack Build** ❌ (Unreliable, environment errors)
|
|
8
|
+
3. **Remote AAR via Ivy** ❌ (Requires manual GitHub Release uploads and complex Gradle configuration for consumers)
|
|
9
|
+
4. **Local AAR Bundling** ❌ (Strict Gradle restriction for Library modules)
|
|
10
|
+
|
|
11
|
+
## Final (Best) Solution: Full Source Integration
|
|
12
|
+
|
|
13
|
+
We have integrated the primary modules of `sora-editor` directly into the plugin as source code. This makes the plugin **completely standalone** and **zero-configuration** for users.
|
|
14
|
+
|
|
15
|
+
### Architecture
|
|
16
|
+
|
|
17
|
+
The following modules from `sora-editor` have been copied into `capacitor-sora-editor/android/sora-editor/`:
|
|
18
|
+
- `editor`: The core editor UI and logic.
|
|
19
|
+
- `language-textmate`: TextMate grammar support.
|
|
20
|
+
- `oniguruma-native`: JNI bindings for the Oniguruma regex engine.
|
|
21
|
+
|
|
22
|
+
### Implementation Details
|
|
23
|
+
|
|
24
|
+
#### 1. Source Sets Configuration
|
|
25
|
+
In the plugin's `android/build.gradle`, we manually include these source directories in the `main` sourceSet:
|
|
26
|
+
|
|
27
|
+
```gradle
|
|
28
|
+
sourceSets {
|
|
29
|
+
main {
|
|
30
|
+
java.srcDirs = [
|
|
31
|
+
'src/main/java',
|
|
32
|
+
'sora-editor/editor/src/main/java',
|
|
33
|
+
'sora-editor/language-textmate/src/main/java',
|
|
34
|
+
'sora-editor/oniguruma-native/src/main/java'
|
|
35
|
+
]
|
|
36
|
+
res.srcDirs = [
|
|
37
|
+
'src/main/res',
|
|
38
|
+
'sora-editor/editor/src/main/res',
|
|
39
|
+
'sora-editor/language-textmate/src/main/res',
|
|
40
|
+
'sora-editor/oniguruma-native/src/main/res'
|
|
41
|
+
]
|
|
42
|
+
assets.srcDirs = [
|
|
43
|
+
'src/main/assets',
|
|
44
|
+
'sora-editor/editor/src/main/assets',
|
|
45
|
+
'sora-editor/language-textmate/src/main/assets',
|
|
46
|
+
'sora-editor/oniguruma-native/src/main/assets'
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### 2. Native Build (C++)
|
|
53
|
+
The Oniguruma engine is compiled using CMake directly from the integrated source:
|
|
54
|
+
|
|
55
|
+
```gradle
|
|
56
|
+
externalNativeBuild {
|
|
57
|
+
cmake {
|
|
58
|
+
path = file("sora-editor/oniguruma-native/src/main/cpp/CMakeLists.txt")
|
|
59
|
+
version = "3.22.1"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ndkVersion = "29.0.14206865"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### 3. Module Namespace
|
|
66
|
+
To match the existing source code packagename and resource references, the plugin's `namespace` is set to:
|
|
67
|
+
`io.github.abc15018045126.sora`
|
|
68
|
+
|
|
69
|
+
## Why This is the Best Approach
|
|
70
|
+
|
|
71
|
+
| Feature | Remote AAR | Source Integration |
|
|
72
|
+
|---------|------------|--------------------|
|
|
73
|
+
| **Setup for Users** | Complex (Requires Ivy repo config) | **Zero (Standard npm install)** |
|
|
74
|
+
| **Development** | Slow (Build -> Upload -> Download) | **Fast (Direct source edits)** |
|
|
75
|
+
| **Stability** | Depends on remote server | **Self-contained** |
|
|
76
|
+
| **Binary Size** | Fixed | Optimized by user's proguard/R8 |
|
|
77
|
+
| **Sync Issues** | Common (missing AAR in build cache) | **None** |
|
|
78
|
+
|
|
79
|
+
## Maintenance
|
|
80
|
+
|
|
81
|
+
As the author, you can now modify the editor code directly within the plugin's `sora-editor` directory. These changes will be picked up immediately by any app using the local plugin (e.g., the `notes` app).
|
|
82
|
+
|
|
83
|
+
When you are ready to release, simply:
|
|
84
|
+
1. `npm version patch`
|
|
85
|
+
2. `npm publish`
|
|
86
|
+
|
|
87
|
+
The complete source code will be packaged into the npm tarball, and Gradle will compile it on the user's machine during their app's build process.
|
package/DEVELOPMENT.md
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Development Workflow
|
|
2
|
+
|
|
3
|
+
This document describes the development workflow for `capacitor-sora-editor` and its integration with the Notes applications.
|
|
4
|
+
|
|
5
|
+
## Project Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
notes/
|
|
9
|
+
├── capacitor-sora-editor/ # Plugin source code (standalone)
|
|
10
|
+
│ └── android/sora-editor/ # Integrated sora-editor source (CORE)
|
|
11
|
+
├── sora-editor/ # Original Android library source (External)
|
|
12
|
+
├── notes/ # Development app (uses local plugin)
|
|
13
|
+
└── notes-new/ # Testing app (uses npm published plugin)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Development Environments
|
|
17
|
+
|
|
18
|
+
### `notes` - Development Environment
|
|
19
|
+
|
|
20
|
+
**Purpose**: Active development and debugging of `capacitor-sora-editor`.
|
|
21
|
+
|
|
22
|
+
**Configuration**:
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"capacitor-sora-editor": "file:capacitor-sora-editor"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Usage**:
|
|
32
|
+
- Modify plugin code directly in `capacitor-sora-editor/android/src`
|
|
33
|
+
- Modify core editor code in `capacitor-sora-editor/android/sora-editor/`
|
|
34
|
+
- Changes are immediately reflected upon rebuilding the app.
|
|
35
|
+
|
|
36
|
+
### `notes-new` - Testing Environment
|
|
37
|
+
|
|
38
|
+
**Purpose**: Validate published npm package as end-users would experience it.
|
|
39
|
+
|
|
40
|
+
**Configuration**:
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"capacitor-sora-editor": "^1.1.0"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Usage**:
|
|
50
|
+
- Install from npm registry.
|
|
51
|
+
- Test the exact package users will receive.
|
|
52
|
+
- No special Gradle configuration required for users.
|
|
53
|
+
|
|
54
|
+
## Development Workflow
|
|
55
|
+
|
|
56
|
+
### 1. Developing New Features
|
|
57
|
+
|
|
58
|
+
Work in the `notes` project for rapid iteration. You can modify either the plugin wrapper or the editor core:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cd notes
|
|
62
|
+
|
|
63
|
+
# 1. Edit code in capacitor-sora-editor/android/
|
|
64
|
+
# - Wrapper: src/main/java/...
|
|
65
|
+
# - Core Editor: sora-editor/editor/...
|
|
66
|
+
|
|
67
|
+
# 2. Build and test
|
|
68
|
+
npm run build
|
|
69
|
+
npx cap sync android
|
|
70
|
+
cd android && ./gradlew.bat assembleDebug
|
|
71
|
+
|
|
72
|
+
# 3. Install to device
|
|
73
|
+
./gradlew.bat installDebug
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 2. Updating Core Logic (sora-editor)
|
|
77
|
+
|
|
78
|
+
Since the source is integrated, you no longer need to build AARs or upload to GitHub Releases for functional updates. Simply editing the files in `capacitor-sora-editor/android/sora-editor/` is enough for local development.
|
|
79
|
+
|
|
80
|
+
## Publishing Workflow
|
|
81
|
+
|
|
82
|
+
When you are satisfied with your changes and want to release to npm:
|
|
83
|
+
|
|
84
|
+
### Step 1: Bump Version & Build
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
cd capacitor-sora-editor
|
|
88
|
+
|
|
89
|
+
# Update version (e.g., 1.1.0 -> 1.1.1)
|
|
90
|
+
npm version patch
|
|
91
|
+
|
|
92
|
+
# Build the web part of the plugin
|
|
93
|
+
npm run build
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Step 2: Publish to npm
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
cd capacitor-sora-editor
|
|
100
|
+
npm publish
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The entire `android/sora-editor` source tree will be included in the npm package.
|
|
104
|
+
|
|
105
|
+
### Step 3: Validate in notes-new
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
cd notes-new
|
|
109
|
+
|
|
110
|
+
# Install the latest version
|
|
111
|
+
npm install capacitor-sora-editor@latest
|
|
112
|
+
|
|
113
|
+
# Standard Capacitor sync and build
|
|
114
|
+
npx cap sync android
|
|
115
|
+
cd android && ./gradlew.bat assembleDebug
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Troubleshooting
|
|
119
|
+
|
|
120
|
+
### Issue: "Unresolved reference: R"
|
|
121
|
+
|
|
122
|
+
**Cause**: Package namespace mismatch.
|
|
123
|
+
**Solution**: The plugin namespace is set to `io.github.abc15018045126.sora` in `android/build.gradle` to match the core editor's resource usage. Ensure all new activity/fragment code uses the correct R import if necessary.
|
|
124
|
+
|
|
125
|
+
### Issue: C++ Compilation Errors
|
|
126
|
+
|
|
127
|
+
**Cause**: Missing NDK or CMake issues.
|
|
128
|
+
**Solution**: Ensure you have NDK `29.0.14206865` installed via Android Studio SDK Manager. The build will automatically compile the Oniguruma engine using CMake.
|
|
129
|
+
|
|
130
|
+
### Issue: Changes not reflected
|
|
131
|
+
|
|
132
|
+
**Cause**: Gradle cache.
|
|
133
|
+
**Solution**:
|
|
134
|
+
```bash
|
|
135
|
+
cd android
|
|
136
|
+
./gradlew.bat clean
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Quick Reference
|
|
140
|
+
|
|
141
|
+
| Task | Command |
|
|
142
|
+
|------|---------|
|
|
143
|
+
| Local Test | `cd notes && npm run build && npx cap sync android` |
|
|
144
|
+
| Sync Android | `npx cap sync android` |
|
|
145
|
+
| Build (Dev) | `cd android && ./gradlew.bat assembleDebug` |
|
|
146
|
+
| Install | `cd android && ./gradlew.bat installDebug` |
|
|
147
|
+
| Publish | `cd capacitor-sora-editor && npm publish` |
|
|
148
|
+
|
|
149
|
+
## Related Documentation
|
|
150
|
+
|
|
151
|
+
- [DEPENDENCY_SOLUTION.md](./DEPENDENCY_SOLUTION.md) - Why we use source integration.
|
|
152
|
+
- [NO_JITPACK_WARNING.md](./NO_JITPACK_WARNING.md) - Why we avoid JitPack.
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Sora Editor Word Wrap Flicker Bug Fix
|
|
2
|
+
|
|
3
|
+
## Issue Description
|
|
4
|
+
|
|
5
|
+
In the Compose UI implementation of `capacitor-sora-editor`, when word wrap mode is enabled, users experience noticeable flickering with every keystroke. Specifically:
|
|
6
|
+
- The entire editor interface flickers rapidly when typing characters
|
|
7
|
+
- It appears as if word wrap is being disabled and immediately re-enabled
|
|
8
|
+
- Only occurs in word wrap mode; normal mode works fine
|
|
9
|
+
- Severely impacts user experience
|
|
10
|
+
|
|
11
|
+
## Root Cause Analysis
|
|
12
|
+
|
|
13
|
+
### Problem Chain
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
User Input
|
|
17
|
+
↓
|
|
18
|
+
ContentChangeEvent Triggered
|
|
19
|
+
↓
|
|
20
|
+
Call onContentChange(newText)
|
|
21
|
+
↓
|
|
22
|
+
Update React/Compose State
|
|
23
|
+
↓
|
|
24
|
+
Trigger AndroidView update Block
|
|
25
|
+
↓
|
|
26
|
+
Call multiple layout-triggering methods:
|
|
27
|
+
- setLineSpacing()
|
|
28
|
+
- setWrapLineSpacing() ← Most critical!
|
|
29
|
+
- setDividerMargin()
|
|
30
|
+
- setExtraMarginRight()
|
|
31
|
+
- setLineNumberMarginLeft()
|
|
32
|
+
↓
|
|
33
|
+
Editor Recalculates All Line Wraps
|
|
34
|
+
↓
|
|
35
|
+
Visual Flicker
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Core Issues
|
|
39
|
+
|
|
40
|
+
1. **Unnecessary State Update Loop**
|
|
41
|
+
- When user types, the editor internally updates the text correctly
|
|
42
|
+
- However, `ContentChangeEvent` triggers the `onContentChange` callback
|
|
43
|
+
- This causes React/Compose state to update
|
|
44
|
+
- State update triggers the `update` block to re-execute
|
|
45
|
+
|
|
46
|
+
2. **Expensive Operations in update Block**
|
|
47
|
+
- The `update` block executes on every state change
|
|
48
|
+
- It calls multiple methods that trigger layout recalculation
|
|
49
|
+
- Particularly `setWrapLineSpacing()` causes the entire document to recalculate wrap points
|
|
50
|
+
- This is a very expensive operation, especially noticeable in word wrap mode
|
|
51
|
+
|
|
52
|
+
3. **Side Effects of CodeEditor Methods**
|
|
53
|
+
```java
|
|
54
|
+
// CodeEditor.java
|
|
55
|
+
public void setWrapLineSpacing(float add, float mult) {
|
|
56
|
+
wrapLineSpacingAdd = add;
|
|
57
|
+
wrapLineSpacingMultiplier = mult;
|
|
58
|
+
requestLayout(); // ← Triggers layout recalculation
|
|
59
|
+
invalidate(); // ← Triggers redraw
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Fix Solution
|
|
64
|
+
|
|
65
|
+
### Solution 1: Disable ContentChangeEvent Callback (Final Approach)
|
|
66
|
+
|
|
67
|
+
**File**: `EditorScreen.kt`
|
|
68
|
+
|
|
69
|
+
**Location**: `SoraEditorView` factory block
|
|
70
|
+
|
|
71
|
+
```kotlin
|
|
72
|
+
// DISABLED: ContentChangeEvent causes update loop and flicker
|
|
73
|
+
// User typing -> ContentChangeEvent -> onContentChange -> React state update
|
|
74
|
+
// -> update block -> setText -> layout recalculation -> FLICKER
|
|
75
|
+
// The editor already has the correct text from user input, no need to update state
|
|
76
|
+
/*
|
|
77
|
+
subscribeEvent(io.github.abc15018045126.sora.event.ContentChangeEvent::class.java) { _, _ ->
|
|
78
|
+
if (!isSettingTextProgrammatically.value) {
|
|
79
|
+
val newText = text.toString()
|
|
80
|
+
currentOnContentChange(newText)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
*/
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Rationale**:
|
|
87
|
+
- When user types, the editor internally updates the text correctly
|
|
88
|
+
- No need to sync text through state updates
|
|
89
|
+
- Only external modifications (e.g., from settings page) need to pass new content via props
|
|
90
|
+
- Completely avoids the update loop
|
|
91
|
+
|
|
92
|
+
### Solution 2: Remove Layout-Triggering Methods from update Block
|
|
93
|
+
|
|
94
|
+
**File**: `EditorScreen.kt`
|
|
95
|
+
|
|
96
|
+
**Location**: `SoraEditorView` update block
|
|
97
|
+
|
|
98
|
+
```kotlin
|
|
99
|
+
update = { view ->
|
|
100
|
+
// ... other updates ...
|
|
101
|
+
|
|
102
|
+
// REMOVED: These methods trigger expensive layout recalculation on every update
|
|
103
|
+
// They should only be set in factory or when settings actually change
|
|
104
|
+
// view.setLineSpacing(lineSpacingExtra, lineSpacingMultiplier)
|
|
105
|
+
// view.setWrapLineSpacing(wrapLineSpacingExtra, wrapLineSpacingMultiplier)
|
|
106
|
+
// view.setDividerMargin(0f, horizontalPadding * dp)
|
|
107
|
+
// view.setExtraMarginRight(horizontalPadding * dp)
|
|
108
|
+
// view.setLineNumberMarginLeft(horizontalPadding * dp)
|
|
109
|
+
|
|
110
|
+
// ... other updates ...
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Rationale**:
|
|
115
|
+
- These layout-related settings only need to be set once during initialization (factory block)
|
|
116
|
+
- Or when user modifies settings
|
|
117
|
+
- Should not be reset on every content change
|
|
118
|
+
- Reduces unnecessary layout recalculations
|
|
119
|
+
|
|
120
|
+
### Solution 3: Add wordWrap Change Detection
|
|
121
|
+
|
|
122
|
+
**File**: `EditorScreen.kt`
|
|
123
|
+
|
|
124
|
+
```kotlin
|
|
125
|
+
// Only update wordwrap if it actually changed to avoid layout recalculation flicker
|
|
126
|
+
if (view.isWordwrap != wordWrap) {
|
|
127
|
+
view.isWordwrap = wordWrap
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Rationale**:
|
|
132
|
+
- Even when the value is the same, resetting `isWordwrap` triggers layout recalculation
|
|
133
|
+
- Adding a check avoids unnecessary operations
|
|
134
|
+
|
|
135
|
+
## Fix Results
|
|
136
|
+
|
|
137
|
+
✅ **Completely eliminated flickering in word wrap mode**
|
|
138
|
+
- User input is smooth with no visual jitter
|
|
139
|
+
- Significant performance improvement (no layout recalculation on every keystroke)
|
|
140
|
+
- Word wrap functionality works normally
|
|
141
|
+
- Settings modifications still work correctly
|
|
142
|
+
|
|
143
|
+
## Technical Insights
|
|
144
|
+
|
|
145
|
+
### 1. AndroidView factory vs update
|
|
146
|
+
|
|
147
|
+
- **factory**: Executes only once when view is created
|
|
148
|
+
- Suitable for: Initialization, event subscriptions
|
|
149
|
+
- Does not re-execute when props change
|
|
150
|
+
|
|
151
|
+
- **update**: Executes every time props change
|
|
152
|
+
- Suitable for: Properties that need to respond to prop changes
|
|
153
|
+
- Should avoid: Expensive operations, unnecessary repeated settings
|
|
154
|
+
|
|
155
|
+
### 2. Avoiding State Update Loops
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
User Input → Editor Updates ✓
|
|
159
|
+
↓
|
|
160
|
+
✗ Don't trigger state update
|
|
161
|
+
✗ Don't trigger update block
|
|
162
|
+
✗ Don't call setText again
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Correct data flow:
|
|
166
|
+
- **User Input**: Handled internally by editor, no state update
|
|
167
|
+
- **External Modification**: Passed via props, triggers update block
|
|
168
|
+
|
|
169
|
+
### 3. Performance Optimization Principles
|
|
170
|
+
|
|
171
|
+
- Only update when value actually changes
|
|
172
|
+
- Avoid expensive operations in high-frequency events (like input)
|
|
173
|
+
- Place one-time settings in factory
|
|
174
|
+
- Place reactive updates in update, but be cautious
|
|
175
|
+
|
|
176
|
+
## Related Files
|
|
177
|
+
|
|
178
|
+
- `capacitor-sora-editor/android/src/main/java/com/abc15018045126/capacitor/soraeditor/compose/ui/EditorScreen.kt`
|
|
179
|
+
- `SoraEditorView` component
|
|
180
|
+
- Main modification location
|
|
181
|
+
|
|
182
|
+
- `capacitor-sora-editor/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/widget/CodeEditor.java`
|
|
183
|
+
- Sora Editor core class
|
|
184
|
+
- Contains methods that trigger layout recalculation
|
|
185
|
+
|
|
186
|
+
## Backup Information
|
|
187
|
+
|
|
188
|
+
Backups created during debugging:
|
|
189
|
+
- `backups/widget_backup_from_build_failure/`: Original working version of widget folder
|
|
190
|
+
- `backups/widget_from_0.24.4_failed/`: Failed attempt to upgrade to version 0.24.4
|
|
191
|
+
|
|
192
|
+
## Summary
|
|
193
|
+
|
|
194
|
+
The essence of this issue is a **performance problem caused by unnecessary state update loops**. By:
|
|
195
|
+
1. Disabling state updates during user input
|
|
196
|
+
2. Removing expensive operations from the update block
|
|
197
|
+
3. Adding value change detection
|
|
198
|
+
|
|
199
|
+
Successfully resolved the flickering issue in word wrap mode while maintaining full functionality.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
**Fix Date**: 2026-01-30
|
|
204
|
+
**Affected Version**: capacitor-sora-editor (Compose UI implementation)
|
|
205
|
+
**Status**: ✅ Fixed and Verified
|
package/android/build.gradle
CHANGED
|
@@ -21,12 +21,18 @@ apply plugin: 'kotlin-android'
|
|
|
21
21
|
apply plugin: 'org.jetbrains.kotlin.plugin.compose'
|
|
22
22
|
|
|
23
23
|
android {
|
|
24
|
-
namespace "
|
|
24
|
+
namespace "io.github.abc15018045126.sora"
|
|
25
25
|
compileSdk project.ext.compileSdkVersion
|
|
26
26
|
|
|
27
27
|
defaultConfig {
|
|
28
28
|
minSdk project.ext.minSdkVersion
|
|
29
29
|
targetSdk project.ext.targetSdkVersion
|
|
30
|
+
|
|
31
|
+
externalNativeBuild {
|
|
32
|
+
cmake {
|
|
33
|
+
cppFlags ""
|
|
34
|
+
}
|
|
35
|
+
}
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
compileOptions {
|
|
@@ -47,33 +53,66 @@ android {
|
|
|
47
53
|
|
|
48
54
|
buildFeatures {
|
|
49
55
|
compose true
|
|
56
|
+
buildConfig true
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
sourceSets {
|
|
60
|
+
main {
|
|
61
|
+
java.srcDirs = [
|
|
62
|
+
'src/main/java',
|
|
63
|
+
'sora-editor/editor/src/main/java',
|
|
64
|
+
'sora-editor/language-textmate/src/main/java',
|
|
65
|
+
'sora-editor/oniguruma-native/src/main/java'
|
|
66
|
+
]
|
|
67
|
+
res.srcDirs = [
|
|
68
|
+
'src/main/res',
|
|
69
|
+
'sora-editor/editor/src/main/res',
|
|
70
|
+
'sora-editor/language-textmate/src/main/res',
|
|
71
|
+
'sora-editor/oniguruma-native/src/main/res'
|
|
72
|
+
]
|
|
73
|
+
assets.srcDirs = [
|
|
74
|
+
'src/main/assets',
|
|
75
|
+
'sora-editor/editor/src/main/assets',
|
|
76
|
+
'sora-editor/language-textmate/src/main/assets',
|
|
77
|
+
'sora-editor/oniguruma-native/src/main/assets'
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
externalNativeBuild {
|
|
83
|
+
cmake {
|
|
84
|
+
path = file("sora-editor/oniguruma-native/src/main/cpp/CMakeLists.txt")
|
|
85
|
+
version = "3.22.1"
|
|
86
|
+
}
|
|
50
87
|
}
|
|
88
|
+
|
|
89
|
+
// Required NDK version for Oniguruma-native
|
|
90
|
+
ndkVersion = "29.0.14206865"
|
|
51
91
|
}
|
|
52
92
|
|
|
53
93
|
repositories {
|
|
54
94
|
google()
|
|
55
95
|
mavenCentral()
|
|
56
|
-
ivy {
|
|
57
|
-
url 'https://github.com/abc15018045126/sora-editor/releases/download/v0.0.7/'
|
|
58
|
-
patternLayout {
|
|
59
|
-
artifact '[artifact].[ext]'
|
|
60
|
-
}
|
|
61
|
-
metadataSources { artifact() }
|
|
62
|
-
}
|
|
63
96
|
}
|
|
64
97
|
|
|
65
98
|
dependencies {
|
|
66
99
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
67
100
|
implementation project(':capacitor-android')
|
|
101
|
+
|
|
102
|
+
// Core Android dependencies
|
|
68
103
|
implementation "androidx.appcompat:appcompat:1.7.0"
|
|
69
104
|
implementation "androidx.core:core-ktx:1.15.0"
|
|
105
|
+
implementation "androidx.annotation:annotation:1.9.1"
|
|
106
|
+
implementation "androidx.collection:collection:1.4.5"
|
|
70
107
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
108
|
+
// Editor dependencies (extracted from sora-editor modules)
|
|
109
|
+
implementation "com.google.code.gson:gson:2.13.2"
|
|
110
|
+
implementation "org.snakeyaml:snakeyaml-engine:3.0.1"
|
|
111
|
+
implementation "org.eclipse.jdt:org.eclipse.jdt.annotation:2.4.100"
|
|
75
112
|
|
|
76
|
-
|
|
113
|
+
// Textmate engine components
|
|
114
|
+
implementation "org.jruby.jcodings:jcodings:1.0.63"
|
|
115
|
+
implementation "org.jruby.joni:joni:2.2.6"
|
|
77
116
|
|
|
78
117
|
// Compose
|
|
79
118
|
def composeBom = platform('androidx.compose:compose-bom:2024.12.01')
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
2
|
+
~ sora-editor - the awesome code editor for Android
|
|
3
|
+
~ https://github.com/abc15018045126/sora-editor
|
|
4
|
+
~ Copyright (C) 2020-2024 abc15018045126
|
|
5
|
+
~
|
|
6
|
+
~ This library is free software; you can redistribute it and/or
|
|
7
|
+
~ modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
~ License as published by the Free Software Foundation; either
|
|
9
|
+
~ version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
~
|
|
11
|
+
~ This library is distributed in the hope that it will be useful,
|
|
12
|
+
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
~ Lesser General Public License for more details.
|
|
15
|
+
~
|
|
16
|
+
~ You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
~ License along with this library; if not, write to the Free Software
|
|
18
|
+
~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
|
19
|
+
~ USA
|
|
20
|
+
~
|
|
21
|
+
~ Please contact abc15018045126 by email 2073412493@qq.com if you need
|
|
22
|
+
~ additional information or have any questions
|
|
23
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
|
|
24
|
+
|
|
25
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
26
|
+
|
|
27
|
+
</manifest>
|
package/android/sora-editor/editor/src/main/java/io/github/abc15018045126/sora/I18nConfig.java
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* sora-editor - the awesome code editor for Android
|
|
3
|
+
* https://github.com/abc15018045126/sora-editor
|
|
4
|
+
* Copyright (C) 2020-2024 abc15018045126
|
|
5
|
+
*
|
|
6
|
+
* This library is free software; you can redistribute it and/or
|
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
* License as published by the Free Software Foundation; either
|
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
* Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
* License along with this library; if not, write to the Free Software
|
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
|
19
|
+
* USA
|
|
20
|
+
*
|
|
21
|
+
* Please contact abc15018045126 by email 2073412493@qq.com if you need
|
|
22
|
+
* additional information or have any questions
|
|
23
|
+
*/
|
|
24
|
+
package io.github.abc15018045126.sora;
|
|
25
|
+
|
|
26
|
+
import android.content.Context;
|
|
27
|
+
import android.util.SparseIntArray;
|
|
28
|
+
|
|
29
|
+
import androidx.annotation.NonNull;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Map editor built-in string resources to your given string resource. Editor string resource has
|
|
33
|
+
* limited i18n function, as it only contains English and Chinese.
|
|
34
|
+
* <p>
|
|
35
|
+
* Note that you should configure this before creating editor instances
|
|
36
|
+
*
|
|
37
|
+
* @author abc15018045126
|
|
38
|
+
*/
|
|
39
|
+
public class I18nConfig {
|
|
40
|
+
|
|
41
|
+
private static final SparseIntArray mapping = new SparseIntArray();
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Map the given editor resId to new one
|
|
45
|
+
*/
|
|
46
|
+
public static void mapTo(int originalResId, int newResId) {
|
|
47
|
+
mapping.put(originalResId, newResId);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Get mapped resource id or itself
|
|
52
|
+
*/
|
|
53
|
+
public static int getResourceId(int resId) {
|
|
54
|
+
int newResource = mapping.get(resId);
|
|
55
|
+
if (newResource == 0) {
|
|
56
|
+
return resId;
|
|
57
|
+
}
|
|
58
|
+
return newResource;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Get mapped resource string
|
|
63
|
+
*/
|
|
64
|
+
public static String getString(@NonNull Context context, int resId) {
|
|
65
|
+
return context.getString(getResourceId(resId));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* sora-editor - the awesome code editor for Android
|
|
3
|
+
* https://github.com/abc15018045126/sora-editor
|
|
4
|
+
* Copyright (C) 2020-2024 abc15018045126
|
|
5
|
+
*
|
|
6
|
+
* This library is free software; you can redistribute it and/or
|
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
|
8
|
+
* License as published by the Free Software Foundation; either
|
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
14
|
+
* Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
17
|
+
* License along with this library; if not, write to the Free Software
|
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
|
19
|
+
* USA
|
|
20
|
+
*
|
|
21
|
+
* Please contact abc15018045126 by email 2073412493@qq.com if you need
|
|
22
|
+
* additional information or have any questions
|
|
23
|
+
*/
|
|
24
|
+
package io.github.abc15018045126.sora.annotations;
|
|
25
|
+
|
|
26
|
+
import java.lang.annotation.ElementType;
|
|
27
|
+
import java.lang.annotation.Retention;
|
|
28
|
+
import java.lang.annotation.RetentionPolicy;
|
|
29
|
+
import java.lang.annotation.Target;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* This annotation marks those fields, methods and constructors experimentally created.
|
|
33
|
+
* <p>
|
|
34
|
+
* Methods, fields and constructors with this annotation is very subject to keep or delete.
|
|
35
|
+
* For that reason, they are not stable for production use.
|
|
36
|
+
*/
|
|
37
|
+
@Target({ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.TYPE})
|
|
38
|
+
@Retention(RetentionPolicy.SOURCE)
|
|
39
|
+
public @interface Experimental {
|
|
40
|
+
}
|
|
41
|
+
|