Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8bd84d0
chore: update .gitignore to include additional files and directories
Elitex07 May 25, 2026
2f9b2c7
feat: add devcontainer-lock.json for node and android-sdk features
Elitex07 May 25, 2026
a65a810
Merge branch 'main' of https://github.com/Acode-Foundation/Acode
Elitex07 May 25, 2026
18dd8dc
feat: add visual line break marker for text wrap
Elitex07 May 25, 2026
f79f1c4
chore: add i18n keys to all lang files; remove: local.properies
UnschooledGamer May 26, 2026
d6ec37b
chore: update package-lock.json
UnschooledGamer May 26, 2026
52a2166
Update src/cm/lineBreakMarker.ts
UnschooledGamer May 26, 2026
153f6ca
chore: fmt lang files
UnschooledGamer May 26, 2026
274b7fe
chore: fmt changes
UnschooledGamer May 26, 2026
fc7aa5c
Merge branch 'main' into feature/line-break-marker
UnschooledGamer May 26, 2026
9b170db
rm: setting.gradle; remove: toolchainVendor
UnschooledGamer May 26, 2026
7b6e599
Merge branch 'feature/line-break-marker' of https://github.com/Elitex…
UnschooledGamer May 26, 2026
4b0db8b
Merge branch 'main' into feature/line-break-marker
UnschooledGamer May 26, 2026
95cdb83
Merge branch 'main' into feature/line-break-marker
UnschooledGamer May 28, 2026
45f54d7
fix: use RangeSetBuilder for line break marker to prevent duplicates
Elitex07 May 31, 2026
e1cec3f
Merge branch 'feature/line-break-marker' of https://github.com/Elitex…
Elitex07 May 31, 2026
2121f2a
refactor: merge line break marker into show spaces toggle and update …
Elitex07 May 31, 2026
30a37ec
chore: fix package-lock.json
UnschooledGamer May 31, 2026
fc9c54e
revert: en-us.json additional keys merge
UnschooledGamer May 31, 2026
c3a255d
remove: no more needed i18n keys
UnschooledGamer May 31, 2026
fcc8ebe
remove: tailing comma from lang files
UnschooledGamer May 31, 2026
a1a7b1a
chore: fix fmt
UnschooledGamer May 31, 2026
e0978eb
chore(editorManager): fmt
UnschooledGamer May 31, 2026
5ccb247
revert: keys from wrong merge
UnschooledGamer May 31, 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
14 changes: 14 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"features": {
"ghcr.io/devcontainers/features/node:2.0": {
"version": "2.0.0",
"resolved": "ghcr.io/devcontainers/features/node@sha256:fedd4c11f7adfb64283b578dddc7da906728daa25fa293351c9d913231acf12f",
"integrity": "sha256:fedd4c11f7adfb64283b578dddc7da906728daa25fa293351c9d913231acf12f"
},
"ghcr.io/nordcominc/devcontainer-features/android-sdk:1": {
"version": "1.2.0",
"resolved": "ghcr.io/nordcominc/devcontainer-features/android-sdk@sha256:c3e0c7e1b12fce18a257e163ade8515e534e58a7edad10dfb6d1fb1a250a307e",
"integrity": "sha256:c3e0c7e1b12fce18a257e163ade8515e534e58a7edad10dfb6d1fb1a250a307e"
}
}
}
36 changes: 20 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
node_modules
/build.json
/www/build
/plugins
/platforms
/keystore.jks
/platforms/android/debug-signing.properties
/platforms/android/release-signing.properties
**/*/.DS_Store
.DS_Store
pnpm-lock.yaml
.zed
.idea
ace-builds
fdroid.bool
tsconfig.tsbuildinfo
/node_modules
/build.json
/www/build
/plugins
/platforms
/keystore.jks
/platforms/android/debug-signing.properties
/platforms/android/release-signing.properties
**/*/.DS_Store
.DS_Store
pnpm-lock.yaml
.zed
.idea
ace-builds
fdroid.bool
CLAUDE.md
graphify-out/
.graphify_python
.gradle/
local.properties
12 changes: 12 additions & 0 deletions gradle/gradle-daemon-jvm.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/491f83666ae7f4d6ebb28fee72ebb035/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/0d1a1acdc708062093673f65aa9aba4b/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/491f83666ae7f4d6ebb28fee72ebb035/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/0d1a1acdc708062093673f65aa9aba4b/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/7083b89563e7ce20943037b8cd2b8cc2/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/060bbb778a1f55ea705fdebd2ccfeab9/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/491f83666ae7f4d6ebb28fee72ebb035/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/0d1a1acdc708062093673f65aa9aba4b/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d09679dc60fe5aa05ef7d03efdefac20/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ed4e3bf2f5e7c5d9aabc4cbd8acd555e/redirect
toolchainVersion=21
8 changes: 8 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
"@rspack/cli": "^2.0.0",
"@rspack/core": "^2.0.0",
"@types/ace": "^0.0.52",
"@types/cordova": "^11.0.3",
"@types/url-parse": "^1.4.11",
"autoprefixer": "^10.5.0",
"babel-loader": "^10.1.1",
Expand Down
68 changes: 68 additions & 0 deletions src/cm/lineBreakMarker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import { Decoration, DecorationSet, ViewPlugin, WidgetType, EditorView, ViewUpdate } from "@codemirror/view";
import { RangeSetBuilder } from "@codemirror/state";

