Skip to content

Commit 7ed6890

Browse files
Merge branch 'Acode-Foundation:main' into lsp
2 parents e7b2682 + 70abc62 commit 7ed6890

49 files changed

Lines changed: 740 additions & 148 deletions

Some content is hidden

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

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
# Change Log
22

3+
## v1.11.5 (963)
4+
5+
* Alpine Linux Backend by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1401
6+
* fix: html escaping for console page by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1411
7+
* Create plugin for native libs by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1413
8+
* feat: terminal frontend by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1415
9+
* Update hu-hu.json translation by @summoner001 in https://github.com/Acode-Foundation/Acode/pull/1423, https://github.com/Acode-Foundation/Acode/pull/1425, https://github.com/Acode-Foundation/Acode/pull/1440
10+
* chore: update id-id.json translation by @hyperz111 in https://github.com/Acode-Foundation/Acode/pull/1424, https://github.com/Acode-Foundation/Acode/pull/1447
11+
* All file access permission for terminal by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1426
12+
* refactor: plugins page by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1428
13+
* Fixed infinite scrolling in case of filtering on both plugin page and sidebar
14+
* Ui improvements on plugin page
15+
* Revamped few themes(fixes visibility issue) and Added few new ones by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1430
16+
* New theme: Neon, Sunset, Glass, Glass Dark
17+
* Revamped themes: System (Dark & Light), Oled, Light
18+
* System theme option is available on free too.
19+
* fix: scaling issue by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1431
20+
* fix: quicktools toggler responsiveness(scaling) and migrate biome by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1442
21+
* chore: update ace to v1.43.2 by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1443
22+
* feat: add uninstall option in terminal setting and tab subtitle fixes by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1445
23+
* feat: alpine document provider(exposes terminal public dir to saf picker) by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1444
24+
* feat: improved logging + fix terminal installation failure by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1446
25+
* some terminal related quality improvements by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1449
26+
* fix: dont start selection in case of back gesture
27+
* remove useless border-radius from terminal container
28+
* fix: improve terminal cursor positioning for mobile keyboard events
29+
* fix: update terminal container background when theme changes
30+
* exclude alpine/public while backup by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1450
31+
* Custom port support in Terminal manager by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1459
32+
* 🌐 i18n(locale): update vietnamese translations by @Nekitori17 in https://github.com/Acode-Foundation/Acode/pull/1461
33+
* fix: infinite loading when previewing by @RohitKushvaha01 in https://github.com/Acode-Foundation/Acode/pull/1460
34+
* Feat/some improvements to terminal and its api by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1463
35+
* Fixes/sidebar extension state by clearing and active autocompletion box background by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1466
36+
* feat: add terminal like search and replace history by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1467
37+
* fix: theme issue in terminal context menu
38+
* fix: prevent folder paste loops and improve SAF handling(termux) in cut operation by @bajrangCoder in https://github.com/Acode-Foundation/Acode/pull/1474
39+
- Add validation to prevent pasting folders into themselves or subdirectories
40+
- Implement special Termux SAF handling for cut operations with recursive file/folder moving
41+
- Fix createFileStructure to handle nested paths (foo/bar) for file:// URIs
42+
343
## v1.11.4 (962)
444

545
* Fix renaming current Termux URI file whilst viewing/editing it by @peasneovoyager2banana2

config.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version='1.0' encoding='utf-8' ?>
2-
<widget id="com.foxdebug.acode" android-versionCode="962" version="1.11.4"
2+
<widget id="com.foxdebug.acode" android-versionCode="963" version="1.11.5"
33
xmlns="http://www.w3.org/ns/widgets"
44
xmlns:android="http://schemas.android.com/apk/res/android"
55
xmlns:cdv="http://cordova.apache.org/ns/1.0">
@@ -32,6 +32,7 @@
3232
<preference name="AndroidLaunchMode" value="singleTask" />
3333
<preference name="prerendered-icon" value="false" />
3434
<preference name="androidxEnabled" value="true" />
35+
<preference name="android-targetSdkVersion" value="35" />
3536

