Ctags: إخراج JSON غير متاح في OSX / Debian

تم إنشاؤها على ٢٠ فبراير ٢٠١٩  ·  3تعليقات  ·  مصدر: universal-ctags/ctags

اهلا ياجماعة،

لقد قمت للتو بتثبيت 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.

ال 3 كومينتر

أعتقد أن 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 خارج الصندوق.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

jayceekay picture jayceekay  ·  13تعليقات

liuchengxu picture liuchengxu  ·  8تعليقات

cweagans picture cweagans  ·  8تعليقات

jespinal picture jespinal  ·  8تعليقات

trevordmiller picture trevordmiller  ·  9تعليقات