class NewlineWidget extends WidgetType {
toDOM(): HTMLElement {
let span = document.createElement("span");
span.textContent = "¬";
span.className = "cm-newline-marker";
return span;
}
eq(other: WidgetType): boolean {
return other instanceof NewlineWidget;
}
}

export const lineBreakMarkerPlugin = ViewPlugin.fromClass(
class {
decorations: DecorationSet;

constructor(view: EditorView) {
this.decorations = this.getDecorations(view);
}

update(update: ViewUpdate) {
if (update.docChanged || update.viewportChanged) {
this.decorations = this.getDecorations(update.view);
}
}

getDecorations(view: EditorView): DecorationSet {
let builder = new RangeSetBuilder<Decoration>();
let lastLineNumber = -1;

for (let { from, to } of view.visibleRanges) {
for (let pos = from; pos <= to; ) {
let line = view.state.doc.lineAt(pos);

if (line.number > lastLineNumber && line.number < view.state.doc.lines) {
let deco = Decoration.widget({
widget: new NewlineWidget(),
side: 1,
});
builder.add(line.to, line.to, deco);
lastLineNumber = line.number;
}

pos = line.to + 1;
}
}
return builder.finish();
}
},
{
decorations: (v) => v.decorations,
},
);

export const lineBreakMarkerTheme = EditorView.theme({
".cm-newline-marker": {
color: "var(--cm-space-marker-color, rgba(127, 127, 127, 0.6))",
pointerEvents: "none",
userSelect: "none",
},
});

export const lineBreakMarker = [lineBreakMarkerPlugin, lineBreakMarkerTheme];