3637

3738
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">

hooks/post-process.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function patchTargetSdkVersion() {
4949

5050
if (sdkRegex.test(content)) {
5151
const fdroid = fs.readFileSync(path.join(prefix,'fdroid.bool'), 'utf-8').trim();
52-
var api = "34"
52+
var api = "35"
5353
if(fdroid == "true"){
5454
api = "28"
5555
}

package-lock.json

Lines changed: 43 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "com.foxdebug.acode",
33
"displayName": "Acode",
4-
"version": "1.11.4",
4+
"version": "1.11.5",
55
"description": "Acode is a code editor for android",
66
"scripts": {
77
"lang": "node ./utils/lang.js",
@@ -36,9 +36,9 @@
3636
},
3737
"cordova-plugin-websocket": {},
3838
"cordova-plugin-buildinfo": {},
39-
"com.foxdebug.acode.rk.exec.proot": {},
4039
"cordova-plugin-system": {},
41-
"com.foxdebug.acode.rk.exec.terminal": {}
40+
"com.foxdebug.acode.rk.exec.terminal": {},
41+
"com.foxdebug.acode.rk.exec.proot": {}
4242
},
4343
"platforms": [
4444
"android"
@@ -66,7 +66,7 @@
6666
"babel-loader": "^9.1.3",
6767
"com.foxdebug.acode.rk.exec.proot": "file:src/plugins/proot",
6868
"com.foxdebug.acode.rk.exec.terminal": "file:src/plugins/terminal",
69-
"cordova-android": "^13.0.0",
69+
"cordova-android": "^14.0.1",
7070
"cordova-clipboard": "^1.3.0",
7171
"cordova-plugin-advanced-http": "^3.3.1",
7272
"cordova-plugin-browser": "file:src/plugins/browser",

res/android/values/themes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
66
<item name="windowSplashScreenAnimationDuration">200</item>
77
<item name="postSplashScreenTheme">@style/Theme.AppCompat.DayNight.NoActionBar</item>
8+
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
89
</style>
910
</resources>

src/components/terminal/terminalTouchSelection.css

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
padding: 12px 16px;
7272
border: none;
7373
background: transparent;
74-
color: #fff;
74+
color: var(--primary-text-color);
7575
font-size: 14px;
7676
font-weight: 500;
7777
text-align: center;
@@ -85,12 +85,12 @@
8585

8686
.terminal-context-menu button:hover,
8787
.terminal-context-menu button:focus {
88-
background: #616161;
88+
background: var(--popup-border-color);
8989
outline: none;
9090
}
9191

9292
.terminal-context-menu button:active {
93-
background: #757575;
93+
background: rgba(var(--secondary-color), 0.5);
9494
}
9595

9696
@media (min-width: 768px) {

src/handlers/quickTools.js

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import quickTools from "components/quickTools";
22
import actionStack from "lib/actionStack";
3+
import searchHistory from "lib/searchHistory";
34
import appSettings from "lib/settings";
45
import searchSettings from "settings/searchSettings";
56
import KeyboardEvent from "utils/keyboardEvent";
@@ -75,6 +76,67 @@ appSettings.on("update:quicktoolsItems:after", () => {
7576
}, 100);
7677
});
7778

79+
// Initialize history navigation
80+
function setupHistoryNavigation() {
81+
const { $searchInput, $replaceInput } = quickTools;
82+
83+
// Search input history navigation
84+
if ($searchInput.el) {
85+
$searchInput.el.addEventListener("keydown", (e) => {
86+
if (e.key === "ArrowUp") {
87+
e.preventDefault();
88+
const newValue = searchHistory.navigateSearchUp($searchInput.el.value);
89+
$searchInput.el.value = newValue;
90+
// Trigger search
91+
if (newValue) find(0, false);
92+
} else if (e.key === "ArrowDown") {
93+
e.preventDefault();
94+
const newValue = searchHistory.navigateSearchDown(
95+
$searchInput.el.value,
96+
);
97+
$searchInput.el.value = newValue;
98+
// Trigger search
99+
if (newValue) find(0, false);
100+
} else if (e.key === "Enter" || e.key === "Escape") {
101+
// Reset navigation on enter or escape
102+
searchHistory.resetSearchNavigation();
103+
}
104+
});
105+
106+
// Reset navigation when user starts typing
107+
$searchInput.el.addEventListener("input", () => {
108+
searchHistory.resetSearchNavigation();
109+
});
110+
}
111+
112+
// Replace input history navigation
113+
if ($replaceInput.el) {
114+
$replaceInput.el.addEventListener("keydown", (e) => {
115+
if (e.key === "ArrowUp") {
116+
e.preventDefault();
117+
const newValue = searchHistory.navigateReplaceUp(
118+
$replaceInput.el.value,
119+
);
120+
$replaceInput.el.value = newValue;
121+
} else if (e.key === "ArrowDown") {
122+
e.preventDefault();
123+
const newValue = searchHistory.navigateReplaceDown(
124+
$replaceInput.el.value,
125+
);
126+
$replaceInput.el.value = newValue;
127+
} else if (e.key === "Enter" || e.key === "Escape") {
128+
// Reset navigation on enter or escape
129+
searchHistory.resetReplaceNavigation();
130+
}
131+
});
132+
133+
// Reset navigation when user starts typing
134+
$replaceInput.el.addEventListener("input", () => {
135+
searchHistory.resetReplaceNavigation();
136+
});
137+
}
138+
}
139+
78140
export const key = {
79141
get shift() {
80142
return state.shift;
@@ -169,10 +231,16 @@ export default function actions(action, value) {
169231
return true;
170232

171233
case "search-prev":
234+
if (quickTools.$searchInput.el.value) {
235+
searchHistory.addToHistory(quickTools.$searchInput.el.value);
236+
}
172237
find(1, true);
173238
return true;
174239

175240
case "search-next":
241+
if (quickTools.$searchInput.el.value) {
242+
searchHistory.addToHistory(quickTools.$searchInput.el.value);
243+
}
176244
find(1, false);
177245
return true;
178246

@@ -181,10 +249,16 @@ export default function actions(action, value) {
181249
return true;
182250

183251
case "search-replace":
252+
if ($replaceInput.value) {
253+
searchHistory.addToHistory($replaceInput.value);
254+
}
184255
editor.replace($replaceInput.value || "");
185256
return true;
186257

187258
case "search-replace-all":
259+
if ($replaceInput.value) {
260+
searchHistory.addToHistory($replaceInput.value);
261+
}
188262
editor.replaceAll($replaceInput.value || "");
189263
return true;
190264

@@ -227,9 +301,15 @@ function toggleSearch() {
227301
};
228302

229303
$searchInput.onsearch = function () {
230-
if (this.value) find(1, false);
304+
if (this.value) {
305+
searchHistory.addToHistory(this.value);
306+
find(1, false);
307+
}
231308
};
232309

310+
// Setup history navigation for search inputs
311+
setupHistoryNavigation();
312+
233313
setFooterHeight(2);
234314
find(0, false);
235315

@@ -327,6 +407,10 @@ function removeSearch() {
327407
$footer.removeAttribute("data-searching");
328408
$searchRow1.remove();
329409
$searchRow2.remove();
410+
411+
// Reset history navigation when search is closed
412+
searchHistory.resetAllNavigation();
413+
330414
const { activeFile } = editorManager;
331415

332416
// Check if current tab is a terminal

src/lang/ar-ye.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,5 +420,6 @@
420420
"terminal:cursor style": "Cursor Style",
421421
"terminal:font family": "Font Family",
422422
"terminal:convert eol": "Convert EOL",
423-
"terminal": "Terminal"
423+
"terminal": "Terminal",
424+
"allFileAccess": "All file access"
424425
}

0 commit comments

Comments
 (0)