انتقل إلى المحتوى الرئيسي

التنسيق التلقائي للكود في Cursor

تلميح

يوفر Cursor إمكانيات قوية لتنسيق الكود تساعد في الحفاظ على نمط متناسق للكود عبر مشاريعك.

إعداد أدوات التنسيق​

أداة التنسيق المدمجة​

يأتي Cursor مع أداة تنسيق مدمجة تدعم لغات متعددة. للاستخدام:

  1. افتح لوحة الأوامر (Ctrl/Cmd + Shift + P)
  2. اكتب "Format Document"
  3. اضغط Enter

أدوات التنسيق الشائعة​

# تثبيت Prettier
npm install --save-dev prettier

# إنشاء ملف التكوين
echo {} > .prettierrc.json

ملفات التكوين​

تكوين Prettier​

.prettierrc.json
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"arrowParens": "avoid"
}

تكوين ESLint​

.eslintrc.json
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"prettier"
],
"rules": {
"indent": ["error", 2],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "single"],
"semi": ["error", "always"]
}
}

التنسيق عند الحفظ​

تفعيل التنسيق التلقائي​

.vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

إعدادات خاصة باللغة​

{
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.python"
},
"[java]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "redhat.java"
}
}

اختصارات لوحة المفاتيح​

اختصارات التنسيق الافتراضية:

العمليةWindows/LinuxmacOS
تنسيق المستندShift + Alt + FShift + Option + F
تنسيق التحديدCtrl + K Ctrl + FCmd + K Cmd + F

التكوين المتقدم​

تجاهل الملفات​

.prettierignore
# مخرجات البناء
dist/
build/

# التبعيات
node_modules/

# الملفات المولدة
*.generated.*

تكامل ESLint​

.eslintrc.json
{
"extends": [
"eslint:recommended",
"plugin:prettier/recommended"
],
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error"
}
}

قواعد التنسيق المخصصة​

فرض نمط الكود​

.prettierrc.json
{
"overrides": [
{
"files": "*.component.ts",
"options": {
"printWidth": 120,
"singleQuote": true
}
},
{
"files": "*.spec.ts",
"options": {
"printWidth": 80,
"semi": true
}
}
]
}

قواعد خاصة بالمشروع​

.editorconfig
root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 2

[*.{js,ts}]
quote_type = single

[*.py]
indent_size = 4

استكشاف الأخطاء وإصلاحها​

المشاكل الشائعة​

  1. التنسيق لا يعمل

    • تحقق من تثبيت أداة التنسيق
    • تحقق من ملفات التكوين
    • تأكد من أن الملف غير متجاهل
  2. تعارضات بين الأدوات

    .vscode/settings.json
    {
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
    },
    "eslint.format.enable": false
    }
  3. مشاكل الأداء

    {
    "editor.formatOnSaveTimeout": 5000,
    "editor.formatOnPaste": false
    }

أفضل الممارسات​

1. التحكم في الإصدار​

.gitignore
# لا تتجاهل ملفات تكوين التنسيق
!.prettierrc
!.eslintrc
!.editorconfig

# تجاهل ملفات الذاكرة المؤقتة
.prettier-cache
.eslintcache

2. تناسق الفريق​

إنشاء تكوين مشترك:

.vscode/extensions.json
{
"recommendations": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint"
]
}

3. خطافات ما قبل الالتزام​

package.json
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,ts,tsx}": [
"prettier --write",
"eslint --fix"
]
}
}

تكامل IDE​

اختصارات مخصصة​

keybindings.json
[
{
"key": "ctrl+shift+i",
"command": "editor.action.formatDocument",
"when": "editorHasDocumentFormattingProvider"
}
]

إعدادات مساحة العمل​

.vscode/settings.json
{
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true
}
تلميح

تذكر أن تقوم بالالتزام بملفات تكوين التنسيق الخاصة بك لضمان تناسق التنسيق عبر فريقك!

الموارد ذات الصلة​