blob: 3686242dda52c88dcbe96a2085a650f7c29052ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
/***************************************************************************
ctagsreader.h - description
-------------------
begin : Tue Oct 21 2008
copyright : (C) 2008 by Andre Simon
email : andre.simon1@gmx.de
***************************************************************************/
/*
This file is part of Highlight.
Highlight is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Highlight is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Highlight. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef CTAGSREADER_H
#define CTAGSREADER_H
#include <string>
#include <sstream>
#include <map>
#include <iostream>
#include <fstream>
using namespace std;
/** TagInfo contains information about a ctags tag */
class TagInfo
{
public:
TagInfo() {};
string getKind() const;
string file, kind, name_space;
};
/** Maps parameter keys to values*/
typedef map<string, TagInfo> TagsMap;
class CTagsReader
{
public:
CTagsReader() {};
~CTagsReader() {};
/** load ctags file
\param ctags_path Path to ctags file
\return true if successfull
*/
bool load ( const string & ctags_path );
/** test if tag infoation exists
\param tagname tag ot highlight token
\return true if tag information exists
*/
bool tagExists ( const string& tagname )
{
return tags.count ( tagname ) >0;
}
/** return tag info, call tagExists first to avoid growing map
\param tagname tag ot highlight token
\return tag info
*/
TagInfo getTagInfo ( const string &tagname )
{
return tags[tagname];
}
private:
TagsMap tags;
};
/*
c class name
d define (from #define XXX)
e enumerator
f function or method name
F file name
g enumeration name
m member (of structure or class data)
p function prototype
s structure name
t typedef
u union name
v variable
*/
#endif
|