هذا هو مكون إضافي لتحليل رمز C/C ++ لـ VSCode الذي يوضح تقارير الأخطاء التي تم اكتشافها بواسطة محلل Clang Static ومحلولات Clang Tidy ، باستخدام CodeChecker كخلف.

PATH .compile_commands.json .F9 / Shift-F9 بشكل افتراضي) 


يعمل CodeChecker من خلال قراءة قاعدة بيانات تجميع تم إنشاؤها ، وغالبًا ما تسمى compile_commands.json ، وتنفيذ تحليلات محددة بناءً على ذلك.
لدى CMake دعمًا مدمجًا لإنشاء قاعدة بيانات تجميع. قم بتعيين متغير البيئة CMAKE_EXPORT_COMPILE_COMMANDS=ON ، ويجب أن تكون قاعدة بيانات التجميع داخل مجلد الإنشاء الخاص بك. إذا كنت تستخدم ملحق CMake Tools لـ VS ، فيمكنك إضافة هذه العلامة إلى إعدادات الامتداد ضمن Cmake > Build Environment .
ليس لدى أنظمة make وغيرها من أنظمة البناء أي دعم مدمج لإنشاء قاعدة بيانات تجميع ، ولكن يمكن لـ CodeChecker إنشاء واحدة بناءً على أمر الإنشاء. لإنشاء واحدة ، يمكنك استخدام CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json .
لأتمتة العملية ، يوفر الامتداد طرقًا لتشغيل أمر CodeChecker log تلقائيًا. أولاً ، في إعدادات الامتداد ، قم بتعيين CodeChecker > Executor > Log build command ، ثم استخدم إما مهمة VS Code ، أو CodeChecker CodeChecker: Run CodeChecker Log لتنفيذ التحليل. يمكنك أيضًا تشغيل CodeChecker: Preview CodeChecker log in terminal للحصول على مزيد من التحكم في الحبيبات على المعلمات التي تم تمريرها إلى CodeChecker.
يستخدم الامتداد الإصدار 6.18.2 أو أحدث. إذا كان مسار التثبيت مختلفًا ، أو لا يكون CodeChecker في متغير بيئة PATH ، فيمكن تعيين المسار إليه يدويًا ضمن Preferences > Settings > Extensions > CodeChecker > Executable path .
يمكن للامتداد تشغيل تحليل CodeChecker على مشروعك ، إما عند حفظ ملف ، أو عند استخدام أحد الأوامر CodeChecker: Analyze . يمكنك إيقاف التحليل بالنقر فوق الزر " إلغاء" على إشعار CodeChecker - يتم حفظ النتائج الجزئية تلقائيًا.
التحليل قابل للتكوين بالكامل ، ويمكن معاينة سطر أوامر CodeChecker الناتج باستخدام CodeChecker: Show full command line (للوسائط المدعومة ، تشغيل CodeChecker analyze --help ). يمكن تعيين إعدادات مساحة العمل الحالية في علامة التبويب مساحة العمل في الإعدادات. يمكن تكوين التحليل التلقائي على حفظه أيضًا.
يمكن العثور على معلومات مفصلة حول خيارات التكوين ضمن الإعدادات.
يوفر الامتداد الأوامر التالية:
| يأمر | وصف |
|---|---|
CodeChecker: Analyze current file | يحلل ملف المصدر الذي تم فتحه حاليًا باستخدام CodeChecker. يمكن استدعاء أيضًا من خلال النقر على زر Re-analyze current file في اللوحة الجانبية لـ CodeChecker.مفيد عند إيقاف Run On Save على إعدادات المكون الإضافي. |
CodeChecker: Analyze selected files... | يحلل الملفات المحددة من قبل المستخدم ، باستخدام CodeChecker. يقبل ملفات متعددة كمدخلات. |
CodeChecker: Analyze entire project | يحلل المشروع بأكمله باستخدام CodeChecker. يمكن استدعاؤها أيضًا من خلال النقر على زر Re-analyze entire project في اللوحة الجانبية لـ CodeChecker.تحذير: يمكن أن يستغرق التحليل الكامل دقائق ، أو حتى ساعات في المشاريع الكبيرة. |
CodeChecker: Stop running CodeChecker instance | توقف التحليل الجري حاليا. يتم حفظ النتائج الجزئية وتحديثها. |
CodeChecker: Run CodeChecker log | يقوم بتحديث قاعدة بيانات التجميع ، من خلال إنشاء المشروع الحالي. يتوفر أيضًا متغير مع أمر بناء مخصص يحدده المستخدم. |
CodeChecker: Preview CodeChecker log in terminal | يتم لصق أمر سجل codechecker الحالي في نافذة طرفية جديدة ، حيث يمكن تحريره قبل تشغيله. |
CodeChecker: Show database setup dialog | يعرض مربع الحوار لتحديد المسار إلى قاعدة بيانات التجميع الموجودة ، أو لإنشاء عملية جديدة. |
CodeChecker: Next reproduction step ،CodeChecker: Previous reproduction step | يتحرك بين خطوات مسار التكاثر المعروض. يمكنك أيضًا الانتقال مباشرة إلى خطوة التقرير عبر اللوحة الجانبية لـ CodeChecker. المفاتيح الافتراضية: Ctrl-F7 ، Ctrl-Shift-F7 على التوالي. |
CodeChecker: Show full CodeChecker analyze command line | يعرض سطر أوامر CodeChecker الكامل المستخدم لتحليل الملفات. مفيد إذا كنت ترغب في مراجعة خيارات المحلل قبل التشغيل ، أو إذا كنت ترغب في تشغيل التحليل يدويًا. |
CodeChecker: Show Output | يركز إخراج CodeChecker في المحرر. يتم عرض سجلات البرنامج المساعد ، وكذلك إخراج تشغيل CodeChecker السابق هنا. |
CodeChecker: Reload metadata | إعادة تحميل ملف metadata.json الخاص بـ codechecker. يمكن استدعاؤها أيضًا من خلال النقر على زر Reload CodeChecker metadata على اللوحة الجانبية لـ CODECHECKER. |
أوامر التحليل متوفرة أيضًا في شكل المهمة:
| مهمة | أمر مكافئ |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...يتم سرد الملفات المحددة في صفيف selectedFiles ، باستخدام مسارات كاملة. |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
نظرًا لأن المسارات المتعلقة بـ CodeChecker تختلف اختلافًا كبيرًا بين الأنظمة ، يتم توفير الإعدادات التالية ، يمكن الوصول إليها من خلال قائمة الإعدادات:
| اسم | وصف |
|---|---|
| codechecker> الواجهة الخلفية> مجلد الإخراج (افتراضي: ${workspaceFolder}/.codechecker ) | مجلد الإخراج حيث يتم تخزين ملفات تحليل codechecker. |
| codechecker> الخلفية> مسار قاعدة بيانات التجميع (افتراضي: (فارغ) ) | المسار إلى قاعدة بيانات تجميع مخصصة ، في حالة وجود نظام بناء مخصص. يعين مربع حوار إعداد قاعدة البيانات المسار لمساحة العمل الحالية فقط. اترك فارغًا لاستخدام قاعدة البيانات في مجلد إخراج CodeChecker ، أو لاستخدام CodeChecker التلقائي لمساحات العمل متعددة الجذر. |
| CodeChecker> محرر> شدة علة مخصصة (افتراضي: null ) | تحكم في كيفية عرض الخلل في المحرر ، اعتمادًا على شدته. يمكن عرض الأخطاء على أنها "خطأ" أو "تحذير" أو "معلومات" أو "تلميح". بشكل افتراضي ، يتم عرض شدة كل شيء باستثناء "النمط" كخطأ. تم تكوينها كصفيف ، مثل { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| CODECHECKER> محرر> عرض حوار قاعدة البيانات (افتراضي: on ) | يتحكم في مربع الحوار عند فتح مساحة عمل بدون قاعدة بيانات تجميع. |
| CodeChecker> محرر> تمكين CodeLens (افتراضي: on ) | تمكين Codelens لعرض مسار التكاثر في المحرر. |
| CodeChecker> Executor> تمكين الإخطارات (افتراضي: on ) | تمكين إخطارات الخبز المحمص المرتبط بـ CodeChecker. |
| CodeChecker> Executor> مسار قابل للتنفيذ (افتراضي: CodeChecker ) | مسار إلى CodeChecker قابل للتنفيذ. يمكن أن تكون قابلة للتنفيذ في متغير بيئة PATH ، أو مسار مطلق إلى واحد. |
| CodeChecker> Executor> مهلة التحليل (افتراضي: 60 ) | المهلة (بالثواني) لكل تحليل فردي يتم تشغيله بواسطة الأمر CodeChecker Analyse - تم تعيينه على 0 لتعطيل المهلة. |
| CodeChecker> Executor> عدد الخيوط (افتراضي: (فارغ) ) | عدد مؤشرات ترابط CodeChecker - اترك فارغًا لاستخدام جميع مؤشرات الترابط. |
| codechecker> eventor> الحجج (افتراضي: (فارغ) ) | حجج إضافية CodeChecker analyze . على سبيل المثال ، إذا كنت ترغب في استخدام ملف config for codechecker pass '-config <config.json>'. للحجج المدعومة ، قم بتشغيل CodeChecker analyze --help .ملاحظة: يمكن معاينة سطر الأوامر الناتج باستخدام CodeChecker: Show full CodeChecker analyze command line . |
| CODECHECKER> executor> سجل بناء السجل (افتراضي: make ) | يتم استخدام الأمر الافتراضي للبناء عند تشغيل CodeChecker log عبر الأوامر أو المهام. |
| CodeChecker> executor> سجل الوسائط (افتراضي: (فارغ) ) | حجج إضافية CodeChecker log .ملاحظة: يمكن معاينة سطر الأوامر الناتج باستخدام CodeChecker: Preview CodeChecker log in terminal . |
| CodeChecker> executor> تشغيل على حفظ (افتراضي: on ) | يتحكم في إدارة تلقائي لـ CodeChecker على حفظ ملف. |
ملاحظة : إذا كنت قد قمت بالفعل بتثبيت هذا الامتداد من Marketplace ، فقم بإلغاء تثبيته أولاً لمنع النزاعات من خلال الإنشاء الخاص بك.
يستخدم هذا الامتداد node.js (v12+) والغزل (v2+). امتدادات تمديد الكود الموصى بها هي ESLINT و TypeScript+WebPack Matcher
لبناء وتشغيل الامتداد ، قم بما يلي:
yarn install --immutable للتثبيت التبعياتcode . ) لتشغيل الاختبارات ، حدد اختبارات الامتداد كتكوين تصحيح النشط ، أو تشغيل yarn run test .
يتم إصدار التمديد بموجب ترخيص Apache 2.0 ، وهو نفس ترخيص CodeChecker.