File indexing completed on 2024-05-05 05:51:39

0001 /***************************************************************************
0002  *   SPDX-FileCopyrightText: 2004 Jens Dagerbo *
0003  *   jens.dagerbo@swipnet.se                                               *
0004  *                                                                         *
0005  *   SPDX-License-Identifier: GPL-2.0-or-later
0006  *                                                                         *
0007  ***************************************************************************/
0008 
0009 #pragma once
0010 
0011 #include <QString>
0012 #include <QStringList>
0013 
0014 class Tags
0015 {
0016 public:
0017     struct TagEntry {
0018         TagEntry();
0019         TagEntry(const QString &tag, const QString &type, const QString &file, const QString &pattern);
0020 
0021         QString tag;
0022         QString type;
0023         QString file;
0024         QString pattern;
0025     };
0026 
0027     typedef QList<TagEntry> TagList;
0028 
0029     /**
0030      *    Method to set the tag database filename
0031      * @param file the tag database filename
0032      */
0033     static void setTagsFile(const QString &file);
0034 
0035     static QString getTagsFile();
0036 
0037     /**
0038      *    Method to check if the tag database contains a specific tag
0039      * @param tag Tag to look up
0040      * @return returns true if tag database contains 'tag'
0041      */
0042     static bool hasTag(const QString &tag);
0043     static bool hasTag(const QString &fileName, const QString &tag);
0044 
0045     static unsigned int numberOfPartialMatches(const QString &tagpart);
0046     static unsigned int numberOfExactMatches(const QString &tag);
0047     static unsigned int numberOfMatches(const QString &tagpart, bool partial);
0048 
0049     static TagList getPartialMatches(const QString &tagpart);
0050     static TagList getExactMatches(const QString &tag);
0051     static TagList getMatches(const QString &tagpart, bool partial, const QStringList &types = QStringList());
0052 
0053     static TagList getPartialMatches(const QString &file, const QString &tagpart);
0054     static TagList getExactMatches(const QString &file, const QString &tag);
0055     static TagList getMatches(const QString &file, const QString &tagpart, bool partial, const QStringList &types = QStringList());
0056     static TagList getPartialMatchesNoi8n(const QString &tagFile, const QString &tagpart);
0057 
0058 private:
0059     static QString _tagsfile;
0060 };
0061 
0062 // kate: space-indent off; indent-width 4; tab-width 4; show-tabs off;