Un éditeur de code simple avec la syntaxe qui met en évidence et pincez-vous pour zoomer

| Maître |
|---|
Jetez un œil à l'application Demo (module app ) pour un échantillon complet.
Pour utiliser cette bibliothèque, incluez-le simplement dans vos dépendances en utilisant
repositories {
...
maven { url "https://jitpack.io" }
}
dans votre projet Build.gradle Fichier et
dependencies {
...
def codeEditorVersion = "v4.0.1"
implementation("com.github.markusressel:KodeEditor:${codeEditorVersion}")
}
Dans le fichier build.gradle de votre module souhaité.
Pour utiliser cet éditeur, ajoutez simplement quelque chose de similaire à cela au fichier XML de mise en page souhaité:
<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"
/>
Actuellement, il n'y a pas de détection automatique pour la langue utilisée dans un document. Vous devez gérer vous-même le surligneur de syntaxe et appeler la méthode setSyntaxHighlighter , le cas échéant.
Jetez un œil à la section Kodehighlighter à ce sujet.
Jetez un œil à la section Kodehighlighter à ce sujet.
Kodeeditor peut être stylé de plusieurs manières:
| Nom | Description | Taper | Défaut |
|---|---|---|---|
| ke_linenumbers_textcolor | Spécifie la couleur du texte des numéros de ligne | Couleur | android.R.attr.textColorPrimary |
| ke_linenumbers_backgroundcolor | Spécifie la couleur d'arrière-plan de la vue de numéros de ligne | Couleur | android.R.attr.windowBackground |
| ke_divider_enabled | Spécifie si un diviseur doit être établi entre les numéros de ligne et le contenu de l'éditeur de code réel | Booléen | true |
| ke_divider_color | Spécifie la couleur du diviseur (n'a aucun effet si ke_divider_enabled est défini sur false ) | Couleur | android.R.attr.textColorPrimary |
| ke_editor_backgroundcolor | Spécifie la couleur d'arrière-plan de la vue de l'éditeur de code | Couleur | android.R.attr.windowBackground |
| ke_editor_maxzoom | Spécifie le niveau de zoom maximum de l'éditeur | Flotter | 10 |
| ke_minimap_enabled | Permet le minimap | Booléen | true |
| ke_minimap_maxdimension | Spécifie la dimension maximale du minimap pour les deux axes | Dimension | 150dp |
| ke_minimap_bordercolor | Spécifie la couleur de la bordure du minimap | Couleur | Color.BLACK |
| ke_minimap_indicatorcolor | Spécifie la couleur de l'indicateur Minimap | Couleur | Color.RED |
Vous pouvez soit utiliser ces attributs directement sur la vue dans votre mise en page comme ceci:
<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"
[...] />
ou spécifiez-les dans le thème de votre application ( styles.xml dans l'application DEM) pour appliquer un style à l'échelle mondiale:
<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>
Tous les attributs de style peuvent également être spécifiés à l'aide du code. Étant donné que KodeEditorLayout est juste un wrapper pour étendre le CodeEditorView avec les numéros de ligne et le minimap pour utiliser certaines de ces méthodes dont vous avez besoin pour accéder d'abord à la propriété correspondante du KodeEditorLayout .
| Nom | Description | Taper |
|---|---|---|
| texte | Définit le texte donné dans l'éditeur. | Chaîne |
| setText (@Stringres) | Définit la ressource de chaîne donnée comme le texte de l'éditeur. | Int |
| Languagerulebook | Obtient / définit le livre de règles de langue actif utilisé pour la mise en évidence. Utilisez null pour désactiver complètement la mise en évidence. | Languagerulebook? |
| modifiable | Obtient / set si le contenu de l'éditeur est modifiable. | Booléen |
| Nom | Description | Taper |
|---|---|---|
| showdivider | Obtient / set si le diviseur entre les numéros de ligne et l'éditeur de code est affiché. | Booléen |
| linenunergenerator | Définit le texte pour afficher le numéro de ligne en fonction du nombre total de lignes | (Long) -> Liste |
| Nom | Description | Taper |
|---|---|---|
| showminmimap | Obtient / set si le minimap est affiché. | Booléen |
| minimapmaxdimension | Obtient / définit la dimension maximale de la minimap en pixels. | Flotter |
| minimapborderwidth | Obtient / définit la taille de la bordure minimap en pixels. | Nombre |
| minimapbordercolor | Obtient / définit la couleur de la bordure minimap. | @Colorint |
| minimapindicatorcolor | Obtient / définit la couleur de l'indicateur minimap. | @Colorint |
| minimapgravité | Obtient / définit la gravité de positionnement minimap. | Int |
Pour accéder à ces méthodes API, utilisez la propriété codeEditorLayout.codeEditorView .
| Nom | Description | Taper |
|---|---|---|
| texte | Définit le texte donné dans l'éditeur. | Chaîne |
| setText (@Stringres) | Définit la ressource de chaîne donnée comme le texte de l'éditeur. | Int |
| getlineCount () | Renvoie le nombre de lignes actuel. | Long |
| Languagerulebook | Obtient / définit le livre de règles de langue actif utilisé pour la mise en évidence. Utilisez null pour désactiver complètement la mise en évidence. | Languagerulebook? |
| modifiable | Obtient / set si le contenu de l'éditeur est modifiable. | Booléen |
| hasselection | Vrai lorsqu'une plage est sélectionnée. | Booléen |
| SELECTIONSTART | L'indice de début de la sélection actuelle. | Int |
| SelectionEnd | L'indice final de la sélection actuelle. | Int |
| SELECTIONCHANGEDListener | Obtient / définit l'auditeur pour les modifications de sélection. | SELECTIONCHANGEDListener? |
GitHub est pour le codage social: si vous voulez écrire du code, j'encourage les contributions à travers les demandes de traction de Forks de ce référentiel. Créez des billets GitHub pour les bogues et les nouvelles fonctionnalités et commentez ceux qui vous intéressent.
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.