Ein einfacher Code -Editor mit Syntax -Hervorhebung und Prise zum Zoom

| Master |
|---|
Schauen Sie sich die Demo -App ( app -Modul) für ein komplettes Beispiel an.
Um diese Bibliothek zu verwenden, fügen Sie sie einfach in Ihre Abhängigkeiten ein
repositories {
...
maven { url "https://jitpack.io" }
}
in Ihrem Projekt Build.gradle Datei und
dependencies {
...
def codeEditorVersion = "v4.0.1"
implementation("com.github.markusressel:KodeEditor:${codeEditorVersion}")
}
In Ihrem gewünschten Modul build.gradle -Datei.
Um diesen Editor zu verwenden, fügen Sie einfach etwas Ähnliches zu Ihrer gewünschten Layout XML -Datei hinzu:
<de.markusressel.kodeeditor.library.view.CodeEditorLayout
android:id="@+id/codeEditorView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:ke_divider_color="?android:attr/textColorPrimary"
app:ke_divider_enabled="true"
app:ke_editor_backgroundColor="?android:attr/windowBackground"
app:ke_editor_maxZoom="10.0"
app:ke_lineNumbers_backgroundColor="#ccc"
app:ke_lineNumbers_textColor="#000"
app:ke_minimap_enabled="true"
app:ke_minimap_maxDimension="200dp"
app:ke_minimap_borderColor="#000"
app:ke_minimap_indicatorColor="#f00"
/>
Derzeit gibt es keine Autoerkennung für die in einem Dokument verwendete Sprache. Sie müssen den Syntax Highlighter selbst verwalten und gegebenenfalls die setSyntaxHighlighter -Methode aufrufen.
Schauen Sie sich den KodeHighlighter -Bereich darüber an.
Schauen Sie sich den KodeHighlighter -Bereich darüber an.
Kodeeditor kann auf verschiedene Arten gestylt werden:
| Name | Beschreibung | Typ | Standard |
|---|---|---|---|
| ke_linenumbers_textColor | Gibt die Textfarbe von Zeilennummern an | Farbe | android.R.attr.textColorPrimary |
| ke_linenumbers_backgroundColor | Gibt die Hintergrundfarbe der Zeilennummernansicht an | Farbe | android.R.attr.windowBackground |
| ke_divider_enabled | Gibt an, ob ein Teiler zwischen Zeilennummern und dem tatsächlichen Code -Editor -Inhalt gezogen werden soll | Boolean | true |
| ke_divider_color | Gibt die Farbe des Teilers an (hat keinen Einfluss, wenn ke_divider_enabled auf false eingestellt ist) | Farbe | android.R.attr.textColorPrimary |
| ke_editor_backgroundColor | Gibt die Hintergrundfarbe der Code -Editor -Ansicht an | Farbe | android.R.attr.windowBackground |
| ke_editor_maxzoom | Gibt die maximale Zoomebene des Editors an | Schweben | 10 |
| ke_minimap_enabled | Aktiviert die Minimap | Boolean | true |
| ke_minimap_maxDimension | Gibt die maximale Dimension der Minimap für beide Achse an | Dimension | 150dp |
| ke_minimap_borderColor | Gibt die Grenzfarbe des Minimaps an | Farbe | Color.BLACK |
| ke_minimap_indicatorColor | Gibt die Farbe des Minimap -Indikators an | Farbe | Color.RED |
Sie können diese Attribute entweder direkt in der Ansicht in Ihrem Layout wie folgt verwenden:
<de.markusressel.kodeeditor.library.view.CodeEditorView
android:id="@+id/codeEditorView"
android:layout_width="match_parent"
android:layout_height="match_parent"
[...]
app:ke_divider_color="?android:attr/textColorPrimary"
app:ke_divider_enabled="true"
app:ke_editor_backgroundColor="?android:attr/windowBackground"
app:ke_editor_maxZoom="10.0"
app:ke_lineNumbers_backgroundColor="#ccc"
app:ke_lineNumbers_textColor="#000"
app:ke_minimap_enabled="true"
app:ke_minimap_maxDimension="200dp"
app:ke_divider="true"
[...] />
Oder geben Sie sie in Ihrem Anwendungsthema ( styles.xml in der App) an, um einen Stil weltweit anzuwenden:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Other theme attributes of your application -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- CodeEditorView -->
<item name="ke_lineNumbers_backgroundColor">#ccc</item>
<item name="ke_lineNumbers_textColor">#000</item>
<item name="ke_divider_enabled">false</item>
<item name="ke_divider_color">#000</item>
<item name="ke_editor_backgroundColor">#fff</item>
<item name="ke_editor_maxZoom">10.0</item>
<item name="ke_editor_followCursor">true</item>
<item name="ke_minimap_enabled">true</item>
<item name="ke_minimap_maxDimension">200dp</item>
[...]
</style>
</resources>
Alle Styling -Attribute können auch mit Code angegeben werden. Da KodeEditorLayout nur ein Wrapper ist, um den CodeEditorView mit Zeilennummern und der Minimape zu erweitern, um einige dieser Methoden zu verwenden, müssen Sie zuerst auf die passende Eigenschaft des KodeEditorLayout zugreifen.
| Name | Beschreibung | Typ |
|---|---|---|
| Text | Legt den angegebenen Text im Editor fest. | Saite |
| setText (@stringres) | Legt die angegebene Zeichenfolgenressource als Text im Editor fest. | Int |
| Languagernbuch | Erhält/legt das für das Hervorhebung verwendete aktive Sprachregelbuch. Verwenden Sie null , um das Hervorheben insgesamt zu deaktivieren. | Languagernuok? |
| bearbeitet | Ruft/Sätze, wenn der Editorinhalt bearbeitet werden kann. | Boolean |
| Name | Beschreibung | Typ |
|---|---|---|
| ShowDivider | Ruft/setzt, wenn der Teiler zwischen Zeilennummern und Code -Editor angezeigt wird. | Boolean |
| Leinenumbergenerator | Legt Text fest, die für die Zeilennummer basierend auf der Gesamtzahl der Zeilen angezeigt werden sollen | (Lang) -> Liste |
| Name | Beschreibung | Typ |
|---|---|---|
| Showminimap | Greift/setzt, wenn der Minimap angezeigt wird. | Boolean |
| minimapmaxDimension | Erhält/setzt die maximale Dimension der Minimapupplung in Pixeln. | Schweben |
| MinimapBorderwidth | Erholt/setzt die minimap -Randgröße in Pixel. | Nummer |
| MinimapBorderColor | Erholt/setzt die minimierte Randfarbe. | @Colorint |
| MinimapindicatorColor | Erhält/setzt die minimap -Anzeigelfarbe. | @Colorint |
| Minimapgravität | Erhält/setzt die Minimap -Positionierungsgravitation. | Int |
Um diese API -Methoden zu erheben, verwenden Sie die Eigenschaft codeEditorLayout.codeEditorView .
| Name | Beschreibung | Typ |
|---|---|---|
| Text | Legt den angegebenen Text im Editor fest. | Saite |
| setText (@stringres) | Legt die angegebene Zeichenfolgenressource als Text im Editor fest. | Int |
| GetLinEcount () | Gibt die aktuelle Zeilenzahl zurück. | Lang |
| Languagernbuch | Erhält/legt das für das Hervorhebung verwendete aktive Sprachregelbuch. Verwenden Sie null , um das Hervorheben insgesamt zu deaktivieren. | Languagernuok? |
| bearbeitet | Ruft/Sätze, wenn der Editorinhalt bearbeitet werden kann. | Boolean |
| Hasselektion | Wahr, wenn ein Bereich ausgewählt wird. | Boolean |
| SelectionStart | Der Startindex der aktuellen Auswahl. | Int |
| Selectionend | Der Endindex der aktuellen Auswahl. | Int |
| SelectionChangedListener | Ruft/setzt den Hörer für Auswahländerungen. | SelectionChangedListener? |
GitHub ist für die soziale Codierung gedacht: Wenn Sie Code schreiben möchten, ermutige ich Beiträge durch Pull -Anfragen von Gabeln dieses Repositorys. Erstellen Sie GitHub -Tickets für Fehler und neue Funktionen und kommentieren Sie diejenigen, an denen Sie interessiert sind.
MIT License
Copyright (c) 2018 Markus Ressel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.