Editor Kode Sederhana dengan Sintaks Sorote dan Pinch to Zoom

| Menguasai |
|---|
Lihatlah aplikasi demo (modul app ) untuk sampel lengkap.
Untuk menggunakan perpustakaan ini, sertakan dalam dependensi Anda menggunakan
repositories {
...
maven { url "https://jitpack.io" }
}
dalam file build.gradle proyek Anda dan
dependencies {
...
def codeEditorVersion = "v4.0.1"
implementation("com.github.markusressel:KodeEditor:${codeEditorVersion}")
}
Di modul yang Anda inginkan. File build.gradle .
Untuk menggunakan editor ini cukup tambahkan sesuatu yang mirip dengan ini ke file XML tata letak yang Anda inginkan:
<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"
/>
Saat ini tidak ada deteksi otomatis untuk bahasa yang digunakan dalam dokumen. Anda harus mengelola sendiri sintab highlighter dan memanggil metode setSyntaxHighlighter bila perlu.
Lihatlah bagian Kodehighlighter tentang ini.
Lihatlah bagian Kodehighlighter tentang ini.
KODEEDITOR dapat ditata dalam berbagai cara:
| Nama | Keterangan | Jenis | Bawaan |
|---|---|---|---|
| ke_linenumbers_textcolor | Menentukan warna teks nomor baris | Warna | android.R.attr.textColorPrimary |
| ke_linenumbers_backgroundcolor | Menentukan warna latar belakang tampilan nomor garis | Warna | android.R.attr.windowBackground |
| ke_divider_enabled | Menentukan apakah pembagi harus ditarik antara nomor baris dan konten editor kode aktual | Boolean | true |
| ke_divider_color | Menentukan warna pembagi (tidak berpengaruh jika ke_divider_enabled diatur ke false ) | Warna | android.R.attr.textColorPrimary |
| ke_editor_backgroundcolor | Menentukan warna latar belakang tampilan editor kode | Warna | android.R.attr.windowBackground |
| ke_editor_maxzoom | Menentukan tingkat zoom maksimum editor | Mengambang | 10 |
| ke_minimap_enabled | Memungkinkan minimap | Boolean | true |
| ke_minimap_maxdimension | Menentukan dimensi maksimum minimap untuk kedua sumbu | Dimensi | 150dp |
| ke_minimap_bordercolor | Menentukan warna perbatasan minimap | Warna | Color.BLACK |
| ke_minimap_indicatorcolor | Menentukan warna indikator minimap | Warna | Color.RED |
Anda dapat menggunakan atribut tersebut secara langsung pada tampilan di tata letak Anda seperti ini:
<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"
[...] />
atau tentukan mereka dalam tema aplikasi Anda ( styles.xml dalam aplikasi dem) untuk menerapkan gaya secara global:
<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>
Semua atribut styling juga dapat ditentukan menggunakan kode. Karena KodeEditorLayout hanyalah pembungkus untuk memperluas CodeEditorView dengan nomor baris dan minimap untuk menggunakan beberapa metode yang Anda butuhkan untuk mengakses properti pencocokan dari KodeEditorLayout terlebih dahulu.
| Nama | Keterangan | Jenis |
|---|---|---|
| teks | Mengatur teks yang diberikan di editor. | Rangkaian |
| setText (@stringres) | Mengatur sumber daya string yang diberikan sebagai teks di editor. | Int |
| Bejiji langerago | Mendapat/mengatur buku aturan bahasa aktif yang digunakan untuk menyorot. Gunakan null untuk menonaktifkan sorotan sama sekali. | Bejiji languager? |
| dapat diedit | Mendapat/set jika konten editor dapat diedit. | Boolean |
| Nama | Keterangan | Jenis |
|---|---|---|
| Pertunjukan | Mendapat/set jika pembagi antara nomor baris dan editor kode ditampilkan. | Boolean |
| LinenumberGenerator | Menetapkan teks untuk ditampilkan untuk nomor baris berdasarkan jumlah total baris | (Long) -> Daftar |
| Nama | Keterangan | Jenis |
|---|---|---|
| showminimap | Mendapat/set jika minimap ditampilkan. | Boolean |
| minimapmaxdimension | Mendapat/mengatur dimensi maksimum minimap dalam piksel. | Mengambang |
| minimapborderwidth | Mendapat/mengatur ukuran perbatasan minimap dalam piksel. | Nomor |
| minimapbordercolor | Mendapat/mengatur warna perbatasan minimap. | @Colorint |
| MinimapindicatorColor | Mendapat/mengatur warna indikator minimap. | @Colorint |
| minimapgravity | Mendapat/mengatur gravitasi penentuan posisi minimap. | Int |
Untuk mengakses metode API ini menggunakan properti codeEditorLayout.codeEditorView .
| Nama | Keterangan | Jenis |
|---|---|---|
| teks | Mengatur teks yang diberikan di editor. | Rangkaian |
| setText (@stringres) | Mengatur sumber daya string yang diberikan sebagai teks di editor. | Int |
| getlinecount () | Mengembalikan jumlah baris saat ini. | Panjang |
| Bejiji langerago | Mendapat/mengatur buku aturan bahasa aktif yang digunakan untuk menyorot. Gunakan null untuk menonaktifkan sorotan sama sekali. | Bejiji languager? |
| dapat diedit | Mendapat/set jika konten editor dapat diedit. | Boolean |
| Hasselection | Benar saat rentang dipilih. | Boolean |
| SelectionStart | Indeks mulai dari seleksi saat ini. | Int |
| SelectionEnd | Indeks akhir dari seleksi saat ini. | Int |
| SelectionChangedListener | Mendapat/mengatur pendengar untuk perubahan seleksi. | SelectionChangedListener? |
GitHub adalah untuk pengkodean sosial: Jika Anda ingin menulis kode, saya mendorong kontribusi melalui permintaan tarik dari garpu repositori ini. Buat tiket GitHub untuk bug dan fitur baru dan komentari yang Anda minati.
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.