التنسيق التلقائي للكود في Cursor
تلميح
يوفر Cursor إمكانيات قوية لتنسيق الكود تساعد في الحفاظ على نمط متناسق للكود عبر مشاريعك.
إعداد أدوات التنسيق
أداة التنسيق المدمجة
يأتي Cursor مع أداة تنسيق مدمجة تدعم لغات متعددة. للاستخدام:
- افتح لوحة الأوامر (Ctrl/Cmd + Shift + P)
- اكتب "Format Document"
- اضغط Enter
أدوات التنسيق الشائعة
- Prettier
- ESLint
# تثبيت Prettier
npm install --save-dev prettier
# إنشاء ملف التكوين
echo {} > .prettierrc.json
# تثبيت ESLint
npm install --save-dev eslint
# تهيئة ESLint
npx eslint --init
ملفات التكوين
تكوين 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/Linux | macOS |
---|---|---|
تنسيق المستند | Shift + Alt + F | Shift + Option + F |
تنسيق التحديد | Ctrl + K Ctrl + F | Cmd + 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
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
-
التنسيق لا يعمل
- تحقق من تثبيت أداة التنسيق
- تحقق من ملفات التكوين
- تأكد من أن الملف غير متجاهل
-
تعارضات بين الأدوات
.vscode/settings.json{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.format.enable": false
} -
مشاكل الأداء
{
"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
}
تلميح
تذكر أن تقوم بالالتزام بملفات تكوين التنسيق الخاصة بك لضمان تناسق التنسيق عبر فريقك!