Skip to content

Commit aa4b6f8

Browse files
authored
v4.2.1
# XED Pro 4.2.1 Release Notes > Release: **4.2.1** --- # ✨ Interface ### Improved Navigation & Animations - Added smooth open/close animations for the side drawer. - Added a spring animation to the drawer expand button. ### Editor Improvements - When no file is open, the editor now displays a **Project Overview** instead of an empty screen, including: - Project name - Project path - Detected primary language - Quick **Open File Tree** action ### UI Consistency - Build Output and other interface components now respect the font selected in **Settings**. ### What's New - Added a **What's New** dialog shown after updates. - Includes a **Never show again for this version** option. - Continues appearing each launch until dismissed. ### Terminal - The terminal home directory is now exposed through Android's system file picker by default, making projects accessible from other apps. - This behavior can be disabled in **Settings → Terminal**. --- # 📁 File Management ### Root File Creation - Added a new **Create File in Project Root** option. - Supports nested paths such as: ``` src/utils/File.kt ``` Missing directories are created automatically. ### Projects & Repositories Browser Added a new workspace browser that displays every detected project and cloned repository. Each entry includes: - Project type - Package name - Creation date - Last modified date - Project size Projects can be opened directly from the list. ### Fixes - Fixed the temporary file dialog closing unexpectedly. - Terminal now opens inside the selected project even when no editor file is active. --- # 🧰 Redesigned Create Project The project creation experience has been completely redesigned. ### New Bottom Sheet UI - Modern rounded bottom sheet - Improved spacing - Better organization ### Template Picker Added an icon-based horizontal template selector for: - None - Python - Node.js - Static Web - Minecraft Java Mod - Android (Jetpack Compose) Each template includes a short description. ### Organized Sections Configuration is now grouped into: - Template - Project Details - Package - Options ### Live Package Generation The package name updates automatically while entering: - Project name - Author Example: ``` com.author.appname ``` Manual edits are preserved. ### Smart Template Options Options now appear only when applicable, including: - Minecraft loader - Minecraft version - Mod ID - JDK version - Git initialization The UI also displays: - Final project location - Required toolchain status ### Android SDK Selection Android projects now retrieve available SDK versions directly from Google's SDK repository. Features include: - Latest SDKs first - Android version labels - Generated Gradle configuration matches the selected SDK - Automatic sensible `minSdk` ### Automatic Gradle Sync After Android project creation: - Required Android SDK is installed if missing - Required JDK is installed if missing - Gradle Sync begins automatically --- # 🧱 Project Templates Project templates now generate production-ready projects. ## Android Updated to the latest toolchain: | Component | Version | |-----------|---------| | Android Gradle Plugin | 9.2.1 | | Kotlin | 2.3.20 | | Gradle | 9.5.1 | | Compose BOM | 2025.11.01 | Supports SDK selection up to: - Android 17 (API 37) Also includes: - Example unit tests - Example instrumented tests --- ## Fabric Automatically resolves: - Yarn mappings - Fabric Loader - Fabric API Versions are fetched from: - Fabric Meta API - Modrinth Offline fallbacks are provided when necessary. --- ## Forge Automatically configures: - Official promoted Forge version - Forge Maven repository - Loader version ranges - Resource `pack_format` --- ## Automatic JDK Selection Minecraft versions automatically select the appropriate JDK: | Minecraft Version | JDK | |------------------|-----| | 1.20.5+ / 1.21+ / 2026 releases | 21 | | 1.17 - 1.20.4 | 17 | | Older versions | 8 | Manual override remains available. --- ## Minecraft Version List The version selector now fetches the latest releases directly from Mojang, including newer year-based versions such as: - 26.2 --- ## Build Tool Installation Gradle Sync now installs the SDK platform matching the project's configured `compileSdk` rather than simply installing the newest available SDK. --- # ▶ Build & Run ### Improved Build Output - Refined output panel - Live streaming logs - Smooth open/close animation ### First Build Notice Gradle projects now display a one-time notice explaining that the first build may require 10–20 minutes while dependencies and SDK components are downloaded. Shown once per project. ### Automatic SDK Installation Before the first build or Gradle Sync: - Android SDK is installed if required. - JDK is installed if required. ### Proper Build Cancellation Stopping a build now: - Terminates the process immediately - Removes notifications - Prevents background execution - Eliminates false "Build Successful" messages after cancellation --- # 🌿 Git The Git interface has been redesigned. ## Code Displays changed files grouped by: - Conflicts - Changes - Untracked Selecting a file opens its diff. --- ## Diff Each file now includes: - Collapsible diff view - Green additions - Red deletions - Added/removed line counts --- ## Commit Messages Commits now support: - Title - Description matching standard Git commit structure. --- ## Safety Improvements Added confirmation dialogs before potentially destructive operations such as: - Force Push Existing discard confirmations remain. --- # 🧩 Dependency Manager The Dependency Manager has been redesigned. ### New Layout - Full-screen interface - Separate Installed and Available sections ### Project Detection Can now open whenever a project folder is selected, even if no file is open. ### Improved Detection More accurate installed tool recognition. ### Live Installation View Displays: - Live logs - Overall progress bar - Download percentage - Download size - Transfer speed (where available) ### Android NDK Supports multiple installed versions simultaneously. Each version is displayed individually. ### Professional UI Added: - Tool icons - Status chips - Grouped cards - Improved spacing ### Installed Tools Installed tools now display: - Installed indicator - Dedicated Uninstall button - Confirmation dialog Sandbox status refreshes automatically after removal. ### NDK Labels Each version now appears as: - NDK <version> - Latest NDK with clear installation status. --- # 🛠 IDE Configuration Added a brand-new **IDE Configuration** section. Features include: - Switch active Java (JDK) - Select active Android NDK - View installed Python version - View installed Android Build Tools - Quick links to Dependency Manager - Issue reporting shortcuts The interface matches the new Dependency Manager styling. Version labels now use the selected application font. --- # ⚙ Gradle Build Options Added project-specific Gradle build configuration. Settings are stored per project. Supported project types: - Android - Gradle JVM - Fabric - Forge - NeoForge ### Build Type Choose: - Debug - Release Android builds automatically assemble and install the matching APK. ### Log Level Available levels: - Quiet - Warn - Lifecycle - Info - Debug ### Additional Flags Supports combinations of: - `--stacktrace` - `--offline` - `--refresh-dependencies` - `--rerun-tasks` - `--build-cache` - `--no-build-cache` - `--parallel` - `--continue` - `--no-daemon` - `--warning-mode=all` ### Effective Command Preview Displays the exact Gradle command that will be executed. ### Automatic Usage Configured Gradle options are applied automatically to: - Build - Run - Gradle Sync --- # 🐙 GitHub Integration Uses the GitHub Personal Access Token configured in Git Settings. ### Origin Manager Manage repository origins directly from the IDE. Options include: - View current origin - Remove origin - Link an existing repository - Link via URL - Create a new repository ### Repository Creation Create a GitHub repository without leaving the IDE and automatically set it as the project's origin. ### Repository Search Search your GitHub repositories and link one instantly. ### Pull Requests Create Pull Requests directly from the editor with: - Title - Base branch - Description ### GitHub Actions View recent workflow runs, including: - Running - Successful - Failed Open any workflow directly on GitHub. ### Quick Settings Access Added a shortcut from the Git interface to Git Settings. --- # 🚀 Summary XED Pro 4.2.1 delivers one of the largest updates yet, introducing a redesigned project creation workflow, production-ready project templates, a modernized Git experience, improved dependency management, project-specific Gradle configuration, integrated GitHub workflows, smoother interface animations, smarter build automation, and numerous quality-of-life improvements throughout the IDE.
2 parents a868fe8 + 53d6c4f commit aa4b6f8

