| ctags-json-output(5) | Universal Ctags | ctags-json-output(5) |
نام (NAME)
ctags-json-output - خروجی ctags بر پایه قالب JSON
خلاصه دستور (SYNOPSIS)
ctags --output-format=json ...
توضیحات (DESCRIPTION)
ابزار Universal Ctags از قالب خروجی JSON https://www.json.org (به طور دقیقتر JSON Lines https://jsonlines.org) در صورتی که فایل اجرایی ctags با libjansson کامپایل شده باشد پشتیبانی میکند. خروجی JSON به طور پیشفرض به خروجی استاندارد ارسال میشود.
قالب (FORMAT)
هر سطر JSON نمایانگر یک برچسب (tag) است.
$ ctags --extras=+p --output-format=json --fields=-s input.py
{"_type": "ptag", "name": "JSON_OUTPUT_VERSION", "path": "1.0", "pattern": "in development"}
{"_type": "ptag", "name": "TAG_FILE_SORTED", "path": "1", "pattern": "0=unsorted, 1=sorted, 2=foldcase"}
...
{"_type": "tag", "name": "Klass", "path": "/tmp/input.py", "pattern": "/^class Klass:$/", "language": "Python", "kind": "class"}
{"_type": "tag", "name": "method", "path": "/tmp/input.py", "pattern": "/^ def method(self):$/", "language": "Python", "kind": "member", "scope": "Klass", "scopeKind": "class"}
...
کلیدی که با _ شروع نمیشود به یک فیلد از ctags نگاشت میشود. گزینههای "--output-format=json --list-fields" فهرست این فیلدها را نمایش میدهند.
کلیدی که با _ آغاز میشود نشاندهنده فراداده (متادیتا) مربوط به آن سطر JSON است. در حال حاضر فقط کلید _type استفاده میشود. اگر مقدار این کلید tag باشد، سطر JSON نشاندهنده یک برچسب معمولی است. اگر مقدار آن ptag باشد، سطر نشاندهنده یک شبهبرچسب (pseudo-tag) است.
قالب خروجی ممکن است در آینده تغییر کند. شبهبرچسب JSON_OUTPUT_VERSION به ابزارهای کلاینت این امکان را میدهد تا تغییرات را مدیریت کنند. نسخه فعلی "1.0" است. یک ابزار کلاینت میتواند با استفاده از کلید path، شماره نسخه را از شبهبرچسب استخراج کند.
قالب خروجی JSON به تازگی طراحی شده و محدودیتهای موجود در قالب فایل پیشفرض برچسبها را ندارد.
- مقادیر کلید kind در قالب فلگهای نام طولانی ارائه میشوند و هیچ مقدار تکحرفی در اینجا وجود ندارد.
- نامهای محدوده (Scope) و انواع محدوده دارای کلیدهای متمایز هستند: scope و scopeKind. این مقادیر در قالب پیشفرض فایل tags با یکدیگر ترکیب شده بودند.
نوع داده مورد استفاده در فیلد (DATA TYPE USED IN A FIELD)
مقادیر بیشتر کلیدها در قالب نوع رشتهای (string) در JSON نمایش داده میشوند. با این حال، برخی از آنها در قالب نوعهای رشتهای، عددی صحیح (integer) یا بولی (boolean) هستند.
گزینههای "--output-format=json --list-fields" نشان میدهند که چه نوع دادهای در فیلدهای JSON به کار رفته است.
$ ctags --output-format=json --list-fields #LETTER NAME ENABLED LANGUAGE JSTYPE FIXED DESCRIPTION F input yes NONE s-- no input file ... P pattern yes NONE s-b no pattern ... f file yes NONE --b no File-restricted scoping ... e end no NONE -i- no end lines of various items ...
ستون JSTYPE نوع دادهها را نشان میدهد.
- 's'
- رشته (string)
- 'i'
- عدد صحیح (integer)
- 'b'
- بولی (boolean - مقدار true یا false)
به عنوان مثال، مقدار فیلد pattern در ctags یک مقدار رشتهای یا بولی میگیرد.
نسخهها (VERSIONS)
تغییرات از زمان "0.0" (Changes since 0.0)
- •
- کلید جدید
kindName برای
شبهبرچسب
TAG_ROLE_DESCRIPTION
کلید kindName برای ذخیره نام نوع در شبهبرچسبهای TAG_ROLE_DESCRIPTION اضافه شده است.
در نسخه 0.0، یک شبهبرچسب "TAG_ROLE_DESCRIPTION" به این شکل چاپ میشد:
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION",
"parserName": "LANG!KIND", }
در نسخه 1.0، به این شکل چاپ میشود:
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION",
"parserName": "LANG",
"kindName": "KIND", }
همچنین ببینید (SEE ALSO)
ctags(1), tags(5), ctags-client-tools(7)
| 1.0 |