Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
1b50291
fix(deps): update dependency org.robolectric:robolectric to v4.16.1
renovate[bot] Jan 21, 2026
cbbe95f
Merge pull request #794 from Rosemoe/renovate/org.robolectric-robolec…
Rosemoe Jan 28, 2026
6f67c6f
Update DefaultCompletionLayout.java
nullij Feb 3, 2026
0535af5
Merge pull request #800 from nullij/patch-1
Rosemoe Feb 4, 2026
b3a8b17
refact(editor): expose `variableResolver` for custom variable resolve…
Rosemoe Feb 6, 2026
533c6dc
chore(editor): refer to inlay hint type names in inlay hint renderers
Rosemoe Feb 6, 2026
0eff59f
fix(editor): add max text length for accessibility node info
Rosemoe Feb 8, 2026
27a6cc4
build(app): migrate signing config to environment variables
Rosemoe Feb 8, 2026
d0e0916
build(app): move signing config vars to job-level env
Rosemoe Feb 8, 2026
9f20f82
docs(textmate): update README.md for TextMate
Rosemoe Feb 8, 2026
efbacac
fix(editor): `SymbolInputView` always overrides the background define…
Rosemoe Feb 8, 2026
099b8be
refact(app): migrate to Material 3
Rosemoe Feb 8, 2026
56e7166
fix(editor): non-null param is declared nullable in `SpanExternalRend…
Rosemoe Feb 9, 2026
77c8ab7
fix(editor): text style in line info panel can be affected by content…
Rosemoe Feb 9, 2026
795f2f0
fix(app): inconsistent inlay hint position in demo
Rosemoe Feb 9, 2026
1bf3548
docs: update screenshots in project README
Rosemoe Feb 9, 2026
b6f8384
fix: fix `ConcurrentModificationException` and expose language server…
KonerDev Feb 10, 2026
db7d487
feat: improve LSP server lifecycle and error handling
KonerDev Feb 11, 2026
87fa0f3
fix(editor-lsp): improve editor lifecycle
KonerDev Feb 18, 2026
76b9f73
refactor(editor-lsp): move exception handling to separate method
KonerDev Feb 19, 2026
700c744
fix: stopping server does no longer disconnect all servers
KonerDev Feb 19, 2026
c5b7349
fix(deps): update dependency org.jruby.jcodings:jcodings to v1.0.64
renovate[bot] Feb 20, 2026
f361f25
Merge pull request #804 from KonerDev/fix/concurrent-exception
Rosemoe Feb 20, 2026
f4111ff
Merge pull request #807 from Rosemoe/renovate/org.jruby.jcodings-jcod…
Rosemoe Feb 20, 2026
30fb008
chore: update soraX with upstream changes
KonerDev Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ jobs:
build:
name: Build debug APK
runs-on: ubuntu-latest
env:
SIGNING_STORE_BIN: ${{ secrets.SIGNING_STORE_BIN }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.13.0
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,7 @@ lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/

# Local Signing Config
signing.properties
signing.keystore
2 changes: 1 addition & 1 deletion README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Consulte las [combinaciones de teclas admitidas](./keybindings.md).

<div style="overflow: hidden">
<img src="/images/general.jpg" alt="GeneralAppearance" width="40%" align="bottom" />
<img src="/images/problem_indicators.jpg" alt="ProblemIndicator" width="40%" align="bottom" />
<img src="/images/auto_completion.jpg" alt="AutoCompletion" width="40%" align="bottom" />
</div>

## Para empezar
Expand Down
2 changes: 1 addition & 1 deletion README.jp.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ sora-editor は効率的な Android コードエディターです

<div style="overflow: hidden">
<img src="/images/general.jpg" alt="GeneralAppearance" width="40%" align="bottom" />
<img src="/images/problem_indicators.jpg" alt="ProblemIndicator" width="40%" align="bottom" />
<img src="/images/auto_completion.jpg" alt="AutoCompletion" width="40%" align="bottom" />
</div>

## 始めに
Expand Down
2 changes: 1 addition & 1 deletion README.zh-cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ sora-editor是一款高效的安卓代码编辑器

<div style="overflow: hidden">
<img src="/images/general.jpg" alt="GeneralAppearance" width="40%" align="bottom" />
<img src="/images/problem_indicators.jpg" alt="ProblemIndicator" width="40%" align="bottom" />
<img src="/images/auto_completion.jpg" alt="AutoCompletion" width="40%" align="bottom" />
</div>

## 讨论
Expand Down
47 changes: 28 additions & 19 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,43 +27,53 @@ plugins {
}

android {
namespace = "io.github.rosemoe.sora.app"

defaultConfig {
applicationId = "io.github.rosemoe.sora.app"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
versionCode = Versions.versionCode
versionName = Versions.versionName + "-" + System.currentTimeMillis()
}

signingConfigs {
create("general") {
storeFile = file("../debug.jks")
storePassword = "114514"
keyAlias = "debug"
keyPassword = "114514"
enableV1Signing = true
enableV2Signing = true
}
AppSigning.getAppSigningConfigOptional(project)
.onSuccess {
create("general") {
storeFile = it.storeFile
storePassword = it.storePassword
keyAlias = it.keyAlias
keyPassword = it.keyPassword

enableV1Signing = true
enableV2Signing = true
}

buildTypes.forEach { buildType ->
buildType.signingConfig = signingConfigs.getByName("general")
}
}.onFailure {
logger.error("Failed to get signing config. Signing configuration is left as is.")
}
}
buildTypes {
release {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("general")
proguardFiles("proguard-rules.pro")
}
debug {

for (buildType in buildTypes) {
buildType.apply {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("general")
proguardFiles("proguard-rules.pro")
}
}

compileOptions {
isCoreLibraryDesugaringEnabled = true
}

androidResources {
additionalParameters.add("--warn-manifest-validation")
}

buildFeatures {
viewBinding = true
}

packaging {
resources.pickFirsts.addAll(
arrayOf(
Expand All @@ -75,7 +85,6 @@ android {
)
)
}
namespace = "io.github.rosemoe.sora.app"
}

dependencies {
Expand Down
9 changes: 5 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:name=".EditorApplication"
android:theme="@style/AppTheme">
<service
android:name=".lsp.LspLanguageServerService"
Expand All @@ -50,22 +51,22 @@

<activity
android:name=".tests.TestActivity"
android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboard|navigation"
android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation"
android:exported="false"
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".lsp.LspTestActivity"
android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboard|navigation"
android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation"
android:exported="false"
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".lsp.LspTestJavaActivity"
android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboard|navigation"
android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation"
android:exported="false"
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboard|navigation"
android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation"
android:exported="true"
android:windowSoftInputMode="adjustResize">
<intent-filter>
Expand Down
22 changes: 1 addition & 21 deletions app/src/main/assets/samples/sample.txt
Original file line number Diff line number Diff line change
@@ -1,25 +1,5 @@
/*
* sora-editor - the awesome code editor for Android
* https://github.com/Rosemoe/sora-editor
* Copyright (C) 2020-2022 Rosemoe
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA
*
* Please contact Rosemoe by email 2073412493@qq.com if you need
* additional information or have any questions
* Sample Java source file.
*/
package io.github.rosemoe.sora.util;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {

setContentView(binding.getRoot());
setSupportActionBar(binding.activityToolbar);
UtilsKt.applyEdgeToEdgeForViews(binding.toolbarContainer, binding.getRoot());
UtilsKt.applyEdgeToEdge(this, binding.toolbarContainer, binding.getRoot());

var supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
Expand Down
37 changes: 37 additions & 0 deletions app/src/main/java/io/github/rosemoe/sora/app/EditorApplication.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*******************************************************************************
* sora-editor - the awesome code editor for Android
* https://github.com/Rosemoe/sora-editor
* Copyright (C) 2020-2026 Rosemoe
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA
*
* Please contact Rosemoe by email 2073412493@qq.com if you need
* additional information or have any questions
******************************************************************************/

package io.github.rosemoe.sora.app

import android.app.Application
import com.google.android.material.color.DynamicColors

class EditorApplication : Application() {

override fun onCreate() {
super.onCreate()
DynamicColors.applyToActivitiesIfAvailable(this)
}

}
Loading
Loading