export default lineBreakMarker;
5 changes: 5 additions & 0 deletions src/cordova-custom.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
declare module 'cordova/channel';
declare module 'cordova/exec';
interface Cordova {
fireDocumentEvent(eventName: string, data?: any): void;
}
2 changes: 1 addition & 1 deletion src/lang/en-us.json
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@
"settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
"settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
"settings-info-editor-show-share-button": "Show share button in selection menu.",
"settings-info-editor-show-spaces": "Display visible whitespace markers.",
"settings-info-editor-show-spaces": "Display visible whitespace and line break markers.",
"settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
"settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
"settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
Expand Down
2 changes: 1 addition & 1 deletion src/lang/hu-hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,7 @@
"settings-info-editor-rtl-text": "Jobbról balra haladó viselkedés váltása soronként.",
"settings-info-editor-scroll-settings": "Görgetősáv méretének, sebességének és az ujjmozdulatok viselkedésének beállítása.",
"settings-info-editor-shift-click-selection": "Kijelölés kiterjesztése a Shift + érintés vagy kattintás használatával.",
"settings-info-editor-show-spaces": "Látható szóközjelölők megjelenítése.",
"settings-info-editor-show-spaces": "Látható szóköz- és sortörésjelölők megjelenítése.",
"settings-info-editor-soft-tab": "Szóközök beszúrása tabulátorkarakterek helyett.",
"settings-info-editor-tab-size": "Állítsa be, hány szóközt használjon egy tabulátorlépés.",
"settings-info-editor-teardrop-size": "Kurzorfogantyú méretének beállítása az érintéses szerkesztéshez.",
Expand Down
12 changes: 12 additions & 0 deletions src/lib/editorManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ import {
setScrollPosition,
} from "cm/editorUtils";
import indentGuides from "cm/indentGuides";
import { lineBreakMarker } from "cm/lineBreakMarker";
import rainbowBrackets, { getRainbowBracketColors } from "cm/rainbowBrackets";
import { getThemeConfig, getThemeExtensions } from "cm/themes";
import list from "components/collapsableList";
Expand Down Expand Up @@ -256,6 +257,8 @@ async function EditorManager($header, $body) {
const rainbowCompartment = new Compartment();
// Compartment for indent guides
const indentGuidesCompartment = new Compartment();
// Compartment for line break marker
const lineBreakMarkerCompartment = new Compartment();
// Compartment for read-only toggling
const readOnlyCompartment = new Compartment();
// Compartment for language mode (allows async loading/reconfigure)
Expand Down Expand Up @@ -450,6 +453,15 @@ async function EditorManager($header, $body) {
: [];
},
},
{
keys: ["showSpaces", "textWrap"],
compartments: [lineBreakMarkerCompartment],
build() {
const showSpaces = !!appSettings?.value?.showSpaces;
const textWrap = !!appSettings?.value?.textWrap;
return showSpaces && textWrap ? lineBreakMarker : [];
},
},
{
keys: ["fadeFoldWidgets"],
compartments: [foldThemeCompartment],
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/admob/src/www/ads/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export * from "./app-open";
export * from "./banner";
export { MobileAd, MobileAdOptions } from "./base";
export { MobileAd } from "./base";
export type { MobileAdOptions } from "./base";
export * from "./interstitial";
export * from "./native";
export * from "./rewarded";
Expand Down
8 changes: 4 additions & 4 deletions src/plugins/admob/src/www/ads/webview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ export class WebViewAd extends MobileAd<WebViewAdOptions> {
return false;
}

private nodeScriptReplace(node) {
private nodeScriptReplace(node: any) {
if (this.isNodeScript(node) === true) {
node.parentNode.replaceChild(this.nodeScriptClone(node), node);
} else {
Expand All @@ -119,7 +119,7 @@ export class WebViewAd extends MobileAd<WebViewAdOptions> {
return node;
}

private nodeScriptClone(node) {
private nodeScriptClone(node: any) {
const script = document.createElement("script");
script.text = node.innerHTML;
const attrs = node.attributes;
Expand All @@ -129,7 +129,7 @@ export class WebViewAd extends MobileAd<WebViewAdOptions> {
return script;
}

private isNodeScript(node) {
private isNodeScript(node: any) {
return node.tagName === "SCRIPT";
}

Expand All @@ -142,7 +142,7 @@ export class WebViewAd extends MobileAd<WebViewAdOptions> {
}
}

private historySetPage(page: string, parameters = {}) {
private historySetPage(page: string, parameters: Record<string, any> = {}) {
const _parameters: string[] = [];
for (const name in parameters) {
_parameters.push(`${name}=${encodeURI(parameters[name])}`);
Expand Down