46 files changed

Lines changed: 4655 additions & 982 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/android.yml‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,16 @@ jobs:
5959
- name: Accept Android SDK licenses
6060
run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses || true
6161

62-
- name: Build with Gradle
63-
run: ./gradlew assembleDebug --no-daemon && mv app/build/outputs/apk/debug/*.apk app/xed-editor-${{ env.COMMIT_HASH }}.apk
62+
- name: Build XED-PRO (release)
63+
# Signed with the committed keystore (fixed key) so every build updates cleanly over the last.
64+
run: ./gradlew assemblePro --no-daemon && mv app/build/outputs/apk/pro/*.apk app/XED-PRO-${{ env.COMMIT_HASH }}.apk
6465
continue-on-error: false
6566

6667
- name: Archive APK
6768
uses: actions/upload-artifact@v7
6869
with:
69-
name: Xed-Editor-Debug
70-
path: app/xed-editor-${{ env.COMMIT_HASH }}.apk
70+
name: XED-PRO
71+
path: app/XED-PRO-${{ env.COMMIT_HASH }}.apk
7172

7273
- name: Send APK to Telegram
7374
if: ${{ success() && github.event.head_commit.message != '' }}
@@ -77,20 +78,20 @@ jobs:
7778
curl -X POST "https://api.telegram.org/bot${{ secrets.TELEGRAM_TOKEN }}/sendDocument" \
7879
-F chat_id="-1002408175863" \
7980
-F message_thread_id="582" \
80-
-F document=@"app/xed-editor-${{ env.COMMIT_HASH }}.apk" \
81+
-F document=@"app/XED-PRO-${{ env.COMMIT_HASH }}.apk" \
8182
--form-string "caption=$COMMIT_MSG"
8283
83-
- name: Publish Debug APK Release
84+
- name: Publish XED-PRO Release
8485
if: ${{ github.event_name == 'workflow_dispatch' }}
8586
uses: ncipollo/release-action@v1
8687
with:
87-
artifacts: "app/xed-editor-${{ env.COMMIT_HASH }}.apk"
88-
tag: "debug-latest"
88+
artifacts: "app/XED-PRO-${{ env.COMMIT_HASH }}.apk"
89+
tag: "xed-pro-latest"
8990
allowUpdates: true
9091
replacesArtifacts: true
9192
makeLatest: true
92-
name: "Latest Debug Build"
93-
body: ${{ env.COMMIT_MSG }}
93+
name: "XED-PRO — Latest Build"
94+
bodyFile: "changelog-4.2.1.txt"
9495
token: ${{ secrets.GITHUB_TOKEN }}
9596

9697
- name: Generate Plugin Sdk

‎.github/workflows/build-clone-apk.yml‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
name: Build Clone APK (Xed PRO)
1+
name: Build XED-PRO APK
22

3-
# Builds an installable, standalone "clone" APK (applicationId com.rk.xededitor.pro,
4-
# label "Xed PRO") signed with the bundled testkey. It installs ALONGSIDE the official
5-
# Xed-Editor instead of replacing it, and needs NO repository secrets, so it works on any
6-
# fork. Download it from: Actions run -> Artifacts -> "Xed-PRO".
3+
# Builds the installable, standalone XED-PRO APK (applicationId com.rk.xededitor.pro, label
4+
# "XED-PRO"). It installs ALONGSIDE the official Xed-Editor instead of replacing it. With no signing
5+
# secrets it falls back to the bundled testkey, so it works on any fork. Download it from:
6+
# Actions run -> Artifacts -> "XED-PRO".
77

88
on:
99
push:
@@ -52,17 +52,17 @@ jobs:
5252
- name: Accept Android SDK licenses
5353
run: yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses || true
5454

55-
- name: Build clone APK
56-
run: ./gradlew assembleClone --no-daemon --stacktrace
55+
- name: Build XED-PRO APK
56+
run: ./gradlew assemblePro --no-daemon --stacktrace
5757

5858
- name: Collect APK
5959
run: |
6060
mkdir -p out
61-
cp app/build/outputs/apk/clone/*.apk "out/xed-pro-${COMMIT_HASH}.apk"
61+
cp app/build/outputs/apk/pro/*.apk "out/XED-PRO-${COMMIT_HASH}.apk"
6262
6363
- name: Upload APK artifact
6464
uses: actions/upload-artifact@v7
6565
with:
66-
name: Xed-PRO
66+
name: XED-PRO
6767
path: out/*.apk
6868
if-no-files-found: error

‎README.md‎

Lines changed: 99 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,120 @@
1-
## Xed-Editor
1+
# XED-PRO
22

3-
<img src="/fastlane/metadata/android/en-US/images/icon.png" alt="Xed-Editor Icon" width="90" height="90" align="left"/>
3+
<img src="/fastlane/metadata/android/en-US/images/icon.png" alt="XED-PRO icon" width="90" height="90" align="left"/>
44

5-
**Xed-Editor** is a versatile and extensible text editor for Android, featuring syntax highlighting,
6-
LSP-powered code intelligence, a built-in terminal, extensions, and fast project-wide tools for
7-
efficient editing.
5+
**XED-PRO** is a complete, self-contained mobile IDE for Android. It started as a fork of the
6+
excellent [Xed-Editor](https://github.com/Xed-Editor/Xed-Editor) text editor, and grew into a full
7+
development environment: create real projects, resolve toolchains, build and run them on-device
8+
through a bundled Linux sandbox, and manage everything from a modern, redesigned UI.
89

9-
![Android CI](https://github.com/GoyDevv/Xed-EditorPRO/actions/workflows/android.yml/badge.svg?event=push&style=for-the-badge)
10+
![Android CI](https://github.com/GoyDevv/Xed-EditorPRO/actions/workflows/android.yml/badge.svg?event=push)
1011
![Download count](https://img.shields.io/github/downloads/GoyDevv/Xed-EditorPRO/total?label=Downloads)
1112

13+
<br clear="left"/>
14+
1215
---
1316

14-
## Documentation
17+
## Why XED-PRO?
18+
19+
Xed-Editor is a great editor. **XED-PRO turns it into an IDE.** Everything below is added on top of
20+
the original editing experience:
21+
22+
| Capability | Xed-Editor | XED-PRO |
23+
| --- | :---: | :---: |
24+
| Syntax highlighting, LSP, multi-tab editing | ✅ | ✅ |
25+
| Built-in terminal | ✅ | ✅ |
26+
| **Create real projects from templates** | — | ✅ Android, Fabric/Forge mods, Python, Node.js, Web |
27+
| **Build & Run on-device** (Gradle/npm/python) | — | ✅ one-tap, headless, in a Linux sandbox |
28+
| **Dependency Manager** | — | ✅ install JDK/SDK/NDK/CMake/toolchains |
29+
| **IDE Configuration** | — | ✅ switch JDK, pin NDK, per-project Gradle options |
30+
| **Projects & Repositories browser** | — | ✅ |
31+
| **Auto-resolved template versions** | — | ✅ Fabric/Forge/Android pinned to real, current versions |
32+
| **Full Git workspace + GitHub integration** | basic | ✅ tabs, diffs, PRs, workflow runs |
33+
34+
### What makes it a real IDE
35+
36+
- **Project creation that actually builds.** Pick a template in a clean bottom sheet and get a
37+
complete, buildable project — not a stub. Android projects use the same proven toolchain the app
38+
itself ships with (AGP 9 / Kotlin 2.3 / Gradle 9.5) and let you choose the SDK (up to the latest
39+
API, labelled with its Android version). Fabric and Forge mods resolve real, published dependency
40+
versions for your chosen Minecraft version.
41+
- **Build & Run in a bundled Linux sandbox.** A one-tap Run button detects the project type and runs
42+
it (Gradle, npm, Python, Go, Rust, static web) inside an exec-capable Ubuntu sandbox — headlessly,
43+
with a live output panel and a notification you can stop from anywhere. Android builds install the
44+
resulting APK for you.
45+
- **Toolchain management, built in.** The Dependency Manager installs JDKs, the Android SDK/NDK,
46+
CMake, Node, Python and more, with a live install log. The IDE Configuration screen switches the
47+
active JDK, pins an NDK to a project, and exposes per-project Gradle options (build type, log
48+
level, and extra flags like `--stacktrace`).
49+
- **Automatic setup.** Creating an Android project kicks off a Gradle sync that downloads the exact
50+
SDK platform your project targets before building, with an honest first-build heads-up.
51+
- **Everything, organized.** Redesigned Dependency Manager, IDE Configuration and Create Project
52+
screens; a Projects & Repositories browser; import files into any folder from the file tree; and a
53+
terminal that opens in your selected project.
1554

16-
To learn more about Xed-Editor PRO‘s features and usage, visit the official
55+
---
56+
57+
## Features
58+
59+
- **Editor** — syntax highlighting, LSP-powered code intelligence, multi-tab editing, project-wide
60+
search, fast file tree with import/copy/move.
61+
- **Terminal** — a real Linux (Ubuntu) environment via proot; opens in your current project.
62+
- **Build & Run** — project-aware Run/Sync with a live, stoppable output panel and notifications.
63+
- **Project templates** — Android (Jetpack Compose), Minecraft mods (Fabric & Forge), Python,
64+
Node.js, and static web — all generated as complete, buildable projects.
65+
- **Dependency Manager & IDE Configuration** — install and switch toolchains; per-project Gradle
66+
build type, log level and flags.
67+
- **Git & GitHub** — Code / Diff / Actions tabs, commit with title + description, open pull
68+
requests, browse workflow runs, and manage the origin — all in-app.
69+
- **Extensions & themes**, customizable app font, and more.
1770

18-
[![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/F2y8eva6e6)
1971
---
2072

2173
## Download
2274

23-
- **Latest Alpha Build**: Download from [Actions](https://github.com/GoyDevv/Xed-EditorPRO/actions/)
24-
- **Latest Stable Build**: Download
25-
from [Releases](https://github.com/GoyDevv/Xed-EditorPRO/releases)
75+
- **Latest build (XED-PRO):** from [Actions](https://github.com/GoyDevv/Xed-EditorPRO/actions/) →
76+
latest run → Artifacts → **XED-PRO**.
77+
- **Releases:** from [Releases](https://github.com/GoyDevv/Xed-EditorPRO/releases).
2678

2779
[<img src="https://raw.githubusercontent.com/Kunzisoft/Github-badge/main/get-it-on-github.png" alt="Get it on GitHub" height="80">](https://github.com/GoyDevv/Xed-EditorPRO/releases/latest)
2880

81+
XED-PRO installs **alongside** the official Xed-Editor (distinct app id and name), so you can keep
82+
both.
83+
2984
---
3085

86+
## Building the project
3187

32-
## Building the Project
88+
Build the **XED-PRO APK** (the standalone release build — always signed with the committed keystore
89+
so every build installs as an update over the previous one; installs alongside other builds):
3390

91+
```bash
92+
./gradlew assemblePro
93+
```
3494

35-
1. Build the **Debug APK** (signed with the included testkey):
36-
```bash
37-
./gradlew assembleDebug
38-
```
39-
The compiled APK will be located at `app/build/outputs/apk/debug/app-debug.apk`.
40-
---
95+
The APK is written to `app/build/outputs/apk/pro/`.
4196

42-
### Option 2: Building with Docker
97+
You can also build a plain debug APK:
98+
99+
```bash
100+
./gradlew assembleDebug # -> app/build/outputs/apk/debug/app-debug.apk
101+
```
102+
103+
### Build with Docker
104+
105+
If you don't have the Android SDK or JDK installed locally:
43106

44-
If you do not have the Android SDK or JDK 21 installed locally, you can compile the project in a container using Docker.
45-
This command builds the APK and exports it directly to your host machine:
46107
```bash
47108
DOCKER_BUILDKIT=1 docker build --target export-stage --output ./out .
48-
```
49-
The output debug APK will be generated at `out/debug/app-debug.apk`.
109+
```
110+
111+
The output APK is generated under `out/`.
50112

51113
---
52114

53115
## Translations
54116

55-
Help translate Xed-Editor! Visit [Weblate](https://hosted.weblate.org/engage/xed-editor/) to get
117+
Help translate the editor! Visit [Weblate](https://hosted.weblate.org/engage/xed-editor/) to get
56118
started:
57119

58120
<a href="https://hosted.weblate.org/engage/xed-editor/">
@@ -61,6 +123,16 @@ started:
61123

62124
---
63125

64-
## Copyright
126+
## Community
127+
128+
[![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/F2y8eva6e6)
129+
130+
---
131+
132+
## Credits & license
133+
134+
XED-PRO is a fork of [Xed-Editor](https://github.com/Xed-Editor/Xed-Editor) by the Xed-Editor
135+
authors — huge thanks to them for the editor foundation. XED-PRO is a **separate project**: please
136+
do not file XED-PRO issues on the upstream Xed-Editor repository.
65137

66-
This IDE was forked from XedEditor Originally As a text editor. We are completly separate projects, please do not create issue about our IDE to their Project.
138+
Licensed under the terms in [LICENSE](LICENSE).

‎app/build.gradle.kts‎

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ android {
1818
targetSdk = 37
1919

2020
// versioning
21-
versionCode = 127
22-
versionName = "4.2.0"
21+
versionCode = 128
22+
versionName = "4.2.1"
2323
vectorDrawables { useSupportLibrary = true }
2424
}
2525

@@ -125,15 +125,19 @@ android {
125125
isDebuggable = false
126126
}
127127

128-
// Standalone "clone" build: distinct applicationId + label so it installs ALONGSIDE the
129-
// official Xed-Editor (and the debug build) instead of replacing it. Signed with the
130-
// bundled testkey, so it needs no signing secrets and builds on any fork/CI.
131-
create("clone") {
128+
// XED-PRO release build: distinct applicationId + label so it installs ALONGSIDE the
129+
// official Xed-Editor (and the debug build) instead of replacing it. This is a real release
130+
// build (initWith release, not debuggable). It is ALWAYS signed with the bundled, committed
131+
// keystore (the "debug" testkey), so every build — locally, on any fork, and on CI — uses the
132+
// exact same signing key. That means each new XED-PRO APK installs as an update over the
133+
// previous one (Android requires an identical signature to update). Do NOT change this key,
134+
// or existing installs will fail to update until they're uninstalled.
135+
create("pro") {
132136
initWith(buildTypes.getByName("release"))
133137
matchingFallbacks += listOf("release")
134138
applicationIdSuffix = ".pro"
135139
versionNameSuffix = "-PRO"
136-
resValue("string", "app_name", "Xed PRO")
140+
resValue("string", "app_name", "XED-PRO")
137141
signingConfig = signingConfigs.getByName("debug")
138142
isMinifyEnabled = false
139143
isShrinkResources = false

0 commit comments

Comments
 (0)