├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── drawable │ │ │ ├── banner.png │ │ │ ├── block.png │ │ │ ├── logo.png │ │ │ ├── ripple_on_color_surface.xml │ │ │ ├── plus.xml │ │ │ ├── play.xml │ │ │ ├── delete.xml │ │ │ ├── folder.xml │ │ │ ├── list_status.xml │ │ │ ├── close.xml │ │ │ ├── image.xml │ │ │ ├── file_document.xml │ │ │ ├── language_css.xml │ │ │ ├── language_html.xml │ │ │ ├── gesture_tap_hold.xml │ │ │ ├── gesture_tap_hold_tertiary.xml │ │ │ ├── language_javascript.xml │ │ │ └── setting.xml │ │ ├── raw │ │ │ ├── block_drag.wav │ │ │ └── block_drop.wav │ │ ├── drawable-xhdpi │ │ │ ├── string.9.png │ │ │ ├── block_default.9.png │ │ │ ├── block_joint.9.png │ │ │ ├── complex_block.9.png │ │ │ ├── define_block.9.png │ │ │ ├── side_attachable.9.png │ │ │ ├── complex_block_bottom.9.png │ │ │ └── default_block_attachable.9.png │ │ ├── drawable-xxxhdpi │ │ │ ├── number.9.png │ │ │ ├── block_boolean.9.png │ │ │ └── block_boolean_bg.png │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ ├── values │ │ │ └── values.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── color │ │ │ ├── navigation_item_color.xml │ │ │ └── navigation_item_background_color.xml │ │ ├── xml │ │ │ ├── backup_rules.xml │ │ │ └── data_extraction_rules.xml │ │ ├── menu │ │ │ ├── activity_event_list_menu.xml │ │ │ ├── activity_main_drawer_menu.xml │ │ │ └── activity_event_editor_menu.xml │ │ ├── layout │ │ │ ├── layout_source_code_dialog.xml │ │ │ ├── layout_drawer_header_main.xml │ │ │ ├── layout_console_log_item.xml │ │ │ ├── layout_license_list_item.xml │ │ │ ├── layout_event_blocks_holder_list_item.xml │ │ │ ├── activity_debug.xml │ │ │ ├── layout_add_text_in_block.xml │ │ │ ├── layout_projects_manager_list_item.xml │ │ │ ├── layout_file_list_item.xml │ │ │ ├── layout_setting_item.xml │ │ │ ├── layout_event_list_item.xml │ │ │ ├── layout_bottomsheet_event_operation.xml │ │ │ ├── layout_bottomsheet_project_operation.xml │ │ │ ├── layout_file_operation.xml │ │ │ ├── layout_event_list_adapter.xml │ │ │ ├── layout_blocks_holder_list_item.xml │ │ │ ├── activity_license_reader.xml │ │ │ ├── activity_license.xml │ │ │ ├── layout_new_blocks_holder_dialog.xml │ │ │ └── activity_setting.xml │ │ └── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ └── assets │ │ ├── attribution │ │ └── free_sound_attribution.txt │ │ ├── LicenseList.json │ │ └── license │ │ └── ace_editor_license.txt └── proguard-rules.pro ├── common ├── .gitignore ├── src │ └── main │ │ ├── java │ │ ├── com │ │ │ └── blankj │ │ │ │ └── utilcode │ │ │ │ ├── constant │ │ │ │ ├── CacheConstants.java │ │ │ │ ├── MemoryConstants.java │ │ │ │ └── TimeConstants.java │ │ │ │ └── util │ │ │ │ ├── UtilsFileProvider.java │ │ │ │ ├── CloneUtils.java │ │ │ │ ├── UtilsTransActivity4MainProcess.java │ │ │ │ └── CloseUtils.java │ │ └── android │ │ │ └── code │ │ │ └── editor │ │ │ └── common │ │ │ ├── utils │ │ │ └── ColorUtils.java │ │ │ └── interfaces │ │ │ └── FileDeleteListener.java │ │ └── res │ │ ├── values │ │ └── styles.xml │ │ ├── xml │ │ └── util_code_provider_paths.xml │ │ └── values-v21 │ │ └── styles.xml ├── proguard-rules.pro └── build.gradle ├── editor ├── .gitignore ├── src │ └── main │ │ ├── assets │ │ └── Editor │ │ │ ├── SoraEditor │ │ │ ├── css │ │ │ │ ├── .vscodeignore │ │ │ │ ├── yarn.lock │ │ │ │ ├── package.nls.json │ │ │ │ ├── .vscode │ │ │ │ │ └── launch.json │ │ │ │ ├── language-configuration.json │ │ │ │ └── package.json │ │ │ ├── jetbrains.ttf │ │ │ ├── language_scopes.json │ │ │ ├── typescript │ │ │ │ └── syntaxes │ │ │ │ │ ├── jsdoc.ts.injection.tmLanguage.json │ │ │ │ │ ├── jsdoc.js.injection.tmLanguage.json │ │ │ │ │ └── Readme.md │ │ │ ├── ini │ │ │ │ └── ini.language-configuration.json │ │ │ ├── groovy │ │ │ │ └── language-configuration.json │ │ │ ├── bat │ │ │ │ └── language-configuration.json │ │ │ ├── csharp │ │ │ │ └── language-configuration.json │ │ │ ├── shellscript │ │ │ │ └── language-configuration.json │ │ │ ├── yaml │ │ │ │ └── language-configuration.json │ │ │ ├── smali │ │ │ │ └── language-configuration.json │ │ │ ├── cpp │ │ │ │ └── language-configuration.json │ │ │ ├── go │ │ │ │ └── language-configuration.json │ │ │ ├── julia │ │ │ │ └── language-configuration.json │ │ │ ├── lua │ │ │ │ ├── package.json │ │ │ │ └── language-configuration.json │ │ │ ├── html │ │ │ │ └── completions │ │ │ │ │ └── LICENSE.md │ │ │ └── markdown │ │ │ │ └── language-configuration.json │ │ │ └── Ace-Editor │ │ │ └── AceEditor │ │ │ ├── js │ │ │ ├── mode-text.js │ │ │ ├── snippets │ │ │ │ ├── d.js │ │ │ │ ├── abap.js │ │ │ │ ├── ada.js │ │ │ │ ├── alda.js │ │ │ │ ├── apex.js │ │ │ │ ├── aql.js │ │ │ │ ├── asl.js │ │ │ │ ├── csp.js │ │ │ │ ├── dot.js │ │ │ │ ├── ejs.js │ │ │ │ ├── elm.js │ │ │ │ ├── ftl.js │ │ │ │ ├── glsl.js │ │ │ │ ├── haxe.js │ │ │ │ ├── ini.js │ │ │ │ ├── ion.js │ │ │ │ ├── jack.js │ │ │ │ ├── jade.js │ │ │ │ ├── jexl.js │ │ │ │ ├── json.js │ │ │ │ ├── jssm.js │ │ │ │ ├── jsx.js │ │ │ │ ├── less.js │ │ │ │ ├── lisp.js │ │ │ │ ├── mask.js │ │ │ │ ├── mel.js │ │ │ │ ├── mips.js │ │ │ │ ├── nim.js │ │ │ │ ├── nix.js │ │ │ │ ├── nsis.js │ │ │ │ ├── odin.js │ │ │ │ ├── pig.js │ │ │ │ ├── qml.js │ │ │ │ ├── raku.js │ │ │ │ ├── rdoc.js │ │ │ │ ├── red.js │ │ │ │ ├── rust.js │ │ │ │ ├── sac.js │ │ │ │ ├── sass.js │ │ │ │ ├── scad.js │ │ │ │ ├── scss.js │ │ │ │ ├── sjs.js │ │ │ │ ├── slim.js │ │ │ │ ├── svg.js │ │ │ │ ├── text.js │ │ │ │ ├── toml.js │ │ │ │ ├── tsx.js │ │ │ │ ├── twig.js │ │ │ │ ├── vhdl.js │ │ │ │ ├── xml.js │ │ │ │ ├── yaml.js │ │ │ │ ├── zeek.js │ │ │ │ ├── bibtex.js │ │ │ │ ├── cirru.js │ │ │ │ ├── cobol.js │ │ │ │ ├── crystal.js │ │ │ │ ├── csharp.js │ │ │ │ ├── curly.js │ │ │ │ ├── eiffel.js │ │ │ │ ├── elixir.js │ │ │ │ ├── forth.js │ │ │ │ ├── fortran.js │ │ │ │ ├── fsharp.js │ │ │ │ ├── gcode.js │ │ │ │ ├── gherkin.js │ │ │ │ ├── golang.js │ │ │ │ ├── groovy.js │ │ │ │ ├── hjson.js │ │ │ │ ├── json5.js │ │ │ │ ├── julia.js │ │ │ │ ├── kotlin.js │ │ │ │ ├── latex.js │ │ │ │ ├── latte.js │ │ │ │ ├── logiql.js │ │ │ │ ├── logtalk.js │ │ │ │ ├── luapage.js │ │ │ │ ├── lucene.js │ │ │ │ ├── matlab.js │ │ │ │ ├── mixal.js │ │ │ │ ├── mysql.js │ │ │ │ ├── nginx.js │ │ │ │ ├── ocaml.js │ │ │ │ ├── partiql.js │ │ │ │ ├── pascal.js │ │ │ │ ├── pgsql.js │ │ │ │ ├── plsql.js │ │ │ │ ├── praat.js │ │ │ │ ├── prisma.js │ │ │ │ ├── prolog.js │ │ │ │ ├── puppet.js │ │ │ │ ├── rhtml.js │ │ │ │ ├── scala.js │ │ │ │ ├── scheme.js │ │ │ │ ├── scrypt.js │ │ │ │ ├── smarty.js │ │ │ │ ├── smithy.js │ │ │ │ ├── space.js │ │ │ │ ├── sparql.js │ │ │ │ ├── stylus.js │ │ │ │ ├── swift.js │ │ │ │ ├── turtle.js │ │ │ │ ├── verilog.js │ │ │ │ ├── asciidoc.js │ │ │ │ ├── batchfile.js │ │ │ │ ├── c9search.js │ │ │ │ ├── gitignore.js │ │ │ │ ├── html_ruby.js │ │ │ │ ├── mediawiki.js │ │ │ │ ├── mushcode.js │ │ │ │ ├── nunjucks.js │ │ │ │ ├── protobuf.js │ │ │ │ ├── redshift.js │ │ │ │ ├── terraform.js │ │ │ │ ├── vbscript.js │ │ │ │ ├── apache_conf.js │ │ │ │ ├── applescript.js │ │ │ │ ├── assembly_x86.js │ │ │ │ ├── autohotkey.js │ │ │ │ ├── coldfusion.js │ │ │ │ ├── csound_score.js │ │ │ │ ├── cuttlefish.js │ │ │ │ ├── dockerfile.js │ │ │ │ ├── handlebars.js │ │ │ │ ├── html_elixir.js │ │ │ │ ├── livescript.js │ │ │ │ ├── objectivec.js │ │ │ │ ├── plain_text.js │ │ │ │ ├── powershell.js │ │ │ │ ├── properties.js │ │ │ │ ├── soy_template.js │ │ │ │ ├── typescript.js │ │ │ │ ├── visualforce.js │ │ │ │ ├── haskell_cabal.js │ │ │ │ ├── php_laravel_blade.js │ │ │ │ ├── razor.js │ │ │ │ ├── makefile.js │ │ │ │ ├── maze.js │ │ │ │ ├── snippets.js │ │ │ │ ├── fsl.js │ │ │ │ ├── csound_document.js │ │ │ │ ├── drools.js │ │ │ │ ├── rst.js │ │ │ │ ├── haml.js │ │ │ │ ├── lua.js │ │ │ │ ├── diff.js │ │ │ │ ├── textile.js │ │ │ │ ├── velocity.js │ │ │ │ ├── graphqlschema.js │ │ │ │ ├── sql.js │ │ │ │ ├── abc.js │ │ │ │ ├── csound_orchestra.js │ │ │ │ ├── wollok.js │ │ │ │ └── dart.js │ │ │ ├── ext-error_marker.js │ │ │ ├── theme-textmate.js │ │ │ ├── mode-plain_text.js │ │ │ └── mode-gitignore.js │ │ │ └── css │ │ │ └── themes │ │ │ ├── dawn.css │ │ │ ├── chrome.css │ │ │ ├── clouds.css │ │ │ ├── monokai.css │ │ │ ├── dracula.css │ │ │ └── crimson-editor.css │ │ ├── res │ │ └── values │ │ │ └── attrs.xml │ │ └── java │ │ └── editor │ │ └── tsd │ │ ├── tools │ │ ├── EditorListeners.java │ │ └── Language.java │ │ └── editors │ │ ├── Editor.java │ │ └── sora │ │ └── lang │ │ └── textmate │ │ └── provider │ │ └── TextMateProvider.java ├── proguard-rules.pro └── build.gradle ├── block └── core │ └── .gitignore ├── keystore.jks ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── .github └── workflows │ ├── android-pr.yml │ └── android.yml └── .gitignore /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /common/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /editor/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /block/core/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /keystore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/keystore.jks -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/css/.vscodeignore: -------------------------------------------------------------------------------- 1 | test/** 2 | cgmanifest.json 3 | .vscode -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | android.useAndroidX=true 2 | kotlin.code.style=official 3 | android.nonTransitiveRClass=true 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable/banner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable/block.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable/logo.png -------------------------------------------------------------------------------- /app/src/main/res/raw/block_drag.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/raw/block_drag.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/block_drop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/raw/block_drop.wav -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/string.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/string.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/number.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xxxhdpi/number.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/css/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/block_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/block_default.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/block_joint.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/block_joint.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/complex_block.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/complex_block.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/define_block.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/define_block.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/side_attachable.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/side_attachable.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/block_boolean.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xxxhdpi/block_boolean.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/block_boolean_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xxxhdpi/block_boolean_bg.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/jetbrains.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/editor/src/main/assets/Editor/SoraEditor/jetbrains.ttf -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/complex_block_bottom.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/complex_block_bottom.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_block_attachable.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Innovative-CST/BlockWebBuilder/HEAD/app/src/main/res/drawable-xhdpi/default_block_attachable.9.png -------------------------------------------------------------------------------- /app/src/main/res/values/values.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/css/package.nls.json: -------------------------------------------------------------------------------- 1 | { 2 | "displayName": "CSS Language Basics", 3 | "description": "Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files." 4 | } 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /app/src/main/assets/attribution/free_sound_attribution.txt: -------------------------------------------------------------------------------- 1 | S: Keyboard Key by AntoineRomo | License: Attribution 3.0 | Timestamp: 2024-02-03 14:33:44.475509 2 | 3 | S: Enter Key Press Mechanical Keyboard by alpinemesh | License: Creative Commons 0 | Timestamp: 2024-02-03 14:29:28.512802 -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/language_scopes.json: -------------------------------------------------------------------------------- 1 | { 2 | "js": "source.js", 3 | "json": "source.json", 4 | "java": "source.java", 5 | "md": "text.html.markdown", 6 | "css": "source.css", 7 | "htm": "text.html.basic", 8 | "kt": "source.kotlin", 9 | "html": "text.html.basic", 10 | "xml": "text.xml" 11 | } -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ripple_on_color_surface.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/plus.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/css/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Launch Grammar", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "runtimeExecutable": "${execPath}", 9 | "args": [ 10 | "--extensionDevelopmentPath=${workspaceRoot}" 11 | ] 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/assets/LicenseList.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "Name": "Free Sound - Sound Attribution", 4 | "Path": "attribution/free_sound_attribution.txt" 5 | }, 6 | { 7 | "Name": "Sora-Editor - the awesome code editor for Android", 8 | "Path": "license/sora_editor_license.txt" 9 | }, 10 | { 11 | "Name": "Ace Editor - Ajax.org", 12 | "Path": "license/ace_editor_license.txt" 13 | } 14 | ] -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/mode-text.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/mode/text"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/d.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/d"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/play.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/abap.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/abap"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/ada.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/ada"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/alda.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/alda"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/apex.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/apex"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/aql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/aql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/asl.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/asl"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/csp.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/csp"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/dot.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/dot"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/ejs.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/ejs"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/elm.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/elm"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/ftl.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/ftl"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/glsl.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/glsl"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/haxe.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/haxe"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/ini.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/ini"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/ion.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/ion"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/jack.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/jack"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/jade.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/jade"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/jexl.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/jexl"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/json.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/json"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/jssm.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/jssm"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/jsx.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/jsx"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/less.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/less"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/lisp.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/lisp"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mask.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mask"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mel.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mel"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mips.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mips"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/nim.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/nim"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/nix.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/nix"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/nsis.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/nsis"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/odin.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/odin"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/pig.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/pig"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/qml.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/qml"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/raku.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/raku"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/rdoc.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/rdoc"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/red.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/red"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/rust.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/rust"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/sac.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/sac"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/sass.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/sass"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/scad.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/scad"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/scss.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/scss"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/sjs.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/sjs"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/slim.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/slim"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/svg.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/svg"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/text.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/text"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/toml.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/toml"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/tsx.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/tsx"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/twig.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/twig"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/vhdl.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/vhdl"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/xml.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/xml"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/yaml.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/yaml"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/zeek.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/zeek"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/ext-error_marker.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/ext/error_marker"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/bibtex.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/bibtex"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/cirru.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/cirru"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/cobol.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/cobol"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/crystal.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/crystal"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/csharp.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/csharp"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/curly.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/curly"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/eiffel.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/eiffel"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/elixir.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/elixir"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/forth.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/forth"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/fortran.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/fortran"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/fsharp.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/fsharp"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/gcode.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/gcode"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/gherkin.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/gherkin"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/golang.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/golang"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/groovy.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/groovy"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/hjson.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/hjson"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/json5.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/json5"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/julia.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/julia"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/kotlin.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/kotlin"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/latex.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/latex"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/latte.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/latte"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/logiql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/logiql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/logtalk.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/logtalk"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/luapage.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/luapage"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/lucene.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/lucene"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/matlab.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/matlab"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mixal.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mixal"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mysql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mysql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/nginx.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/nginx"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/ocaml.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/ocaml"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/partiql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/partiql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/pascal.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/pascal"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/pgsql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/pgsql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/plsql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/plsql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/praat.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/praat"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/prisma.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/prisma"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/prolog.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/prolog"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/puppet.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/puppet"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/rhtml.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/rhtml"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/scala.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/scala"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/scheme.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/scheme"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/scrypt.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/scrypt"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/smarty.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/smarty"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/smithy.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/smithy"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/space.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/space"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/sparql.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/sparql"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/stylus.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/stylus"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/swift.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/swift"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/turtle.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/turtle"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/verilog.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/verilog"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/asciidoc.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/asciidoc"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/batchfile.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/batchfile"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/c9search.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/c9search"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/gitignore.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/gitignore"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/html_ruby.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/html_ruby"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mediawiki.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mediawiki"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/mushcode.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/mushcode"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/nunjucks.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/nunjucks"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/protobuf.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/protobuf"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/redshift.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/redshift"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/terraform.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/terraform"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/vbscript.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/vbscript"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/constant/CacheConstants.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.constant; 2 | 3 | /** 4 | *
 5 |  *     author: Blankj
 6 |  *     blog  : http://blankj.com
 7 |  *     time  : 2018/06/13
 8 |  *     desc  : constants of cache
 9 |  * 
10 | */ 11 | public interface CacheConstants { 12 | int SEC = 1; 13 | int MIN = 60; 14 | int HOUR = 3600; 15 | int DAY = 86400; 16 | } 17 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/apache_conf.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/apache_conf"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/applescript.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/applescript"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/assembly_x86.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/assembly_x86"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/autohotkey.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/autohotkey"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/coldfusion.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/coldfusion"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/csound_score.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/csound_score"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/cuttlefish.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/cuttlefish"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/dockerfile.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/dockerfile"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/handlebars.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/handlebars"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/html_elixir.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/html_elixir"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/livescript.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/livescript"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/objectivec.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/objectivec"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/plain_text.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/plain_text"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/powershell.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/powershell"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/properties.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/properties"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/soy_template.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/soy_template"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/typescript.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/typescript"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/visualforce.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/visualforce"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/haskell_cabal.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/haskell_cabal"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /common/src/main/java/android/code/editor/common/utils/ColorUtils.java: -------------------------------------------------------------------------------- 1 | package android.code.editor.common.utils; 2 | 3 | import android.content.Context; 4 | import com.google.android.material.color.MaterialColors; 5 | 6 | public class ColorUtils { 7 | public static String materialIntToHexColor(Context context, int res) { 8 | return String.format("#%06X", (0xFFFFFF & MaterialColors.getColor(context, res, "#000000"))); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/php_laravel_blade.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | ace.require(["ace/snippets/php_laravel_blade"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/delete.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | dependencyResolutionManagement { 9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | } 15 | 16 | rootProject.name = "BlockWeb Builder" 17 | 18 | include(":app") 19 | include(":common") 20 | include(":editor") 21 | include(":block:core") 22 | -------------------------------------------------------------------------------- /app/src/main/res/color/navigation_item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/list_status.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/close.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/image.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/file_document.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /editor/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 12 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/language_css.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/typescript/syntaxes/jsdoc.ts.injection.tmLanguage.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "injectionSelector": "L:comment.block.documentation", 4 | "patterns": [ 5 | { 6 | "include": "#jsdocbody" 7 | } 8 | ], 9 | "repository": { 10 | "jsdocbody": { 11 | "begin": "(?<=/\\*\\*)([^*]|\\*(?!/))*$", 12 | "while": "(^|\\G)\\s*\\*(?!/)(?=([^*]|[*](?!/))*$)", 13 | "patterns": [ 14 | { 15 | "include": "source.ts#docblock" 16 | } 17 | ] 18 | } 19 | }, 20 | "scopeName": "documentation.injection.ts" 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/res/color/navigation_item_background_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/typescript/syntaxes/jsdoc.js.injection.tmLanguage.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "injectionSelector": "L:comment.block.documentation", 4 | "patterns": [ 5 | { 6 | "include": "#jsdocbody" 7 | } 8 | ], 9 | "repository": { 10 | "jsdocbody": { 11 | "begin": "(?<=/\\*\\*)([^*]|\\*(?!/))*$", 12 | "while": "(^|\\G)\\s*\\*(?!/)(?=([^*]|[*](?!/))*$)", 13 | "patterns": [ 14 | { 15 | "include": "source.ts#docblock" 16 | } 17 | ] 18 | } 19 | }, 20 | "scopeName": "documentation.injection.js.jsx" 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/language_html.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/ini/ini.language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": ";", 4 | "blockComment": [ ";", " " ] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 16 | { "open": "'", "close": "'", "notIn": ["string"] } 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/groovy/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": [ "/*", "*/" ] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 16 | { "open": "'", "close": "'", "notIn": ["string"] } 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"] 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/util/UtilsFileProvider.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.util; 2 | 3 | import android.app.Application; 4 | 5 | import androidx.core.content.FileProvider; 6 | 7 | /** 8 | *
 9 |  *     author: blankj
