Skip to content

Commit

Permalink
main: enable TAG_{KIND,EXTRA,FIELD,ROLE}_DESCRIPTION pseudo tags
Browse files Browse the repository at this point in the history
Close universal-ctags#3552

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
  • Loading branch information
masatake committed Nov 30, 2022
1 parent 4099472 commit 0aba7a7
Show file tree
Hide file tree
Showing 7 changed files with 135 additions and 9 deletions.
36 changes: 36 additions & 0 deletions Tmain/extras-field-for-pseudo-tags.d/stdout-expected.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,58 @@
# option: --format=1
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/
!_TAG_FIELD_DESCRIPTION extras /Extra tag type information/
!_TAG_FIELD_DESCRIPTION input /input file/
!_TAG_FIELD_DESCRIPTION name /tag name/
!_TAG_FIELD_DESCRIPTION pattern /pattern/
!_TAG_FILE_FORMAT 1 /original ctags format/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_KIND_DESCRIPTION!C d,macro /macro definitions/
!_TAG_KIND_DESCRIPTION!C e,enumerator /enumerators (values inside an enumeration)/
!_TAG_KIND_DESCRIPTION!C f,function /function definitions/
!_TAG_KIND_DESCRIPTION!C g,enum /enumeration names/
!_TAG_KIND_DESCRIPTION!C h,header /included header files/
!_TAG_KIND_DESCRIPTION!C m,member /struct, and union members/
!_TAG_KIND_DESCRIPTION!C s,struct /structure names/
!_TAG_KIND_DESCRIPTION!C t,typedef /typedefs/
!_TAG_KIND_DESCRIPTION!C u,union /union names/
!_TAG_KIND_DESCRIPTION!C v,variable /variable definitions/
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_ROLE_DESCRIPTION!C!header local /local header/
!_TAG_ROLE_DESCRIPTION!C!header system /system header/
!_TAG_ROLE_DESCRIPTION!C!macro undef /undefined/
main input.c /^int main (void) { return 0; }$/
# option: --format=2
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/;" extras:pseudo
!_TAG_FIELD_DESCRIPTION extras /Extra tag type information/;" extras:pseudo
!_TAG_FIELD_DESCRIPTION input /input file/;" extras:pseudo
!_TAG_FIELD_DESCRIPTION name /tag name/;" extras:pseudo
!_TAG_FIELD_DESCRIPTION pattern /pattern/;" extras:pseudo
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/;" extras:pseudo
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C d,macro /macro definitions/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C e,enumerator /enumerators (values inside an enumeration)/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C f,function /function definitions/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C g,enum /enumeration names/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C h,header /included header files/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C m,member /struct, and union members/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C s,struct /structure names/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C t,typedef /typedefs/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C u,union /union names/;" extras:pseudo
!_TAG_KIND_DESCRIPTION!C v,variable /variable definitions/;" extras:pseudo
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/;" extras:pseudo
!_TAG_OUTPUT_FILESEP slash /slash or backslash/;" extras:pseudo
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/;" extras:pseudo
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/;" extras:pseudo
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //;" extras:pseudo
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/;" extras:pseudo
!_TAG_PROGRAM_URL https://ctags.io/ /official site/;" extras:pseudo
!_TAG_ROLE_DESCRIPTION!C!header local /local header/;" extras:pseudo
!_TAG_ROLE_DESCRIPTION!C!header system /system header/;" extras:pseudo
!_TAG_ROLE_DESCRIPTION!C!macro undef /undefined/;" extras:pseudo
main input.c /^int main (void) { return 0; }$/
6 changes: 5 additions & 1 deletion Tmain/input-encoding-option.d/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ if ${CTAGS} --quiet --options=NONE --list-features | grep -q iconv; then
check_encoding euc-jp
check_encoding utf-8
if ${CTAGS} --quiet --options=NONE \
--pseudo-tags=-TAG_PROC_CWD \
--pseudo-tags=-TAG_PROC_CWD \
--pseudo-tags=-TAG_KIND_DESCRIPTION \
--pseudo-tags=-TAG_EXTRA_DESCRIPTION \
--pseudo-tags=-TAG_FIELD_DESCRIPTION \
--pseudo-tags=-TAG_ROLE_DESCRIPTION \
--input-encoding=utf-8 --input-encoding-java=shift_jis --input-encoding-javascript=euc-jp \
-o ${BUILDDIR}/tags \
input.js input.java ; then
Expand Down
78 changes: 78 additions & 0 deletions Tmain/json-output-format.d/stdout-expected.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,90 @@
{"_type": "tag", "name": "main", "path": "input.go", "pattern": "/^package main$/", "language": "Go", "line": 1, "kind": "package", "roles": "def"}
# json --languages=+man --fields=*-T --extras=*
{"_type": "ptag", "name": "JSON_OUTPUT_VERSION", "path": "0.0", "pattern": "in development"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "anonymous", "pattern": "Include tags for non-named objects like lambda"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "fileScope", "pattern": "Include tags of file scope"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "guest", "pattern": "Include tags generated by guest parsers"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "inputFile", "pattern": "Include an entry for the base file name of every input file"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "pseudo", "pattern": "Include pseudo tags"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "qualified", "pattern": "Include an extra class-qualified tag entry for each tag"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "reference", "pattern": "Include reference tags"}
{"_type": "ptag", "name": "TAG_EXTRA_DESCRIPTION", "path": "subparser", "pattern": "Include tags generated by subparsers"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "parserName": "Go", "path": "package", "pattern": "the real package specified by the package name"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "parserName": "Go", "path": "packageName", "pattern": "the name for referring the package"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "parserName": "Python", "path": "nameref", "pattern": "the original name for the tag"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "access", "pattern": "Access (or export) of class members"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "compact", "pattern": "compact input line (used only in xref output)"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "end", "pattern": "end lines of various items"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "extras", "pattern": "Extra tag type information"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "file", "pattern": "File-restricted scoping"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "implementation", "pattern": "Implementation information"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "inherits", "pattern": "Inheritance information"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "input", "pattern": "input file"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "kind", "pattern": "[tags output] prepend \"kind:\" to k\\/ (or K\\/) field output, [xref and json output] kind in long-name form"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "language", "pattern": "Language of input file containing tag"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "line", "pattern": "Line number of tag definition"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "name", "pattern": "tag name"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "pattern", "pattern": "pattern"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "roles", "pattern": "Roles"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "scope", "pattern": "[tags output] prepend \"scope:\" key to s\\/scope field output, [xref and json output] the same as s\\/ field"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "scopeKind", "pattern": "[tags output] no effect, [xref and json output] kind of scope in long-name form"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "signature", "pattern": "Signature of routine (e.g. prototype or parameter list)"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "typeref", "pattern": "Type and name of a variable or typedef"}
{"_type": "ptag", "name": "TAG_FIELD_DESCRIPTION", "path": "xpath", "pattern": "xpath for the tag"}
{"_type": "ptag", "name": "TAG_FILE_SORTED", "path": "1", "pattern": "0=unsorted, 1=sorted, 2=foldcase"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "d,macro", "pattern": "macro definitions"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "e,enumerator", "pattern": "enumerators (values inside an enumeration)"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "f,function", "pattern": "function definitions"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "g,enum", "pattern": "enumeration names"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "h,header", "pattern": "included header files"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "m,member", "pattern": "struct, and union members"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "s,struct", "pattern": "structure names"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "t,typedef", "pattern": "typedefs"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "u,union", "pattern": "union names"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "C", "path": "v,variable", "pattern": "variable definitions"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "M,anonMember", "pattern": "struct anonymous members"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "P,packageName", "pattern": "name for specifying imported package"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "a,talias", "pattern": "type aliases"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "c,const", "pattern": "constants"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "f,func", "pattern": "functions"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "i,interface", "pattern": "interfaces"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "m,member", "pattern": "struct members"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "n,methodSpec", "pattern": "interface method specification"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "p,package", "pattern": "packages"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "s,struct", "pattern": "structs"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "t,type", "pattern": "types"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "u,unknown", "pattern": "unknown"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Go", "path": "v,var", "pattern": "variables"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Man", "path": "s,section", "pattern": "sections"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Man", "path": "t,title", "pattern": "titles"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "I,namespace", "pattern": "name referring a module defined in other file"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "c,class", "pattern": "classes"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "f,function", "pattern": "functions"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "i,module", "pattern": "modules"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "m,member", "pattern": "class members"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "v,variable", "pattern": "variables"}
{"_type": "ptag", "name": "TAG_KIND_DESCRIPTION", "parserName": "Python", "path": "x,unknown", "pattern": "name referring a class\\/variable\\/function\\/module defined in other module"}
{"_type": "ptag", "name": "TAG_OUTPUT_EXCMD", "path": "mixed", "pattern": "number, pattern, mixed, or combineV2"}
{"_type": "ptag", "name": "TAG_PATTERN_LENGTH_LIMIT", "path": "96", "pattern": "0 for no limit"}
{"_type": "ptag", "name": "TAG_PROGRAM_AUTHOR", "path": "Universal Ctags Team", "pattern": ""}
{"_type": "ptag", "name": "TAG_PROGRAM_NAME", "path": "Universal Ctags", "pattern": "Derived from Exuberant Ctags"}
{"_type": "ptag", "name": "TAG_PROGRAM_URL", "path": "https://ctags.io/", "pattern": "official site"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C!header", "path": "local", "pattern": "local header"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C!header", "path": "system", "pattern": "system header"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C!macro", "path": "undef", "pattern": "undefined"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Go!package", "path": "imported", "pattern": "imported package"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Go!unknown", "path": "receiverType", "pattern": "receiver type"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!class", "path": "imported", "pattern": "imported module\\/imported from the other module"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!class", "path": "indirectlyImported", "pattern": "classes\\/variables\\/functions\\/modules imported in alternative name"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!function", "path": "imported", "pattern": "imported module\\/imported from the other module"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!function", "path": "indirectlyImported", "pattern": "classes\\/variables\\/functions\\/modules imported in alternative name"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!module", "path": "imported", "pattern": "imported module\\/imported from the other module"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!module", "path": "indirectlyImported", "pattern": "classes\\/variables\\/functions\\/modules imported in alternative name"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!module", "path": "namespace", "pattern": "namespace from where classes\\/variables\\/functions are imported"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!unknown", "path": "imported", "pattern": "imported module\\/imported from the other module"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!unknown", "path": "indirectlyImported", "pattern": "classes\\/variables\\/functions\\/modules imported in alternative name"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!variable", "path": "imported", "pattern": "imported module\\/imported from the other module"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python!variable", "path": "indirectlyImported", "pattern": "classes\\/variables\\/functions\\/modules imported in alternative name"}
{"_type": "tag", "name": "Foo", "path": "input.py", "pattern": "/^class Foo:$/", "language": "Python", "line": 1, "kind": "class", "inherits": false, "access": "public", "roles": "def", "end": 3}
{"_type": "tag", "name": "Foo.doIt", "path": "input.py", "pattern": "/^ def doIt():$/", "language": "Python", "line": 2, "kind": "member", "access": "public", "signature": "()", "scope": "Foo", "scopeKind": "class", "roles": "def", "extras": "qualified", "end": 3}
{"_type": "tag", "name": "N\tA\tM\tE", "path": "input.1", "pattern": "/^.SH \"\tN\tA\tM\tE\t\"$/", "language": "Man", "line": 1, "kind": "section", "roles": "def", "end": 1}
Expand Down
8 changes: 4 additions & 4 deletions Tmain/list-pseudo-tags.d/stdout-expected.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#NAME ENABLED DESCRIPTION
JSON_OUTPUT_VERSION off the version of json output stream format
TAG_EXTRA_DESCRIPTION off the names and descriptions of enabled extras
TAG_FIELD_DESCRIPTION off the names and descriptions of enabled fields
TAG_EXTRA_DESCRIPTION on the names and descriptions of enabled extras
TAG_FIELD_DESCRIPTION on the names and descriptions of enabled fields
TAG_FILE_FORMAT on the version of tags file format
TAG_FILE_SORTED on how tags are sorted
TAG_KIND_DESCRIPTION off the letters, names and descriptions of enabled kinds in the language
TAG_KIND_DESCRIPTION on the letters, names and descriptions of enabled kinds in the language
TAG_KIND_SEPARATOR off the separators used in kinds
TAG_OUTPUT_EXCMD on the excmd: number, pattern, mixed, or combine
TAG_OUTPUT_FILESEP on the separator used in file name (slash or backslash)
Expand All @@ -15,4 +15,4 @@ TAG_PROGRAM_AUTHOR on the author of this ctags implementation
TAG_PROGRAM_NAME on the name of this ctags implementation
TAG_PROGRAM_URL on the official site URL of this ctags implementation
TAG_PROGRAM_VERSION on the version of this ctags implementation
TAG_ROLE_DESCRIPTION off the names and descriptions of enabled roles
TAG_ROLE_DESCRIPTION on the names and descriptions of enabled roles
4 changes: 4 additions & 0 deletions Tmain/output-encoding-option.d/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ if ${CTAGS} --quiet --options=NONE --list-features | grep -q iconv; then
check_encoding euc-jp
if ${CTAGS} --quiet --options=NONE \
--pseudo-tags=-TAG_PROC_CWD \
--pseudo-tags=-TAG_KIND_DESCRIPTION \
--pseudo-tags=-TAG_FIELD_DESCRIPTION \
--pseudo-tags=-TAG_EXTRA_DESCRIPTION \
--pseudo-tags=-TAG_ROLE_DESCRIPTION \
--output-encoding=shift_jis --input-encoding=utf-8 --input-encoding-javascript=euc-jp \
-o ${BUILDDIR}/tags \
input.js input.java ; then
Expand Down
4 changes: 4 additions & 0 deletions Tmain/ptag-kind-sep.d/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,8 @@ ${CTAGS} --quiet --options=NONE -o - \
--pseudo-tags=+TAG_KIND_SEPARATOR \
--pseudo-tags=-TAG_PROGRAM_VERSION \
--pseudo-tags=-TAG_PROC_CWD \
--pseudo-tags=-TAG_KIND_DESCRIPTION \
--pseudo-tags=-TAG_FIELD_DESCRIPTION \
--pseudo-tags=-TAG_EXTRA_DESCRIPTION \
--pseudo-tags=-TAG_ROLE_DESCRIPTION \
input.php
8 changes: 4 additions & 4 deletions main/ptag.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,19 +170,19 @@ static ptagDesc ptagDescs [] = {
"the separators used in kinds",
ptagMakeKindSeparators,
PTAGF_PARSER },
{ false, "TAG_KIND_DESCRIPTION",
{ true, "TAG_KIND_DESCRIPTION",
"the letters, names and descriptions of enabled kinds in the language",
ptagMakeKindDescriptions,
PTAGF_PARSER },
{ false, "TAG_FIELD_DESCRIPTION",
{ true, "TAG_FIELD_DESCRIPTION",
"the names and descriptions of enabled fields",
ptagMakeFieldDescriptions,
PTAGF_COMMON|PTAGF_PARSER },
{ false, "TAG_EXTRA_DESCRIPTION",
{ true, "TAG_EXTRA_DESCRIPTION",
"the names and descriptions of enabled extras",
ptagMakeExtraDescriptions,
PTAGF_COMMON|PTAGF_PARSER },
{ false, "TAG_ROLE_DESCRIPTION",
{ true, "TAG_ROLE_DESCRIPTION",
"the names and descriptions of enabled roles",
ptagMakeRoleDescriptions,
PTAGF_PARSER },
Expand Down

0 comments on commit 0aba7a7

Please sign in to comment.