5#ifndef QQMLLSHELPUTILS_P_H
6#define QQMLLSHELPUTILS_P_H
19#include <QtQmlLS/private/qqmllshelpplugininterface_p.h>
20#include <QtQmlLS/private/qqmllsutils_p.h>
21#include <QtQmlDom/private/qqmldomtop_p.h>
22#include <QtQmlLS/private/qdochtmlparser_p.h>
23#include <QtLanguageServer/private/qlanguageserverspectypes_p.h>
29class HelpManager final
33 void setDocumentationRootPath(
const QString &path);
34 [[nodiscard]] QString documentationRootPath()
const;
35 [[nodiscard]] std::optional<QByteArray> documentationForItem(
36 const QQmlJS::Dom::DomItem &file, QLspSpecification::Position position);
39 [[nodiscard]] std::optional<QByteArray> extractDocumentationForIdentifiers(
const QQmlJS::Dom::DomItem &item,
40 QQmlLSUtils::ExpressionType expr)
const;
41 [[nodiscard]] std::optional<QByteArray> extractDocumentationForDomElements(
42 const QQmlJS::Dom::DomItem &item)
const;
43 [[nodiscard]] std::optional<QByteArray> extractDocumentation(
44 const QQmlJS::Dom::DomItem &item)
const;
45 [[nodiscard]] std::optional<QByteArray> tryExtract(ExtractDocumentation &extractor,
46 const std::vector<QQmlLSHelpProviderBase::DocumentLink> &links,
47 const QString &name)
const;
48 [[nodiscard]] std::vector<QQmlLSHelpProviderBase::DocumentLink>
49 collectDocumentationLinks(
const QQmlJS::Dom::DomItem &item,
const QQmlJSScope::ConstPtr &scope,
50 const QString &name)
const;
51 void registerDocumentations(
const QStringList &docs)
const;
53 mutable QMutex m_mutex;
54 std::unique_ptr<QQmlLSHelpProviderBase> m_helpPlugin;
55 QString m_docRootPath;
56 QHash<QString, QString> m_cppTypesToQmlTypes;
bool scopeDependenciesChanged
QQmlJSScope::ConstPtr scope
QDateTime scopeDependenciesLoadTime
std::optional< int > docVersion
std::optional< int > validDocVersion
QDebug dump(QDebug dbg, DumpOptions dump=DumpOption::NoCode)
QQmlJS::Dom::DomItem validDoc
std::shared_ptr< Utils::TextDocument > textDocument
OpenDocumentSnapshot snapshot
Runs multiple processes sequentially via a QProcess, and signals once they are done.
void newOpenFile(const QByteArray &url, int version, const QString &docText)
void newDocForOpenFile(const QByteArray &url, int version, const QString &docText, UpdatePolicy policy)
void addOpenToUpdate(const QByteArray &, UpdatePolicy policy)
QQmlToolingSharedSettings * settings() const
OpenDocumentSnapshot snapshotByUrl(const QByteArray &url)
QSet< QString > ignoreForWatching() const
static QStringList fileNamesToWatch(const QQmlJS::Dom::DomItem &qmlFile)
void tryEnableCMakeCalls(QProcessScheduler *scheduler)
HelpManager * helpManager()
void setDocumentationRootPath(const QString &path)
QByteArray rootUrl() const
QStringList importPaths() const
OpenDocument openDocumentByUrl(const QByteArray &url)
QStringList findFilePathsFromFileNames(const QStringList &fileNames, const QSet< QString > &alreadyWatchedFiles)
QQmlCodeModel(const QByteArray &rootUrl={}, QObject *parent=nullptr, QQmlToolingSharedSettings *settings=nullptr)
const RegisteredSemanticTokens & registeredTokens() const
QStringList buildPathsForFileUrl(const QByteArray &url)
QStringList importPathsForUrl(const QByteArray &)
QQmlJS::Dom::DomItem currentEnv() const
QStringList buildPathsForOpenedFiles()
void setBuildPaths(const QStringList &paths)
void documentationRootPathChanged(const QString &path)
QString documentationRootPath() const
void setVerbose(bool verbose)
void closeOpenFile(const QByteArray &url)
QQmlJS::Dom::DomItem validEnv() const
RegisteredSemanticTokens & registeredTokens()
void removeDirectory(const QByteArray &)
void setImportPaths(const QStringList &paths)
VersionCheckResult checkVersion(const OpenDocument &doc, int version)
static QStringList withDependentBuildDirectories(QStringList &&buildPaths)
VersionCheckResultForValidDocument
@ VersionLowerThanValidSnapshot
@ VersionOkForValidDocument
static VersionCheckResultForValidDocument checkVersionForValidDocument(const OpenDocument &doc, int version)
@ VersionLowerThanSnapshot
@ VersionLowerThanDocument
static void updateItemInSnapshot(const DomItem &item, const DomItem &validItem, const QByteArray &url, OpenDocument *doc, int version, UpdatePolicy policy)