Простой редактор кода с синтаксисом выделения и укорочка для масштабирования

| Владелец |
|---|
Посмотрите на демонстрационное приложение (модуль app ) для полного образца.
Чтобы использовать эту библиотеку, просто включите ее в ваши зависимости, используя
repositories {
...
maven { url "https://jitpack.io" }
}
В вашем проекте build.gradle файл и
dependencies {
...
def codeEditorVersion = "v4.0.1"
implementation("com.github.markusressel:KodeEditor:${codeEditorVersion}")
}
В желаемом модуле build.gradle файл.
Чтобы использовать этот редактор, просто добавьте что -то похожее на это к вашему желаемому файлу XML:
<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"
/>
В настоящее время не существует обнаружения автомобилей для языка, используемого в документе. Вы должны самостоятельно управлять синтаксисом и при необходимости вызовать метод setSyntaxHighlighter .
Посмотрите на раздел Kodehighlighter об этом.
Посмотрите на раздел Kodehighlighter об этом.
Kodeeditor может быть стилизован несколькими способами:
| Имя | Описание | Тип | По умолчанию |
|---|---|---|---|
| KE_LINENUMBERS_TEXTCOLOR | Определяет цвет текста номеров линий | Цвет | android.R.attr.textColorPrimary |
| ke_lineNumbers_backgroundcolor | Определяет цвет фона представления номеров линий | Цвет | android.R.attr.windowBackground |
| ke_divider_enabled | Указывает, следует ли проводить разделитель между номерами строк и фактическим контентом редактора кода | Логический | true |
| ke_divider_color | Определяет цвет разделителя (не имеет никакого влияния, если ke_divider_enabled установлен на false ) | Цвет | android.R.attr.textColorPrimary |
| ke_editor_backgroundcolor | Указывает цвет фона представления редактора кода | Цвет | android.R.attr.windowBackground |
| ke_editor_maxzoom | Указывает максимальный уровень масштабирования редактора | Плавать | 10 |
| ke_minimap_enabled | Позволяет минимум | Логический | true |
| ke_minimap_maxdimension | Определяет максимальный размер минимума для обеих оси | Измерение | 150dp |
| ke_minimap_bordercolor | Указывает цвет границы минимума | Цвет | Color.BLACK |
| ke_minimap_indicatorcolor | Определяет цвет индикатора минимума | Цвет | Color.RED |
Вы можете либо использовать эти атрибуты непосредственно в представлении в вашем макете, как это:
<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"
[...] />
или укажите их в теме вашего приложения ( styles.xml в приложении Dem), чтобы применить стиль во всем мире:
<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>
Все атрибуты стиля также могут быть указаны с использованием кода. Поскольку KodeEditorLayout - это просто обертка для расширения CodeEditorView с номерами строк и минимумом для использования некоторых из тех методов, необходимых для доступа к соответствующему свойству KodeEditorLayout сначала.
| Имя | Описание | Тип |
|---|---|---|
| текст | Устанавливает заданный текст в редакторе. | Нить |
| setText (@StringRes) | Устанавливает заданный ресурс строки в качестве текста в редакторе. | Инт |
| Languagerulebook | Получает/устанавливает книгу правил активного языка, используемая для выделения. Используйте null , чтобы полностью отключить выделение. | Languagerulebook? |
| редактируемый | Получает/устанавливает, если контент редактора редактируется. | Логический |
| Имя | Описание | Тип |
|---|---|---|
| ShowDivider | Получает/устанавливает, если показан разделитель между номерами строк и редактором кода. | Логический |
| LineNumberGenerator | Устанавливает текст для отображения для номера строки на основе общего количества строк | (Long) -> Список |
| Имя | Описание | Тип |
|---|---|---|
| Showminimap | Получает/наборы, если показан миниап. | Логический |
| Минимальное значение | Получает/устанавливает максимальный размер минимума в пикселях. | Плавать |
| MinimapborderWidth | Получает/устанавливает минимум размер границы в пикселях. | Число |
| Minimapbordercolor | Получает/устанавливает минимальный цвет границы. | @Colorint |
| Минимапиндикаторколор | Получает/устанавливает цвет индикатора минимума. | @Colorint |
| Минимальная гравитация | Получает/устанавливает гравитацию минимума. | Инт |
Чтобы принять эти методы API, используйте свойство codeEditorLayout.codeEditorView .
| Имя | Описание | Тип |
|---|---|---|
| текст | Устанавливает заданный текст в редакторе. | Нить |
| setText (@StringRes) | Устанавливает заданный ресурс строки в качестве текста в редакторе. | Инт |
| getLineCount () | Возвращает текущее количество строк. | Длинный |
| Languagerulebook | Получает/устанавливает книгу правил активного языка, используемая для выделения. Используйте null , чтобы полностью отключить выделение. | Languagerulebook? |
| редактируемый | Получает/устанавливает, если контент редактора редактируется. | Логический |
| вылечение | Верно, когда выбран диапазон. | Логический |
| SelectionStart | Начальный индекс текущего выбора. | Инт |
| SelectionEnd | Конечный индекс текущего выбора. | Инт |
| SelectionChangedListener | Получает/устанавливает слушатель для изменений выбора. | SelectionChangedListener? |
Github предназначен для социального кодирования: если вы хотите написать код, я призываю взносы через запросы на вытягивание из вилок этого репозитория. Создайте билеты GitHub для ошибок и новых функций и прокомментируйте те, которые вас интересуют.
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.