Read this in other languages: English, 简体中文, Español.
Work In Progress This project is still developing slowly.
Download the newest sources from Releases
instead of cloning this repository directly.
Issues and pull requests are welcome.
- Syntax highlighting
- Auto-completion (with code snippets)
- Auto indent
- Code block lines
- Scale text
- Undo/redo
- Search and replace
- Auto wordwrap
- Show non-printable characters
- Error/Warning/Typo/Deprecated indicators
- Text magnifier
- Incremental highlight analysis
- Highlight bracket pairs
- Event System
When working with a physical keyboard, you can use key bindings for performing various text
actions.
The editor provides support for some key bindings by default.
However, you can subscribe
to KeyBindingEvent
and add your own key bindings. You can even override the default key bindings and perform actions of
your own.
The currently supported key bindings are mostly similar to Android Studio/Intellij IDEA. See the supported key bindings.
Add to your app's dependencies:
dependencies {
implementation(platform("io.github.Rosemoe.sora-editor:bom:<versionName>"))
implementation("io.github.Rosemoe.sora-editor:<moduleName>")
}
Available modules:
- editor
Widget library containing all basic things of the framework - editor-lsp
A convenient library for creating languages by using Language Server Protocol (aka LSP) - language-java
A simple implementation for Java highlighting and identifier auto-completion - language-textmate
An advanced highlighter for the editor. You can find textmate language bundles and themes and load them by using this module. The internal implementation of textmate is from tm4e. - language-treesitter
Offer tree-sitter support for editor. This can be used to parse the code to an AST fast and incrementally, which is helpful for accurate highlighting and providing completions. Note that this module only provides incremental paring and highlighting. Thanks to Java bindings android-tree-sitter
Check the newest version from the badge above or Releases.
- Official QQ Group:216632648
- Official Telegram Group
sora-editor - the awesome code editor for Android
https://github.com/Rosemoe/sora-editor
Copyright (C) 2020-2023 Rosemoe
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
Please contact Rosemoe by email 2073412493@qq.com if you need
additional information or have any questions
Thanks to JetBrains for allocating free open-source
licences for IDEs such as IntelliJ IDEA.