10 |  *     blog  : http://blankj.com
11 |  *     time  : 2020/03/19
12 |  *     desc  :
13 |  * 
14 | */ 15 | public class UtilsFileProvider extends FileProvider { 16 | 17 | @Override 18 | public boolean onCreate() { 19 | //noinspection ConstantConditions 20 | Utils.init((Application) getContext().getApplicationContext()); 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/bat/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "@REM" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | { "open": "\"", "close": "\"", "notIn": ["string"] } 15 | ], 16 | "surroundingPairs": [ 17 | ["{", "}"], 18 | ["[", "]"], 19 | ["(", ")"], 20 | ["%", "%"], 21 | ["\"", "\""] 22 | ], 23 | "folding": { 24 | "markers": { 25 | "start": "^\\s*(::|REM|@REM)\\s*#region", 26 | "end": "^\\s*(::|REM|@REM)\\s*#endregion" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/activity_event_list_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 11 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/csharp/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | { "open": "'", "close": "'", "notIn": ["string", "comment"] }, 16 | { "open": "\"", "close": "\"", "notIn": ["string", "comment"] } 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["<", ">"], 23 | ["'", "'"], 24 | ["\"", "\""] 25 | ], 26 | "folding": { 27 | "markers": { 28 | "start": "^\\s*#region\\b", 29 | "end": "^\\s*#endregion\\b" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gesture_tap_hold.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_source_code_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/gesture_tap_hold_tertiary.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/shellscript/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 15 | { "open": "'", "close": "'", "notIn": ["string"] }, 16 | { "open": "`", "close": "`", "notIn": ["string"] } 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"], 24 | ["`", "`"] 25 | ], 26 | "folding": { 27 | "markers": { 28 | "start": "^\\s*#\\s*#?region\\b.*", 29 | "end": "^\\s*#\\s*#?endregion\\b.*" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_drawer_header_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.constant; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | *
10 |  *     author: Blankj
11 |  *     blog  : http://blankj.com
12 |  *     time  : 2017/03/13
13 |  *     desc  : constants of memory
14 |  * 
15 | */ 16 | public final class MemoryConstants { 17 | 18 | public static final int BYTE = 1; 19 | public static final int KB = 1024; 20 | public static final int MB = 1048576; 21 | public static final int GB = 1073741824; 22 | 23 | @IntDef({BYTE, KB, MB, GB}) 24 | @Retention(RetentionPolicy.SOURCE) 25 | public @interface Unit { 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/yaml/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ], 24 | "folding": { 25 | "offSide": true, 26 | "markers": { 27 | "start": "^\\s*#\\s*region\\b", 28 | "end": "^\\s*#\\s*endregion\\b" 29 | } 30 | }, 31 | "indentationRules": { 32 | "increaseIndentPattern": "^\\s*.*(:|-) ?(&\\w+)?(\\{[^}\"']*|\\([^)\"']*)?$", 33 | "decreaseIndentPattern": "^\\s+\\}$" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/css/themes/dawn.css: -------------------------------------------------------------------------------- 1 | .ace-dawn { 2 | /* Background */ 3 | /* Orginal Background */ 4 | /* background-color: #272822; */ 5 | background-color: ace_background; 6 | } 7 | 8 | .ace-dawn .ace_gutter { 9 | /* line number background */ 10 | /* background: #2F3129; */ 11 | background: ace_gutter_background; 12 | /* line number color */ 13 | /* color: #8F908A; */ 14 | color: ace_gutter_text_color; 15 | } 16 | 17 | .ace-dawn .ace_marker-layer .ace_active-line { 18 | /* Active line */ 19 | /* background: #202020; */ 20 | background: ace_active_line; 21 | } 22 | 23 | .ace-dawn .ace_gutter-active-line { 24 | /* Side bar active line color */ 25 | /* background-color: #272727; */ 26 | background-color: ace_gutter_active_line; 27 | } 28 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/theme-textmate.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"], function(require, exports, module){"use strict"; 2 | exports.isDark = false; 3 | exports.cssClass = "ace-tm"; 4 | exports.cssText = require("./textmate-css"); 5 | exports.$id = "ace/theme/textmate"; 6 | var dom = require("../lib/dom"); 7 | dom.importCssString(exports.cssText, exports.cssClass, false); 8 | 9 | }); (function() { 10 | ace.require(["ace/theme/textmate"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/css/themes/chrome.css: -------------------------------------------------------------------------------- 1 | .ace-chrome { 2 | /* Background */ 3 | /* Orginal Background */ 4 | /* background-color: #272822; */ 5 | background-color: ace_background; 6 | } 7 | 8 | .ace-chrome .ace_gutter { 9 | /* line number background */ 10 | /* background: #2F3129; */ 11 | background: ace_gutter_background; 12 | /* line number color */ 13 | /* color: #8F908A; */ 14 | color: ace_gutter_text_color; 15 | } 16 | 17 | .ace-chrome .ace_marker-layer .ace_active-line { 18 | /* Active line */ 19 | /* background: #202020; */ 20 | background: ace_active_line; 21 | } 22 | 23 | .ace-chrome .ace_gutter-active-line { 24 | /* Side bar active line color */ 25 | /* background-color: #272727; */ 26 | background-color: ace_gutter_active_line; 27 | } 28 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/css/themes/clouds.css: -------------------------------------------------------------------------------- 1 | .ace-clouds { 2 | /* Background */ 3 | /* Orginal Background */ 4 | /* background-color: #272822; */ 5 | background-color: ace_background; 6 | } 7 | 8 | .ace-clouds .ace_gutter { 9 | /* line number background */ 10 | /* background: #2F3129; */ 11 | background: ace_gutter_background; 12 | /* line number color */ 13 | /* color: #8F908A; */ 14 | color: ace_gutter_text_color; 15 | } 16 | 17 | .ace-clouds .ace_marker-layer .ace_active-line { 18 | /* Active line */ 19 | /* background: #202020; */ 20 | background: ace_active_line; 21 | } 22 | 23 | .ace-clouds .ace_gutter-active-line { 24 | /* Side bar active line color */ 25 | /* background-color: #272727; */ 26 | background-color: ace_gutter_active_line; 27 | } 28 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/css/themes/monokai.css: -------------------------------------------------------------------------------- 1 | .ace-monokai { 2 | /* Background */ 3 | /* Orginal Background */ 4 | /* background-color: #272822; */ 5 | background-color: ace_background; 6 | } 7 | 8 | .ace-monokai .ace_gutter { 9 | /* line number background */ 10 | /* background: #2F3129; */ 11 | background: ace_gutter_background; 12 | /* line number color */ 13 | /* color: #8F908A; */ 14 | color: ace_gutter_text_color; 15 | } 16 | 17 | .ace-monokai .ace_marker-layer .ace_active-line { 18 | /* Active line */ 19 | /* background: #202020; */ 20 | background: ace_active_line; 21 | } 22 | 23 | .ace-monokai .ace_gutter-active-line { 24 | /* Side bar active line color */ 25 | /* background-color: #272727; */ 26 | background-color: ace_gutter_active_line; 27 | } 28 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/razor.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/razor.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet if\n(${1} == ${2}) {\n\t${3}\n}"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/razor",["require","exports","module","ace/snippets/razor.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./razor.snippets"); 7 | exports.scope = "razor"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/razor"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/constant/TimeConstants.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.constant; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | *
10 |  *     author: Blankj
11 |  *     blog  : http://blankj.com
12 |  *     time  : 2017/03/13
13 |  *     desc  : constants of time
14 |  * 
15 | */ 16 | public final class TimeConstants { 17 | 18 | public static final int MSEC = 1; 19 | public static final int SEC = 1000; 20 | public static final int MIN = 60000; 21 | public static final int HOUR = 3600000; 22 | public static final int DAY = 86400000; 23 | 24 | @IntDef({MSEC, SEC, MIN, HOUR, DAY}) 25 | @Retention(RetentionPolicy.SOURCE) 26 | public @interface Unit { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_console_log_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_license_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /common/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /editor/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/css/themes/dracula.css: -------------------------------------------------------------------------------- 1 | .ace-dracula { 2 | /* Background */ 3 | /* Orginal Background */ 4 | /* background-color: #272822; */ 5 | background-color: ace_background; 6 | /* Text color */ 7 | } 8 | 9 | .ace-dracula .ace_gutter { 10 | /* line number background */ 11 | /* background: #2F3129; */ 12 | background: ace_gutter_background; 13 | /* line number color */ 14 | /* color: #8F908A; */ 15 | color: ace_gutter_text_color; 16 | } 17 | 18 | .ace-dracula .ace_marker-layer .ace_active-line { 19 | /* Active line */ 20 | /* background: #202020; */ 21 | background: ace_active_line; 22 | } 23 | 24 | .ace-dracula .ace_gutter-active-line { 25 | /* Side bar active line color */ 26 | /* background-color: #272727; */ 27 | background-color: ace_gutter_active_line; 28 | } 29 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/css/themes/crimson-editor.css: -------------------------------------------------------------------------------- 1 | .ace-crimson-editor { 2 | /* Background */ 3 | /* Orginal Background */ 4 | /* background-color: #272822; */ 5 | background-color: ace_background; 6 | } 7 | 8 | .ace-crimson-editor .ace_gutter { 9 | /* line number background */ 10 | /* background: #2F3129; */ 11 | background: ace_gutter_background; 12 | /* line number color */ 13 | /* color: #8F908A; */ 14 | color: ace_gutter_text_color; 15 | } 16 | 17 | .ace-crimson-editor .ace_marker-layer .ace_active-line { 18 | /* Active line */ 19 | /* background: #202020; */ 20 | background: ace_active_line; 21 | } 22 | 23 | .ace-crimson-editor .ace_gutter-active-line { 24 | /* Side bar active line color */ 25 | /* background-color: #272727; */ 26 | background-color: ace_gutter_active_line; 27 | } 28 | -------------------------------------------------------------------------------- /common/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 17 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/makefile.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/makefile.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet ifeq\n\tifeq (${1:cond0},${2:cond1})\n\t\t${3:code}\n\tendif\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/makefile",["require","exports","module","ace/snippets/makefile.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./makefile.snippets"); 7 | exports.scope = "makefile"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/makefile"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/smali/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"], 9 | ["<", ">"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["<", ">"], 16 | { "open": "\"", "close": "\"", "notIn": ["string"] }, 17 | { "open": "'", "close": "'", "notIn": ["string"] }, 18 | { "open": "#", "close": "\n", "notIn": ["string"] } 19 | ], 20 | "surroundingPairs": [ 21 | ["{", "}"], 22 | ["[", "]"], 23 | ["(", ")"], 24 | ["\"", "\""], 25 | ["'", "'"], 26 | ["<", ">"] 27 | ], 28 | "folding": { 29 | "markers": { 30 | "start": "^\\s*//\\s*(?:(?:#?region\\b)|(?:))" 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_event_blocks_holder_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 17 | 18 | 19 | 20 | 25 | 26 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/maze.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/maze.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet >\ndescription assignment\nscope maze\n\t-> ${1}= ${2}\n\nsnippet >\ndescription if\nscope maze\n\t-> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/maze",["require","exports","module","ace/snippets/maze.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./maze.snippets"); 7 | exports.scope = "maze"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/maze"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/cpp/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": ["/*", "*/"] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | { "open": "[", "close": "]" }, 13 | { "open": "{", "close": "}" }, 14 | { "open": "(", "close": ")" }, 15 | { "open": "'", "close": "'", "notIn": ["string", "comment"] }, 16 | { "open": "\"", "close": "\"", "notIn": ["string"] } 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["'", "'"], 24 | ["<", ">"] 25 | ], 26 | "wordPattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)", 27 | "folding": { 28 | "markers": { 29 | "start": "^\\s*#pragma\\s+region\\b", 30 | "end": "^\\s*#pragma\\s+endregion\\b" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /common/src/main/res/xml/util_code_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | 11 | 14 | 15 | 18 | 19 | 22 | 23 | 26 | 28 | 31 | 32 | -------------------------------------------------------------------------------- /editor/src/main/java/editor/tsd/tools/EditorListeners.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Android Code Editor. 3 | * 4 | * Android Code Editor is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * Android Code Editor is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with Android Code Editor. If not, see . 16 | */ 17 | 18 | package editor.tsd.tools; 19 | 20 | public interface EditorListeners { 21 | void onReceviedCode(String code); 22 | } 23 | -------------------------------------------------------------------------------- /common/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/menu/activity_main_drawer_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 16 | 21 | 26 | 27 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/util/CloneUtils.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.util; 2 | 3 | import java.lang.reflect.Type; 4 | 5 | /** 6 | *
 7 |  *     author: Blankj
 8 |  *     blog  : http://blankj.com
 9 |  *     time  : 2018/01/30
10 |  *     desc  : utils about clone
11 |  * 
12 | */ 13 | public final class CloneUtils { 14 | 15 | private CloneUtils() { 16 | throw new UnsupportedOperationException("u can't instantiate me..."); 17 | } 18 | 19 | /** 20 | * Deep clone. 21 | * 22 | * @param data The data. 23 | * @param type The type. 24 | * @param The value type. 25 | * @return The object of cloned. 26 | */ 27 | public static T deepClone(final T data, final Type type) { 28 | try { 29 | return UtilsBridge.fromJson(UtilsBridge.toJson(data), type); 30 | } catch (Exception e) { 31 | e.printStackTrace(); 32 | return null; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/snippets.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/snippets.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# snippets for making snippets :)\nsnippet snip\n\tsnippet ${1:trigger}\n\t\t${2}\nsnippet msnip\n\tsnippet ${1:trigger} ${2:description}\n\t\t${3}\nsnippet v\n\t{VISUAL}\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/snippets",["require","exports","module","ace/snippets/snippets.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./snippets.snippets"); 7 | exports.scope = "snippets"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/snippets"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | } 4 | 5 | android { 6 | compileSdk 34 7 | buildToolsVersion "34.0.0" 8 | useLibrary 'org.apache.http.legacy' 9 | namespace "android.code.editor.common" 10 | 11 | defaultConfig { 12 | minSdk 21 13 | targetSdk 28 14 | compileSdkVersion 34 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | 24 | compileOptions { 25 | sourceCompatibility JavaVersion.VERSION_17 26 | targetCompatibility JavaVersion.VERSION_17 27 | } 28 | 29 | buildFeatures { 30 | viewBinding true 31 | } 32 | } 33 | 34 | dependencies { 35 | implementation 'androidx.appcompat:appcompat:1.6.1' 36 | implementation 'com.google.android.material:material:1.11.0' 37 | implementation 'com.google.code.gson:gson:2.8.7' 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/res/menu/activity_event_editor_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 11 | 12 | 18 | 19 | 25 | 26 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/fsl.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/fsl.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet header\n\tmachine_name : \"\";\n\tmachine_author : \"\";\n\tmachine_license : MIT;\n\tmachine_comment : \"\";\n\tmachine_language : en;\n\tmachine_version : 1.0.0;\n\tfsl_version : 1.0.0;\n\tstart_states : [];\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/fsl",["require","exports","module","ace/snippets/fsl.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./fsl.snippets"); 7 | exports.scope = "fsl"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/fsl"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/csound_document.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/csound_document.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# \nsnippet synth\n\t\n\t\n\t${1}\n\t\n\t\n\te\n\t\n\t\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/csound_document",["require","exports","module","ace/snippets/csound_document.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./csound_document.snippets"); 7 | exports.scope = "csound_document"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/csound_document"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/language_javascript.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /.github/workflows/android-pr.yml: -------------------------------------------------------------------------------- 1 | name: Android CI[PR 2 | 3 | on: 4 | pull_request: 5 | paths-ignore: 6 | - .gitignore 7 | 8 | jobs: 9 | buildApkFile: 10 | name: Build Debug APK 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | 15 | - name: Set up JDK 17 16 | uses: actions/setup-java@v3 17 | with: 18 | java-version: 17 19 | distribution: temurin 20 | 21 | - name: Allow gradlew permission 22 | run: chmod +x ./gradlew 23 | 24 | - name: Build debug APK 25 | run: ./gradlew assembleDebug 26 | 27 | - name: Upload debug APK 28 | uses: actions/upload-artifact@v3 29 | with: 30 | name: BlockWeb Builder Apk 31 | path: app/build/outputs/apk/debug/app-debug.apk 32 | 33 | - name: Upload output metadata APK 34 | uses: actions/upload-artifact@v3 35 | with: 36 | name: Output Metadata 37 | path: app/build/outputs/apk/debug/output-metadata.json 38 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/drools.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/drools.snippets",["require","exports","module"], function(require, exports, module){module.exports = "\nsnippet rule\n\trule \"${1?:rule_name}\"\n\twhen\n\t\t${2:// when...} \n\tthen\n\t\t${3:// then...}\n\tend\n\nsnippet query\n\tquery ${1?:query_name}\n\t\t${2:// find} \n\tend\n\t\nsnippet declare\n\tdeclare ${1?:type_name}\n\t\t${2:// attributes} \n\tend\n\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/drools",["require","exports","module","ace/snippets/drools.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./drools.snippets"); 7 | exports.scope = "drools"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/drools"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/go/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "//", 4 | "blockComment": [ "/*", "*/" ] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | { "open": "`", "close": "`", "notIn": ["string"]}, 16 | { "open": "\"", "close": "\"", "notIn": ["string"]}, 17 | { "open": "'", "close": "'", "notIn": ["string", "comment"]} 18 | ], 19 | "surroundingPairs": [ 20 | ["{", "}"], 21 | ["[", "]"], 22 | ["(", ")"], 23 | ["\"", "\""], 24 | ["'", "'"], 25 | ["`", "`"] 26 | ], 27 | "indentationRules": { 28 | "increaseIndentPattern": "^.*(\\bcase\\b.*:|\\bdefault\\b:|(\\b(func|if|else|switch|select|for|struct)\\b.*)?{[^}\"'`]*|\\([^)\"'`]*)$", 29 | "decreaseIndentPattern": "^\\s*(\\bcase\\b.*:|\\bdefault\\b:|}[)}]*[),]?|\\)[,]?)$" 30 | }, 31 | "folding": { 32 | "markers": { 33 | "start": "^\\s*//\\s*#?region\\b", 34 | "end": "^\\s*//\\s*#?endregion\\b" 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/julia/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#", 4 | "blockComment": [ "#=", "=#" ] 5 | }, 6 | "brackets": [ 7 | ["{", "}"], 8 | ["[", "]"], 9 | ["(", ")"] 10 | ], 11 | "autoClosingPairs": [ 12 | ["{", "}"], 13 | ["[", "]"], 14 | ["(", ")"], 15 | ["`", "`"], 16 | { "open": "\"", "close": "\"", "notIn": ["string", "comment"] } 17 | ], 18 | "surroundingPairs": [ 19 | ["{", "}"], 20 | ["[", "]"], 21 | ["(", ")"], 22 | ["\"", "\""], 23 | ["`", "`"] 24 | ], 25 | "folding": { 26 | "markers": { 27 | "start": "^\\s*#region", 28 | "end": "^\\s*#endregion" 29 | } 30 | }, 31 | "indentationRules": { 32 | "increaseIndentPattern": "^(\\s*|.*=\\s*|.*@\\w*\\s*)[\\w\\s]*(?:[\"'`][^\"'`]*[\"'`])*[\\w\\s]*\\b(if|while|for|function|macro|(mutable\\s+)?struct|abstract\\s+type|primitive\\s+type|let|quote|try|begin|.*\\)\\s*do|else|elseif|catch|finally)\\b(?!(?:.*\\bend\\b[^\\]]*)|(?:[^\\[]*\\].*)$).*$", 33 | "decreaseIndentPattern": "^\\s*(end|else|elseif|catch|finally)\\b.*$" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/rst.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/rst.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# rst\n\nsnippet :\n\t:${1:field name}: ${2:field body}\nsnippet *\n\t*${1:Emphasis}*\nsnippet **\n\t**${1:Strong emphasis}**\nsnippet _\n\t\\`${1:hyperlink-name}\\`_\n\t.. _\\`$1\\`: ${2:link-block}\nsnippet =\n\t${1:Title}\n\t=====${2:=}\n\t${3}\nsnippet -\n\t${1:Title}\n\t-----${2:-}\n\t${3}\nsnippet cont:\n\t.. contents::\n\t\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/rst",["require","exports","module","ace/snippets/rst.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./rst.snippets"); 7 | exports.scope = "rst"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/rst"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_debug.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/css/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": ["/*", "*/"] 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | { "open": "{", "close": "}", "notIn": ["string", "comment"] }, 12 | { "open": "[", "close": "]", "notIn": ["string", "comment"] }, 13 | { "open": "(", "close": ")", "notIn": ["string", "comment"] }, 14 | { "open": "\"", "close": "\"", "notIn": ["string", "comment"] }, 15 | { "open": "'", "close": "'", "notIn": ["string", "comment"] } 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ], 24 | "folding": { 25 | "markers": { 26 | "start": "^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/", 27 | "end": "^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/" 28 | } 29 | }, 30 | "indentationRules": { 31 | "increaseIndentPattern": "(^.*\\{[^}]*$)", 32 | "decreaseIndentPattern": "^\\s*\\}" 33 | }, 34 | "wordPattern": "(#?-?\\d*\\.\\d\\w*%?)|(::?[\\w-]*(?=[^,{;]*[,{]))|(([@#.!])?[\\w-?]+%?|[@#!.])" 35 | } 36 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/haml.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/haml.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet t\n\t%table\n\t\t%tr\n\t\t\t%th\n\t\t\t\t${1:headers}\n\t\t%tr\n\t\t\t%td\n\t\t\t\t${2:headers}\nsnippet ul\n\t%ul\n\t\t%li\n\t\t\t${1:item}\n\t\t%li\nsnippet =rp\n\t= render :partial => '${1:partial}'\nsnippet =rpl\n\t= render :partial => '${1:partial}', :locals => {}\nsnippet =rpc\n\t= render :partial => '${1:partial}', :collection => @$1\n\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/haml",["require","exports","module","ace/snippets/haml.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./haml.snippets"); 7 | exports.scope = "haml"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/haml"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/lua.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/lua.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet #!\n\t#!/usr/bin/env lua\n\t$1\nsnippet local\n\tlocal ${1:x} = ${2:1}\nsnippet fun\n\tfunction ${1:fname}(${2:...})\n\t\t${3:-- body}\n\tend\nsnippet for\n\tfor ${1:i}=${2:1},${3:10} do\n\t\t${4:print(i)}\n\tend\nsnippet forp\n\tfor ${1:i},${2:v} in pairs(${3:table_name}) do\n\t ${4:-- body}\n\tend\nsnippet fori\n\tfor ${1:i},${2:v} in ipairs(${3:table_name}) do\n\t ${4:-- body}\n\tend\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/lua",["require","exports","module","ace/snippets/lua.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./lua.snippets"); 7 | exports.scope = "lua"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/lua"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/lua/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lua", 3 | "displayName": "%displayName%", 4 | "description": "%description%", 5 | "version": "1.0.0", 6 | "publisher": "vscode", 7 | "license": "MIT", 8 | "engines": { 9 | "vscode": "*" 10 | }, 11 | "scripts": { 12 | "update-grammar": "node ../node_modules/vscode-grammar-updater/bin sumneko/lua.tmbundle Syntaxes/Lua.plist ./syntaxes/lua.tmLanguage.json" 13 | }, 14 | "contributes": { 15 | "languages": [ 16 | { 17 | "id": "lua", 18 | "extensions": [ 19 | ".lua" 20 | ], 21 | "aliases": [ 22 | "Lua", 23 | "lua" 24 | ], 25 | "configuration": "./language-configuration.json" 26 | } 27 | ], 28 | "grammars": [ 29 | { 30 | "language": "lua", 31 | "scopeName": "source.lua", 32 | "path": "./syntaxes/lua.tmLanguage.json", 33 | "tokenTypes": { 34 | "comment.line.double-dash.doc.lua": "other" 35 | } 36 | } 37 | ] 38 | }, 39 | "repository": { 40 | "type": "git", 41 | "url": "https://github.com/microsoft/vscode.git" 42 | } 43 | } -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/html/completions/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 GitHub Inc. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /editor/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | } 4 | 5 | android { 6 | compileSdk 34 7 | buildToolsVersion "34.0.0" 8 | useLibrary 'org.apache.http.legacy' 9 | namespace "editor.tsd" 10 | 11 | defaultConfig { 12 | minSdk 21 13 | targetSdk 28 14 | compileSdkVersion 33 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | 24 | compileOptions { 25 | sourceCompatibility JavaVersion.VERSION_17 26 | targetCompatibility JavaVersion.VERSION_17 27 | } 28 | 29 | buildFeatures { 30 | viewBinding true 31 | } 32 | } 33 | 34 | dependencies { 35 | implementation 'com.google.code.gson:gson:2.8.7' 36 | def editorGroupId = "io.github.Rosemoe.sora-editor" 37 | implementation platform("$editorGroupId:bom:0.22.0") 38 | implementation "$editorGroupId:editor" 39 | implementation "$editorGroupId:language-textmate" 40 | implementation "$editorGroupId:language-java" 41 | implementation project(path: ':common') 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_add_text_in_block.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | 21 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/diff.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/diff.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\nsnippet header DEP-3 style header\n\tDescription: ${1}\n\tOrigin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n\tBug: ${4:url in upstream bugtracker}\n\tForwarded: ${5:no|not-needed|url}\n\tAuthor: ${6:`g:snips_author`}\n\tReviewed-by: ${7:name and email}\n\tLast-Update: ${8:`strftime(\"%Y-%m-%d\")`}\n\tApplied-Upstream: ${9:upstream version|url|commit}\n\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/diff",["require","exports","module","ace/snippets/diff.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./diff.snippets"); 7 | exports.scope = "diff"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/diff"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/textile.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/textile.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# Jekyll post header\nsnippet header\n\t---\n\ttitle: ${1:title}\n\tlayout: post\n\tdate: ${2:date} ${3:hour:minute:second} -05:00\n\t---\n\n# Image\nsnippet img\n\t!${1:url}(${2:title}):${3:link}!\n\n# Table\nsnippet |\n\t|${1}|${2}\n\n# Link\nsnippet link\n\t\"${1:link text}\":${2:url}\n\n# Acronym\nsnippet (\n\t(${1:Expand acronym})${2}\n\n# Footnote\nsnippet fn\n\t[${1:ref number}] ${3}\n\n\tfn$1. ${2:footnote}\n\t\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/textile",["require","exports","module","ace/snippets/textile.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./textile.snippets"); 7 | exports.scope = "textile"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/textile"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/mode-plain_text.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"], function(require, exports, module){"use strict"; 2 | var oop = require("../lib/oop"); 3 | var TextMode = require("./text").Mode; 4 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 5 | var Behaviour = require("./behaviour").Behaviour; 6 | var Mode = function () { 7 | this.HighlightRules = TextHighlightRules; 8 | this.$behaviour = new Behaviour(); 9 | }; 10 | oop.inherits(Mode, TextMode); 11 | (function () { 12 | this.type = "text"; 13 | this.getNextLineIndent = function (state, line, tab) { 14 | return ''; 15 | }; 16 | this.$id = "ace/mode/plain_text"; 17 | }).call(Mode.prototype); 18 | exports.Mode = Mode; 19 | 20 | }); (function() { 21 | ace.require(["ace/mode/plain_text"], function(m) { 22 | if (typeof module == "object" && typeof exports == "object" && module) { 23 | module.exports = m; 24 | } 25 | }); 26 | })(); 27 | -------------------------------------------------------------------------------- /common/src/main/java/android/code/editor/common/interfaces/FileDeleteListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Android Code Editor. 3 | * 4 | * Android Code Editor is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * Android Code Editor is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with Android Code Editor. If not, see . 16 | */ 17 | 18 | package android.code.editor.common.interfaces; 19 | 20 | import java.io.File; 21 | 22 | public interface FileDeleteListener { 23 | public void onProgressUpdate(int deleteDone); 24 | 25 | public void onTotalCount(int total); 26 | 27 | public void onDeleting(File path); 28 | 29 | public void onDeleteComplete(File path); 30 | 31 | public void onTaskComplete(); 32 | } 33 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/css/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "css", 3 | "displayName": "%displayName%", 4 | "description": "%description%", 5 | "version": "1.0.0", 6 | "publisher": "vscode", 7 | "license": "MIT", 8 | "engines": { 9 | "vscode": "0.10.x" 10 | }, 11 | "scripts": { 12 | "update-grammar": "node ../node_modules/vscode-grammar-updater/bin microsoft/vscode-css grammars/css.cson ./syntaxes/css.tmLanguage.json" 13 | }, 14 | "contributes": { 15 | "languages": [ 16 | { 17 | "id": "css", 18 | "aliases": [ 19 | "CSS", 20 | "css" 21 | ], 22 | "extensions": [ 23 | ".css" 24 | ], 25 | "mimetypes": [ 26 | "text/css" 27 | ], 28 | "configuration": "./language-configuration.json" 29 | } 30 | ], 31 | "grammars": [ 32 | { 33 | "language": "css", 34 | "scopeName": "source.css", 35 | "path": "./syntaxes/css.tmLanguage.json", 36 | "tokenTypes": { 37 | "meta.function.url string.quoted": "other" 38 | } 39 | } 40 | ] 41 | }, 42 | "repository": { 43 | "type": "git", 44 | "url": "https://github.com/microsoft/vscode.git" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/setting.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_projects_manager_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 17 | 18 | 23 | 24 | 25 | 26 | 32 | 33 | -------------------------------------------------------------------------------- /editor/src/main/java/editor/tsd/editors/Editor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Android Code Editor. 3 | * 4 | * Android Code Editor is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * Android Code Editor is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with Android Code Editor. If not, see . 16 | */ 17 | 18 | package editor.tsd.editors; 19 | 20 | import editor.tsd.tools.EditorListeners; 21 | 22 | public interface Editor { 23 | public void setCode(String Code); 24 | 25 | public void getCode(EditorListeners listener); 26 | 27 | public int getCodeEditorType(); 28 | 29 | public void setLanguageMode(String LqnguageMode); 30 | 31 | public void setTheme(String theme); 32 | 33 | public void moveCursorHorizontally(int steps); 34 | 35 | public void moveCursorVertically(int steps); 36 | } 37 | -------------------------------------------------------------------------------- /editor/src/main/java/editor/tsd/tools/Language.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Android Code Editor. 3 | * 4 | * Android Code Editor is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * Android Code Editor is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with Android Code Editor. If not, see . 16 | */ 17 | 18 | package editor.tsd.tools; 19 | 20 | public class Language { 21 | public static final String Java = "java"; 22 | public static final String Kt = "kt"; 23 | public static final String JavaScript = "js"; 24 | public static final String HTML = "html"; 25 | public static final String CSS = "css"; 26 | public static final String XML = "xml"; 27 | public static final String Markdown = "md"; 28 | public static final String JSON = "json"; 29 | public static final String UNKNOWN = "Unknown"; 30 | } 31 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/velocity.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/velocity.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# macro\nsnippet #macro\n\t#macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n\t\t${3:## macro code}\n\t#end\n# foreach\nsnippet #foreach\n\t#foreach ( ${1:\\$item} in ${2:\\$collection} )\n\t\t${3:## foreach code}\n\t#end\n# if\nsnippet #if\n\t#if ( ${1:true} )\n\t\t${0}\n\t#end\n# if ... else\nsnippet #ife\n\t#if ( ${1:true} )\n\t\t${2}\n\t#else\n\t\t${0}\n\t#end\n#import\nsnippet #import\n\t#import ( \"${1:path/to/velocity/format}\" )\n# set\nsnippet #set\n\t#set ( $${1:var} = ${0} )\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/velocity",["require","exports","module","ace/snippets/velocity.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./velocity.snippets"); 7 | exports.scope = "velocity"; 8 | exports.includeScopes = ["html", "javascript", "css"]; 9 | 10 | }); (function() { 11 | ace.require(["ace/snippets/velocity"], function(m) { 12 | if (typeof module == "object" && typeof exports == "object" && module) { 13 | module.exports = m; 14 | } 15 | }); 16 | })(); 17 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/util/UtilsTransActivity4MainProcess.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.util; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | 6 | /** 7 | *
 8 |  *     author: blankj
 9 |  *     blog  : http://blankj.com
10 |  *     time  : 2020/03/19
11 |  *     desc  :
12 |  * 
13 | */ 14 | public class UtilsTransActivity4MainProcess extends UtilsTransActivity { 15 | 16 | public static void start(final TransActivityDelegate delegate) { 17 | start(null, null, delegate, UtilsTransActivity4MainProcess.class); 18 | } 19 | 20 | public static void start(final Utils.Consumer consumer, 21 | final TransActivityDelegate delegate) { 22 | start(null, consumer, delegate, UtilsTransActivity4MainProcess.class); 23 | } 24 | 25 | public static void start(final Activity activity, 26 | final TransActivityDelegate delegate) { 27 | start(activity, null, delegate, UtilsTransActivity4MainProcess.class); 28 | } 29 | 30 | public static void start(final Activity activity, 31 | final Utils.Consumer consumer, 32 | final TransActivityDelegate delegate) { 33 | start(activity, consumer, delegate, UtilsTransActivity4MainProcess.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_file_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 22 | 23 | 28 | 29 | 36 | 37 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/graphqlschema.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/graphqlschema.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# Type Snippet\ntrigger type\nsnippet type\n\ttype ${1:type_name} {\n\t\t${2:type_siblings}\n\t}\n\n# Input Snippet\ntrigger input\nsnippet input\n\tinput ${1:input_name} {\n\t\t${2:input_siblings}\n\t}\n\n# Interface Snippet\ntrigger interface\nsnippet interface\n\tinterface ${1:interface_name} {\n\t\t${2:interface_siblings}\n\t}\n\n# Interface Snippet\ntrigger union\nsnippet union\n\tunion ${1:union_name} = ${2:type} | ${3: type}\n\n# Enum Snippet\ntrigger enum\nsnippet enum\n\tenum ${1:enum_name} {\n\t\t${2:enum_siblings}\n\t}\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/graphqlschema",["require","exports","module","ace/snippets/graphqlschema.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./graphqlschema.snippets"); 7 | exports.scope = "graphqlschema"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/graphqlschema"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/lua/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "--", 4 | "blockComment": [ 5 | "--[[", 6 | "]]" 7 | ] 8 | }, 9 | "brackets": [ 10 | [ 11 | "{", 12 | "}" 13 | ], 14 | [ 15 | "[", 16 | "]" 17 | ], 18 | [ 19 | "(", 20 | ")" 21 | ] 22 | ], 23 | "autoClosingPairs": [ 24 | [ 25 | "{", 26 | "}" 27 | ], 28 | [ 29 | "[", 30 | "]" 31 | ], 32 | [ 33 | "(", 34 | ")" 35 | ], 36 | { 37 | "open": "\"", 38 | "close": "\"", 39 | "notIn": [ 40 | "string" 41 | ] 42 | }, 43 | { 44 | "open": "'", 45 | "close": "'", 46 | "notIn": [ 47 | "string" 48 | ] 49 | } 50 | ], 51 | "surroundingPairs": [ 52 | [ 53 | "{", 54 | "}" 55 | ], 56 | [ 57 | "[", 58 | "]" 59 | ], 60 | [ 61 | "(", 62 | ")" 63 | ], 64 | [ 65 | "\"", 66 | "\"" 67 | ], 68 | [ 69 | "'", 70 | "'" 71 | ] 72 | ], 73 | "indentationRules": { 74 | "increaseIndentPattern": "^((?!(\\-\\-)).)*((\\b(else|function|then|do|repeat)\\b((?!\\b(end|until)\\b).)*)|(\\{\\s*))$", 75 | "decreaseIndentPattern": "^\\s*((\\b(elseif|else|end|until)\\b)|(\\})|(\\)))" 76 | } 77 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_setting_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 16 | 17 | 22 | 23 | 28 | 29 | 30 | 31 | 36 | 37 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/typescript/syntaxes/Readme.md: -------------------------------------------------------------------------------- 1 | The file `TypeScript.tmLanguage.json` and `TypeScriptReact.tmLanguage.json` are derived from [TypeScript.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage) and [TypeScriptReact.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage). 2 | 3 | To update to the latest version: 4 | - `cd extensions/typescript` and run `npm run update-grammars` 5 | - don't forget to run the integration tests at `./scripts/test-integration.sh` 6 | 7 | Migration notes and todos: 8 | 9 | - differentiate variable and function declarations from references 10 | - I suggest we use a new scope segment 'function-call' to signal a function reference, and 'definition' to the declaration. An alternative is to use 'support.function' everywhere. 11 | - I suggest we use a new scope segment 'definition' to the variable declarations. Haven't yet found a scope for references that other grammars use. 12 | 13 | - rename scope to return.type to return-type, which is already used in other grammars 14 | - rename entity.name.class to entity.name.type.class which is used in all other grammars I've seen 15 | 16 | - do we really want to have the list of all the 'library' types (Math, Dom...). It adds a lot of size to the grammar, lots of special rules and is not really correct as it depends on the JavaScript runtime which types are present. 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_event_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 19 | 20 | 26 | 27 | 32 | 33 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_bottomsheet_event_operation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 22 | 23 | 29 | 30 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_bottomsheet_project_operation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 22 | 23 | 29 | 30 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_file_operation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 22 | 23 | 29 | 30 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /common/src/main/java/com/blankj/utilcode/util/CloseUtils.java: -------------------------------------------------------------------------------- 1 | package com.blankj.utilcode.util; 2 | 3 | import java.io.Closeable; 4 | import java.io.IOException; 5 | 6 | /** 7 | *
 8 |  *     author: Blankj
 9 |  *     blog  : http://blankj.com
10 |  *     time  : 2016/10/09
11 |  *     desc  : utils about close
12 |  * 
13 | */ 14 | public final class CloseUtils { 15 | 16 | private CloseUtils() { 17 | throw new UnsupportedOperationException("u can't instantiate me..."); 18 | } 19 | 20 | /** 21 | * Close the io stream. 22 | * 23 | * @param closeables The closeables. 24 | */ 25 | public static void closeIO(final Closeable... closeables) { 26 | if (closeables == null) return; 27 | for (Closeable closeable : closeables) { 28 | if (closeable != null) { 29 | try { 30 | closeable.close(); 31 | } catch (IOException e) { 32 | e.printStackTrace(); 33 | } 34 | } 35 | } 36 | } 37 | 38 | /** 39 | * Close the io stream quietly. 40 | * 41 | * @param closeables The closeables. 42 | */ 43 | public static void closeIOQuietly(final Closeable... closeables) { 44 | if (closeables == null) return; 45 | for (Closeable closeable : closeables) { 46 | if (closeable != null) { 47 | try { 48 | closeable.close(); 49 | } catch (IOException ignored) { 50 | } 51 | } 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/assets/license/ace_editor_license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Ajax.org B.V. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of Ajax.org B.V. nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/sql.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/sql.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet tbl\n\tcreate table ${1:table} (\n\t\t${2:columns}\n\t);\nsnippet col\n\t${1:name}\t${2:type}\t${3:default ''}\t${4:not null}\nsnippet ccol\n\t${1:name}\tvarchar2(${2:size})\t${3:default ''}\t${4:not null}\nsnippet ncol\n\t${1:name}\tnumber\t${3:default 0}\t${4:not null}\nsnippet dcol\n\t${1:name}\tdate\t${3:default sysdate}\t${4:not null}\nsnippet ind\n\tcreate index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n\tcreate unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n\tcomment on table ${1:table} is '${2:comment}';\nsnippet colcom\n\tcomment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n\talter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n\tcreate sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n\tselect * from ${1:table}\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/sql",["require","exports","module","ace/snippets/sql.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./sql.snippets"); 7 | exports.scope = "sql"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/sql"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/SoraEditor/markdown/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": [ 4 | "" 6 | ] 7 | }, 8 | "brackets": [ 9 | [ 10 | "{", 11 | "}" 12 | ], 13 | [ 14 | "[", 15 | "]" 16 | ], 17 | [ 18 | "(", 19 | ")" 20 | ] 21 | ], 22 | "colorizedBracketPairs": [ 23 | ], 24 | "autoClosingPairs": [ 25 | { 26 | "open": "{", 27 | "close": "}" 28 | }, 29 | { 30 | "open": "[", 31 | "close": "]" 32 | }, 33 | { 34 | "open": "(", 35 | "close": ")" 36 | }, 37 | { 38 | "open": "<", 39 | "close": ">", 40 | "notIn": [ 41 | "string" 42 | ] 43 | } 44 | ], 45 | "surroundingPairs": [ 46 | [ 47 | "(", 48 | ")" 49 | ], 50 | [ 51 | "[", 52 | "]" 53 | ], 54 | [ 55 | "`", 56 | "`" 57 | ], 58 | [ 59 | "_", 60 | "_" 61 | ], 62 | [ 63 | "*", 64 | "*" 65 | ], 66 | [ 67 | "{", 68 | "}" 69 | ], 70 | [ 71 | "'", 72 | "'" 73 | ], 74 | [ 75 | "\"", 76 | "\"" 77 | ] 78 | ], 79 | "folding": { 80 | "offSide": true, 81 | "markers": { 82 | "start": "^\\s*", 83 | "end": "^\\s*" 84 | } 85 | }, 86 | "wordPattern": "(\\p{Alphabetic}|\\p{Number}|\\p{Nonspacing_Mark})(((\\p{Alphabetic}|\\p{Number}|\\p{Nonspacing_Mark})|[_])?(\\p{Alphabetic}|\\p{Number}|\\p{Nonspacing_Mark}))*" 87 | } 88 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/abc.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/abc.snippets",["require","exports","module"], function(require, exports, module){module.exports = "\nsnippet zupfnoter.print\n\t%%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}], \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\n\nsnippet zupfnoter.note\n\t%%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\n\nsnippet zupfnoter.annotation\n\t%%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\n\nsnippet zupfnoter.lyrics\n\t%%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\n\nsnippet zupfnoter.legend\n\t%%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\n\n\n\nsnippet zupfnoter.target\n\t\"^:${1:target}\"\n\nsnippet zupfnoter.goto\n\t\"^@${1:target}@${2:distance}\"\n\nsnippet zupfnoter.annotationref\n\t\"^#${1:target}\"\n\nsnippet zupfnoter.annotation\n\t\"^!${1:text}@${2:x_offset},${3:y_offset}\"\n\n\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/abc",["require","exports","module","ace/snippets/abc.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./abc.snippets"); 7 | exports.scope = "abc"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/abc"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /.github/workflows/android.yml: -------------------------------------------------------------------------------- 1 | name: Android CI 2 | 3 | on: 4 | push: 5 | paths-ignore: 6 | - .gitignore 7 | 8 | jobs: 9 | buildApkFile: 10 | name: Build Debug APK 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | 15 | - name: Set up JDK 17 16 | uses: actions/setup-java@v3 17 | with: 18 | java-version: 17 19 | distribution: temurin 20 | 21 | - name: Allow gradlew permission 22 | run: chmod +x ./gradlew 23 | 24 | - name: Set environmental variables 25 | shell: bash 26 | env: 27 | JSON_CONTENT: ${{ secrets.KEYSTOREPASSWORD }} 28 | if: ${{ env.JSON_CONTENT != '' }} 29 | run: | 30 | printf 'KEYSTOREPASSWORD<> $GITHUB_ENV 31 | 32 | 33 | - name: Set up firebase 34 | shell: bash 35 | env: 36 | GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_ANALYTICS }} 37 | if: ${{ env.GOOGLE_SERVICES_JSON != '' }} 38 | run: | 39 | printf 'GOOGLE_ANALYTICS<> $GITHUB_ENV 40 | 41 | - name: Build debug APK 42 | run: ./gradlew assembleDebug 43 | 44 | - name: Upload debug APK 45 | uses: actions/upload-artifact@v3 46 | with: 47 | name: BlockWeb Builder Apk 48 | path: app/build/outputs/apk/debug/app-debug.apk 49 | 50 | - name: Upload output metadata APK 51 | uses: actions/upload-artifact@v3 52 | with: 53 | name: Output Metadata 54 | path: app/build/outputs/apk/debug/output-metadata.json 55 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_event_list_adapter.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 19 | 20 | 26 | 27 | 32 | 33 | 38 | 39 | 40 | 41 | 45 | 46 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | *.aab 5 | 6 | # Files for the ART/Dalvik VM 7 | *.dex 8 | 9 | # Java class files 10 | *.class 11 | 12 | # Generated files 13 | /bin/ 14 | /gen/ 15 | /out/ 16 | # Uncomment the following line in case you need and you don't have the release build type files in your app 17 | # Gradle files 18 | .gradle/ 19 | /build/ 20 | 21 | # Local configuration file (sdk path, etc) 22 | local.properties 23 | 24 | # Proguard folder generated by Eclipse 25 | proguard/ 26 | 27 | # Log Files 28 | *.log 29 | 30 | # Android Studio Navigation editor temp files 31 | .navigation/ 32 | 33 | # Android Studio captures folder 34 | captures/ 35 | 36 | # Android IDE 37 | .androidide 38 | 39 | # VS Code Editor 40 | .vscode 41 | 42 | # IntelliJ 43 | *.iml 44 | .idea/workspace.xml 45 | .idea/tasks.xml 46 | .idea/gradle.xml 47 | .idea/assetWizardSettings.xml 48 | .idea/dictionaries 49 | .idea/libraries 50 | # Android Studio 3 in .gitignore file. 51 | .idea/caches 52 | .idea/modules.xml 53 | # Comment next line if keeping position of elements in Navigation Editor is relevant for you 54 | .idea/navEditor.xml 55 | 56 | # External native build folder generated in Android Studio 2.2 and later 57 | .externalNativeBuild 58 | .cxx/ 59 | 60 | # Google Services (e.g. APIs or Firebase) 61 | # google-services.json 62 | 63 | # Freeline 64 | freeline.py 65 | freeline/ 66 | freeline_project_description.json 67 | 68 | # fastlane 69 | fastlane/report.xml 70 | fastlane/Preview.html 71 | fastlane/screenshots 72 | fastlane/test_output 73 | fastlane/readme.md 74 | 75 | # Version control 76 | vcs.xml 77 | 78 | # lint 79 | lint/intermediates/ 80 | lint/generated/ 81 | lint/outputs/ 82 | lint/tmp/ 83 | # lint/reports/ 84 | 85 | # Secrets 86 | app/google-services.json 87 | secrets.properties 88 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/csound_orchestra.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/csound_orchestra.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# else\nsnippet else\n\telse\n\t\t${1:/* statements */}\n# elseif\nsnippet elseif\n\telseif ${1:/* condition */} then\n\t\t${2:/* statements */}\n# if\nsnippet if\n\tif ${1:/* condition */} then\n\t\t${2:/* statements */}\n\tendif\n# instrument block\nsnippet instr\n\tinstr ${1:name}\n\t\t${2:/* statements */}\n\tendin\n# i-time while loop\nsnippet iwhile\n\ti${1:Index} = ${2:0}\n\twhile i${1:Index} < ${3:/* count */} do\n\t\t${4:/* statements */}\n\t\ti${1:Index} += 1\n\tod\n# k-rate while loop\nsnippet kwhile\n\tk${1:Index} = ${2:0}\n\twhile k${1:Index} < ${3:/* count */} do\n\t\t${4:/* statements */}\n\t\tk${1:Index} += 1\n\tod\n# opcode\nsnippet opcode\n\topcode ${1:name}, ${2:/* output types */ 0}, ${3:/* input types */ 0}\n\t\t${4:/* statements */}\n\tendop\n# until loop\nsnippet until\n\tuntil ${1:/* condition */} do\n\t\t${2:/* statements */}\n\tod\n# while loop\nsnippet while\n\twhile ${1:/* condition */} do\n\t\t${2:/* statements */}\n\tod\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/csound_orchestra",["require","exports","module","ace/snippets/csound_orchestra.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./csound_orchestra.snippets"); 7 | exports.scope = "csound_orchestra"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/csound_orchestra"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/java/editor/tsd/editors/sora/lang/textmate/provider/TextMateProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of Android Code Editor. 3 | * 4 | * Android Code Editor is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * Android Code Editor is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with Android Code Editor. If not, see . 16 | */ 17 | 18 | package editor.tsd.editors.sora.lang.textmate.provider; 19 | 20 | import android.code.editor.common.utils.FileUtils; 21 | import android.content.Context; 22 | import com.google.gson.Gson; 23 | import com.google.gson.reflect.TypeToken; 24 | import io.github.rosemoe.sora.langs.textmate.registry.GrammarRegistry; 25 | import java.util.Map; 26 | 27 | public class TextMateProvider { 28 | public static void loadGrammars() { 29 | GrammarRegistry.getInstance().loadGrammars("Editor/SoraEditor/languages.json"); 30 | } 31 | 32 | public static String getLanguageScope(Context context, String fileExt) { 33 | Map scopes; 34 | var type = new TypeToken>() {}.getType(); 35 | scopes = 36 | new Gson() 37 | .fromJson( 38 | FileUtils.readFileFromAssets(context.getAssets(), "Editor/SoraEditor/language_scopes.json"), 39 | type); 40 | return scopes.get(fileExt); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_blocks_holder_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 19 | 20 | 24 | 25 | 31 | 32 | 36 | 37 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_license_reader.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/wollok.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/wollok.snippets",["require","exports","module"], function(require, exports, module){module.exports = "##\n## Basic Java packages and import\nsnippet im\n\timport\nsnippet w.l\n\twollok.lang\nsnippet w.i\n\twollok.lib\n\n## Class and object\nsnippet cl\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet obj\n\tobject ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\nsnippet te\n\ttest ${1:`Filename(\"\", \"untitled\")`}\n\n##\n## Enhancements\nsnippet inh\n\tinherits\n\n##\n## Comments\nsnippet /*\n\t/*\n\t * ${1}\n\t */\n\n##\n## Control Statements\nsnippet el\n\telse\nsnippet if\n\tif (${1}) ${2}\n\n##\n## Create a Method\nsnippet m\n\tmethod ${1:method}(${2}) ${5}\n\n## \n## Tests\nsnippet as\n\tassert.equals(${1:expected}, ${2:actual})\n\n##\n## Exceptions\nsnippet ca\n\tcatch ${1:e} : (${2:Exception} ) ${3}\nsnippet thr\n\tthrow\nsnippet try\n\ttry {\n\t\t${3}\n\t} catch ${1:e} : ${2:Exception} {\n\t}\n\n##\n## Javadocs\nsnippet /**\n\t/**\n\t * ${1}\n\t */\n\n##\n## Print Methods\nsnippet print\n\tconsole.println(\"${1:Message}\")\n\n##\n## Setter and Getter Methods\nsnippet set\n\tmethod set${1:}(${2:}) {\n\t\t$1 = $2\n\t}\nsnippet get\n\tmethod get${1:}() {\n\t\treturn ${1:};\n\t}\n\n##\n## Terminate Methods or Loops\nsnippet re\n\treturn"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/wollok",["require","exports","module","ace/snippets/wollok.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./wollok.snippets"); 7 | exports.scope = "wollok"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/wollok"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_license.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 37 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_new_blocks_holder_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | 21 | 27 | 28 | 29 | 37 | 38 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/snippets/dart.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/dart.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet lib\n\tlibrary ${1};\n\t${2}\nsnippet im\n\timport '${1}';\n\t${2}\nsnippet pa\n\tpart '${1}';\n\t${2}\nsnippet pao\n\tpart of ${1};\n\t${2}\nsnippet main\n\tvoid main() {\n\t ${1:/* code */}\n\t}\nsnippet st\n\tstatic ${1}\nsnippet fi\n\tfinal ${1}\nsnippet re\n\treturn ${1}\nsnippet br\n\tbreak;\nsnippet th\n\tthrow ${1}\nsnippet cl\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet imp\n\timplements ${1}\nsnippet ext\n\textends ${1}\nsnippet if\n\tif (${1:true}) {\n\t ${2}\n\t}\nsnippet ife\n\tif (${1:true}) {\n\t ${2}\n\t} else {\n\t ${3}\n\t}\nsnippet el\n\telse\nsnippet sw\n\tswitch (${1}) {\n\t ${2}\n\t}\nsnippet cs\n\tcase ${1}:\n\t ${2}\nsnippet de\n\tdefault:\n\t ${1}\nsnippet for\n\tfor (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n\t ${4:$1[$2]}\n\t}\nsnippet fore\n\tfor (final ${2:item} in ${1:itemList}) {\n\t ${3:/* code */}\n\t}\nsnippet wh\n\twhile (${1:/* condition */}) {\n\t ${2:/* code */}\n\t}\nsnippet dowh\n\tdo {\n\t ${2:/* code */}\n\t} while (${1:/* condition */});\nsnippet as\n\tassert(${1:/* condition */});\nsnippet try\n\ttry {\n\t ${2}\n\t} catch (${1:Exception e}) {\n\t}\nsnippet tryf\n\ttry {\n\t ${2}\n\t} catch (${1:Exception e}) {\n\t} finally {\n\t}\n"; 2 | 3 | }); 4 | 5 | ace.define("ace/snippets/dart",["require","exports","module","ace/snippets/dart.snippets"], function(require, exports, module){"use strict"; 6 | exports.snippetText = require("./dart.snippets"); 7 | exports.scope = "dart"; 8 | 9 | }); (function() { 10 | ace.require(["ace/snippets/dart"], function(m) { 11 | if (typeof module == "object" && typeof exports == "object" && module) { 12 | module.exports = m; 13 | } 14 | }); 15 | })(); 16 | -------------------------------------------------------------------------------- /editor/src/main/assets/Editor/Ace-Editor/AceEditor/js/mode-gitignore.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/mode/gitignore_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict"; 2 | var oop = require("../lib/oop"); 3 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 4 | var GitignoreHighlightRules = function () { 5 | this.$rules = { 6 | "start": [ 7 | { 8 | token: "comment", 9 | regex: /^\s*#.*$/ 10 | }, { 11 | token: "keyword", 12 | regex: /^\s*!.*$/ 13 | } 14 | ] 15 | }; 16 | this.normalizeRules(); 17 | }; 18 | GitignoreHighlightRules.metaData = { 19 | fileTypes: ['gitignore'], 20 | name: 'Gitignore' 21 | }; 22 | oop.inherits(GitignoreHighlightRules, TextHighlightRules); 23 | exports.GitignoreHighlightRules = GitignoreHighlightRules; 24 | 25 | }); 26 | 27 | ace.define("ace/mode/gitignore",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gitignore_highlight_rules"], function(require, exports, module){"use strict"; 28 | var oop = require("../lib/oop"); 29 | var TextMode = require("./text").Mode; 30 | var GitignoreHighlightRules = require("./gitignore_highlight_rules").GitignoreHighlightRules; 31 | var Mode = function () { 32 | this.HighlightRules = GitignoreHighlightRules; 33 | this.$behaviour = this.$defaultBehaviour; 34 | }; 35 | oop.inherits(Mode, TextMode); 36 | (function () { 37 | this.lineCommentStart = "#"; 38 | this.$id = "ace/mode/gitignore"; 39 | }).call(Mode.prototype); 40 | exports.Mode = Mode; 41 | 42 | }); (function() { 43 | ace.require(["ace/mode/gitignore"], function(m) { 44 | if (typeof module == "object" && typeof exports == "object" && module) { 45 | module.exports = m; 46 | } 47 | }); 48 | })(); 49 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_setting.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | 36 | 37 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | --------------------------------------------------------------------------------