# محرر النصوص Lite-XL

**URL:** <https://discourse.aosus.org/t/topic/3158>\
**Category:** البرامج والتطبيقات\
**Tags:** ويندوز, لينكس, برمجة\
**Created:** [22 مارس 2024، 2:56ص UTC](https://discourse.aosus.org/t/topic/3158 "2024-03-22T02:56:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![KemzoPS](https://discourse.aosus.org/user_avatar/discourse.aosus.org/kemzops/32/6141_2.png) [@KemzoPS](https://discourse.aosus.org/u/KemzoPS)\
**Post date:** [22 مارس 2024، 2:56ص UTC](https://discourse.aosus.org/t/topic/3158/1 "2024-03-22T02:56:34Z")

</div>

# LITE XL

**محرر نصوص خفيف الوزن، بسيط، سريع، مليء بالميزات، ويدعم الإضافات**

 ![lite-xl](https://cdn-cf-discourse.aosus.org/original/2X/7/7a10d403837c58f31fbab18a5bcdb4e68e6377f6.jpeg "lite-xl")

**ملخص عام:**  
[LITE-XL](https://lite-xl.com/ "LITE-XL") محرر مجاني ومفتوح المصدر مكتوب بلغة C و Lua قابل للتوسيع بشكل كبير ، متشعب من محرر النصوص [LITE](https://github.com/rxi/lite "LITE").

يهدف إلى توفير محرر نصوص عملي، جميل، صغير الحجم **(~2MB)**، سريع، وسهل التعديل والتوسيع.

### التخصيص والاضافات

ربما أحد أهم الأسباب التي دفعتني لكتابة هذا المنشور هي لتسليط الضوء على قابلية تخصيص هذا المحرر وإمكانية إضافة الميزات إليه، بهدف دفع الناس لتجربته وعدم تفويت الفرصة في استغلال ميزاته لتحقيق تجربة كتابة نصوص أفضل وأكثر تنوعًا.

**مدير الحزم:**  
المحرر لديه مدير حزم رسمي خاص باسم [LPM](https://github.com/lite-xl/lite-xl-plugin-manager/ "LPM")

**مستودع الحزم:**  
مدير الحزم بشكل افتراضي يستخدم المستودع الرسمي الرئيسي للمحر لتحميل الاضافات والحزم منه، لكنه ليس الوحيد ولا يقتصر عليه، يمكنك إنشاء مستودع خاص بك لإضافات المحرر.

[المستودع الرسمي الرئيسي](https://github.com/lite-xl/lite-xl-plugin-manager/ "المستودع الرسمي الرئيسي")

**سأترك الباقي عليك لإستكشاف المحرر وميزاته**

### تجربتي الشخصية

وجدت المحرر لأول مرة بالصدفة عندما كنت أبحث عن محرر نصوص بسيط وخفيف كبديل لـ VSCode  
وجدت العديد من المحررات المعقدة والبسيطة ولكن لم استطع ايجاد محرر يجمع بين البساطة والسرعة وبين التخصيص والميزات المعقدة.

وهنا يأتي Lite-XL ليملئ الفراغ…

بعد استخدامه ليوم فقط كان ينقصني الكثير من الميزات للاستمتاع بتجربة تحرير نصوص وكتابة اكواد كاملة… هنا بدأت باستخدام مدير الحزم الخاص بالمحرر لتنزيل إضافات لتوسيع ميزات المحرر على سبيل المثال [bracketmatch](https://github.com/lite-xl/lite-xl-plugins/blob/master/plugins/bracketmatch.lua?raw=1 "bracketmatch") (يمكنك قرائة الكود الكامل للاضافة عن طريق الرابط)

ثم بدأت باستخدامه بشكل كامل لتطوير مشاريعي المختلفة , لاحظت عدم وجود اي [LSP](https://en.wikipedia.org/wiki/Language_Server_Protocol "LSP") للغة Javascript ما دفعني لبدأ محاولتي في كتابة اضافة للمحرر.

**تطوير اضافة:**

ملاحظة: المحرر جديد نسبياً، حيث لم يمر وقت طويل على إطلاقه لذلك ينقصه الكثير من الوثائق لتسهيل عملية تعلم كتابة اضافات له ، ولكن لحسن الحظ المستودع الرئيسي يحوي العديد من الاضافات التي يمكن التعلم منها ، وجار الان كتابة وثائق سيتم نشرها قريبا.

لم يكن لي اي خبرة سابقة في لغة Lua ، اللغة المستخدمة لكتابة كل الاضافات الخاصة بالمحرر ، لجأت لمستودع تم إنشائه بشكل خاص لهذا النوع من الاضافات [LSP Servers](https://github.com/lite-xl/lite-xl-lsp-servers "LSP Servers") لإنشاء الاضافة بالاستناد على الإضافات الموجودة في المستودع.

على سبيل المثال هذا هو كود [LSP](https://github.com/lite-xl/lite-xl-lsp-servers/raw/master/plugins/lsp_rust.lua "LSP") الخاص في لغة Rust

بعد إلقاء نظرة للاضافات الموجودة في المستودع بدأت بكتابة الإضافة… قررت استخدام [quick-lint-js](https://quick-lint-js.com/ "quick-lint-js")

الإضافة [quick-lint-js](https://quick-lint-js.com/ "quick-lint-js") - بديل للاضافة الشهيرة ESLint للغة Javascript يقوم بتحليل وإعطاء ملاحظات بشكل مباشر لتجنب وقوع اخطاء اثناء كتابة الاكواد

ملاحظة: هناك فرق بين Linter و LSP ولكن quicklintjs يمكنه العمل باستخدام بروتوكول LSP.

[lsp\_quicklintjs.lua](https://github.com/lite-xl/lite-xl-lsp-servers/blob/master/plugins/lsp_quicklintjs.lua "lsp\_quicklintjs.lua")

```lua
-- mod-version:3

local lsp = require "plugins.lsp"
local common = require "core.common"
local config = require "core.config"

local installed_path = USERDIR .. PATHSEP .. "plugins" .. PATHSEP .. "lsp_quicklintjs" .. PATHSEP .. "quick-lint-js" .. PATHSEP .. "bin"

local filename
if PLATFORM == "Windows" then
  filename = "quick-lint-js.exe"
else
  filename = "quick-lint-js"
end

lsp.add_server(common.merge({
  name = "quicklintjs",
  language = "javascript",
  file_patterns = { "%.js$", "%.mjs$", "%.cjs$" },
  command = { installed_path .. PATHSEP .. filename, "--lsp-server" },
  id_not_extension = true,
  verbose = false
}, config.plugins.lsp_quicklintjs or {}))

```

ثم اضافة المتطلبات في ملف بيانات المستودع

[manifest.json](https://github.com/lite-xl/lite-xl-lsp-servers/blob/master/manifest.json "manifest.json")

```json
{
    "id": "lsp_quicklintjs",
    "description": "LSP support for Javascript via quick-lint-js (Linting only).",
    "path": "plugins/lsp_quicklintjs.lua",
    "version": "3.2.0",
    "files": [
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/linux.tar.gz",
        "arch": "x86_64-linux",
        "checksum": "449c05de1bbe5026adfabf82ac2a7f9d382e67f44a63624905fa9ae4ee2b48ae"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/linux-aarch64.tar.gz",
        "arch": "aarch64-linux",
        "checksum": "d20b70570c45bdfa5ac703491a56e64a483cff871c539adf6eb58a3fe66473c1"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/macos-aarch64.tar.gz",
        "arch": "aarch64-darwin",
        "checksum": "bad43995ce49e997bed7e9c5e8196731f247c02db5672839d461bdd40f48bfdc"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/macos.tar.gz",
        "arch": "x86_64-darwin",
        "checksum": "32b5403531da8a4a50d06f6039ebe712d558a23424e0ac5a88d0241c81c1737f"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/windows.zip",
        "arch": "x86_64-windows",
        "checksum": "aaf429fb9de9135b7f5f78e113fca6c6806617ec0015e107c97cfc1e062e7e87"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/windows-x86.zip",
        "arch": "x86-windows",
        "checksum": "d98c251cc880ab208880c2cb1b45caa386999724ff1884e149d17fde6f3e4d2d"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/windows-arm64.zip",
        "arch": "arm64-windows",
        "checksum": "a31a10e6c983337a314d5ba8705a19d8cb5d206a061bc23d26e72713e8cf3474"
      },
      {
        "url": "https://c.quick-lint-js.com/releases/3.2.0/manual/windows-arm.zip",
        "arch": "arm-windows",
        "checksum": "b01c3155a9391cad31bff6960d783e964cface53ac390651d03b5939d4ffd555"
      }
    ],
    "dependencies": { "language_js": {}, "lsp": {} }
}

```

**تم دمج الإضافة في المستودع الرئيسي , يمكنك تجربتها.**

### تثبيت المحرر

قم بتحميل وتثبيت المحرر لانظمة تشغيل ويندوز ولينكس وماك من خلال [المستودع الرسمي](https://github.com/lite-xl/lite-xl/releases/latest "المستودع الرسمي")

هناك نوعان من حزم التثبيت

- نوع addons - حزمة تحوي عدد من الاضافات بشكل افتراضي مثل settings gui  
– مثل `lite-xl-v2.1.3-addons-linux-x86_64-portable.tar.gz`
- نوع default (minimal) - حزمة تحوي اقل عدد ممكن من الاضافات بشكل افتراضي  
– مثل `lite-xl-v2.1.3-linux-x86_64-portable.tar.gz`

**مدير الحزم**  
بما ان مدير الحزم غير موجود بشكل افتراضي بعد تثبيت المحرر انصح بتثبيته للاستمتاع بتجربة افضل من خلال [المستودع الرسمي](https://github.com/lite-xl/lite-xl-plugin-manager/releases/latest "المستودع الرسمي")

بعد تثبيته قم بتثبيت اضافة plugin\_manager لتصفح مستودع الاضافات الرسمي من خلال المحرر بشكل مباشر.

### الخاتمة

في هذا المنشور أردت **فقط** تسليط الضوء على بعض النقاط المهمة بالنسبة لي, ولم يكن الهدف اظهار وشرح كل شيء… قم بتثبيت المحرر وتجربته بنفسك.

**ملاحظة: قمت بكتابة المنشور بشكل سريع وغير منظم , اتمنى عدم التعليق على طريقة الكتابة او الترتيب , هدفي فقط نشر وتعريف المحرر للآخرين.**

**نواحي لم اذكرها:**

- تثبيت المحرر ومدير الحزم بشكل مفصل
- هيكل الملفات الخاصة في المحرر ومواقعها
- دعم اللغة العربية في المحرر
- كيفية بناء اضافات بشكل مفصل
- الاضافات الاخرى التي قمت بتطويرها
- قائمة الاضافات المفيدة والمهمة

اذا وجدت وقت كافي سأقوم بكتابة منشور آخر لتوضيح وشرح بعض النواحي التي لم اذكرها

### ملخص الروابط والمراجع المهمة

[الموقع الرسمي](https://lite-xl.com/ "الموقع الرسمي")  
[المستودع الرئيسي للمحرر](https://github.com/lite-xl/lite-xl "المستودع الرئيسي للمحرر")  
[المستودع الرئيسي لمدير الحزم](https://github.com/lite-xl/lite-xl-plugin-manager "المستودع الرئيسي لمدير الحزم")  
[المستودع الرئيسي للإضافات](https://github.com/lite-xl/lite-xl-plugins/ "المستودع الرئيسي للإضافات")  
[ديسكورد المحرر](https://discord.gg/UQKnzBhY5H "ديسكورد الدعم الفني")  
[ماتريكس المحرر](https://matrix.to/#/#lite-xl:matrix.org "ماتريكس")

---

<div class="post-metadata">

**Author:** ![KemzoPS](https://discourse.aosus.org/user_avatar/discourse.aosus.org/kemzops/32/6141_2.png) [@KemzoPS](https://discourse.aosus.org/u/KemzoPS)\
**Post date:** [22 مارس 2024، 3:43ص UTC](https://discourse.aosus.org/t/topic/3158/2 "2024-03-22T03:43:23Z")

</div>

من فترة طويلة ما كتبت , اتمنى انه مقبول , واهم اشي الإفادة… 🙂 😂

---

<div class="post-metadata">

**Author:** ![fear](https://discourse.aosus.org/user_avatar/discourse.aosus.org/fear/32/6108_2.png) [@fear](https://discourse.aosus.org/u/fear)\
**Post date:** [22 مارس 2024، 8:15ص UTC](https://discourse.aosus.org/t/topic/3158/3 "2024-03-22T08:15:04Z")

</div>

> <https://github.com/lite-xl/lite-xl/issues/341>
>
> the arabic characters don't work on the editor
> !\[Capture111\](https://user-image…s.githubusercontent.com/74876263/126502622-9da2f86d-ee08-45a4-9788-04ada0593d09.PNG)
> 
> I fix this issue by installing other font But there is still another problem, which is that the letters are not connected and are written in reverse 
> this is screnshot from the editor 
> !\[Capture222\](https://user-images.githubusercontent.com/74876263/126503901-dc78b831-f5c5-4fc3-80ad-d818e1f09488.PNG)
> the letters should display like this "مرحبا بالعالم " but in the editor it is "م ل ا ع ل ا ب ا ب ح ر م" this is the same text and it's transleted to "Hello World"

---

<div class="post-metadata">

**Author:** ![KemzoPS](https://discourse.aosus.org/user_avatar/discourse.aosus.org/kemzops/32/6141_2.png) [@KemzoPS](https://discourse.aosus.org/u/KemzoPS)\
**Post date:** [22 مارس 2024، 4:57م UTC](https://discourse.aosus.org/t/topic/3158/4 "2024-03-22T16:57:02Z")

</div>

تواصلت وساهمت مع المطورين بشكل مباشر لتحسين الدعم , بإذن الله في الاصدارات القادمة سيتم حل اغلب المشكلات…

 ![image](https://cdn-cf-discourse.aosus.org/original/2X/6/604f44834046edf515576034835cdaec2a4da407.png)
