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

LITE XL

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

ملخص عام:
LITE-XL محرر مجاني ومفتوح المصدر مكتوب بلغة C و Lua قابل للتوسيع بشكل كبير ، متشعب من محرر النصوص LITE.

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

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

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

مدير الحزم:
المحرر لديه مدير حزم رسمي خاص باسم LPM

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

المستودع الرسمي الرئيسي

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

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

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

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

بعد استخدامه ليوم فقط كان ينقصني الكثير من الميزات للاستمتاع بتجربة تحرير نصوص وكتابة اكواد كاملة… هنا بدأت باستخدام مدير الحزم الخاص بالمحرر لتنزيل إضافات لتوسيع ميزات المحرر على سبيل المثال bracketmatch (يمكنك قرائة الكود الكامل للاضافة عن طريق الرابط)

ثم بدأت باستخدامه بشكل كامل لتطوير مشاريعي المختلفة , لاحظت عدم وجود اي LSP للغة Javascript ما دفعني لبدأ محاولتي في كتابة اضافة للمحرر.

تطوير اضافة:

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

لم يكن لي اي خبرة سابقة في لغة Lua ، اللغة المستخدمة لكتابة كل الاضافات الخاصة بالمحرر ، لجأت لمستودع تم إنشائه بشكل خاص لهذا النوع من الاضافات LSP Servers لإنشاء الاضافة بالاستناد على الإضافات الموجودة في المستودع.

على سبيل المثال هذا هو كود LSP الخاص في لغة Rust

بعد إلقاء نظرة للاضافات الموجودة في المستودع بدأت بكتابة الإضافة… قررت استخدام quick-lint-js

الإضافة quick-lint-js - بديل للاضافة الشهيرة ESLint للغة Javascript يقوم بتحليل وإعطاء ملاحظات بشكل مباشر لتجنب وقوع اخطاء اثناء كتابة الاكواد

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

lsp_quicklintjs.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

{
    "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": {} }
}

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

تثبيت المحرر

قم بتحميل وتثبيت المحرر لانظمة تشغيل ويندوز ولينكس وماك من خلال المستودع الرسمي

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

  • نوع 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

مدير الحزم
بما ان مدير الحزم غير موجود بشكل افتراضي بعد تثبيت المحرر انصح بتثبيته للاستمتاع بتجربة افضل من خلال المستودع الرسمي

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

الخاتمة

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

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

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

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

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

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

الموقع الرسمي
المستودع الرئيسي للمحرر
المستودع الرئيسي لمدير الحزم
المستودع الرئيسي للإضافات
ديسكورد المحرر
ماتريكس المحرر

3 إعجابات

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

إعجاب واحد (1)

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

4 إعجابات