Merge pull request #3587 from techee/unused_remove
[geany-mirror.git] / ctags / main / ptag_p.h
blob1bfbad632f4ef3777d8c5855a0567ffeb6856547
1 /*
3 * Copyright (c) 2016, Red Hat, Inc.
4 * Copyright (c) 2016, Masatake YAMATO
6 * Author: Masatake YAMATO <yamato@redhat.com>
8 * This source code is released for free distribution under the terms of the
9 * GNU General Public License version 2 or (at your option) any later version.
12 #ifndef CTAGS_MAIN_PTAG_PRIVATE_H
13 #define CTAGS_MAIN_PTAG_PRIVATE_H
15 #include "general.h"
16 #include "types.h"
18 #define PSEUDO_TAG_PREFIX "!_"
19 #define PSEUDO_TAG_SEPARATOR "!"
21 typedef enum ePtagType { /* pseudo tag content control */
22 PTAG_UNKNOWN = -1,
23 /* Only --output-format=json use this ptag.
24 Applications of the output may expect this comes first in the output. */
25 PTAG_JSON_OUTPUT_VERSION,
27 PTAG_FILE_FORMAT,
28 PTAG_FILE_SORTED,
29 PTAG_PROGRAM_AUTHOR,
30 PTAG_PROGRAM_NAME,
31 PTAG_PROGRAM_URL,
32 PTAG_PROGRAM_VERSION,
33 #ifdef HAVE_ICONV
34 PTAG_FILE_ENCODING,
35 #endif
36 PTAG_KIND_SEPARATOR,
37 PTAG_KIND_DESCRIPTION,
38 PTAG_FIELD_DESCRIPTION,
39 PTAG_EXTRA_DESCRIPTION,
40 PTAG_ROLE_DESCRIPTION,
41 PTAG_OUTPUT_MODE,
42 PTAG_OUTPUT_FILESEP,
43 PTAG_PATTERN_TRUNCATION,
44 PTAG_PROC_CWD,
45 PTAG_OUTPUT_EXCMD,
46 PTAG_COUNT
47 } ptagType;
49 typedef enum ePtagFlag {
50 /* use isPtagCommonInParsers() for testing. */
51 PTAGF_COMMON = 1 << 0,
52 /* use isPtagParserSpecific for testing.
53 * PSEUDO_TAG_SEPARATOR is used for printing. */
54 PTAGF_PARSER = 1 << 1,
55 } ptagFlag;
57 struct sPtagDesc {
58 bool enabled;
59 const char* name;
60 const char* description; /* displayed in --list-pseudo-tags output */
62 /* For making ptags for common in parsers, LANG_IGNOR is for the second
63 * argument and a pointer for optionValues type value for the third argument
64 * are passed.
66 * For parser specific ptags, the pointer for parserObject
67 * of the parser is passed as the thrid argument.
69 bool (* makeTag) (ptagDesc *, langType, const void *);
71 ptagFlag flags;
74 extern bool makePtagIfEnabled (ptagType type, langType language, const void *data);
75 extern ptagDesc* getPtagDesc (ptagType type);
76 extern ptagType getPtagTypeForName (const char *name);
77 extern void printPtags (bool withListHeader, bool machinable, FILE *fp);
78 extern bool isPtagEnabled (ptagType type);
79 extern bool isPtagCommonInParsers (ptagType type);
80 extern bool isPtagParserSpecific (ptagType type);
81 extern bool enablePtag (ptagType type, bool state);
83 #endif /* CTAGS_MAIN_PTAG_PRIVATE_H */