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;