forked from qt-creator/qt-creator
Android: Use FilePath in JavaLanguageServer
Change-Id: Ifaaf95c7463db634a08072e5c988bfc75237f8eb Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
@@ -60,7 +60,7 @@ public:
|
|||||||
|
|
||||||
QString name() const { return m_name->text(); }
|
QString name() const { return m_name->text(); }
|
||||||
FilePath java() const { return m_java->filePath(); }
|
FilePath java() const { return m_java->filePath(); }
|
||||||
QString languageServer() const { return m_ls->filePath().toString(); }
|
FilePath languageServer() const { return m_ls->filePath(); }
|
||||||
QString workspace() const { return m_workspace->filePath().toString(); }
|
QString workspace() const { return m_workspace->filePath().toString(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -92,7 +92,7 @@ JLSSettingsWidget::JLSSettingsWidget(const JLSSettings *settings, QWidget *paren
|
|||||||
m_ls->setExpectedKind(Utils::PathChooser::File);
|
m_ls->setExpectedKind(Utils::PathChooser::File);
|
||||||
m_ls->lineEdit()->setPlaceholderText(tr("Path to equinox launcher jar"));
|
m_ls->lineEdit()->setPlaceholderText(tr("Path to equinox launcher jar"));
|
||||||
m_ls->setPromptDialogFilter("org.eclipse.equinox.launcher_*.jar");
|
m_ls->setPromptDialogFilter("org.eclipse.equinox.launcher_*.jar");
|
||||||
m_ls->setPath(QDir::toNativeSeparators(settings->m_languageServer));
|
m_ls->setFilePath(settings->m_languageServer);
|
||||||
mainLayout->addWidget(m_ls, row, 1);
|
mainLayout->addWidget(m_ls, row, 1);
|
||||||
|
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
@@ -131,8 +131,7 @@ bool JLSSettings::applyFromSettingsWidget(QWidget *widget)
|
|||||||
"-jar \"%1\" "
|
"-jar \"%1\" "
|
||||||
"-configuration \"%2\"";
|
"-configuration \"%2\"";
|
||||||
|
|
||||||
QFileInfo languageServerFileInfo(m_languageServer);
|
QDir configDir = m_languageServer.toFileInfo().absoluteDir();
|
||||||
QDir configDir = languageServerFileInfo.absoluteDir();
|
|
||||||
if (configDir.exists()) {
|
if (configDir.exists()) {
|
||||||
configDir.cdUp();
|
configDir.cdUp();
|
||||||
if constexpr (HostOsInfo::hostOs() == OsTypeWindows)
|
if constexpr (HostOsInfo::hostOs() == OsTypeWindows)
|
||||||
@@ -143,7 +142,7 @@ bool JLSSettings::applyFromSettingsWidget(QWidget *widget)
|
|||||||
configDir.cd("config_mac");
|
configDir.cd("config_mac");
|
||||||
}
|
}
|
||||||
if (configDir.exists()) {
|
if (configDir.exists()) {
|
||||||
arguments = arguments.arg(m_languageServer, configDir.absolutePath());
|
arguments = arguments.arg(m_languageServer.toString(), configDir.absolutePath());
|
||||||
changed |= m_arguments != arguments;
|
changed |= m_arguments != arguments;
|
||||||
m_arguments = arguments;
|
m_arguments = arguments;
|
||||||
}
|
}
|
||||||
@@ -163,14 +162,14 @@ bool JLSSettings::isValid() const
|
|||||||
QVariantMap JLSSettings::toMap() const
|
QVariantMap JLSSettings::toMap() const
|
||||||
{
|
{
|
||||||
QVariantMap map = StdIOSettings::toMap();
|
QVariantMap map = StdIOSettings::toMap();
|
||||||
map.insert(languageServerKey, m_languageServer);
|
map.insert(languageServerKey, m_languageServer.toVariant());
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
void JLSSettings::fromMap(const QVariantMap &map)
|
void JLSSettings::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
StdIOSettings::fromMap(map);
|
StdIOSettings::fromMap(map);
|
||||||
m_languageServer = map[languageServerKey].toString();
|
m_languageServer = FilePath::fromVariant(map[languageServerKey]);
|
||||||
}
|
}
|
||||||
|
|
||||||
LanguageClient::BaseSettings *JLSSettings::copy() const
|
LanguageClient::BaseSettings *JLSSettings::copy() const
|
||||||
@@ -269,8 +268,8 @@ static void generateProjectFile(const FilePath &projectDir,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void generateClassPathFile(const FilePath &projectDir,
|
static void generateClassPathFile(const FilePath &projectDir,
|
||||||
const QString &sourceDir,
|
const FilePath &sourceDir,
|
||||||
const QStringList &libs)
|
const FilePaths &libs)
|
||||||
{
|
{
|
||||||
const FilePath classPathFilePath = projectDir.pathAppended(".classpath");
|
const FilePath classPathFilePath = projectDir.pathAppended(".classpath");
|
||||||
QFile classPathFile(classPathFilePath.toString());
|
QFile classPathFile(classPathFilePath.toString());
|
||||||
@@ -283,14 +282,14 @@ static void generateClassPathFile(const FilePath &projectDir,
|
|||||||
writer.writeStartElement("classpath");
|
writer.writeStartElement("classpath");
|
||||||
writer.writeEmptyElement("classpathentry");
|
writer.writeEmptyElement("classpathentry");
|
||||||
writer.writeAttribute("kind", "src");
|
writer.writeAttribute("kind", "src");
|
||||||
writer.writeAttribute("path", sourceDir);
|
writer.writeAttribute("path", sourceDir.toString());
|
||||||
writer.writeEmptyElement("classpathentry");
|
writer.writeEmptyElement("classpathentry");
|
||||||
writer.writeAttribute("kind", "src");
|
writer.writeAttribute("kind", "src");
|
||||||
writer.writeAttribute("path", "qtSrc");
|
writer.writeAttribute("path", "qtSrc");
|
||||||
for (const QString &lib : libs) {
|
for (const FilePath &lib : libs) {
|
||||||
writer.writeEmptyElement("classpathentry");
|
writer.writeEmptyElement("classpathentry");
|
||||||
writer.writeAttribute("kind", "lib");
|
writer.writeAttribute("kind", "lib");
|
||||||
writer.writeAttribute("path", lib);
|
writer.writeAttribute("path", lib.toString());
|
||||||
}
|
}
|
||||||
writer.writeEndElement(); // classpath
|
writer.writeEndElement(); // classpath
|
||||||
writer.writeEndDocument();
|
writer.writeEndDocument();
|
||||||
@@ -323,14 +322,12 @@ void JLSClient::updateProjectFiles()
|
|||||||
sourceDir = sourceDir.relativeChildPath(projectDir);
|
sourceDir = sourceDir.relativeChildPath(projectDir);
|
||||||
const FilePath &sdkLocation = AndroidConfigurations::currentConfig().sdkLocation();
|
const FilePath &sdkLocation = AndroidConfigurations::currentConfig().sdkLocation();
|
||||||
const QString &targetSDK = AndroidManager::buildTargetSDK(m_currentTarget);
|
const QString &targetSDK = AndroidManager::buildTargetSDK(m_currentTarget);
|
||||||
const QString androidJar = QString("%1/platforms/%2/android.jar")
|
const FilePath androidJar = sdkLocation / QString("platforms/%2/android.jar")
|
||||||
.arg(sdkLocation.toString(), targetSDK);
|
.arg(targetSDK);
|
||||||
QStringList libs(androidJar);
|
FilePaths libs = {androidJar};
|
||||||
QDir libDir(packageSourceDir.pathAppended("libs").toString());
|
libs << packageSourceDir.pathAppended("libs").dirEntries({"*.jar"}, QDir::Files);
|
||||||
libs << Utils::transform(libDir.entryInfoList({"*.jar"}, QDir::Files),
|
|
||||||
&QFileInfo::absoluteFilePath);
|
|
||||||
generateProjectFile(projectDir, qtSrc, project()->displayName());
|
generateProjectFile(projectDir, qtSrc, project()->displayName());
|
||||||
generateClassPathFile(projectDir, sourceDir.toString(), libs);
|
generateClassPathFile(projectDir, sourceDir, libs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -42,9 +42,9 @@ public:
|
|||||||
void fromMap(const QVariantMap &map) final;
|
void fromMap(const QVariantMap &map) final;
|
||||||
LanguageClient::BaseSettings *copy() const final;
|
LanguageClient::BaseSettings *copy() const final;
|
||||||
LanguageClient::Client *createClient(LanguageClient::BaseClientInterface *interface) const final;
|
LanguageClient::Client *createClient(LanguageClient::BaseClientInterface *interface) const final;
|
||||||
LanguageClient::BaseClientInterface *createInterface() const override;
|
LanguageClient::BaseClientInterface *createInterface() const final;
|
||||||
|
|
||||||
QString m_languageServer;
|
Utils::FilePath m_languageServer;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
JLSSettings(const JLSSettings &other) = default;
|
JLSSettings(const JLSSettings &other) = default;
|
||||||
|
Reference in New Issue
Block a user