Ramys / sora-editor

A cool code editor library on Android with syntax-highlighting and auto-completion. (aka CodeEditor)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Banner

CI GitHub license Maven Central
Telegram QQ

sora-editor is a cool and optimized code editor on Android platform

Read this in other languages: English, 简体中文, Español, 日本語.

Note that statements in other languages may not be up-to-date.

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.

Features

  • 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
  • Sticky Scroll
  • Highlight bracket pairs
  • Event System

Key bindings

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.

Screenshots

GeneralAppearance ProblemIndicator

Get started

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.

Using Snapshot Versions

Snapshot releases are automatically generated on repository push. You may combine current released version name and short commit hash to make a snapshot version name. For example, if the latest released version name is '0.21.1' and short commit hash is '97c4963', you may use version name '0.21.1-97c4963-SNAPSHOT' to import the snapshot version to your project. Also, you need to add extra maven repository:

repositories {
    // ...
    maven("https://s01.oss.sonatype.org/content/repositories/snapshots")
}

Discuss

Contributors

License

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

Acknowledgements

Thanks to JetBrains for allocating free open-source licences for IDEs such as IntelliJ IDEA.

About

A cool code editor library on Android with syntax-highlighting and auto-completion. (aka CodeEditor)

License:GNU Lesser General Public License v2.1


Languages

Language:Java 82.4%Language:Kotlin 14.0%Language:Lua 3.4%Language:Scheme 0.2%