وب‌سرویس مجید

پروژه tree-sitter

tree-sitter/tree-sitter

کاربرد:

این یک سیستم تجزیهٔ افزایشی (incremental parsing) برای ابزارهای برنامه‌نویسیه ️. به این معنی که وقتی کد تغییر می‌کنه، فقط بخش‌های تغییرکرده رو دوباره تجزیه می‌کنه، نه کل فایل. این باعث می‌شه ابزارهای ویرایشگر کد مثل VS Code یا Neovim بسیار سریع‌تر و روان‌تر کار کنن.

در چه شرایطی بهتره استفاده شود؟

وقتی نیاز داری یک ابزار تحلیل کد بنویسی که باید به‌روزرسانی‌های لحظه‌ای داشته باشه، مثل:

- هایلایت کردن سینتکس (syntax highlighting)

- تشخیص خطا در حین تایپ (real-time error detection)

- اتوفرمت کردن کد (auto-formatting)

- جستجوی هوشمند در کد (code navigation)

چند مثال از موارد استفاده

- ویرایشگرهای مدرن مثل Neovim و Helix از tree-sitter برای تجزیهٔ دقیق‌تر کد استفاده می‌کنن.

- ابزارهای تحلیل استاتیک کد مثل GitHub CodeQL می‌تونن از درخت تجزیهٔ tree-sitter استفاده کنن.

- پلاگین‌های زبان‌های جدید برای ویرایشگرها با نوشتن grammar مناسب، به راحتی قابل اضافه کردن هستن.

  • ##tree
  • ##parsing
  • ##incremental
  • ##syntax
  • ##code
  • ##language
  • ##VSCode
  • ##Neovim
  • ##static
  • ##programming