اهلا ياجماعة،
لقد قمت للتو بتثبيت Universal ctags باستخدام البيرة المنزلية على OSX ، وعندما كنت أتلقى خطأ في ملف
--output-format=json
option ، لذلك قررت بنائه من مصادر على Debian بعد استنساخ الفرع الرئيسي الحالي. لكني أحصل على نفس الخطأ:
ctags: unknown output format name supplied for "output-format=json"
عند استخدام الأمر
ctags --output-format=json myfile.c
يبدو أن كل شيء آخر يعمل بشكل مثالي ، فهل تنسيق الإخراج JSON غير مدعوم بعد الآن؟
هل لديك رفاق لطيف!
أعتقد أن libjansson.so ، مكتبة الخلفية لـ --output-format=json
، لم تكن متوفرة على جهاز الكمبيوتر الخاص بك أو لم يتم ربطها بشكل صحيح بعلامات ctags القابلة للتنفيذ.
إذا كان الخيار متاحًا ، فيمكنك التحقق منه باستخدام الخيار الآخر:
[yamato@slave]$ u-ctags --help | grep -e --output-format
--output-format=u-ctags|e-ctags|etags|xref|json
تم تضمين "json" في رسالة المساعدة - من --output-format
.
[yamato@slave]$ u-ctags --list-features
#NAME DESCRIPTION
aspell linked with code for spell checking (internal use)
debug TO BE WRITTEN
iconv can convert input/output encodings
interactive accepts source code from stdin
json supports json format output
option-directory TO BE WRITTEN
regex can use regular expression based pattern matching
sandbox linked with code for system call level sandbox
wildcards can use glob matching
xpath linked with library for parsing xml input
yaml linked with library for parsing yaml input
يتم تضمين "json" في ناتج الخيار --list-features
.
لاستخدام هذه الميزة ، يجب عليك تثبيت libjansson.so أولاً.
يجب إعادة تشغيل إجراءات البناء من "./configure ...".
إذا تعرفت أداة يتم تشغيلها في عملية الإنشاء على تثبيت libjansson. بشكل صحيح ، فسترى الرسالة التالية:
[yamato@slave]~/var/ctags-github% ./configure
...
checking for JANSSON... yes
...
لا أعرف جيدًا Debian (أنا أستخدم Fedora يوميًا) ، ومع ذلك ، يمكنك تثبيت libjansson كحزمة.
أعتقد أن هناك حاجة أيضًا إلى حزمة libjansson-devel أو libjansson-dev.
يبدو أن حزمة دبيان u-ctags متوفرة أيضًا.
https://github.com/universal-ctags/ctags/issues/1785
إذا لم يعمل --output-format=json
من الملف القابل للتنفيذ في الحزمة الثنائية ، فأعلمني بذلك.
سأحاول إصلاحه باستخدامhnakamur.
masatake شكرا لدعمكم!
كان libjansson مفقودًا بالفعل ، لذا فإليك ما فعلته:
على Debian ، قمت بتثبيت الحزمة libjansson-dev
، ثم أعدت بنائها من المصادر باستخدام automake:
[user<strong i="11">@vps</strong>:~/ctags] ~$ sudo apt-get install libjansson-dev && ./autogen.sh && ./configure && make && sudo make install
وعملت بشكل صحيح.
في OSX ، كان علي استخدام الخيار --with-jansson
النحو التالي:
[user<strong i="18">@macosx</strong>:~/ctags] ~$ brew install jansson
[user<strong i="19">@macosx</strong>:~/ctags] ~$ brew install --with-jansson --HEAD universal-ctags/universal-ctags/universal-ctags
يظهر الآن كلا الثنائيين:
[user<strong i="23">@vps</strong>:~/ctags] ~$ ./ctags --list-features
#NAME DESCRIPTION
[...]
json supports json format output
[...]
شكرا جزيلا على مساعدتك يا صديقي!
fabiensabatie FYI ، لقد أرسلت طلبات الدمج التالية إلى دبيان وتم دمجها مع بعض التعديلات.
إليك أحدث Build-Depends
https://salsa.debian.org/debian/universal-ctags/blob/cedf9a1c5106d371398b35031409ae09caecf3e6/debian/control#L5 -13
لذلك أعتقد أن Universal-ctags في الإصدار التالي من دبيان ستحظى بدعم json خارج الصندوق.
التعليق الأكثر فائدة
أعتقد أن libjansson.so ، مكتبة الخلفية لـ
--output-format=json
، لم تكن متوفرة على جهاز الكمبيوتر الخاص بك أو لم يتم ربطها بشكل صحيح بعلامات ctags القابلة للتنفيذ.إذا كان الخيار متاحًا ، فيمكنك التحقق منه باستخدام الخيار الآخر:
تم تضمين "json" في رسالة المساعدة - من
--output-format
.يتم تضمين "json" في ناتج الخيار
--list-features
.لاستخدام هذه الميزة ، يجب عليك تثبيت libjansson.so أولاً.
يجب إعادة تشغيل إجراءات البناء من "./configure ...".
إذا تعرفت أداة يتم تشغيلها في عملية الإنشاء على تثبيت libjansson. بشكل صحيح ، فسترى الرسالة التالية:
لا أعرف جيدًا Debian (أنا أستخدم Fedora يوميًا) ، ومع ذلك ، يمكنك تثبيت libjansson كحزمة.
أعتقد أن هناك حاجة أيضًا إلى حزمة libjansson-devel أو libjansson-dev.
يبدو أن حزمة دبيان u-ctags متوفرة أيضًا.
https://github.com/universal-ctags/ctags/issues/1785
إذا لم يعمل
--output-format=json
من الملف القابل للتنفيذ في الحزمة الثنائية ، فأعلمني بذلك.سأحاول إصلاحه باستخدامhnakamur.