forked from qt-creator/qt-creator
QMakePM: Use generalized KeywordsCompletionProvider
Change-Id: Iaa6476be9285d814e4357b861c8fd00f1c9adc1c Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -24,330 +24,282 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "profilecompletionassist.h"
|
#include "profilecompletionassist.h"
|
||||||
#include "qmakeprojectmanagerconstants.h"
|
|
||||||
|
|
||||||
#include <texteditor/codeassist/assistinterface.h>
|
#include "texteditor/codeassist/keywordscompletionassist.h"
|
||||||
#include <texteditor/codeassist/keywordscompletionassist.h>
|
|
||||||
#include <texteditor/texteditorconstants.h>
|
|
||||||
|
|
||||||
#include <coreplugin/id.h>
|
const TextEditor::Keywords &QmakeProjectManager::Internal::qmakeKeywords()
|
||||||
|
|
||||||
using namespace QmakeProjectManager::Internal;
|
|
||||||
using namespace TextEditor;
|
|
||||||
|
|
||||||
|
|
||||||
static const char *const variableKeywords[] = {
|
|
||||||
"CCFLAG",
|
|
||||||
"CLEAN_DEPS",
|
|
||||||
"CONFIG",
|
|
||||||
"DEFINES",
|
|
||||||
"DEF_FILE",
|
|
||||||
"DEPENDPATH",
|
|
||||||
"DEPLOYMENT",
|
|
||||||
"DEPLOYMENT_PLUGIN",
|
|
||||||
"DESTDIR",
|
|
||||||
"DESTDIR_TARGET",
|
|
||||||
"DISTFILES",
|
|
||||||
"DLLDESTDIR",
|
|
||||||
"DSP_TEMPLATE",
|
|
||||||
"FORMS",
|
|
||||||
"FORMS3",
|
|
||||||
"GUID",
|
|
||||||
"HEADERS",
|
|
||||||
"ICON",
|
|
||||||
"INCLUDEPATH",
|
|
||||||
"INSTALLS",
|
|
||||||
"LEXIMPLS",
|
|
||||||
"LEXOBJECTS",
|
|
||||||
"LEXSOURCES",
|
|
||||||
"LIBS",
|
|
||||||
"LITERAL_HASH",
|
|
||||||
"MAKEFILE",
|
|
||||||
"MAKEFILE_GENERATOR",
|
|
||||||
"MOBILITY",
|
|
||||||
"MOC_DIR",
|
|
||||||
"OBJECTIVE_HEADERS",
|
|
||||||
"OBJECTIVE_SOURCES",
|
|
||||||
"OBJECTS",
|
|
||||||
"OBJECTS_DIR",
|
|
||||||
"OBJMOC",
|
|
||||||
"OTHER_FILES",
|
|
||||||
"OUT_PWD",
|
|
||||||
"PKGCONFIG",
|
|
||||||
"POST_TARGETDEPS",
|
|
||||||
"PRECOMPILED_HEADER",
|
|
||||||
"PRE_TARGETDEPS",
|
|
||||||
"PWD",
|
|
||||||
"QMAKE",
|
|
||||||
"QMAKESPEC",
|
|
||||||
"QMAKE_APP_FLAG",
|
|
||||||
"QMAKE_APP_OR_DLL",
|
|
||||||
"QMAKE_AR_CMD",
|
|
||||||
"QMAKE_BUNDLE_DATA",
|
|
||||||
"QMAKE_BUNDLE_EXTENSION",
|
|
||||||
"QMAKE_CC",
|
|
||||||
"QMAKE_CFLAGS",
|
|
||||||
"QMAKE_CFLAGS_DEBUG",
|
|
||||||
"QMAKE_CFLAGS_MT",
|
|
||||||
"QMAKE_CFLAGS_MT_DBG",
|
|
||||||
"QMAKE_CFLAGS_MT_DLL",
|
|
||||||
"QMAKE_CFLAGS_MT_DLLDBG",
|
|
||||||
"QMAKE_CFLAGS_RELEASE",
|
|
||||||
"QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO",
|
|
||||||
"QMAKE_CFLAGS_SHLIB",
|
|
||||||
"QMAKE_CFLAGS_THREAD",
|
|
||||||
"QMAKE_CFLAGS_WARN_OFF",
|
|
||||||
"QMAKE_CFLAGS_WARN_ON",
|
|
||||||
"QMAKE_CLEAN",
|
|
||||||
"QMAKE_CXX",
|
|
||||||
"QMAKE_CXXFLAGS",
|
|
||||||
"QMAKE_CXXFLAGS_DEBUG",
|
|
||||||
"QMAKE_CXXFLAGS_MT",
|
|
||||||
"QMAKE_CXXFLAGS_MT_DBG",
|
|
||||||
"QMAKE_CXXFLAGS_MT_DLL",
|
|
||||||
"QMAKE_CXXFLAGS_MT_DLLDBG",
|
|
||||||
"QMAKE_CXXFLAGS_RELEASE",
|
|
||||||
"QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO",
|
|
||||||
"QMAKE_CXXFLAGS_SHLIB",
|
|
||||||
"QMAKE_CXXFLAGS_THREAD",
|
|
||||||
"QMAKE_CXXFLAGS_WARN_OFF",
|
|
||||||
"QMAKE_CXXFLAGS_WARN_ON",
|
|
||||||
"QMAKE_DISTCLEAN",
|
|
||||||
"QMAKE_EXTENSION_SHLIB",
|
|
||||||
"QMAKE_EXTRA_COMPILERS",
|
|
||||||
"QMAKE_EXTRA_TARGETS",
|
|
||||||
"QMAKE_EXT_CPP",
|
|
||||||
"QMAKE_EXT_H",
|
|
||||||
"QMAKE_EXT_LEX",
|
|
||||||
"QMAKE_EXT_MOC",
|
|
||||||
"QMAKE_EXT_OBJ",
|
|
||||||
"QMAKE_EXT_PRL",
|
|
||||||
"QMAKE_EXT_UI",
|
|
||||||
"QMAKE_EXT_YACC",
|
|
||||||
"QMAKE_FAILED_REQUIREMENTS",
|
|
||||||
"QMAKE_FRAMEWORK_BUNDLE_NAME",
|
|
||||||
"QMAKE_FRAMEWORK_VERSION",
|
|
||||||
"QMAKE_INCDIR",
|
|
||||||
"QMAKE_INCDIR_EGL",
|
|
||||||
"QMAKE_INCDIR_OPENGL",
|
|
||||||
"QMAKE_INCDIR_OPENGL_ES1",
|
|
||||||
"QMAKE_INCDIR_OPENGL_ES2",
|
|
||||||
"QMAKE_INCDIR_OPENVG",
|
|
||||||
"QMAKE_INCDIR_QT",
|
|
||||||
"QMAKE_INCDIR_THREAD",
|
|
||||||
"QMAKE_INCDIR_X11",
|
|
||||||
"QMAKE_INFO_PLIST",
|
|
||||||
"QMAKE_LFLAGS",
|
|
||||||
"QMAKE_LFLAGS_CONSOLE",
|
|
||||||
"QMAKE_LFLAGS_CONSOLE_DLL",
|
|
||||||
"QMAKE_LFLAGS_DEBUG",
|
|
||||||
"QMAKE_LFLAGS_PLUGIN",
|
|
||||||
"QMAKE_LFLAGS_QT_DLL",
|
|
||||||
"QMAKE_LFLAGS_RELEASE",
|
|
||||||
"QMAKE_LFLAGS_RPATH",
|
|
||||||
"QMAKE_LFLAGS_SHAPP",
|
|
||||||
"QMAKE_LFLAGS_SHLIB",
|
|
||||||
"QMAKE_LFLAGS_SONAME",
|
|
||||||
"QMAKE_LFLAGS_THREAD",
|
|
||||||
"QMAKE_LFLAGS_WINDOWS",
|
|
||||||
"QMAKE_LFLAGS_WINDOWS_DLL",
|
|
||||||
"QMAKE_LIBDIR",
|
|
||||||
"QMAKE_LIBDIR_EGL",
|
|
||||||
"QMAKE_LIBDIR_FLAGS",
|
|
||||||
"QMAKE_LIBDIR_OPENGL",
|
|
||||||
"QMAKE_LIBDIR_OPENVG",
|
|
||||||
"QMAKE_LIBDIR_QT",
|
|
||||||
"QMAKE_LIBDIR_X11",
|
|
||||||
"QMAKE_LIBS",
|
|
||||||
"QMAKE_LIBS_CONSOLE",
|
|
||||||
"QMAKE_LIBS_EGL",
|
|
||||||
"QMAKE_LIBS_OPENGL",
|
|
||||||
"QMAKE_LIBS_OPENGL_ES1",
|
|
||||||
"QMAKE_LIBS_OPENGL_ES2",
|
|
||||||
"QMAKE_LIBS_OPENGL_QT",
|
|
||||||
"QMAKE_LIBS_OPENVG",
|
|
||||||
"QMAKE_LIBS_QT",
|
|
||||||
"QMAKE_LIBS_QT_DLL",
|
|
||||||
"QMAKE_LIBS_QT_OPENGL",
|
|
||||||
"QMAKE_LIBS_QT_THREAD",
|
|
||||||
"QMAKE_LIBS_RT",
|
|
||||||
"QMAKE_LIBS_RTMT",
|
|
||||||
"QMAKE_LIBS_THREAD",
|
|
||||||
"QMAKE_LIBS_WINDOWS",
|
|
||||||
"QMAKE_LIBS_X11",
|
|
||||||
"QMAKE_LIBS_X11SM",
|
|
||||||
"QMAKE_LIB_FLAG",
|
|
||||||
"QMAKE_LINK",
|
|
||||||
"QMAKE_LINK_SHLIB_CMD",
|
|
||||||
"QMAKE_LN_SHLIB",
|
|
||||||
"QMAKE_MACOSX_DEPLOYMENT_TARGET",
|
|
||||||
"QMAKE_MAC_SDK",
|
|
||||||
"QMAKE_MAKEFILE",
|
|
||||||
"QMAKE_MOC_SRC",
|
|
||||||
"QMAKE_POST_LINK",
|
|
||||||
"QMAKE_PRE_LINK",
|
|
||||||
"QMAKE_PROJECT_NAME",
|
|
||||||
"QMAKE_QMAKE",
|
|
||||||
"QMAKE_QT_DLL",
|
|
||||||
"QMAKE_RESOURCE_FLAGS",
|
|
||||||
"QMAKE_RPATH",
|
|
||||||
"QMAKE_RPATHDIR",
|
|
||||||
"QMAKE_RUN_CC",
|
|
||||||
"QMAKE_RUN_CC_IMP",
|
|
||||||
"QMAKE_RUN_CXX",
|
|
||||||
"QMAKE_RUN_CXX_IMP",
|
|
||||||
"QMAKE_TARGET",
|
|
||||||
"QMAKE_UIC",
|
|
||||||
"QT",
|
|
||||||
"QTPLUGIN",
|
|
||||||
"QT_MAJOR_VERSION",
|
|
||||||
"QT_MINOR_VERSION",
|
|
||||||
"QT_PATCH_VERSION",
|
|
||||||
"QT_VERSION",
|
|
||||||
"RCC_DIR",
|
|
||||||
"RC_FILE",
|
|
||||||
"REQUIRES",
|
|
||||||
"RESOURCES",
|
|
||||||
"RES_FILE",
|
|
||||||
"RSS_RULES",
|
|
||||||
"SIGNATURE_FILE",
|
|
||||||
"SOURCES",
|
|
||||||
"SRCMOC",
|
|
||||||
"STATECHARTS",
|
|
||||||
"SUBDIRS",
|
|
||||||
"TARGET",
|
|
||||||
"TEMPLATE",
|
|
||||||
"TRANSLATIONS",
|
|
||||||
"UICIMPLS",
|
|
||||||
"UICOBJECTS",
|
|
||||||
"UI_DIR",
|
|
||||||
"UI_HEADERS_DIR",
|
|
||||||
"UI_SOURCES_DIR",
|
|
||||||
"VERSION",
|
|
||||||
"VERSION_PE_HEADER",
|
|
||||||
"VER_MAJ",
|
|
||||||
"VER_MIN",
|
|
||||||
"VER_PAT",
|
|
||||||
"VPATH",
|
|
||||||
"YACCIMPLS",
|
|
||||||
"YACCOBJECTS",
|
|
||||||
"YACCSOURCES",
|
|
||||||
"_PRO_FILE_",
|
|
||||||
"_PRO_FILE_PWD_",
|
|
||||||
0
|
|
||||||
};
|
|
||||||
|
|
||||||
static const char *const functionKeywords[] = {
|
|
||||||
"CONFIG",
|
|
||||||
"absolute_path",
|
|
||||||
"basename",
|
|
||||||
"cache",
|
|
||||||
"cat",
|
|
||||||
"clean_path",
|
|
||||||
"clear",
|
|
||||||
"contains",
|
|
||||||
"count",
|
|
||||||
"debug",
|
|
||||||
"defined",
|
|
||||||
"dirname",
|
|
||||||
"enumerate_vars",
|
|
||||||
"equals",
|
|
||||||
"error",
|
|
||||||
"escape_expand",
|
|
||||||
"eval",
|
|
||||||
"exists",
|
|
||||||
"export",
|
|
||||||
"files",
|
|
||||||
"find",
|
|
||||||
"first",
|
|
||||||
"for",
|
|
||||||
"format_number",
|
|
||||||
"fromfile",
|
|
||||||
"getenv",
|
|
||||||
"greaterThan",
|
|
||||||
"if",
|
|
||||||
"include",
|
|
||||||
"infile",
|
|
||||||
"isActiveConfig",
|
|
||||||
"isEmpty",
|
|
||||||
"isEqual",
|
|
||||||
"join",
|
|
||||||
"last",
|
|
||||||
"lessThan",
|
|
||||||
"list",
|
|
||||||
"load",
|
|
||||||
"log",
|
|
||||||
"lower",
|
|
||||||
"member",
|
|
||||||
"message",
|
|
||||||
"mkpath",
|
|
||||||
"packagesExist",
|
|
||||||
"parseJson",
|
|
||||||
"prompt",
|
|
||||||
"quote",
|
|
||||||
"re_escape",
|
|
||||||
"relative_path",
|
|
||||||
"replace",
|
|
||||||
"requires",
|
|
||||||
"resolve_depends",
|
|
||||||
"reverse",
|
|
||||||
"section",
|
|
||||||
"shadowed",
|
|
||||||
"shell_path",
|
|
||||||
"shell_quote",
|
|
||||||
"size",
|
|
||||||
"sort_depends",
|
|
||||||
"split",
|
|
||||||
"sprintf",
|
|
||||||
"system",
|
|
||||||
"system_path",
|
|
||||||
"system_quote",
|
|
||||||
"title",
|
|
||||||
"touch",
|
|
||||||
"unique",
|
|
||||||
"unset",
|
|
||||||
"upper",
|
|
||||||
"val_escape",
|
|
||||||
"warning",
|
|
||||||
"write_file",
|
|
||||||
0
|
|
||||||
};
|
|
||||||
|
|
||||||
// -------------------------------
|
|
||||||
// ProFileCompletionAssistProvider
|
|
||||||
// -------------------------------
|
|
||||||
void ProFileCompletionAssistProvider::init()
|
|
||||||
{
|
{
|
||||||
for (uint i = 0; i < sizeof variableKeywords / sizeof variableKeywords[0] - 1; i++)
|
static TextEditor::Keywords keywords(
|
||||||
m_variables.append(QLatin1String(variableKeywords[i]));
|
QStringList{ // variables
|
||||||
for (uint i = 0; i < sizeof functionKeywords / sizeof functionKeywords[0] - 1; i++)
|
"CCFLAG",
|
||||||
m_functions.append(QLatin1String(functionKeywords[i]));
|
"CLEAN_DEPS",
|
||||||
}
|
"CONFIG",
|
||||||
|
"DEFINES",
|
||||||
ProFileCompletionAssistProvider::~ProFileCompletionAssistProvider()
|
"DEF_FILE",
|
||||||
{
|
"DEPENDPATH",
|
||||||
}
|
"DEPLOYMENT",
|
||||||
|
"DEPLOYMENT_PLUGIN",
|
||||||
IAssistProcessor *ProFileCompletionAssistProvider::createProcessor() const
|
"DESTDIR",
|
||||||
{
|
"DESTDIR_TARGET",
|
||||||
if (m_variables.isEmpty())
|
"DISTFILES",
|
||||||
const_cast<ProFileCompletionAssistProvider *>(this)->init();
|
"DLLDESTDIR",
|
||||||
TextEditor::Keywords keywords = TextEditor::Keywords(m_variables, m_functions, QMap<QString, QStringList>());
|
"DSP_TEMPLATE",
|
||||||
auto processor = new KeywordsCompletionAssistProcessor(keywords);
|
"FORMS",
|
||||||
processor->setSnippetGroup(TextEditor::Constants::TEXT_SNIPPET_GROUP_ID);
|
"FORMS3",
|
||||||
return processor;
|
"GUID",
|
||||||
}
|
"HEADERS",
|
||||||
|
"ICON",
|
||||||
QStringList ProFileCompletionAssistProvider::variables() const
|
"INCLUDEPATH",
|
||||||
{
|
"INSTALLS",
|
||||||
if (m_variables.isEmpty())
|
"LEXIMPLS",
|
||||||
const_cast<ProFileCompletionAssistProvider *>(this)->init();
|
"LEXOBJECTS",
|
||||||
return m_variables;
|
"LEXSOURCES",
|
||||||
}
|
"LIBS",
|
||||||
|
"LITERAL_HASH",
|
||||||
QStringList ProFileCompletionAssistProvider::functions() const
|
"MAKEFILE",
|
||||||
{
|
"MAKEFILE_GENERATOR",
|
||||||
if (m_functions.isEmpty())
|
"MOBILITY",
|
||||||
const_cast<ProFileCompletionAssistProvider *>(this)->init();
|
"MOC_DIR",
|
||||||
return m_functions;
|
"OBJECTIVE_HEADERS",
|
||||||
|
"OBJECTIVE_SOURCES",
|
||||||
|
"OBJECTS",
|
||||||
|
"OBJECTS_DIR",
|
||||||
|
"OBJMOC",
|
||||||
|
"OTHER_FILES",
|
||||||
|
"OUT_PWD",
|
||||||
|
"PKGCONFIG",
|
||||||
|
"POST_TARGETDEPS",
|
||||||
|
"PRECOMPILED_HEADER",
|
||||||
|
"PRE_TARGETDEPS",
|
||||||
|
"PWD",
|
||||||
|
"QMAKE",
|
||||||
|
"QMAKESPEC",
|
||||||
|
"QMAKE_APP_FLAG",
|
||||||
|
"QMAKE_APP_OR_DLL",
|
||||||
|
"QMAKE_AR_CMD",
|
||||||
|
"QMAKE_BUNDLE_DATA",
|
||||||
|
"QMAKE_BUNDLE_EXTENSION",
|
||||||
|
"QMAKE_CC",
|
||||||
|
"QMAKE_CFLAGS",
|
||||||
|
"QMAKE_CFLAGS_DEBUG",
|
||||||
|
"QMAKE_CFLAGS_MT",
|
||||||
|
"QMAKE_CFLAGS_MT_DBG",
|
||||||
|
"QMAKE_CFLAGS_MT_DLL",
|
||||||
|
"QMAKE_CFLAGS_MT_DLLDBG",
|
||||||
|
"QMAKE_CFLAGS_RELEASE",
|
||||||
|
"QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO",
|
||||||
|
"QMAKE_CFLAGS_SHLIB",
|
||||||
|
"QMAKE_CFLAGS_THREAD",
|
||||||
|
"QMAKE_CFLAGS_WARN_OFF",
|
||||||
|
"QMAKE_CFLAGS_WARN_ON",
|
||||||
|
"QMAKE_CLEAN",
|
||||||
|
"QMAKE_CXX",
|
||||||
|
"QMAKE_CXXFLAGS",
|
||||||
|
"QMAKE_CXXFLAGS_DEBUG",
|
||||||
|
"QMAKE_CXXFLAGS_MT",
|
||||||
|
"QMAKE_CXXFLAGS_MT_DBG",
|
||||||
|
"QMAKE_CXXFLAGS_MT_DLL",
|
||||||
|
"QMAKE_CXXFLAGS_MT_DLLDBG",
|
||||||
|
"QMAKE_CXXFLAGS_RELEASE",
|
||||||
|
"QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO",
|
||||||
|
"QMAKE_CXXFLAGS_SHLIB",
|
||||||
|
"QMAKE_CXXFLAGS_THREAD",
|
||||||
|
"QMAKE_CXXFLAGS_WARN_OFF",
|
||||||
|
"QMAKE_CXXFLAGS_WARN_ON",
|
||||||
|
"QMAKE_DISTCLEAN",
|
||||||
|
"QMAKE_EXTENSION_SHLIB",
|
||||||
|
"QMAKE_EXTRA_COMPILERS",
|
||||||
|
"QMAKE_EXTRA_TARGETS",
|
||||||
|
"QMAKE_EXT_CPP",
|
||||||
|
"QMAKE_EXT_H",
|
||||||
|
"QMAKE_EXT_LEX",
|
||||||
|
"QMAKE_EXT_MOC",
|
||||||
|
"QMAKE_EXT_OBJ",
|
||||||
|
"QMAKE_EXT_PRL",
|
||||||
|
"QMAKE_EXT_UI",
|
||||||
|
"QMAKE_EXT_YACC",
|
||||||
|
"QMAKE_FAILED_REQUIREMENTS",
|
||||||
|
"QMAKE_FRAMEWORK_BUNDLE_NAME",
|
||||||
|
"QMAKE_FRAMEWORK_VERSION",
|
||||||
|
"QMAKE_INCDIR",
|
||||||
|
"QMAKE_INCDIR_EGL",
|
||||||
|
"QMAKE_INCDIR_OPENGL",
|
||||||
|
"QMAKE_INCDIR_OPENGL_ES1",
|
||||||
|
"QMAKE_INCDIR_OPENGL_ES2",
|
||||||
|
"QMAKE_INCDIR_OPENVG",
|
||||||
|
"QMAKE_INCDIR_QT",
|
||||||
|
"QMAKE_INCDIR_THREAD",
|
||||||
|
"QMAKE_INCDIR_X11",
|
||||||
|
"QMAKE_INFO_PLIST",
|
||||||
|
"QMAKE_LFLAGS",
|
||||||
|
"QMAKE_LFLAGS_CONSOLE",
|
||||||
|
"QMAKE_LFLAGS_CONSOLE_DLL",
|
||||||
|
"QMAKE_LFLAGS_DEBUG",
|
||||||
|
"QMAKE_LFLAGS_PLUGIN",
|
||||||
|
"QMAKE_LFLAGS_QT_DLL",
|
||||||
|
"QMAKE_LFLAGS_RELEASE",
|
||||||
|
"QMAKE_LFLAGS_RPATH",
|
||||||
|
"QMAKE_LFLAGS_SHAPP",
|
||||||
|
"QMAKE_LFLAGS_SHLIB",
|
||||||
|
"QMAKE_LFLAGS_SONAME",
|
||||||
|
"QMAKE_LFLAGS_THREAD",
|
||||||
|
"QMAKE_LFLAGS_WINDOWS",
|
||||||
|
"QMAKE_LFLAGS_WINDOWS_DLL",
|
||||||
|
"QMAKE_LIBDIR",
|
||||||
|
"QMAKE_LIBDIR_EGL",
|
||||||
|
"QMAKE_LIBDIR_FLAGS",
|
||||||
|
"QMAKE_LIBDIR_OPENGL",
|
||||||
|
"QMAKE_LIBDIR_OPENVG",
|
||||||
|
"QMAKE_LIBDIR_QT",
|
||||||
|
"QMAKE_LIBDIR_X11",
|
||||||
|
"QMAKE_LIBS",
|
||||||
|
"QMAKE_LIBS_CONSOLE",
|
||||||
|
"QMAKE_LIBS_EGL",
|
||||||
|
"QMAKE_LIBS_OPENGL",
|
||||||
|
"QMAKE_LIBS_OPENGL_ES1",
|
||||||
|
"QMAKE_LIBS_OPENGL_ES2",
|
||||||
|
"QMAKE_LIBS_OPENGL_QT",
|
||||||
|
"QMAKE_LIBS_OPENVG",
|
||||||
|
"QMAKE_LIBS_QT",
|
||||||
|
"QMAKE_LIBS_QT_DLL",
|
||||||
|
"QMAKE_LIBS_QT_OPENGL",
|
||||||
|
"QMAKE_LIBS_QT_THREAD",
|
||||||
|
"QMAKE_LIBS_RT",
|
||||||
|
"QMAKE_LIBS_RTMT",
|
||||||
|
"QMAKE_LIBS_THREAD",
|
||||||
|
"QMAKE_LIBS_WINDOWS",
|
||||||
|
"QMAKE_LIBS_X11",
|
||||||
|
"QMAKE_LIBS_X11SM",
|
||||||
|
"QMAKE_LIB_FLAG",
|
||||||
|
"QMAKE_LINK",
|
||||||
|
"QMAKE_LINK_SHLIB_CMD",
|
||||||
|
"QMAKE_LN_SHLIB",
|
||||||
|
"QMAKE_MACOSX_DEPLOYMENT_TARGET",
|
||||||
|
"QMAKE_MAC_SDK",
|
||||||
|
"QMAKE_MAKEFILE",
|
||||||
|
"QMAKE_MOC_SRC",
|
||||||
|
"QMAKE_POST_LINK",
|
||||||
|
"QMAKE_PRE_LINK",
|
||||||
|
"QMAKE_PROJECT_NAME",
|
||||||
|
"QMAKE_QMAKE",
|
||||||
|
"QMAKE_QT_DLL",
|
||||||
|
"QMAKE_RESOURCE_FLAGS",
|
||||||
|
"QMAKE_RPATH",
|
||||||
|
"QMAKE_RPATHDIR",
|
||||||
|
"QMAKE_RUN_CC",
|
||||||
|
"QMAKE_RUN_CC_IMP",
|
||||||
|
"QMAKE_RUN_CXX",
|
||||||
|
"QMAKE_RUN_CXX_IMP",
|
||||||
|
"QMAKE_TARGET",
|
||||||
|
"QMAKE_UIC",
|
||||||
|
"QT",
|
||||||
|
"QTPLUGIN",
|
||||||
|
"QT_MAJOR_VERSION",
|
||||||
|
"QT_MINOR_VERSION",
|
||||||
|
"QT_PATCH_VERSION",
|
||||||
|
"QT_VERSION",
|
||||||
|
"RCC_DIR",
|
||||||
|
"RC_FILE",
|
||||||
|
"REQUIRES",
|
||||||
|
"RESOURCES",
|
||||||
|
"RES_FILE",
|
||||||
|
"RSS_RULES",
|
||||||
|
"SIGNATURE_FILE",
|
||||||
|
"SOURCES",
|
||||||
|
"SRCMOC",
|
||||||
|
"STATECHARTS",
|
||||||
|
"SUBDIRS",
|
||||||
|
"TARGET",
|
||||||
|
"TEMPLATE",
|
||||||
|
"TRANSLATIONS",
|
||||||
|
"UICIMPLS",
|
||||||
|
"UICOBJECTS",
|
||||||
|
"UI_DIR",
|
||||||
|
"UI_HEADERS_DIR",
|
||||||
|
"UI_SOURCES_DIR",
|
||||||
|
"VERSION",
|
||||||
|
"VERSION_PE_HEADER",
|
||||||
|
"VER_MAJ",
|
||||||
|
"VER_MIN",
|
||||||
|
"VER_PAT",
|
||||||
|
"VPATH",
|
||||||
|
"YACCIMPLS",
|
||||||
|
"YACCOBJECTS",
|
||||||
|
"YACCSOURCES",
|
||||||
|
"_PRO_FILE_",
|
||||||
|
"_PRO_FILE_PWD_"},
|
||||||
|
QStringList{ // functions
|
||||||
|
"CONFIG",
|
||||||
|
"absolute_path",
|
||||||
|
"basename",
|
||||||
|
"cache",
|
||||||
|
"cat",
|
||||||
|
"clean_path",
|
||||||
|
"clear",
|
||||||
|
"contains",
|
||||||
|
"count",
|
||||||
|
"debug",
|
||||||
|
"defined",
|
||||||
|
"dirname",
|
||||||
|
"enumerate_vars",
|
||||||
|
"equals",
|
||||||
|
"error",
|
||||||
|
"escape_expand",
|
||||||
|
"eval",
|
||||||
|
"exists",
|
||||||
|
"export",
|
||||||
|
"files",
|
||||||
|
"find",
|
||||||
|
"first",
|
||||||
|
"for",
|
||||||
|
"format_number",
|
||||||
|
"fromfile",
|
||||||
|
"getenv",
|
||||||
|
"greaterThan",
|
||||||
|
"if",
|
||||||
|
"include",
|
||||||
|
"infile",
|
||||||
|
"isActiveConfig",
|
||||||
|
"isEmpty",
|
||||||
|
"isEqual",
|
||||||
|
"join",
|
||||||
|
"last",
|
||||||
|
"lessThan",
|
||||||
|
"list",
|
||||||
|
"load",
|
||||||
|
"log",
|
||||||
|
"lower",
|
||||||
|
"member",
|
||||||
|
"message",
|
||||||
|
"mkpath",
|
||||||
|
"packagesExist",
|
||||||
|
"parseJson",
|
||||||
|
"prompt",
|
||||||
|
"quote",
|
||||||
|
"re_escape",
|
||||||
|
"relative_path",
|
||||||
|
"replace",
|
||||||
|
"requires",
|
||||||
|
"resolve_depends",
|
||||||
|
"reverse",
|
||||||
|
"section",
|
||||||
|
"shadowed",
|
||||||
|
"shell_path",
|
||||||
|
"shell_quote",
|
||||||
|
"size",
|
||||||
|
"sort_depends",
|
||||||
|
"split",
|
||||||
|
"sprintf",
|
||||||
|
"system",
|
||||||
|
"system_path",
|
||||||
|
"system_quote",
|
||||||
|
"title",
|
||||||
|
"touch",
|
||||||
|
"unique",
|
||||||
|
"unset",
|
||||||
|
"upper",
|
||||||
|
"val_escape",
|
||||||
|
"warning",
|
||||||
|
"write_file"});
|
||||||
|
return keywords;
|
||||||
}
|
}
|
||||||
|
@@ -25,29 +25,11 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <texteditor/codeassist/completionassistprovider.h>
|
namespace TextEditor { class Keywords; }
|
||||||
|
|
||||||
#include <QStringList>
|
|
||||||
|
|
||||||
namespace QmakeProjectManager {
|
namespace QmakeProjectManager {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class ProFileCompletionAssistProvider : public TextEditor::CompletionAssistProvider
|
const TextEditor::Keywords &qmakeKeywords();
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
void init();
|
|
||||||
~ProFileCompletionAssistProvider();
|
|
||||||
|
|
||||||
TextEditor::IAssistProcessor *createProcessor() const override;
|
|
||||||
QStringList variables() const;
|
|
||||||
QStringList functions() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
QStringList m_variables;
|
|
||||||
QStringList m_functions;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace QmakeProjectManager
|
} // namespace QmakeProjectManager
|
||||||
|
@@ -182,16 +182,14 @@ ProFileEditorFactory::ProFileEditorFactory()
|
|||||||
setDocumentCreator(createProFileDocument);
|
setDocumentCreator(createProFileDocument);
|
||||||
setEditorWidgetCreator([]() { return new ProFileEditorWidget; });
|
setEditorWidgetCreator([]() { return new ProFileEditorWidget; });
|
||||||
|
|
||||||
ProFileCompletionAssistProvider *pcap = new ProFileCompletionAssistProvider;
|
setCompletionAssistProvider(new KeywordsCompletionAssistProvider(qmakeKeywords()));
|
||||||
setCompletionAssistProvider(pcap);
|
|
||||||
|
|
||||||
setCommentDefinition(Utils::CommentDefinition::HashStyle);
|
setCommentDefinition(Utils::CommentDefinition::HashStyle);
|
||||||
setEditorActionHandlers(TextEditorActionHandler::UnCommentSelection
|
setEditorActionHandlers(TextEditorActionHandler::UnCommentSelection
|
||||||
| TextEditorActionHandler::JumpToFileUnderCursor);
|
| TextEditorActionHandler::JumpToFileUnderCursor);
|
||||||
|
|
||||||
Keywords keywords(pcap->variables(), pcap->functions(), QMap<QString, QStringList>());
|
addHoverHandler(new ProFileHoverHandler);
|
||||||
addHoverHandler(new ProFileHoverHandler(keywords));
|
setSyntaxHighlighterCreator([]() { return new ProFileHighlighter; });
|
||||||
setSyntaxHighlighterCreator([keywords]() { return new ProFileHighlighter(keywords); });
|
|
||||||
|
|
||||||
const QString defaultOverlay = QLatin1String(ProjectExplorer::Constants::FILEOVERLAY_QT);
|
const QString defaultOverlay = QLatin1String(ProjectExplorer::Constants::FILEOVERLAY_QT);
|
||||||
Core::FileIconProvider::registerIconOverlayForSuffix(
|
Core::FileIconProvider::registerIconOverlayForSuffix(
|
||||||
|
@@ -53,7 +53,7 @@ static TextStyle styleForFormat(int format)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ProFileHighlighter::ProFileHighlighter(const Keywords &keywords)
|
ProFileHighlighter::ProFileHighlighter(const Keywords &keywords)
|
||||||
: m_keywords(keywords)
|
: m_keywords(qmakeKeywords())
|
||||||
{
|
{
|
||||||
setTextFormatCategories(NumProfileFormats, styleForFormat);
|
setTextFormatCategories(NumProfileFormats, styleForFormat);
|
||||||
}
|
}
|
||||||
|
@@ -39,8 +39,8 @@ using namespace Core;
|
|||||||
namespace QmakeProjectManager {
|
namespace QmakeProjectManager {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
ProFileHoverHandler::ProFileHoverHandler(const TextEditor::Keywords &keywords)
|
ProFileHoverHandler::ProFileHoverHandler()
|
||||||
: m_keywords(keywords)
|
: m_keywords(qmakeKeywords())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user