### Issue Checklist - [x] I confirm that this issue is not a duplicate and hasn't been reported before. - [x] I agree to follow the project's code of conduct. - [x] I have checked and verified that I am using the latest version of AndroidIDE from GitHub or F-Droid. ### Additional terms - [x] I understand that providing incomplete or inaccurate information may result in the issue being closed. - [x] I agree to provide all requested details promptly for a comprehensive bug report. ### Issue explanation Sometimes, when you're writing code and press the enter/line break key on the keyboard, the app freezes, preventing you from doing anything else until it eventually crashes and closes completely. In this case, it happened while I was commenting out code, but it also occurs when writing code ### Expected behavior To be able to insert line breaks without the application closing ### Version name Version : v1.0.0-internal (10002) CI Build : true Branch : dev Commit : bc25880f3 Variant : arm64-v8a (release) Build type : UNOFFICIAL F-Droid Build : false F-Droid Version : null F-Droid Version code : -1 SDK Version : 36 Supported ABIs : [arm64-v8a, armeabi-v7a, armeabi] Manufacturer : Google Device : Pixel6Pro ### Download source GitHub ### Relevant log output ```bash AndroidIDE Crash Report Version : v1.0.0-internal (10002) CI Build : true Branch : dev Commit : bc25880f3 Variant : arm64-v8a (release) Build type : UNOFFICIAL F-Droid Build : false F-Droid Version : null F-Droid Version code : -1 SDK Version : 36 Supported ABIs : [arm64-v8a, armeabi-v7a, armeabi] Manufacturer : Google Device : Pixel6Pro Stacktrace: java.lang.OutOfMemoryError: Failed to allocate a 603979792 byte allocation with 100663296 free bytes and 167MB until OOM, target footprint 462033200, growth limit 536870912 at java.util.Arrays.copyOf(Arrays.java:3785) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:182) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:758) at java.lang.StringBuilder.append(StringBuilder.java:257) at io.github.rosemoe.sora.text.ICUUtils.createIndent(Unknown Source:32) at io.github.rosemoe.sora.widget.CodeEditor.commitText(Unknown Source:572) at io.github.rosemoe.sora.widget.CodeEditor.onKeyDown(Unknown Source:1828) at android.view.KeyEvent.dispatch(KeyEvent.java:3463) at android.view.View.dispatchKeyEvent(View.java:16528) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1987) at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:463) at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:2011) at android.app.Activity.dispatchKeyEvent(Activity.java:4553) at androidx.activity.ComponentActivity.superDispatchKeyEvent(Unknown Source:5) at kotlin.ResultKt.dispatchKeyEvent(Unknown Source:10) at androidx.activity.ComponentActivity.dispatchKeyEvent(Unknown Source:26) at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(Unknown Source:22) at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(Unknown Source:19) at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:377) at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:8103) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7942) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7328) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7385) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7351) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7517) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7359) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7574) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7332) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7385) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7351) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7359) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7332) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10490) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10441) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10409) at android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl(ViewRootImpl.java:7006) at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:6885) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:8982) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) ```