محرر رمز بسيط مع تمييز بناء الجملة وقرص للتكبير

| يتقن |
|---|
إلقاء نظرة على التطبيق التجريبي (وحدة app ) لعينة كاملة.
لاستخدام هذه المكتبة فقط قم بتضمينها في تبعياتك باستخدام
repositories {
...
maven { url "https://jitpack.io" }
}
في ملف Build.gradle في مشروعك و
dependencies {
...
def codeEditorVersion = "v4.0.1"
implementation("com.github.markusressel:KodeEditor:${codeEditorVersion}")
}
في ملف MODULE 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"
/>
لا يوجد حاليًا اكتشاف تلقائي للغة المستخدمة في المستند. يجب عليك إدارة Syntax Highlighter بنفسك والاتصال بالطريقة 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 مع أرقام الأسطر و Minfap لاستخدام بعض تلك الطرق التي تحتاجها للوصول إلى خاصية مطابقة لـ KodeEditorLayout أولاً.
| اسم | وصف | يكتب |
|---|---|---|
| نص | يضبط النص المحدد في المحرر. | خيط |
| setText (stringres) | يعين مورد السلسلة المحدد كنص في المحرر. | int |
| Languagerulebook | GET/يعين كتاب قواعد اللغة النشطة المستخدمة للتمييز. استخدم null لتعطيل تسليط الضوء تماما. | LanguageruleBook؟ |
| قابلة للتحرير | GET/SETS إذا كان محتوى المحرر قابلًا للتحرير. | منطقية |
| اسم | وصف | يكتب |
|---|---|---|
| ShowDivider | GET/SETS إذا تم عرض المقسم بين أرقام الأسطر ومحرر التعليمات البرمجية. | منطقية |
| LinenumberGenerator | يضع نص لإظهار رقم السطر بناءً على إجمالي عدد الخطوط | (طويل) -> قائمة |
| اسم | وصف | يكتب |
|---|---|---|
| Showminimap | GET/SETS إذا تم عرض الحد الأدنى. | منطقية |
| MinimapMaxDimension | يحصل/يحدد الحد الأقصى للبعد من الحد الأدنى في وحدات البكسل. | يطفو |
| MinimapBorderWidth | يحصل/يحدد حجم الحدود الحد الأدنى في بكسل. | رقم |
| MinimapBorderColor | الحصول على/تعيين لون الحدود الأدنى. | colorint |
| MinorApIndicatorColor | الحصول على/تعيين لون مؤشر الحد الأدنى. | colorint |
| الحد الأدنى | الحصول على/تعيين جاذبية تحديد المواقع الحد الأدنى. | int |
إلى Acces طرق API هذه ، استخدم خاصية codeEditorLayout.codeEditorView .
| اسم | وصف | يكتب |
|---|---|---|
| نص | يضبط النص المحدد في المحرر. | خيط |
| setText (stringres) | يعين مورد السلسلة المحدد كنص في المحرر. | int |
| getLinEcount () | إرجاع عدد الخط الحالي. | طويل |
| Languagerulebook | GET/يعين كتاب قواعد اللغة النشطة المستخدمة للتمييز. استخدم null لتعطيل تسليط الضوء تماما. | LanguageruleBook؟ |
| قابلة للتحرير | GET/SETS إذا كان محتوى المحرر قابلًا للتحرير. | منطقية |
| hasselection | صحيح عند تحديد نطاق. | منطقية |
| SelectionStart | فهرس البدء للاختيار الحالي. | int |
| الاختيار | فهرس نهاية الاختيار الحالي. | int |
| SelectionChangedListener | GET/يعين المستمع لتغييرات الاختيار. | 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.