Bug 562498: Remove Arduino plug-ins from CDT
The CDT Arduino plug-ins and features have been removed. Arduino can still be used with CDT with manual maintenance of packages, etc. Or a third-party add-on such as Sloeber can be used as a replacement. Change-Id: I2f8c96e932ce87e1baed91d5eb78de05f3fb4bee
|
@ -36,6 +36,7 @@
|
|||
<li><a href="#internals">Previously exported packages that were not API are now correctly marked as such.</a></li>
|
||||
<li><a href="#activators">Activators removed for all bundles where possible.</a></li>
|
||||
<li><a href="#NewClassCreationWizardPage">NewClassCreationWizardPage breaking changes.</a></li>
|
||||
<li><a href="#arduino">Arduino plug-ins and features removed.</a></li>
|
||||
</ol>
|
||||
<p>
|
||||
Planned Removals after June 2022
|
||||
|
@ -109,6 +110,25 @@
|
|||
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=561770" target="_blank">Bug 561770</a>.
|
||||
</p>
|
||||
|
||||
<h3>5. <a name="arduino">Arduino plug-ins and features removed.</a></h3>
|
||||
<p>
|
||||
The CDT Arduino plug-ins and features have been removed. Arduino can still be used with CDT with manual maintenance
|
||||
of packages, etc. Or a third-party add-on such as <a href="https://eclipse.baeyens.it/">Sloeber</a> can be used as a
|
||||
replacement.
|
||||
</p>
|
||||
<p>
|
||||
The bundles and features that have been removed are:
|
||||
<ul>
|
||||
<li>org.eclipse.cdt.arduino-feature</li>
|
||||
<li>org.eclipse.cdt.arduino.core.tests</li>
|
||||
<li>org.eclipse.cdt.arduino.core</li>
|
||||
<li>org.eclipse.cdt.arduino.ui</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498" target="_blank">Bug 562498</a>.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Future Deletions</h2>
|
||||
|
|
4
pom.xml
|
@ -233,10 +233,6 @@
|
|||
<module>testsrunner/org.eclipse.cdt.testsrunner.tap</module>
|
||||
<module>testsrunner/org.eclipse.cdt.testsrunner.feature</module>
|
||||
|
||||
<module>toolchains/arduino/org.eclipse.cdt.arduino.core</module>
|
||||
<module>toolchains/arduino/org.eclipse.cdt.arduino.ui</module>
|
||||
<module>toolchains/arduino/org.eclipse.cdt.arduino-feature</module>
|
||||
|
||||
<module>upc/org.eclipse.cdt.core.parser.upc</module>
|
||||
<module>upc/org.eclipse.cdt.core.parser.upc.feature</module>
|
||||
<module>upc/org.eclipse.cdt.core.parser.upc.sdk.branding</module>
|
||||
|
|
|
@ -73,8 +73,6 @@
|
|||
<targlet
|
||||
name="${scope.project.label}"
|
||||
activeRepositoryList="CDT Latest Released">
|
||||
<requirement
|
||||
name="org.eclipse.cdt.arduino.feature.group"/>
|
||||
<requirement
|
||||
name="org.eclipse.cdt.autotools.feature.group"/>
|
||||
<requirement
|
||||
|
|
|
@ -141,12 +141,6 @@
|
|||
<feature url="features/org.eclipse.cdt.debug.standalone.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.debug.standalone.source" version="0.0.0">
|
||||
<category name="extra"/>
|
||||
</feature>
|
||||
<feature url="features/org.eclipse.cdt.arduino_0.0.0.qualifier.jar" id="org.eclipse.cdt.arduino" version="0.0.0">
|
||||
<category name="extra"/>
|
||||
</feature>
|
||||
<feature url="features/org.eclipse.cdt.arduino.source_0.0.0.qualifier.jar" id="org.eclipse.cdt.arduino.source" version="0.0.0">
|
||||
<category name="extra"/>
|
||||
</feature>
|
||||
<feature url="features/org.eclipse.cdt.cmake_0.0.0.qualifier.jar" id="org.eclipse.cdt.cmake" version="0.0.0">
|
||||
<category name="extra"/>
|
||||
</feature>
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
<repository location="https://download.eclipse.org/tm4e/releases/0.3.4/"/>
|
||||
</location>
|
||||
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
|
||||
<unit id="org.eclipse.cdt.arduino.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.cdt.autotools.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.cdt.build.crossgcc.feature.group" version="0.0.0"/>
|
||||
<unit id="org.eclipse.cdt.bupc.feature.group" version="0.0.0"/>
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
/target/
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.eclipse.cdt.arduino-feature</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.FeatureBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.FeatureNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,4 +0,0 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -1,17 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
bin.includes = feature.xml,\
|
||||
feature.properties
|
|
@ -1,36 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
# features.properties
|
||||
# contains externalized strings for feature.xml
|
||||
# "%foo" in feature.xml corresponds to the key "foo" in this file
|
||||
# java.io.Properties file (ISO 8859-1 with "\" escapes)
|
||||
# This file should be translated.
|
||||
|
||||
# "featureName" property - name of the feature
|
||||
featureName=C/C++ Arduino Tools
|
||||
|
||||
# "providerName" property - name of the company that provides the feature
|
||||
providerName=Eclipse CDT
|
||||
|
||||
# "description" property - description of the feature
|
||||
description=Extensions to support Arduino C++ projects in Eclipse
|
||||
|
||||
# copyright
|
||||
copyright=\
|
||||
Copyright (c) 2015-2020 QNX Software Systems and others.\n\
|
||||
This program and the accompanying materials\n\
|
||||
are made available under the terms of the Eclipse Public License 2.0\n\
|
||||
which accompanies this distribution, and is available at\n\
|
||||
https://www.eclipse.org/legal/epl-2.0/
|
|
@ -1,67 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2015-2020 QNX Software Systems and others
|
||||
|
||||
This program and the accompanying materials are made available under the
|
||||
terms of the Eclipse Public License 2.0 which is available at
|
||||
https://www.eclipse.org/legal/epl-2.0/.
|
||||
|
||||
SPDX-License-Identifier: EPL-2.0
|
||||
|
||||
Contributors:
|
||||
QNX Software Systems - initial API and implementation
|
||||
Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
-->
|
||||
<feature
|
||||
id="org.eclipse.cdt.arduino"
|
||||
label="%featureName"
|
||||
version="10.0.0.qualifier"
|
||||
provider-name="%providerName"
|
||||
plugin="org.eclipse.cdt.arduino.ui"
|
||||
license-feature="org.eclipse.license"
|
||||
license-feature-version="0.0.0">
|
||||
|
||||
<description>
|
||||
%description
|
||||
</description>
|
||||
|
||||
<copyright>
|
||||
%copyright
|
||||
</copyright>
|
||||
|
||||
<license url="%licenseURL">
|
||||
%license
|
||||
</license>
|
||||
|
||||
<requires>
|
||||
<import feature="org.eclipse.launchbar" version="1.0.0"/>
|
||||
<import feature="org.eclipse.remote.serial" version="1.0.0"/>
|
||||
<import feature="org.eclipse.remote" version="2.0.0"/>
|
||||
<import feature="org.eclipse.remote.console" version="2.0.0"/>
|
||||
<import feature="org.eclipse.cdt" version="10.0.0"/>
|
||||
<import feature="org.eclipse.launchbar.remote" version="1.0.0"/>
|
||||
</requires>
|
||||
|
||||
<plugin
|
||||
id="org.eclipse.cdt.arduino.core"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.eclipse.cdt.arduino.ui"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.eclipse.tools.templates.freemarker.java11"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
fragment="true"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
|
@ -1,3 +0,0 @@
|
|||
instructions.configure=\
|
||||
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(location:http${#58}//download.eclipse.org/tools/cdt/arduino/neon/,type:0,name:Arduino Neon,enabled:true); \
|
||||
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(location:http${#58}//download.eclipse.org/tools/cdt/arduino/neon/,type:1,name:Arduino Neon,enabled:true);
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -1 +0,0 @@
|
|||
/bin/
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.eclipse.cdt.arduino.core.tests</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,464 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
|
||||
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
|
||||
org.eclipse.jdt.core.builder.invalidClasspath=abort
|
||||
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
|
||||
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
|
||||
org.eclipse.jdt.core.circularClasspath=error
|
||||
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
|
||||
org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
|
||||
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
|
||||
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
|
||||
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.localPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.localSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
|
||||
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
|
||||
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
|
||||
org.eclipse.jdt.core.compiler.problem.APILeak=warning
|
||||
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
|
||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
|
||||
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
|
||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
|
||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_with_spaces=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
|
||||
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=tab
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=true
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
|
||||
org.eclipse.jdt.core.incompleteClasspath=error
|
||||
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
|
|
@ -1,3 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
|
||||
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
|
|
@ -1,133 +0,0 @@
|
|||
cleanup.add_default_serial_version_id=true
|
||||
cleanup.add_generated_serial_version_id=false
|
||||
cleanup.add_missing_annotations=true
|
||||
cleanup.add_missing_deprecated_annotations=true
|
||||
cleanup.add_missing_methods=false
|
||||
cleanup.add_missing_nls_tags=false
|
||||
cleanup.add_missing_override_annotations=true
|
||||
cleanup.add_missing_override_annotations_interface_methods=true
|
||||
cleanup.add_serial_version_id=false
|
||||
cleanup.always_use_blocks=true
|
||||
cleanup.always_use_parentheses_in_expressions=false
|
||||
cleanup.always_use_this_for_non_static_field_access=false
|
||||
cleanup.always_use_this_for_non_static_method_access=false
|
||||
cleanup.convert_functional_interfaces=false
|
||||
cleanup.convert_to_enhanced_for_loop=false
|
||||
cleanup.correct_indentation=false
|
||||
cleanup.format_source_code=true
|
||||
cleanup.format_source_code_changes_only=false
|
||||
cleanup.insert_inferred_type_arguments=false
|
||||
cleanup.make_local_variable_final=true
|
||||
cleanup.make_parameters_final=false
|
||||
cleanup.make_private_fields_final=true
|
||||
cleanup.make_type_abstract_if_missing_method=false
|
||||
cleanup.make_variable_declarations_final=false
|
||||
cleanup.never_use_blocks=false
|
||||
cleanup.never_use_parentheses_in_expressions=true
|
||||
cleanup.organize_imports=true
|
||||
cleanup.qualify_static_field_accesses_with_declaring_class=false
|
||||
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
||||
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
||||
cleanup.qualify_static_member_accesses_with_declaring_class=false
|
||||
cleanup.qualify_static_method_accesses_with_declaring_class=false
|
||||
cleanup.remove_private_constructors=true
|
||||
cleanup.remove_redundant_modifiers=false
|
||||
cleanup.remove_redundant_semicolons=true
|
||||
cleanup.remove_redundant_type_arguments=true
|
||||
cleanup.remove_trailing_whitespaces=true
|
||||
cleanup.remove_trailing_whitespaces_all=true
|
||||
cleanup.remove_trailing_whitespaces_ignore_empty=false
|
||||
cleanup.remove_unnecessary_casts=true
|
||||
cleanup.remove_unnecessary_nls_tags=false
|
||||
cleanup.remove_unused_imports=true
|
||||
cleanup.remove_unused_local_variables=false
|
||||
cleanup.remove_unused_private_fields=true
|
||||
cleanup.remove_unused_private_members=false
|
||||
cleanup.remove_unused_private_methods=true
|
||||
cleanup.remove_unused_private_types=true
|
||||
cleanup.sort_members=false
|
||||
cleanup.sort_members_all=false
|
||||
cleanup.use_anonymous_class_creation=false
|
||||
cleanup.use_blocks=false
|
||||
cleanup.use_blocks_only_for_return_and_throw=false
|
||||
cleanup.use_lambda=true
|
||||
cleanup.use_parentheses_in_expressions=false
|
||||
cleanup.use_this_for_non_static_field_access=false
|
||||
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
||||
cleanup.use_this_for_non_static_method_access=false
|
||||
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|
||||
cleanup_profile=_CDT
|
||||
cleanup_settings_version=2
|
||||
eclipse.preferences.version=1
|
||||
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
|
||||
formatter_profile=_CDT
|
||||
formatter_settings_version=14
|
||||
internal.default.compliance=user
|
||||
org.eclipse.jdt.ui.exception.name=e
|
||||
org.eclipse.jdt.ui.gettersetter.use.is=true
|
||||
org.eclipse.jdt.ui.ignorelowercasenames=true
|
||||
org.eclipse.jdt.ui.importorder=java;javax;org;com;
|
||||
org.eclipse.jdt.ui.keywordthis=false
|
||||
org.eclipse.jdt.ui.ondemandthreshold=1000
|
||||
org.eclipse.jdt.ui.overrideannotation=true
|
||||
org.eclipse.jdt.ui.staticondemandthreshold=1000
|
||||
org.eclipse.jdt.ui.text.custom_code_templates=
|
||||
sp_cleanup.add_default_serial_version_id=true
|
||||
sp_cleanup.add_generated_serial_version_id=false
|
||||
sp_cleanup.add_missing_annotations=true
|
||||
sp_cleanup.add_missing_deprecated_annotations=true
|
||||
sp_cleanup.add_missing_methods=false
|
||||
sp_cleanup.add_missing_nls_tags=false
|
||||
sp_cleanup.add_missing_override_annotations=true
|
||||
sp_cleanup.add_missing_override_annotations_interface_methods=true
|
||||
sp_cleanup.add_serial_version_id=false
|
||||
sp_cleanup.always_use_blocks=true
|
||||
sp_cleanup.always_use_parentheses_in_expressions=false
|
||||
sp_cleanup.always_use_this_for_non_static_field_access=false
|
||||
sp_cleanup.always_use_this_for_non_static_method_access=false
|
||||
sp_cleanup.convert_functional_interfaces=false
|
||||
sp_cleanup.convert_to_enhanced_for_loop=false
|
||||
sp_cleanup.correct_indentation=false
|
||||
sp_cleanup.format_source_code=true
|
||||
sp_cleanup.format_source_code_changes_only=false
|
||||
sp_cleanup.insert_inferred_type_arguments=false
|
||||
sp_cleanup.make_local_variable_final=true
|
||||
sp_cleanup.make_parameters_final=false
|
||||
sp_cleanup.make_private_fields_final=true
|
||||
sp_cleanup.make_type_abstract_if_missing_method=false
|
||||
sp_cleanup.make_variable_declarations_final=false
|
||||
sp_cleanup.never_use_blocks=false
|
||||
sp_cleanup.never_use_parentheses_in_expressions=true
|
||||
sp_cleanup.on_save_use_additional_actions=true
|
||||
sp_cleanup.organize_imports=true
|
||||
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
|
||||
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
||||
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
||||
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
|
||||
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
|
||||
sp_cleanup.remove_private_constructors=true
|
||||
sp_cleanup.remove_redundant_modifiers=false
|
||||
sp_cleanup.remove_redundant_semicolons=true
|
||||
sp_cleanup.remove_redundant_type_arguments=true
|
||||
sp_cleanup.remove_trailing_whitespaces=true
|
||||
sp_cleanup.remove_trailing_whitespaces_all=true
|
||||
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
|
||||
sp_cleanup.remove_unnecessary_casts=true
|
||||
sp_cleanup.remove_unnecessary_nls_tags=false
|
||||
sp_cleanup.remove_unused_imports=true
|
||||
sp_cleanup.remove_unused_local_variables=false
|
||||
sp_cleanup.remove_unused_private_fields=true
|
||||
sp_cleanup.remove_unused_private_members=false
|
||||
sp_cleanup.remove_unused_private_methods=true
|
||||
sp_cleanup.remove_unused_private_types=true
|
||||
sp_cleanup.sort_members=false
|
||||
sp_cleanup.sort_members_all=false
|
||||
sp_cleanup.use_anonymous_class_creation=false
|
||||
sp_cleanup.use_blocks=false
|
||||
sp_cleanup.use_blocks_only_for_return_and_throw=false
|
||||
sp_cleanup.use_lambda=true
|
||||
sp_cleanup.use_parentheses_in_expressions=false
|
||||
sp_cleanup.use_this_for_non_static_field_access=false
|
||||
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
||||
sp_cleanup.use_this_for_non_static_method_access=false
|
||||
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|
|
@ -1,184 +0,0 @@
|
|||
ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
|
||||
API_USE_SCAN_FIELD_SEVERITY=Error
|
||||
API_USE_SCAN_METHOD_SEVERITY=Error
|
||||
API_USE_SCAN_TYPE_SEVERITY=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
|
||||
ILLEGAL_EXTEND=Warning
|
||||
ILLEGAL_IMPLEMENT=Warning
|
||||
ILLEGAL_INSTANTIATE=Warning
|
||||
ILLEGAL_OVERRIDE=Warning
|
||||
ILLEGAL_REFERENCE=Warning
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
INVALID_ANNOTATION=Ignore
|
||||
INVALID_JAVADOC_TAG=Error
|
||||
INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
|
||||
LEAK_EXTEND=Warning
|
||||
LEAK_FIELD_DECL=Warning
|
||||
LEAK_IMPLEMENT=Warning
|
||||
LEAK_METHOD_PARAM=Warning
|
||||
LEAK_METHOD_RETURN_TYPE=Warning
|
||||
METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
MISSING_EE_DESCRIPTIONS=Warning
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
UNUSED_PROBLEM_FILTERS=Warning
|
||||
automatically_removed_unused_problem_filters=false
|
||||
changed_execution_env=Error
|
||||
eclipse.preferences.version=1
|
||||
incompatible_api_component_version=Error
|
||||
incompatible_api_component_version_include_major_without_breaking_change=Disabled
|
||||
incompatible_api_component_version_include_minor_without_api_change=Disabled
|
||||
incompatible_api_component_version_report_major_without_breaking_change=Warning
|
||||
incompatible_api_component_version_report_minor_without_api_change=Warning
|
||||
invalid_since_tag_version=Error
|
||||
malformed_since_tag=Error
|
||||
missing_since_tag=Error
|
||||
report_api_breakage_when_major_version_incremented=Disabled
|
||||
report_resolution_errors_api_component=Warning
|
|
@ -1,35 +0,0 @@
|
|||
compilers.f.unresolved-features=1
|
||||
compilers.f.unresolved-plugins=1
|
||||
compilers.incompatible-environment=1
|
||||
compilers.p.build=1
|
||||
compilers.p.build.bin.includes=1
|
||||
compilers.p.build.encodings=2
|
||||
compilers.p.build.java.compiler=2
|
||||
compilers.p.build.java.compliance=1
|
||||
compilers.p.build.missing.output=2
|
||||
compilers.p.build.output.library=1
|
||||
compilers.p.build.source.library=1
|
||||
compilers.p.build.src.includes=1
|
||||
compilers.p.deprecated=1
|
||||
compilers.p.discouraged-class=1
|
||||
compilers.p.internal=1
|
||||
compilers.p.missing-packages=2
|
||||
compilers.p.missing-version-export-package=2
|
||||
compilers.p.missing-version-import-package=2
|
||||
compilers.p.missing-version-require-bundle=2
|
||||
compilers.p.no-required-att=0
|
||||
compilers.p.no.automatic.module=1
|
||||
compilers.p.not-externalized-att=2
|
||||
compilers.p.service.component.without.lazyactivation=1
|
||||
compilers.p.unknown-attribute=1
|
||||
compilers.p.unknown-class=1
|
||||
compilers.p.unknown-element=1
|
||||
compilers.p.unknown-identifier=1
|
||||
compilers.p.unknown-resource=1
|
||||
compilers.p.unresolved-ex-points=0
|
||||
compilers.p.unresolved-import=0
|
||||
compilers.s.create-docs=false
|
||||
compilers.s.doc-folder=doc
|
||||
compilers.s.open-tags=1
|
||||
compilers.use-project=true
|
||||
eclipse.preferences.version=1
|
|
@ -1,11 +0,0 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %Bundle-Name
|
||||
Bundle-SymbolicName: org.eclipse.cdt.arduino.core.tests
|
||||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-Version: 1.1.0.qualifier
|
||||
Fragment-Host: org.eclipse.cdt.arduino.core;bundle-version="1.0.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Require-Bundle: org.junit;bundle-version="4.12.0"
|
||||
Automatic-Module-Name: org.eclipse.cdt.arduino.core.tests
|
||||
Export-Package: org.eclipse.cdt.arduino.core.tests;x-internal:=true
|
|
@ -1,18 +0,0 @@
|
|||
#Properties file for org.eclipse.cdt.arduino.core.tests
|
||||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
Bundle-Vendor = Eclipse CDT
|
||||
Bundle-Name = C/C++ Arduino Tests
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
||||
<title>About</title>
|
||||
</head>
|
||||
<body lang="EN-US">
|
||||
<h2>About This Content</h2>
|
||||
|
||||
<p>November 30, 2017</p>
|
||||
<h3>License</h3>
|
||||
|
||||
<p>
|
||||
The Eclipse Foundation makes available all content in this plug-in
|
||||
("Content"). Unless otherwise indicated below, the Content
|
||||
is provided to you under the terms and conditions of the Eclipse
|
||||
Public License Version 2.0 ("EPL"). A copy of the EPL is
|
||||
available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
|
||||
For purposes of the EPL, "Program" will mean the Content.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you did not receive this Content directly from the Eclipse
|
||||
Foundation, the Content is being redistributed by another party
|
||||
("Redistributor") and different terms and conditions may
|
||||
apply to your use of any object code in the Content. Check the
|
||||
Redistributor's license that was provided with the Content. If no such
|
||||
license exists, contact the Redistributor. Unless otherwise indicated
|
||||
below, the terms and conditions of the EPL still apply to any source
|
||||
code in the Content and such source code may be obtained at <a
|
||||
href="http://www.eclipse.org/">http://www.eclipse.org</a>.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,22 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
OSGI-INF/,\
|
||||
about.html
|
||||
src.includes = about.html
|
|
@ -1,26 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.tests;
|
||||
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.junit.Test;
|
||||
|
||||
public class BoardManagerTests {
|
||||
|
||||
@Test
|
||||
public void loadPackagesTest() throws Exception {
|
||||
assertNotEquals(0, Activator.getService(ArduinoManager.class).getInstalledPlatforms().size());
|
||||
}
|
||||
|
||||
}
|
|
@ -1,215 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.tests;
|
||||
|
||||
import java.net.URL;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoPreferences;
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoProjectGenerator;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoBoard;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoPlatform;
|
||||
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfiguration;
|
||||
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfigurationProvider;
|
||||
import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection;
|
||||
import org.eclipse.cdt.core.build.ICBuildConfigurationManager;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IWorkspaceRoot;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.jobs.Job;
|
||||
import org.eclipse.remote.core.IRemoteConnection;
|
||||
import org.eclipse.remote.core.IRemoteConnectionType;
|
||||
import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
|
||||
import org.eclipse.remote.core.IRemoteServicesManager;
|
||||
import org.junit.Test;
|
||||
|
||||
@SuppressWarnings("nls")
|
||||
public class FullIntegration {
|
||||
|
||||
private static final ArduinoManager arduinoManager = Activator.getService(ArduinoManager.class);
|
||||
private static final IRemoteServicesManager remoteManager = Activator.getService(IRemoteServicesManager.class);
|
||||
private static final ICBuildConfigurationManager buildConfigManager = Activator
|
||||
.getService(ICBuildConfigurationManager.class);
|
||||
|
||||
private void setBoardUrls() throws Exception {
|
||||
URL[] urls = new URL[] { new URL("http://downloads.arduino.cc/packages/package_index.json"),
|
||||
new URL("https://adafruit.github.io/arduino-board-index/package_adafruit_index.json") };
|
||||
ArduinoPreferences.setBoardUrlList(urls);
|
||||
}
|
||||
|
||||
private Set<ArduinoBoard> getSkipBuild() throws Exception {
|
||||
Set<ArduinoBoard> boards = new HashSet<>();
|
||||
|
||||
// Fails in arduino too
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "robotControl"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "robotMotor"));
|
||||
boards.add(arduinoManager.getBoard("adafruit", "avr", "adafruit32u4"));
|
||||
|
||||
// What is Microsoft doing?
|
||||
boards.add(arduinoManager.getBoard("Microsoft", "win10", "w10iotcore"));
|
||||
|
||||
// TODO Need to add support for menu specific build properties
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "mini"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "lilypad"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "diecimila"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "pro"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "atmegang"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "bt"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "mega"));
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "nano"));
|
||||
boards.add(arduinoManager.getBoard("TeeOnArdu", "avr", "CirPlayTeensyCore"));
|
||||
boards.add(arduinoManager.getBoard("TeeOnArdu", "avr", "FloraTeensyCore"));
|
||||
boards.add(arduinoManager.getBoard("TeeOnArdu", "avr", "TeeOnArdu"));
|
||||
|
||||
if (Platform.getOS().equals(Platform.OS_WIN32)) {
|
||||
// tool chain incorrect?
|
||||
boards.add(arduinoManager.getBoard("Intel", "i586", "izmir_fd"));
|
||||
boards.add(arduinoManager.getBoard("Intel", "i586", "izmir_fg"));
|
||||
boards.add(arduinoManager.getBoard("Intel", "i686", "izmir_ec"));
|
||||
}
|
||||
|
||||
if (Platform.getOS().equals(Platform.OS_LINUX)) {
|
||||
// i586/pokysdk missing
|
||||
boards.add(arduinoManager.getBoard("Intel", "i586", "izmir_fd"));
|
||||
boards.add(arduinoManager.getBoard("Intel", "i586", "izmir_fg"));
|
||||
boards.add(arduinoManager.getBoard("Intel", "i686", "izmir_ec"));
|
||||
}
|
||||
|
||||
return boards;
|
||||
}
|
||||
|
||||
private Set<ArduinoBoard> getSkipUpload() throws Exception {
|
||||
Set<ArduinoBoard> boards = new HashSet<>();
|
||||
|
||||
// missing upload.protocol
|
||||
boards.add(arduinoManager.getBoard("arduino", "avr", "gemma"));
|
||||
boards.add(arduinoManager.getBoard("adafruit", "avr", "gemma"));
|
||||
boards.add(arduinoManager.getBoard("adafruit", "avr", "trinket5"));
|
||||
boards.add(arduinoManager.getBoard("adafruit", "avr", "trinket3"));
|
||||
|
||||
// usbtiny missing
|
||||
boards.add(arduinoManager.getBoard("adafruit", "avr", "protrinket3"));
|
||||
boards.add(arduinoManager.getBoard("adafruit", "avr", "protrinket5"));
|
||||
|
||||
return boards;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void runTest() throws Exception {
|
||||
IProgressMonitor monitor = new SysoutProgressMonitor();
|
||||
|
||||
setArduinoHome();
|
||||
setBoardUrls();
|
||||
loadPlatforms(monitor);
|
||||
|
||||
Set<ArduinoBoard> skipBuild = getSkipBuild();
|
||||
Set<ArduinoBoard> skipUpload = getSkipUpload();
|
||||
IProject project = createProject(monitor);
|
||||
for (ArduinoBoard board : arduinoManager.getInstalledBoards()) {
|
||||
if (!skipBuild.contains(board)) {
|
||||
buildBoard(project, board, !skipUpload.contains(board), monitor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setArduinoHome() throws Exception {
|
||||
Path workspace = Paths.get(ResourcesPlugin.getWorkspace().getRoot().getLocationURI());
|
||||
ArduinoPreferences.setArduinoHome(workspace.resolve(".arduinocdt"));
|
||||
}
|
||||
|
||||
private void loadPlatforms(IProgressMonitor monitor) throws Exception {
|
||||
Collection<ArduinoPlatform> plats = arduinoManager.getAvailablePlatforms(monitor);
|
||||
arduinoManager.installPlatforms(plats, monitor);
|
||||
}
|
||||
|
||||
private IProject createProject(IProgressMonitor monitor) throws Exception {
|
||||
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
|
||||
String projectName = "ArduinoTest";
|
||||
ArduinoProjectGenerator generator = new ArduinoProjectGenerator("templates/cppsketch/manifest.xml"); //$NON-NLS-1$
|
||||
|
||||
Job job = new Job("Create") {
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
try {
|
||||
IProject project = root.getProject(projectName);
|
||||
if (project.exists()) {
|
||||
project.delete(true, monitor);
|
||||
}
|
||||
|
||||
generator.setProjectName(projectName);
|
||||
generator.generate(new HashMap<String, Object>(), monitor);
|
||||
return Status.OK_STATUS;
|
||||
} catch (CoreException e) {
|
||||
return e.getStatus();
|
||||
}
|
||||
}
|
||||
};
|
||||
job.setRule(root);
|
||||
job.schedule();
|
||||
job.join();
|
||||
|
||||
return generator.getProject();
|
||||
}
|
||||
|
||||
private void buildBoard(IProject project, ArduinoBoard board, boolean upload, IProgressMonitor monitor)
|
||||
throws Exception {
|
||||
ArduinoRemoteConnection arduinoTarget = createTarget(board);
|
||||
ArduinoBuildConfigurationProvider provider = (ArduinoBuildConfigurationProvider) buildConfigManager
|
||||
.getProvider(ArduinoBuildConfigurationProvider.ID);
|
||||
ArduinoBuildConfiguration config = provider.getConfiguration(project, arduinoTarget, "run", monitor);
|
||||
|
||||
System.out.println(String.format("Building board: %s\n %s - %s", board.getName(), board.getId(),
|
||||
board.getPlatform().getInstallPath()));
|
||||
|
||||
config.generateMakeFile(monitor);
|
||||
ProcessBuilder processBuilder = new ProcessBuilder().command(config.getBuildCommand())
|
||||
.directory(config.getBuildDirectory().toFile()).inheritIO();
|
||||
config.setBuildEnvironment(processBuilder.environment());
|
||||
Process process = processBuilder.start();
|
||||
int rc = process.waitFor();
|
||||
if (rc != 0) {
|
||||
throw new Exception("Build failed");
|
||||
}
|
||||
|
||||
// Test to make sure we can get the upload command cleanly
|
||||
if (upload) {
|
||||
System.out.println(String.join(" ", config.getUploadCommand("port1")));
|
||||
}
|
||||
}
|
||||
|
||||
private ArduinoRemoteConnection createTarget(ArduinoBoard board) throws Exception {
|
||||
IRemoteConnectionType type = remoteManager.getConnectionType(ArduinoRemoteConnection.TYPE_ID);
|
||||
IRemoteConnection connection = type.getConnection(board.getName());
|
||||
if (connection != null) {
|
||||
type.removeConnection(connection);
|
||||
}
|
||||
|
||||
IRemoteConnectionWorkingCopy workingCopy = type.newConnection(board.getName());
|
||||
ArduinoRemoteConnection.setBoardId(workingCopy, board);
|
||||
ArduinoRemoteConnection.setPortName(workingCopy, "port1");
|
||||
connection = workingCopy.save();
|
||||
|
||||
return connection.getService(ArduinoRemoteConnection.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.tests;
|
||||
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
|
||||
public class SysoutProgressMonitor extends NullProgressMonitor {
|
||||
|
||||
@Override
|
||||
public void beginTask(String name, int totalWork) {
|
||||
if (name.length() > 0) {
|
||||
System.out.println(name);
|
||||
System.out.flush();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subTask(String name) {
|
||||
if (name.length() > 0) {
|
||||
System.out.println(name);
|
||||
System.out.flush();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTaskName(String name) {
|
||||
if (name.length() > 0) {
|
||||
System.out.println(name);
|
||||
System.out.flush();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src/"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -1,2 +0,0 @@
|
|||
/bin/
|
||||
/target/
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.eclipse.cdt.arduino.core</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,464 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
|
||||
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
|
||||
org.eclipse.jdt.core.builder.invalidClasspath=abort
|
||||
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
|
||||
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
|
||||
org.eclipse.jdt.core.circularClasspath=error
|
||||
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
|
||||
org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
|
||||
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
|
||||
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
|
||||
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.localPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.localSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
|
||||
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
|
||||
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
|
||||
org.eclipse.jdt.core.compiler.problem.APILeak=warning
|
||||
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
|
||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
|
||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
|
||||
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
|
||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
|
||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_with_spaces=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
|
||||
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=tab
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=true
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
|
||||
org.eclipse.jdt.core.incompleteClasspath=error
|
||||
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
|
|
@ -1,3 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
|
||||
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
|
|
@ -1,133 +0,0 @@
|
|||
cleanup.add_default_serial_version_id=true
|
||||
cleanup.add_generated_serial_version_id=false
|
||||
cleanup.add_missing_annotations=true
|
||||
cleanup.add_missing_deprecated_annotations=true
|
||||
cleanup.add_missing_methods=false
|
||||
cleanup.add_missing_nls_tags=false
|
||||
cleanup.add_missing_override_annotations=true
|
||||
cleanup.add_missing_override_annotations_interface_methods=true
|
||||
cleanup.add_serial_version_id=false
|
||||
cleanup.always_use_blocks=true
|
||||
cleanup.always_use_parentheses_in_expressions=false
|
||||
cleanup.always_use_this_for_non_static_field_access=false
|
||||
cleanup.always_use_this_for_non_static_method_access=false
|
||||
cleanup.convert_functional_interfaces=false
|
||||
cleanup.convert_to_enhanced_for_loop=false
|
||||
cleanup.correct_indentation=false
|
||||
cleanup.format_source_code=true
|
||||
cleanup.format_source_code_changes_only=false
|
||||
cleanup.insert_inferred_type_arguments=false
|
||||
cleanup.make_local_variable_final=true
|
||||
cleanup.make_parameters_final=false
|
||||
cleanup.make_private_fields_final=true
|
||||
cleanup.make_type_abstract_if_missing_method=false
|
||||
cleanup.make_variable_declarations_final=false
|
||||
cleanup.never_use_blocks=false
|
||||
cleanup.never_use_parentheses_in_expressions=true
|
||||
cleanup.organize_imports=true
|
||||
cleanup.qualify_static_field_accesses_with_declaring_class=false
|
||||
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
||||
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
||||
cleanup.qualify_static_member_accesses_with_declaring_class=false
|
||||
cleanup.qualify_static_method_accesses_with_declaring_class=false
|
||||
cleanup.remove_private_constructors=true
|
||||
cleanup.remove_redundant_modifiers=false
|
||||
cleanup.remove_redundant_semicolons=true
|
||||
cleanup.remove_redundant_type_arguments=true
|
||||
cleanup.remove_trailing_whitespaces=true
|
||||
cleanup.remove_trailing_whitespaces_all=true
|
||||
cleanup.remove_trailing_whitespaces_ignore_empty=false
|
||||
cleanup.remove_unnecessary_casts=true
|
||||
cleanup.remove_unnecessary_nls_tags=false
|
||||
cleanup.remove_unused_imports=true
|
||||
cleanup.remove_unused_local_variables=false
|
||||
cleanup.remove_unused_private_fields=true
|
||||
cleanup.remove_unused_private_members=false
|
||||
cleanup.remove_unused_private_methods=true
|
||||
cleanup.remove_unused_private_types=true
|
||||
cleanup.sort_members=false
|
||||
cleanup.sort_members_all=false
|
||||
cleanup.use_anonymous_class_creation=false
|
||||
cleanup.use_blocks=false
|
||||
cleanup.use_blocks_only_for_return_and_throw=false
|
||||
cleanup.use_lambda=true
|
||||
cleanup.use_parentheses_in_expressions=false
|
||||
cleanup.use_this_for_non_static_field_access=false
|
||||
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
||||
cleanup.use_this_for_non_static_method_access=false
|
||||
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|
||||
cleanup_profile=_CDT
|
||||
cleanup_settings_version=2
|
||||
eclipse.preferences.version=1
|
||||
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
|
||||
formatter_profile=_CDT
|
||||
formatter_settings_version=14
|
||||
internal.default.compliance=user
|
||||
org.eclipse.jdt.ui.exception.name=e
|
||||
org.eclipse.jdt.ui.gettersetter.use.is=true
|
||||
org.eclipse.jdt.ui.ignorelowercasenames=true
|
||||
org.eclipse.jdt.ui.importorder=java;javax;org;com;
|
||||
org.eclipse.jdt.ui.keywordthis=false
|
||||
org.eclipse.jdt.ui.ondemandthreshold=1000
|
||||
org.eclipse.jdt.ui.overrideannotation=true
|
||||
org.eclipse.jdt.ui.staticondemandthreshold=1000
|
||||
org.eclipse.jdt.ui.text.custom_code_templates=
|
||||
sp_cleanup.add_default_serial_version_id=true
|
||||
sp_cleanup.add_generated_serial_version_id=false
|
||||
sp_cleanup.add_missing_annotations=true
|
||||
sp_cleanup.add_missing_deprecated_annotations=true
|
||||
sp_cleanup.add_missing_methods=false
|
||||
sp_cleanup.add_missing_nls_tags=false
|
||||
sp_cleanup.add_missing_override_annotations=true
|
||||
sp_cleanup.add_missing_override_annotations_interface_methods=true
|
||||
sp_cleanup.add_serial_version_id=false
|
||||
sp_cleanup.always_use_blocks=true
|
||||
sp_cleanup.always_use_parentheses_in_expressions=false
|
||||
sp_cleanup.always_use_this_for_non_static_field_access=false
|
||||
sp_cleanup.always_use_this_for_non_static_method_access=false
|
||||
sp_cleanup.convert_functional_interfaces=false
|
||||
sp_cleanup.convert_to_enhanced_for_loop=false
|
||||
sp_cleanup.correct_indentation=false
|
||||
sp_cleanup.format_source_code=true
|
||||
sp_cleanup.format_source_code_changes_only=false
|
||||
sp_cleanup.insert_inferred_type_arguments=false
|
||||
sp_cleanup.make_local_variable_final=true
|
||||
sp_cleanup.make_parameters_final=false
|
||||
sp_cleanup.make_private_fields_final=true
|
||||
sp_cleanup.make_type_abstract_if_missing_method=false
|
||||
sp_cleanup.make_variable_declarations_final=false
|
||||
sp_cleanup.never_use_blocks=false
|
||||
sp_cleanup.never_use_parentheses_in_expressions=true
|
||||
sp_cleanup.on_save_use_additional_actions=true
|
||||
sp_cleanup.organize_imports=true
|
||||
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
|
||||
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
||||
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
||||
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
|
||||
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
|
||||
sp_cleanup.remove_private_constructors=true
|
||||
sp_cleanup.remove_redundant_modifiers=false
|
||||
sp_cleanup.remove_redundant_semicolons=true
|
||||
sp_cleanup.remove_redundant_type_arguments=true
|
||||
sp_cleanup.remove_trailing_whitespaces=true
|
||||
sp_cleanup.remove_trailing_whitespaces_all=true
|
||||
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
|
||||
sp_cleanup.remove_unnecessary_casts=true
|
||||
sp_cleanup.remove_unnecessary_nls_tags=false
|
||||
sp_cleanup.remove_unused_imports=true
|
||||
sp_cleanup.remove_unused_local_variables=false
|
||||
sp_cleanup.remove_unused_private_fields=true
|
||||
sp_cleanup.remove_unused_private_members=false
|
||||
sp_cleanup.remove_unused_private_methods=true
|
||||
sp_cleanup.remove_unused_private_types=true
|
||||
sp_cleanup.sort_members=false
|
||||
sp_cleanup.sort_members_all=false
|
||||
sp_cleanup.use_anonymous_class_creation=false
|
||||
sp_cleanup.use_blocks=false
|
||||
sp_cleanup.use_blocks_only_for_return_and_throw=false
|
||||
sp_cleanup.use_lambda=true
|
||||
sp_cleanup.use_parentheses_in_expressions=false
|
||||
sp_cleanup.use_this_for_non_static_field_access=false
|
||||
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
||||
sp_cleanup.use_this_for_non_static_method_access=false
|
||||
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|
|
@ -1,4 +0,0 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -1,184 +0,0 @@
|
|||
ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
|
||||
API_USE_SCAN_FIELD_SEVERITY=Error
|
||||
API_USE_SCAN_METHOD_SEVERITY=Error
|
||||
API_USE_SCAN_TYPE_SEVERITY=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
|
||||
ILLEGAL_EXTEND=Warning
|
||||
ILLEGAL_IMPLEMENT=Warning
|
||||
ILLEGAL_INSTANTIATE=Warning
|
||||
ILLEGAL_OVERRIDE=Warning
|
||||
ILLEGAL_REFERENCE=Warning
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
INVALID_ANNOTATION=Ignore
|
||||
INVALID_JAVADOC_TAG=Error
|
||||
INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
|
||||
LEAK_EXTEND=Warning
|
||||
LEAK_FIELD_DECL=Warning
|
||||
LEAK_IMPLEMENT=Warning
|
||||
LEAK_METHOD_PARAM=Warning
|
||||
LEAK_METHOD_RETURN_TYPE=Warning
|
||||
METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
MISSING_EE_DESCRIPTIONS=Warning
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
UNUSED_PROBLEM_FILTERS=Warning
|
||||
automatically_removed_unused_problem_filters=false
|
||||
changed_execution_env=Error
|
||||
eclipse.preferences.version=1
|
||||
incompatible_api_component_version=Error
|
||||
incompatible_api_component_version_include_major_without_breaking_change=Disabled
|
||||
incompatible_api_component_version_include_minor_without_api_change=Disabled
|
||||
incompatible_api_component_version_report_major_without_breaking_change=Warning
|
||||
incompatible_api_component_version_report_minor_without_api_change=Warning
|
||||
invalid_since_tag_version=Error
|
||||
malformed_since_tag=Error
|
||||
missing_since_tag=Error
|
||||
report_api_breakage_when_major_version_incremented=Disabled
|
||||
report_resolution_errors_api_component=Warning
|
|
@ -1,35 +0,0 @@
|
|||
compilers.f.unresolved-features=1
|
||||
compilers.f.unresolved-plugins=1
|
||||
compilers.incompatible-environment=1
|
||||
compilers.p.build=1
|
||||
compilers.p.build.bin.includes=1
|
||||
compilers.p.build.encodings=2
|
||||
compilers.p.build.java.compiler=2
|
||||
compilers.p.build.java.compliance=1
|
||||
compilers.p.build.missing.output=2
|
||||
compilers.p.build.output.library=1
|
||||
compilers.p.build.source.library=1
|
||||
compilers.p.build.src.includes=1
|
||||
compilers.p.deprecated=1
|
||||
compilers.p.discouraged-class=1
|
||||
compilers.p.internal=1
|
||||
compilers.p.missing-packages=2
|
||||
compilers.p.missing-version-export-package=2
|
||||
compilers.p.missing-version-import-package=2
|
||||
compilers.p.missing-version-require-bundle=2
|
||||
compilers.p.no-required-att=0
|
||||
compilers.p.no.automatic.module=1
|
||||
compilers.p.not-externalized-att=1
|
||||
compilers.p.service.component.without.lazyactivation=1
|
||||
compilers.p.unknown-attribute=1
|
||||
compilers.p.unknown-class=1
|
||||
compilers.p.unknown-element=1
|
||||
compilers.p.unknown-identifier=1
|
||||
compilers.p.unknown-resource=1
|
||||
compilers.p.unresolved-ex-points=0
|
||||
compilers.p.unresolved-import=0
|
||||
compilers.s.create-docs=false
|
||||
compilers.s.doc-folder=doc
|
||||
compilers.s.open-tags=1
|
||||
compilers.use-project=true
|
||||
eclipse.preferences.version=1
|
|
@ -1,30 +0,0 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %pluginName
|
||||
Bundle-SymbolicName: org.eclipse.cdt.arduino.core;singleton:=true
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.arduino.core.internal.Activator
|
||||
Bundle-Vendor: %providerName
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.core.resources,
|
||||
org.eclipse.debug.core,
|
||||
org.eclipse.cdt.core,
|
||||
org.eclipse.launchbar.core,
|
||||
org.eclipse.remote.core;bundle-version="2.0.0",
|
||||
org.eclipse.cdt.native.serial;bundle-version="1.0.0",
|
||||
org.eclipse.remote.serial.core;bundle-version="1.0.0",
|
||||
com.google.gson;bundle-version="2.2.4",
|
||||
org.apache.commons.compress;bundle-version="1.6.0",
|
||||
org.eclipse.launchbar.remote.core;bundle-version="1.0.0",
|
||||
org.eclipse.tools.templates.freemarker;bundle-version="1.0.0";visibility:=reexport,
|
||||
org.eclipse.cdt.build.gcc.core;bundle-version="1.0.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-ClassPath: .
|
||||
Export-Package: org.eclipse.cdt.arduino.core.internal;x-friends:="org.eclipse.cdt.arduino.ui",
|
||||
org.eclipse.cdt.arduino.core.internal.board;x-friends:="org.eclipse.cdt.arduino.ui",
|
||||
org.eclipse.cdt.arduino.core.internal.build;x-friends:="org.eclipse.cdt.arduino.ui",
|
||||
org.eclipse.cdt.arduino.core.internal.launch;x-friends:="org.eclipse.cdt.arduino.ui",
|
||||
org.eclipse.cdt.arduino.core.internal.remote;x-friends:="org.eclipse.cdt.arduino.ui"
|
||||
Bundle-Localization: plugin
|
||||
Automatic-Module-Name: org.eclipse.cdt.arduino.core
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
||||
<title>About</title>
|
||||
</head>
|
||||
<body lang="EN-US">
|
||||
<h2>About This Content</h2>
|
||||
|
||||
<p>November 30, 2017</p>
|
||||
<h3>License</h3>
|
||||
|
||||
<p>
|
||||
The Eclipse Foundation makes available all content in this plug-in
|
||||
("Content"). Unless otherwise indicated below, the Content
|
||||
is provided to you under the terms and conditions of the Eclipse
|
||||
Public License Version 2.0 ("EPL"). A copy of the EPL is
|
||||
available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
|
||||
For purposes of the EPL, "Program" will mean the Content.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you did not receive this Content directly from the Eclipse
|
||||
Foundation, the Content is being redistributed by another party
|
||||
("Redistributor") and different terms and conditions may
|
||||
apply to your use of any object code in the Content. Check the
|
||||
Redistributor's license that was provided with the Content. If no such
|
||||
license exists, contact the Redistributor. Unless otherwise indicated
|
||||
below, the terms and conditions of the EPL still apply to any source
|
||||
code in the Content and such source code may be obtained at <a
|
||||
href="http://www.eclipse.org/">http://www.eclipse.org</a>.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,23 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
source.. = src/
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
plugin.xml,\
|
||||
templates/,\
|
||||
about.html,\
|
||||
plugin.properties
|
||||
src.includes = about.html
|
|
@ -1,19 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
pluginName=C/C++ Arduino Core
|
||||
providerName=Eclipse CDT
|
||||
ArduinoBuilder.name=Arduino Builder
|
||||
arduinonature.name=Arduino Nature
|
|
@ -1,110 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?eclipse version="3.4"?>
|
||||
<plugin>
|
||||
<extension
|
||||
point="org.eclipse.debug.core.launchConfigurationTypes">
|
||||
<launchConfigurationType
|
||||
delegate="org.eclipse.cdt.arduino.core.internal.launch.ArduinoLaunchConfigurationDelegate"
|
||||
id="org.eclipse.cdt.arduino.core.launchConfigurationType"
|
||||
modes="run"
|
||||
name="Arduino"
|
||||
public="false">
|
||||
</launchConfigurationType>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.remote.core.remoteServices">
|
||||
<connectionType
|
||||
id="org.eclipse.cdt.arduino.core.connectionType"
|
||||
name="Arduino">
|
||||
</connectionType>
|
||||
<connectionService
|
||||
connectionTypeId="org.eclipse.cdt.arduino.core.connectionType"
|
||||
factory="org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection$Factory"
|
||||
service="org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection">
|
||||
</connectionService>
|
||||
<connectionService
|
||||
connectionTypeId="org.eclipse.cdt.arduino.core.connectionType"
|
||||
factory="org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection$Factory"
|
||||
service="org.eclipse.remote.core.IRemoteCommandShellService">
|
||||
</connectionService>
|
||||
<connectionService
|
||||
connectionTypeId="org.eclipse.cdt.arduino.core.connectionType"
|
||||
factory="org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection$Factory"
|
||||
service="org.eclipse.remote.core.IRemoteConnectionPropertyService">
|
||||
</connectionService>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.launchbar.core.launchBarContributions">
|
||||
<descriptorType
|
||||
class="org.eclipse.cdt.arduino.core.internal.launch.ArduinoLaunchDescriptorType"
|
||||
id="org.eclipse.cdt.arduino.core.descriptorType"
|
||||
priority="20">
|
||||
<enablement>
|
||||
<instanceof
|
||||
value="org.eclipse.core.resources.IProject">
|
||||
</instanceof>
|
||||
<test
|
||||
forcePluginActivation="true"
|
||||
property="org.eclipse.core.resources.projectNature"
|
||||
value="org.eclipse.cdt.arduino.core.arduinoNature">
|
||||
</test>
|
||||
</enablement>
|
||||
</descriptorType>
|
||||
<configProvider
|
||||
class="org.eclipse.cdt.arduino.core.internal.launch.ArduinoLaunchConfigurationProvider"
|
||||
descriptorType="org.eclipse.cdt.arduino.core.descriptorType"
|
||||
priority="5">
|
||||
<enablement>
|
||||
</enablement>
|
||||
</configProvider>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.core.contenttype.contentTypes">
|
||||
<content-type
|
||||
base-type="org.eclipse.cdt.core.binaryFile"
|
||||
file-extensions="hex"
|
||||
id="org.eclipse.cdt.arduino.core.contentType.hex"
|
||||
name="Arduino Hex download file"
|
||||
priority="normal">
|
||||
</content-type>
|
||||
</extension>
|
||||
<extension
|
||||
id="arduinoNature"
|
||||
name="%arduinonature.name"
|
||||
point="org.eclipse.core.resources.natures">
|
||||
<runtime>
|
||||
<run
|
||||
class="org.eclipse.cdt.arduino.core.internal.ArduinoProjectNature">
|
||||
</run>
|
||||
</runtime>
|
||||
<builder
|
||||
id="com.qnx.tools.ide.qde.core.cbuilder">
|
||||
</builder>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.launchbar.core.launchTargetTypes">
|
||||
<launchTargetType
|
||||
id="org.eclipse.cdt.arduino.core.connectionType"
|
||||
provider="org.eclipse.cdt.arduino.core.internal.remote.ArduinoLaunchTargetProvider">
|
||||
</launchTargetType>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.core.buildConfigProvider">
|
||||
<provider
|
||||
class="org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfigurationProvider"
|
||||
id="org.eclipse.cdt.arduino.core.provider"
|
||||
natureId="org.eclipse.cdt.arduino.core.arduinoNature">
|
||||
</provider>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.cdt.core.toolChainProvider">
|
||||
<provider
|
||||
class="org.eclipse.cdt.arduino.core.internal.build.ArduinoToolChainProvider"
|
||||
id="org.eclipse.cdt.arduino.core.toolChainProvider">
|
||||
</provider>
|
||||
<type
|
||||
id="org.eclipse.cdt.arduino"
|
||||
name="Arduino">
|
||||
</type>
|
||||
</extension>
|
||||
</plugin>
|
|
@ -1,78 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Plugin;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.ServiceReference;
|
||||
|
||||
public class Activator extends Plugin {
|
||||
|
||||
private static Plugin plugin;
|
||||
|
||||
public static BundleContext getContext() {
|
||||
return plugin.getBundle().getBundleContext();
|
||||
}
|
||||
|
||||
public static Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
public static String getId() {
|
||||
return plugin.getBundle().getSymbolicName();
|
||||
}
|
||||
|
||||
public static void log(Exception e) {
|
||||
if (e instanceof CoreException) {
|
||||
plugin.getLog().log(((CoreException) e).getStatus());
|
||||
} else {
|
||||
plugin.getLog().log(new Status(IStatus.ERROR, Activator.getId(), e.getLocalizedMessage(), e));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(BundleContext bundleContext) throws Exception {
|
||||
plugin = this;
|
||||
bundleContext.registerService(ArduinoManager.class, new ArduinoManager(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(BundleContext bundleContext) throws Exception {
|
||||
plugin = null;
|
||||
}
|
||||
|
||||
public static <T> T getService(Class<T> service) {
|
||||
BundleContext context = plugin.getBundle().getBundleContext();
|
||||
ServiceReference<T> ref = context.getServiceReference(service);
|
||||
return ref != null ? context.getService(ref) : null;
|
||||
}
|
||||
|
||||
public static CoreException coreException(Throwable e) {
|
||||
if (e instanceof RuntimeException && e.getCause() instanceof CoreException) {
|
||||
return (CoreException) e.getCause();
|
||||
} else if (e instanceof CoreException) {
|
||||
return (CoreException) e;
|
||||
}
|
||||
return new CoreException(new Status(IStatus.ERROR, getId(), e.getLocalizedMessage(), e));
|
||||
}
|
||||
|
||||
public static CoreException coreException(String message, Throwable e) {
|
||||
return new CoreException(new Status(IStatus.ERROR, getId(), message, e));
|
||||
}
|
||||
|
||||
}
|
|
@ -1,97 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||
import org.eclipse.core.runtime.preferences.InstanceScope;
|
||||
import org.osgi.service.prefs.BackingStoreException;
|
||||
|
||||
public class ArduinoPreferences {
|
||||
|
||||
private static final String ARDUINO_HOME = "arduinoHome"; //$NON-NLS-1$
|
||||
private static final String BOARD_URLS = "boardUrls"; //$NON-NLS-1$
|
||||
|
||||
private static final String defaultHome = Paths.get(System.getProperty("user.home"), ".arduinocdt").toString(); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
private static final String defaultBoardUrls = "http://downloads.arduino.cc/packages/package_index.json" //$NON-NLS-1$
|
||||
+ "\nhttps://adafruit.github.io/arduino-board-index/package_adafruit_index.json"; //$NON-NLS-1$
|
||||
|
||||
private static IEclipsePreferences getPrefs() {
|
||||
return InstanceScope.INSTANCE.getNode(Activator.getId());
|
||||
}
|
||||
|
||||
public static Path getArduinoHome() {
|
||||
return Paths.get(getPrefs().get(ARDUINO_HOME, defaultHome));
|
||||
}
|
||||
|
||||
public static void setArduinoHome(Path home) {
|
||||
IEclipsePreferences prefs = getPrefs();
|
||||
prefs.put(ARDUINO_HOME, home.toString());
|
||||
try {
|
||||
prefs.flush();
|
||||
} catch (BackingStoreException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getBoardUrls() {
|
||||
return getPrefs().get(BOARD_URLS, defaultBoardUrls);
|
||||
}
|
||||
|
||||
public static URL[] getBoardUrlList() throws CoreException {
|
||||
List<URL> urlList = new ArrayList<>();
|
||||
for (String url : getBoardUrls().split("\n")) { //$NON-NLS-1$
|
||||
try {
|
||||
urlList.add(new URL(url.trim()));
|
||||
} catch (MalformedURLException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
return urlList.toArray(new URL[urlList.size()]);
|
||||
}
|
||||
|
||||
public static void setBoardUrls(String boardUrls) {
|
||||
IEclipsePreferences prefs = getPrefs();
|
||||
prefs.put(BOARD_URLS, boardUrls);
|
||||
try {
|
||||
prefs.flush();
|
||||
} catch (BackingStoreException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setBoardUrlList(URL[] urls) {
|
||||
StringBuilder str = new StringBuilder();
|
||||
for (int i = 0; i < urls.length - 1; ++i) {
|
||||
str.append(urls[i].toString());
|
||||
str.append('\n');
|
||||
}
|
||||
if (urls.length > 0) {
|
||||
str.append(urls[urls.length - 1].toString());
|
||||
}
|
||||
setBoardUrls(str.toString());
|
||||
}
|
||||
|
||||
public static String getDefaultArduinoHome() {
|
||||
return defaultHome;
|
||||
}
|
||||
|
||||
public static String getDefaultBoardUrls() {
|
||||
return defaultBoardUrls;
|
||||
}
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.core.CCProjectNature;
|
||||
import org.eclipse.cdt.core.CProjectNature;
|
||||
import org.eclipse.cdt.core.build.CBuilder;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.IPathEntry;
|
||||
import org.eclipse.core.resources.ICommand;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IProjectDescription;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.tools.templates.freemarker.FMProjectGenerator;
|
||||
import org.osgi.framework.Bundle;
|
||||
|
||||
public class ArduinoProjectGenerator extends FMProjectGenerator {
|
||||
|
||||
public ArduinoProjectGenerator(String manifestFile) {
|
||||
super(manifestFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initProjectDescription(IProjectDescription description) {
|
||||
description.setNatureIds(
|
||||
new String[] { CProjectNature.C_NATURE_ID, CCProjectNature.CC_NATURE_ID, ArduinoProjectNature.ID });
|
||||
ICommand command = description.newCommand();
|
||||
CBuilder.setupBuilder(command);
|
||||
description.setBuildSpec(new ICommand[] { command });
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bundle getSourceBundle() {
|
||||
return Activator.getPlugin().getBundle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(Map<String, Object> model, IProgressMonitor monitor) throws CoreException {
|
||||
super.generate(model, monitor);
|
||||
IProject project = getProject();
|
||||
CoreModel.getDefault().create(project)
|
||||
.setRawPathEntries(new IPathEntry[] { CoreModel.newSourceEntry(project.getFullPath()) }, monitor);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IProjectDescription;
|
||||
import org.eclipse.core.resources.IProjectNature;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
|
||||
public class ArduinoProjectNature implements IProjectNature {
|
||||
|
||||
private IProject project;
|
||||
public static final String ID = Activator.getId() + ".arduinoNature"; //$NON-NLS-1$
|
||||
|
||||
@Override
|
||||
public IProject getProject() {
|
||||
return project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProject(IProject project) {
|
||||
this.project = project;
|
||||
}
|
||||
|
||||
public static boolean hasNature(IProject project) throws CoreException {
|
||||
IProjectDescription projDesc = project.getDescription();
|
||||
for (String id : projDesc.getNatureIds()) {
|
||||
if (id.equals(ID))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure() throws CoreException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deconfigure() throws CoreException {
|
||||
}
|
||||
|
||||
}
|
|
@ -1,194 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
|
||||
public class HierarchicalProperties {
|
||||
|
||||
private String value;
|
||||
private Map<String, HierarchicalProperties> children;
|
||||
private String platName;
|
||||
|
||||
public HierarchicalProperties() {
|
||||
switch (Platform.getOS()) {
|
||||
case Platform.OS_WIN32:
|
||||
platName = "windows"; //$NON-NLS-1$
|
||||
break;
|
||||
case Platform.OS_MACOSX:
|
||||
platName = "macosx"; //$NON-NLS-1$
|
||||
break;
|
||||
case Platform.OS_LINUX:
|
||||
platName = "linux"; //$NON-NLS-1$
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public HierarchicalProperties(LinkedProperties properties) {
|
||||
this();
|
||||
for (Object keyObj : properties.orderedKeys()) {
|
||||
String key = (String) keyObj;
|
||||
String value = (String) properties.get(key);
|
||||
putProperty(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
public String getProperty(String qualifiedKey) {
|
||||
if (children == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
int i = qualifiedKey.indexOf('.');
|
||||
if (i < 0) {
|
||||
HierarchicalProperties child = children.get(qualifiedKey);
|
||||
return child != null ? child.getValue() : null;
|
||||
} else {
|
||||
String key = qualifiedKey.substring(0, i);
|
||||
HierarchicalProperties child = children.get(key);
|
||||
if (child != null) {
|
||||
String childKey = qualifiedKey.substring(i + 1);
|
||||
return child.getProperty(childKey);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void putProperty(String qualifiedKey, String value) {
|
||||
if (children == null) {
|
||||
children = new LinkedHashMap<>();
|
||||
}
|
||||
|
||||
int i = qualifiedKey.indexOf('.');
|
||||
if (i < 0) {
|
||||
HierarchicalProperties child = children.get(qualifiedKey);
|
||||
if (child == null) {
|
||||
child = new HierarchicalProperties();
|
||||
children.put(qualifiedKey, child);
|
||||
}
|
||||
child.setValue(value);
|
||||
} else {
|
||||
String key = qualifiedKey.substring(0, i);
|
||||
HierarchicalProperties child = children.get(key);
|
||||
if (child == null) {
|
||||
child = new HierarchicalProperties();
|
||||
children.put(key, child);
|
||||
}
|
||||
String childKey = qualifiedKey.substring(i + 1);
|
||||
child.putProperty(childKey, value);
|
||||
}
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
// Try a platform child
|
||||
if (platName != null && hasChild(platName)) {
|
||||
HierarchicalProperties child = getChild(platName);
|
||||
|
||||
// return the child's value if
|
||||
// - it has a property
|
||||
// - it has no more children. In that case the value could even be null (specifically overridden)
|
||||
if ((null != child.getValue()) || (!child.hasChildren())) {
|
||||
return child.getValue();
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public Map<String, HierarchicalProperties> getChildren() {
|
||||
return children;
|
||||
}
|
||||
|
||||
private boolean hasChildren() {
|
||||
return (children != null && children.size() > 0);
|
||||
}
|
||||
|
||||
private boolean hasChild(String key) {
|
||||
return (children != null && children.containsKey(key));
|
||||
}
|
||||
|
||||
public HierarchicalProperties getChild(String key) {
|
||||
return children != null ? children.get(key) : null;
|
||||
}
|
||||
|
||||
public void putChild(String key, HierarchicalProperties node) {
|
||||
if (children == null) {
|
||||
children = new LinkedHashMap<>();
|
||||
}
|
||||
children.put(key, node);
|
||||
}
|
||||
|
||||
public List<HierarchicalProperties> listChildren() {
|
||||
int size = 0;
|
||||
for (Map.Entry<String, HierarchicalProperties> entry : children.entrySet()) {
|
||||
try {
|
||||
int i = Integer.parseInt(entry.getKey());
|
||||
if (i + 1 > size) {
|
||||
size = i + 1;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
ArrayList<HierarchicalProperties> list = new ArrayList<>(size);
|
||||
for (Map.Entry<String, HierarchicalProperties> entry : children.entrySet()) {
|
||||
try {
|
||||
int i = Integer.parseInt(entry.getKey());
|
||||
list.set(i, entry.getValue());
|
||||
} catch (NumberFormatException e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setChildren(List<HierarchicalProperties> list) {
|
||||
children.clear();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
HierarchicalProperties node = list.get(i);
|
||||
if (node != null) {
|
||||
children.put(Integer.toString(i), node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Properties flatten() {
|
||||
Properties properties = new Properties();
|
||||
flatten(null, this, properties);
|
||||
return properties;
|
||||
}
|
||||
|
||||
private static void flatten(String prefix, HierarchicalProperties tree, Properties props) {
|
||||
if (tree.getValue() != null && prefix != null) {
|
||||
props.put(prefix, tree.getValue());
|
||||
}
|
||||
|
||||
if (tree.getChildren() != null) {
|
||||
for (Map.Entry<String, HierarchicalProperties> entry : tree.getChildren().entrySet()) {
|
||||
String childPrefix = entry.getKey();
|
||||
if (prefix != null) {
|
||||
childPrefix = prefix + "." + childPrefix; //$NON-NLS-1$
|
||||
}
|
||||
flatten(childPrefix, entry.getValue(), props);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Properties;
|
||||
|
||||
public class LinkedProperties extends Properties {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final HashSet<Object> keys = new LinkedHashSet<>();
|
||||
|
||||
public Iterable<Object> orderedKeys() {
|
||||
return Collections.list(keys());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<Object> keys() {
|
||||
return Collections.<Object>enumeration(keys);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object put(Object key, Object value) {
|
||||
keys.add(key);
|
||||
return super.put(key, value);
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal;
|
||||
|
||||
import org.eclipse.osgi.util.NLS;
|
||||
|
||||
public class Messages extends NLS {
|
||||
private static final String BUNDLE_NAME = "org.eclipse.cdt.arduino.core.internal.messages"; //$NON-NLS-1$
|
||||
public static String ArduinoBoardManager_0;
|
||||
public static String ArduinoBoardManager_1;
|
||||
public static String ArduinoBuildConfigurationProvider_UnknownConnection;
|
||||
public static String ArduinoLaunchConfigurationDelegate_0;
|
||||
public static String ArduinoLaunchConfigurationDelegate_1;
|
||||
public static String ArduinoLaunchConfigurationDelegate_2;
|
||||
public static String ArduinoManager_0;
|
||||
public static String ArduinoManager_1;
|
||||
public static String ArduinoManager_2;
|
||||
public static String ArduinoPlatform_0;
|
||||
public static String ArduinoPlatform_1;
|
||||
public static String ArduinoProjectGenerator_0;
|
||||
|
||||
static {
|
||||
// initialize resource bundle
|
||||
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
|
||||
}
|
||||
|
||||
private Messages() {
|
||||
}
|
||||
}
|
|
@ -1,106 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.HierarchicalProperties;
|
||||
|
||||
public class ArduinoBoard {
|
||||
|
||||
private String name;
|
||||
|
||||
private String id;
|
||||
|
||||
private ArduinoPlatform platform;
|
||||
private HierarchicalProperties properties;
|
||||
|
||||
public ArduinoBoard() {
|
||||
}
|
||||
|
||||
public ArduinoBoard(String id, HierarchicalProperties properties) {
|
||||
this.properties = properties;
|
||||
this.id = id;
|
||||
this.name = this.properties.getChild("name").getValue(); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public ArduinoPlatform getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
ArduinoBoard setOwners(ArduinoPlatform platform) {
|
||||
this.platform = platform;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getProperty(String key) {
|
||||
return properties.getProperty(key);
|
||||
}
|
||||
|
||||
public HierarchicalProperties getMenus() {
|
||||
return properties.getChild("menu"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public Properties getBoardProperties() {
|
||||
return properties.flatten();
|
||||
}
|
||||
|
||||
public Properties getMenuProperties(String id, String value) {
|
||||
return getMenus().getChild(id).getChild(value).flatten();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
result = prime * result + ((platform == null) ? 0 : platform.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
ArduinoBoard other = (ArduinoBoard) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
if (platform == null) {
|
||||
if (other.platform != null)
|
||||
return false;
|
||||
} else if (!platform.equals(other.platform))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String arch = getPlatform().getArchitecture();
|
||||
String pkg = getPlatform().getPackage().getName();
|
||||
return pkg + ',' + arch + ',' + id + ',' + name;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
public class ArduinoHelp {
|
||||
|
||||
private String online;
|
||||
|
||||
public String getOnline() {
|
||||
return online;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,335 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoPreferences;
|
||||
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfiguration;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
||||
public class ArduinoLibrary {
|
||||
|
||||
// JSON fields
|
||||
private String name;
|
||||
private String version;
|
||||
private String author;
|
||||
private String maintainer;
|
||||
private String sentence;
|
||||
private String paragraph;
|
||||
private String website;
|
||||
private String category;
|
||||
private List<String> architectures;
|
||||
private List<String> types;
|
||||
private String url;
|
||||
private String archiveFileName;
|
||||
private int size;
|
||||
private String checksum;
|
||||
// end JSON fields
|
||||
|
||||
private Path installPath;
|
||||
private ArduinoPlatform platform;
|
||||
|
||||
public ArduinoLibrary() {
|
||||
}
|
||||
|
||||
public ArduinoLibrary(Path propertiesFile) throws CoreException {
|
||||
installPath = propertiesFile.getParent();
|
||||
|
||||
Properties props = new Properties();
|
||||
try (FileReader reader = new FileReader(propertiesFile.toFile())) {
|
||||
props.load(reader);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
|
||||
name = props.getProperty("name"); //$NON-NLS-1$
|
||||
version = props.getProperty("version"); //$NON-NLS-1$
|
||||
author = props.getProperty("author"); //$NON-NLS-1$
|
||||
maintainer = props.getProperty("maintainer"); //$NON-NLS-1$
|
||||
sentence = props.getProperty("sentence"); //$NON-NLS-1$
|
||||
paragraph = props.getProperty("paragraph"); //$NON-NLS-1$
|
||||
category = props.getProperty("category"); //$NON-NLS-1$
|
||||
architectures = Arrays.asList(props.getProperty("architectures").split(",")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
public ArduinoLibrary(Path propertiesFile, ArduinoPlatform platform) throws CoreException {
|
||||
this(propertiesFile);
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public String getAuthor() {
|
||||
return author;
|
||||
}
|
||||
|
||||
public void setAuthor(String author) {
|
||||
this.author = author;
|
||||
}
|
||||
|
||||
public String getMaintainer() {
|
||||
return maintainer;
|
||||
}
|
||||
|
||||
public void setMaintainer(String maintainer) {
|
||||
this.maintainer = maintainer;
|
||||
}
|
||||
|
||||
public String getSentence() {
|
||||
return sentence;
|
||||
}
|
||||
|
||||
public void setSentence(String sentence) {
|
||||
this.sentence = sentence;
|
||||
}
|
||||
|
||||
public String getParagraph() {
|
||||
return paragraph;
|
||||
}
|
||||
|
||||
public void setParagraph(String paragraph) {
|
||||
this.paragraph = paragraph;
|
||||
}
|
||||
|
||||
public String getWebsite() {
|
||||
return website;
|
||||
}
|
||||
|
||||
public void setWebsite(String website) {
|
||||
this.website = website;
|
||||
}
|
||||
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
public List<String> getArchitectures() {
|
||||
return architectures;
|
||||
}
|
||||
|
||||
public void setArchitectures(List<String> architectures) {
|
||||
this.architectures = architectures;
|
||||
}
|
||||
|
||||
public List<String> getTypes() {
|
||||
return types;
|
||||
}
|
||||
|
||||
public void setTypes(List<String> types) {
|
||||
this.types = types;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getArchiveFileName() {
|
||||
return archiveFileName;
|
||||
}
|
||||
|
||||
public void setArchiveFileName(String archiveFileName) {
|
||||
this.archiveFileName = archiveFileName;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setSize(int size) {
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
public String getChecksum() {
|
||||
return checksum;
|
||||
}
|
||||
|
||||
public void setChecksum(String checksum) {
|
||||
this.checksum = checksum;
|
||||
}
|
||||
|
||||
public Path getInstallPath() {
|
||||
return installPath == null
|
||||
? ArduinoPreferences.getArduinoHome().resolve("libraries").resolve(name.replaceAll("[ ()]", "_")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
.resolve(version)
|
||||
: installPath;
|
||||
}
|
||||
|
||||
public ArduinoPlatform getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
public void install(IProgressMonitor monitor) throws CoreException {
|
||||
if (Files.exists(getInstallPath())) {
|
||||
uninstall(monitor);
|
||||
}
|
||||
|
||||
try {
|
||||
ArduinoManager.downloadAndInstall(url, archiveFileName, getInstallPath(), monitor);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void uninstall(IProgressMonitor monitor) throws CoreException {
|
||||
try {
|
||||
ArduinoManager.recursiveDelete(getInstallPath());
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<Path> getIncludePath() {
|
||||
Path installPath = getInstallPath();
|
||||
Path srcPath = installPath.resolve("src"); //$NON-NLS-1$
|
||||
if (srcPath.toFile().isDirectory()) {
|
||||
return Collections.singletonList(srcPath);
|
||||
} else {
|
||||
Path utilityPath = installPath.resolve("utility"); //$NON-NLS-1$
|
||||
if (utilityPath.toFile().isDirectory()) {
|
||||
return Arrays.asList(installPath, utilityPath);
|
||||
} else {
|
||||
return Collections.singletonList(installPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void getSources(Collection<String> sources, Path dir, boolean recurse) {
|
||||
for (File file : dir.toFile().listFiles()) {
|
||||
if (file.isDirectory()) {
|
||||
if (recurse) {
|
||||
getSources(sources, file.toPath(), recurse);
|
||||
}
|
||||
} else {
|
||||
if (ArduinoBuildConfiguration.isSource(file.getName())) {
|
||||
sources.add(ArduinoBuildConfiguration.pathString(file.toPath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<String> getSources() {
|
||||
List<String> sources = new ArrayList<>();
|
||||
Path installPath = getInstallPath();
|
||||
Path srcPath = installPath.resolve("src"); //$NON-NLS-1$
|
||||
if (srcPath.toFile().isDirectory()) {
|
||||
getSources(sources, srcPath, true);
|
||||
} else {
|
||||
getSources(sources, installPath, false);
|
||||
Path utilityPath = installPath.resolve("utility"); //$NON-NLS-1$
|
||||
if (utilityPath.toFile().isDirectory()) {
|
||||
getSources(sources, utilityPath, false);
|
||||
}
|
||||
}
|
||||
return sources;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
|
||||
private String fixText(String text) {
|
||||
String fixed = text.replaceAll("&", "&"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
fixed = fixed.replaceAll("<", "<"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
return fixed;
|
||||
}
|
||||
|
||||
public String toFormText() {
|
||||
StringBuilder text = new StringBuilder();
|
||||
|
||||
text.append("<form>"); //$NON-NLS-1$
|
||||
text.append(String.format("<p><b>%s: %s</b></p>", "Library", fixText(getName()))); //$NON-NLS-1$
|
||||
|
||||
if (getMaintainer() != null) {
|
||||
text.append(String.format("<p>%s: %s</p>", "Maintainer", fixText(getMaintainer()))); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
if (getWebsite() != null) {
|
||||
text.append(String.format("<p><a href=\"%s\">%s</a></p>", getWebsite(), "Online help")); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
text.append(String.format("<p>%s</p>", getSentence()));
|
||||
if (getParagraph() != null && !getParagraph().equals(getSentence())) {
|
||||
text.append(String.format("<p>%s</p>", getParagraph()));
|
||||
}
|
||||
|
||||
text.append("</form>");
|
||||
|
||||
return text.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
result = prime * result + ((platform == null) ? 0 : platform.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
ArduinoLibrary other = (ArduinoLibrary) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
if (platform == null) {
|
||||
if (other.platform != null)
|
||||
return false;
|
||||
} else if (!platform.equals(other.platform))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,782 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Reader;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.file.FileVisitResult;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.SimpleFileVisitor;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.nio.file.attribute.PosixFilePermission;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.ArchiveException;
|
||||
import org.apache.commons.compress.archivers.ArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
|
||||
import org.apache.commons.compress.compressors.CompressorException;
|
||||
import org.apache.commons.compress.compressors.CompressorStreamFactory;
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoPreferences;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.ProjectScope;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.SubMonitor;
|
||||
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
|
||||
import org.osgi.service.prefs.BackingStoreException;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
|
||||
public class ArduinoManager {
|
||||
|
||||
// Build tool ids
|
||||
public static final String BOARD_OPTION_ID = "org.eclipse.cdt.arduino.option.board"; //$NON-NLS-1$
|
||||
public static final String PLATFORM_OPTION_ID = "org.eclipse.cdt.arduino.option.platform"; //$NON-NLS-1$
|
||||
public static final String PACKAGE_OPTION_ID = "org.eclipse.cdt.arduino.option.package"; //$NON-NLS-1$
|
||||
public static final String AVR_TOOLCHAIN_ID = "org.eclipse.cdt.arduino.toolChain.avr"; //$NON-NLS-1$
|
||||
|
||||
public static final String LIBRARIES_URL = "http://downloads.arduino.cc/libraries/library_index.json"; //$NON-NLS-1$
|
||||
public static final String LIBRARIES_FILE = "library_index.json"; //$NON-NLS-1$
|
||||
|
||||
private static final String LIBRARIES = "libraries"; //$NON-NLS-1$
|
||||
|
||||
// arduinocdt install properties
|
||||
private static final String VERSION_KEY = "version"; //$NON-NLS-1$
|
||||
private static final String ACCEPTED_KEY = "accepted"; //$NON-NLS-1$
|
||||
private static final String VERSION = "2"; //$NON-NLS-1$
|
||||
|
||||
private Properties props;
|
||||
|
||||
private Path arduinoHome = ArduinoPreferences.getArduinoHome();
|
||||
private Map<String, ArduinoPackage> packages;
|
||||
private Map<String, ArduinoLibrary> installedLibraries;
|
||||
|
||||
private Path getVersionFile() {
|
||||
return ArduinoPreferences.getArduinoHome().resolve(".version"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
private synchronized void init() throws CoreException {
|
||||
if (!arduinoHome.equals(ArduinoPreferences.getArduinoHome())) {
|
||||
// Arduino Home changed, reset.
|
||||
props = null;
|
||||
packages = null;
|
||||
installedLibraries = null;
|
||||
arduinoHome = ArduinoPreferences.getArduinoHome();
|
||||
}
|
||||
|
||||
if (props == null) {
|
||||
if (!Files.exists(ArduinoPreferences.getArduinoHome())) {
|
||||
try {
|
||||
Files.createDirectories(ArduinoPreferences.getArduinoHome());
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
props = new Properties();
|
||||
Path propsFile = getVersionFile();
|
||||
if (Files.exists(propsFile)) {
|
||||
try (FileReader reader = new FileReader(propsFile.toFile())) {
|
||||
props.load(reader);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
// See if we need a conversion
|
||||
int version = Integer.parseInt(props.getProperty(VERSION_KEY, "1")); //$NON-NLS-1$
|
||||
if (version < Integer.parseInt(VERSION)) {
|
||||
props.setProperty(VERSION_KEY, VERSION);
|
||||
try (FileWriter writer = new FileWriter(getVersionFile().toFile())) {
|
||||
props.store(writer, ""); //$NON-NLS-1$
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void convertLibrariesDir() throws CoreException {
|
||||
Path librariesDir = ArduinoPreferences.getArduinoHome().resolve("libraries"); //$NON-NLS-1$
|
||||
if (!Files.isDirectory(librariesDir)) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
Path tmpDir = Files.createTempDirectory("alib"); //$NON-NLS-1$
|
||||
Path tmpLibDir = tmpDir.resolve("libraries"); //$NON-NLS-1$
|
||||
Files.move(librariesDir, tmpLibDir);
|
||||
Files.list(tmpLibDir).forEach(path -> {
|
||||
try {
|
||||
Optional<Path> latest = Files.list(path)
|
||||
.reduce((path1, path2) -> compareVersions(path1.getFileName().toString(),
|
||||
path2.getFileName().toString()) > 0 ? path1 : path2);
|
||||
if (latest.isPresent()) {
|
||||
Files.move(latest.get(), librariesDir.resolve(path.getFileName()));
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
recursiveDelete(tmpDir);
|
||||
} catch (RuntimeException | IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean licenseAccepted() throws CoreException {
|
||||
init();
|
||||
return Boolean.getBoolean(props.getProperty(ACCEPTED_KEY, Boolean.FALSE.toString()));
|
||||
}
|
||||
|
||||
public void acceptLicense() throws CoreException {
|
||||
init();
|
||||
props.setProperty(ACCEPTED_KEY, Boolean.TRUE.toString());
|
||||
try (FileWriter writer = new FileWriter(getVersionFile().toFile())) {
|
||||
props.store(writer, ""); //$NON-NLS-1$
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<ArduinoPlatform> getInstalledPlatforms() throws CoreException {
|
||||
List<ArduinoPlatform> platforms = new ArrayList<>();
|
||||
for (ArduinoPackage pkg : getPackages()) {
|
||||
platforms.addAll(pkg.getInstalledPlatforms());
|
||||
}
|
||||
return platforms;
|
||||
}
|
||||
|
||||
public ArduinoPlatform getInstalledPlatform(String packageName, String architecture) throws CoreException {
|
||||
ArduinoPackage pkg = getPackage(packageName);
|
||||
return pkg != null ? pkg.getInstalledPlatform(architecture) : null;
|
||||
}
|
||||
|
||||
public synchronized Collection<ArduinoPlatform> getAvailablePlatforms(IProgressMonitor monitor)
|
||||
throws CoreException {
|
||||
List<ArduinoPlatform> platforms = new ArrayList<>();
|
||||
URL[] urls = ArduinoPreferences.getBoardUrlList();
|
||||
SubMonitor sub = SubMonitor.convert(monitor, urls.length + 1);
|
||||
|
||||
sub.beginTask("Downloading package descriptions", urls.length); //$NON-NLS-1$
|
||||
for (URL url : urls) {
|
||||
Path packagePath = ArduinoPreferences.getArduinoHome().resolve(Paths.get(url.getPath()).getFileName());
|
||||
try {
|
||||
Files.createDirectories(ArduinoPreferences.getArduinoHome());
|
||||
URLConnection connection = url.openConnection();
|
||||
connection.setRequestProperty("User-Agent", //$NON-NLS-1$
|
||||
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); //$NON-NLS-1$
|
||||
try (InputStream in = connection.getInputStream()) {
|
||||
Files.copy(in, packagePath, StandardCopyOption.REPLACE_EXISTING);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Log and continue, URLs sometimes come and go
|
||||
Activator.log(e);
|
||||
}
|
||||
sub.worked(1);
|
||||
}
|
||||
|
||||
sub.beginTask("Loading available packages", 1); //$NON-NLS-1$
|
||||
resetPackages();
|
||||
for (ArduinoPackage pkg : getPackages()) {
|
||||
platforms.addAll(pkg.getAvailablePlatforms());
|
||||
}
|
||||
sub.done();
|
||||
|
||||
return platforms;
|
||||
}
|
||||
|
||||
public synchronized Collection<ArduinoPlatform> getPlatformUpdates(IProgressMonitor monitor) throws CoreException {
|
||||
List<ArduinoPlatform> platforms = new ArrayList<>();
|
||||
URL[] urls = ArduinoPreferences.getBoardUrlList();
|
||||
SubMonitor sub = SubMonitor.convert(monitor, urls.length + 1);
|
||||
|
||||
sub.beginTask("Downloading package descriptions", urls.length); //$NON-NLS-1$
|
||||
for (URL url : urls) {
|
||||
Path packagePath = ArduinoPreferences.getArduinoHome().resolve(Paths.get(url.getPath()).getFileName());
|
||||
try {
|
||||
Files.createDirectories(ArduinoPreferences.getArduinoHome());
|
||||
try (InputStream in = url.openStream()) {
|
||||
Files.copy(in, packagePath, StandardCopyOption.REPLACE_EXISTING);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(String.format("Error loading %s", url.toString()), e); //$NON-NLS-1$
|
||||
}
|
||||
sub.worked(1);
|
||||
}
|
||||
|
||||
sub.beginTask("Loading available package updates", 1); //$NON-NLS-1$
|
||||
resetPackages();
|
||||
for (ArduinoPackage pkg : getPackages()) {
|
||||
platforms.addAll(pkg.getPlatformUpdates());
|
||||
}
|
||||
sub.done();
|
||||
|
||||
return platforms;
|
||||
}
|
||||
|
||||
public void installPlatforms(Collection<ArduinoPlatform> platforms, IProgressMonitor monitor) throws CoreException {
|
||||
SubMonitor sub = SubMonitor.convert(monitor, platforms.size());
|
||||
for (ArduinoPlatform platform : platforms) {
|
||||
sub.setTaskName(String.format("Installing %s %s", platform.getName(), platform.getVersion())); //$NON-NLS-1$
|
||||
platform.install(sub);
|
||||
sub.worked(1);
|
||||
}
|
||||
sub.done();
|
||||
}
|
||||
|
||||
public void uninstallPlatforms(Collection<ArduinoPlatform> platforms, IProgressMonitor monitor) {
|
||||
SubMonitor sub = SubMonitor.convert(monitor, platforms.size());
|
||||
for (ArduinoPlatform platform : platforms) {
|
||||
sub.setTaskName(String.format("Uninstalling %s", platform.getName())); //$NON-NLS-1$
|
||||
platform.uninstall(sub);
|
||||
sub.worked(1);
|
||||
}
|
||||
sub.done();
|
||||
}
|
||||
|
||||
public static List<ArduinoPlatform> getSortedPlatforms(Collection<ArduinoPlatform> platforms) {
|
||||
List<ArduinoPlatform> result = new ArrayList<>(platforms);
|
||||
Collections.sort(result, (plat1, plat2) -> {
|
||||
int c1;
|
||||
String p1 = plat1.getPackage().getName();
|
||||
String p2 = plat2.getPackage().getName();
|
||||
if (p1.equals(p2)) {
|
||||
c1 = 0;
|
||||
} else if (p1.equals("arduino")) {
|
||||
c1 = -1;
|
||||
} else if (p2.equals("arduino")) {
|
||||
c1 = 1;
|
||||
} else {
|
||||
c1 = plat1.getPackage().getName().compareToIgnoreCase(plat2.getPackage().getName());
|
||||
}
|
||||
|
||||
if (c1 > 0) {
|
||||
return 1;
|
||||
} else if (c1 < 0) {
|
||||
return -1;
|
||||
} else {
|
||||
return plat1.getArchitecture().compareToIgnoreCase(plat2.getArchitecture());
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<ArduinoLibrary> getSortedLibraries(Collection<ArduinoLibrary> libraries) {
|
||||
List<ArduinoLibrary> result = new ArrayList<>(libraries);
|
||||
Collections.sort(result, (lib1, lib2) -> {
|
||||
return lib1.getName().compareToIgnoreCase(lib2.getName());
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
private synchronized void initPackages() throws CoreException {
|
||||
init();
|
||||
if (packages == null) {
|
||||
packages = new HashMap<>();
|
||||
|
||||
try {
|
||||
Files.list(ArduinoPreferences.getArduinoHome())
|
||||
.filter(path -> path.getFileName().toString().startsWith("package_")) //$NON-NLS-1$
|
||||
.forEach(path -> {
|
||||
try (Reader reader = new FileReader(path.toFile())) {
|
||||
PackageIndex index = new Gson().fromJson(reader, PackageIndex.class);
|
||||
for (ArduinoPackage pkg : index.getPackages()) {
|
||||
ArduinoPackage p = packages.get(pkg.getName());
|
||||
if (p == null) {
|
||||
pkg.init();
|
||||
packages.put(pkg.getName(), pkg);
|
||||
} else {
|
||||
p.merge(pkg);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
});
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<ArduinoPackage> getPackages() throws CoreException {
|
||||
initPackages();
|
||||
return packages.values();
|
||||
}
|
||||
|
||||
public void resetPackages() {
|
||||
packages = null;
|
||||
}
|
||||
|
||||
public ArduinoPackage getPackage(String packageName) throws CoreException {
|
||||
if (packageName == null) {
|
||||
return null;
|
||||
} else {
|
||||
initPackages();
|
||||
return packages.get(packageName);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<ArduinoBoard> getInstalledBoards() throws CoreException {
|
||||
List<ArduinoBoard> boards = new ArrayList<>();
|
||||
for (ArduinoPlatform platform : getInstalledPlatforms()) {
|
||||
boards.addAll(platform.getBoards());
|
||||
}
|
||||
return boards;
|
||||
}
|
||||
|
||||
public ArduinoBoard getBoard(String packageName, String architecture, String boardId) throws CoreException {
|
||||
for (ArduinoPlatform platform : getInstalledPlatforms()) {
|
||||
if (platform.getPackage().getName().equals(packageName)
|
||||
&& platform.getArchitecture().equals(architecture)) {
|
||||
return platform.getBoard(boardId);
|
||||
}
|
||||
}
|
||||
|
||||
// For backwards compat, check platform name
|
||||
for (ArduinoPlatform platform : getInstalledPlatforms()) {
|
||||
if (platform.getPackage().getName().equals(packageName) && platform.getName().equals(architecture)) {
|
||||
return platform.getBoardByName(boardId);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArduinoTool getTool(String packageName, String toolName, String version) {
|
||||
ArduinoPackage pkg = packages.get(packageName);
|
||||
return pkg != null ? pkg.getTool(toolName, version) : null;
|
||||
}
|
||||
|
||||
private void initInstalledLibraries() throws CoreException {
|
||||
init();
|
||||
if (installedLibraries == null) {
|
||||
installedLibraries = new HashMap<>();
|
||||
|
||||
Path librariesDir = ArduinoPreferences.getArduinoHome().resolve("libraries"); //$NON-NLS-1$
|
||||
if (Files.isDirectory(librariesDir)) {
|
||||
try {
|
||||
Files.find(librariesDir, 3,
|
||||
(path, attrs) -> path.getFileName().toString().equals("library.properties")) //$NON-NLS-1$
|
||||
.forEach(path -> {
|
||||
try {
|
||||
ArduinoLibrary library = new ArduinoLibrary(path);
|
||||
installedLibraries.put(library.getName(), library);
|
||||
} catch (CoreException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<ArduinoLibrary> getInstalledLibraries() throws CoreException {
|
||||
initInstalledLibraries();
|
||||
return installedLibraries.values();
|
||||
}
|
||||
|
||||
public ArduinoLibrary getInstalledLibrary(String name) throws CoreException {
|
||||
initInstalledLibraries();
|
||||
return installedLibraries.get(name);
|
||||
}
|
||||
|
||||
public Collection<ArduinoLibrary> getAvailableLibraries(IProgressMonitor monitor) throws CoreException {
|
||||
try {
|
||||
initInstalledLibraries();
|
||||
Map<String, ArduinoLibrary> libs = new HashMap<>();
|
||||
|
||||
SubMonitor sub = SubMonitor.convert(monitor, "Downloading library index", 2);
|
||||
Path librariesPath = ArduinoPreferences.getArduinoHome().resolve(LIBRARIES_FILE);
|
||||
URL librariesUrl = new URL(LIBRARIES_URL);
|
||||
Files.createDirectories(ArduinoPreferences.getArduinoHome());
|
||||
Files.copy(librariesUrl.openStream(), librariesPath, StandardCopyOption.REPLACE_EXISTING);
|
||||
sub.worked(1);
|
||||
|
||||
try (Reader reader = new FileReader(librariesPath.toFile())) {
|
||||
sub.setTaskName("Calculating available libraries");
|
||||
LibraryIndex libraryIndex = new Gson().fromJson(reader, LibraryIndex.class);
|
||||
for (ArduinoLibrary library : libraryIndex.getLibraries()) {
|
||||
String libraryName = library.getName();
|
||||
if (!installedLibraries.containsKey(libraryName)) {
|
||||
ArduinoLibrary current = libs.get(libraryName);
|
||||
if (current == null || compareVersions(library.getVersion(), current.getVersion()) > 0) {
|
||||
libs.put(libraryName, library);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sub.done();
|
||||
return libs.values();
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<ArduinoLibrary> getLibraryUpdates(IProgressMonitor monitor) throws CoreException {
|
||||
try {
|
||||
initInstalledLibraries();
|
||||
Map<String, ArduinoLibrary> libs = new HashMap<>();
|
||||
|
||||
SubMonitor sub = SubMonitor.convert(monitor, "Downloading library index", 2);
|
||||
Path librariesPath = ArduinoPreferences.getArduinoHome().resolve(LIBRARIES_FILE);
|
||||
URL librariesUrl = new URL(LIBRARIES_URL);
|
||||
Files.createDirectories(ArduinoPreferences.getArduinoHome());
|
||||
Files.copy(librariesUrl.openStream(), librariesPath, StandardCopyOption.REPLACE_EXISTING);
|
||||
sub.worked(1);
|
||||
|
||||
try (Reader reader = new FileReader(librariesPath.toFile())) {
|
||||
sub.setTaskName("Calculating library updates");
|
||||
LibraryIndex libraryIndex = new Gson().fromJson(reader, LibraryIndex.class);
|
||||
for (ArduinoLibrary library : libraryIndex.getLibraries()) {
|
||||
String libraryName = library.getName();
|
||||
ArduinoLibrary installed = installedLibraries.get(libraryName);
|
||||
if (installed != null && compareVersions(library.getVersion(), installed.getVersion()) > 0) {
|
||||
ArduinoLibrary current = libs.get(libraryName);
|
||||
if (current == null || compareVersions(library.getVersion(), current.getVersion()) > 0) {
|
||||
libs.put(libraryName, library);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sub.done();
|
||||
return libs.values();
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void installLibraries(Collection<ArduinoLibrary> libraries, IProgressMonitor monitor) throws CoreException {
|
||||
SubMonitor sub = SubMonitor.convert(monitor, libraries.size());
|
||||
for (ArduinoLibrary library : libraries) {
|
||||
sub.setTaskName(String.format("Installing %s", library.getName())); //$NON-NLS-1$
|
||||
library.install(sub);
|
||||
try {
|
||||
ArduinoLibrary newLibrary = new ArduinoLibrary(library.getInstallPath().resolve("library.properties")); //$NON-NLS-1$
|
||||
installedLibraries.put(newLibrary.getName(), newLibrary);
|
||||
} catch (CoreException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
sub.worked(1);
|
||||
}
|
||||
sub.done();
|
||||
}
|
||||
|
||||
public void uninstallLibraries(Collection<ArduinoLibrary> libraries, IProgressMonitor monitor)
|
||||
throws CoreException {
|
||||
SubMonitor sub = SubMonitor.convert(monitor, libraries.size());
|
||||
for (ArduinoLibrary library : libraries) {
|
||||
sub.setTaskName(String.format("Installing %s", library.getName())); //$NON-NLS-1$
|
||||
library.uninstall(sub);
|
||||
installedLibraries.remove(library.getName());
|
||||
sub.worked(1);
|
||||
}
|
||||
sub.done();
|
||||
}
|
||||
|
||||
public Collection<ArduinoLibrary> getLibraries(IProject project) throws CoreException {
|
||||
initInstalledLibraries();
|
||||
IEclipsePreferences settings = getSettings(project);
|
||||
String librarySetting = settings.get(LIBRARIES, "[]"); //$NON-NLS-1$
|
||||
JsonArray libArray = new JsonParser().parse(librarySetting).getAsJsonArray();
|
||||
|
||||
List<ArduinoLibrary> libraries = new ArrayList<>(libArray.size());
|
||||
for (JsonElement libElement : libArray) {
|
||||
if (libElement.isJsonPrimitive()) {
|
||||
String libName = libElement.getAsString();
|
||||
ArduinoLibrary lib = installedLibraries.get(libName);
|
||||
if (lib != null) {
|
||||
libraries.add(lib);
|
||||
}
|
||||
} else {
|
||||
JsonObject libObj = libElement.getAsJsonObject();
|
||||
String packageName = libObj.get("package").getAsString(); //$NON-NLS-1$
|
||||
String platformName = libObj.get("platform").getAsString(); //$NON-NLS-1$
|
||||
String libName = libObj.get("library").getAsString(); //$NON-NLS-1$
|
||||
ArduinoPackage pkg = getPackage(packageName);
|
||||
if (pkg != null) {
|
||||
ArduinoPlatform platform = pkg.getInstalledPlatform(platformName);
|
||||
if (platform != null) {
|
||||
ArduinoLibrary lib = platform.getLibrary(libName);
|
||||
if (lib != null) {
|
||||
libraries.add(lib);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return libraries;
|
||||
}
|
||||
|
||||
public void setLibraries(final IProject project, final Collection<ArduinoLibrary> libraries) throws CoreException {
|
||||
JsonArray elements = new JsonArray();
|
||||
for (ArduinoLibrary library : libraries) {
|
||||
ArduinoPlatform platform = library.getPlatform();
|
||||
if (platform != null) {
|
||||
JsonObject libObj = new JsonObject();
|
||||
libObj.addProperty("package", platform.getPackage().getName()); //$NON-NLS-1$
|
||||
libObj.addProperty("platform", platform.getArchitecture()); //$NON-NLS-1$
|
||||
libObj.addProperty("library", library.getName()); //$NON-NLS-1$
|
||||
elements.add(libObj);
|
||||
} else {
|
||||
elements.add(new JsonPrimitive(library.getName()));
|
||||
}
|
||||
}
|
||||
IEclipsePreferences settings = getSettings(project);
|
||||
settings.put(LIBRARIES, new Gson().toJson(elements));
|
||||
try {
|
||||
settings.flush();
|
||||
} catch (BackingStoreException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private IEclipsePreferences getSettings(IProject project) {
|
||||
return new ProjectScope(project).getNode(Activator.getId());
|
||||
}
|
||||
|
||||
public static void downloadAndInstall(String url, String archiveFileName, Path installPath,
|
||||
IProgressMonitor monitor) throws IOException {
|
||||
Exception error = null;
|
||||
for (int retries = 3; retries > 0 && !monitor.isCanceled(); --retries) {
|
||||
try {
|
||||
URL dl = new URL(url);
|
||||
Path dlDir = ArduinoPreferences.getArduinoHome().resolve("downloads"); //$NON-NLS-1$
|
||||
Files.createDirectories(dlDir);
|
||||
Path archivePath = dlDir.resolve(archiveFileName);
|
||||
URLConnection conn = dl.openConnection();
|
||||
conn.setConnectTimeout(10000);
|
||||
conn.setReadTimeout(10000);
|
||||
Files.copy(conn.getInputStream(), archivePath, StandardCopyOption.REPLACE_EXISTING);
|
||||
|
||||
boolean isWin = Platform.getOS().equals(Platform.OS_WIN32);
|
||||
|
||||
// extract
|
||||
ArchiveInputStream archiveIn = null;
|
||||
try {
|
||||
String compressor = null;
|
||||
String archiver = null;
|
||||
if (archiveFileName.endsWith("tar.bz2")) { //$NON-NLS-1$
|
||||
compressor = CompressorStreamFactory.BZIP2;
|
||||
archiver = ArchiveStreamFactory.TAR;
|
||||
} else if (archiveFileName.endsWith(".tar.gz") || archiveFileName.endsWith(".tgz")) { //$NON-NLS-1$ //$NON-NLS-2$
|
||||
compressor = CompressorStreamFactory.GZIP;
|
||||
archiver = ArchiveStreamFactory.TAR;
|
||||
} else if (archiveFileName.endsWith(".tar.xz")) { //$NON-NLS-1$
|
||||
compressor = CompressorStreamFactory.XZ;
|
||||
archiver = ArchiveStreamFactory.TAR;
|
||||
} else if (archiveFileName.endsWith(".zip")) { //$NON-NLS-1$
|
||||
archiver = ArchiveStreamFactory.ZIP;
|
||||
}
|
||||
|
||||
InputStream in = new BufferedInputStream(new FileInputStream(archivePath.toFile()));
|
||||
if (compressor != null) {
|
||||
in = new CompressorStreamFactory().createCompressorInputStream(compressor, in);
|
||||
}
|
||||
archiveIn = new ArchiveStreamFactory().createArchiveInputStream(archiver, in);
|
||||
|
||||
for (ArchiveEntry entry = archiveIn.getNextEntry(); entry != null; entry = archiveIn
|
||||
.getNextEntry()) {
|
||||
if (entry.isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Magic file for git tarballs
|
||||
Path path = Paths.get(entry.getName());
|
||||
if (path.endsWith("pax_global_header")) { //$NON-NLS-1$
|
||||
continue;
|
||||
}
|
||||
|
||||
// Strip the first directory of the path
|
||||
Path entryPath;
|
||||
switch (path.getName(0).toString()) {
|
||||
case "i586":
|
||||
case "i686":
|
||||
// Cheat for Intel
|
||||
entryPath = installPath.resolve(path);
|
||||
break;
|
||||
default:
|
||||
entryPath = installPath.resolve(path.subpath(1, path.getNameCount()));
|
||||
}
|
||||
|
||||
Files.createDirectories(entryPath.getParent());
|
||||
|
||||
if (entry instanceof TarArchiveEntry) {
|
||||
TarArchiveEntry tarEntry = (TarArchiveEntry) entry;
|
||||
if (tarEntry.isLink()) {
|
||||
Path linkPath = Paths.get(tarEntry.getLinkName());
|
||||
linkPath = installPath.resolve(linkPath.subpath(1, linkPath.getNameCount()));
|
||||
Files.deleteIfExists(entryPath);
|
||||
Files.createSymbolicLink(entryPath, entryPath.getParent().relativize(linkPath));
|
||||
} else if (tarEntry.isSymbolicLink()) {
|
||||
Path linkPath = Paths.get(tarEntry.getLinkName());
|
||||
Files.deleteIfExists(entryPath);
|
||||
Files.createSymbolicLink(entryPath, linkPath);
|
||||
} else {
|
||||
Files.copy(archiveIn, entryPath, StandardCopyOption.REPLACE_EXISTING);
|
||||
}
|
||||
if (!isWin && !tarEntry.isSymbolicLink()) {
|
||||
int mode = tarEntry.getMode();
|
||||
Files.setPosixFilePermissions(entryPath, toPerms(mode));
|
||||
}
|
||||
} else {
|
||||
Files.copy(archiveIn, entryPath, StandardCopyOption.REPLACE_EXISTING);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (archiveIn != null) {
|
||||
archiveIn.close();
|
||||
}
|
||||
}
|
||||
return;
|
||||
} catch (IOException | CompressorException | ArchiveException e) {
|
||||
error = e;
|
||||
// retry
|
||||
}
|
||||
}
|
||||
|
||||
// out of retries
|
||||
if (error instanceof IOException) {
|
||||
throw (IOException) error;
|
||||
} else {
|
||||
throw new IOException(error);
|
||||
}
|
||||
}
|
||||
|
||||
public static int compareVersions(String version1, String version2) {
|
||||
if (version1 == null) {
|
||||
return version2 == null ? 0 : -1;
|
||||
}
|
||||
|
||||
if (version2 == null) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
String[] v1 = version1.split("\\."); //$NON-NLS-1$
|
||||
String[] v2 = version2.split("\\."); //$NON-NLS-1$
|
||||
for (int i = 0; i < Math.max(v1.length, v2.length); ++i) {
|
||||
if (v1.length <= i) {
|
||||
return v2.length < i ? 0 : -1;
|
||||
}
|
||||
|
||||
if (v2.length <= i) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
try {
|
||||
int vi1 = Integer.parseInt(v1[i]);
|
||||
int vi2 = Integer.parseInt(v2[i]);
|
||||
if (vi1 < vi2) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (vi1 > vi2) {
|
||||
return 1;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
// not numbers, do string compares
|
||||
int c = v1[i].compareTo(v2[i]);
|
||||
if (c < 0) {
|
||||
return -1;
|
||||
}
|
||||
if (c > 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static Set<PosixFilePermission> toPerms(int mode) {
|
||||
Set<PosixFilePermission> perms = new HashSet<>();
|
||||
if ((mode & 0400) != 0) {
|
||||
perms.add(PosixFilePermission.OWNER_READ);
|
||||
}
|
||||
if ((mode & 0200) != 0) {
|
||||
perms.add(PosixFilePermission.OWNER_WRITE);
|
||||
}
|
||||
if ((mode & 0100) != 0) {
|
||||
perms.add(PosixFilePermission.OWNER_EXECUTE);
|
||||
}
|
||||
if ((mode & 0040) != 0) {
|
||||
perms.add(PosixFilePermission.GROUP_READ);
|
||||
}
|
||||
if ((mode & 0020) != 0) {
|
||||
perms.add(PosixFilePermission.GROUP_WRITE);
|
||||
}
|
||||
if ((mode & 0010) != 0) {
|
||||
perms.add(PosixFilePermission.GROUP_EXECUTE);
|
||||
}
|
||||
if ((mode & 0004) != 0) {
|
||||
perms.add(PosixFilePermission.OTHERS_READ);
|
||||
}
|
||||
if ((mode & 0002) != 0) {
|
||||
perms.add(PosixFilePermission.OTHERS_WRITE);
|
||||
}
|
||||
if ((mode & 0001) != 0) {
|
||||
perms.add(PosixFilePermission.OTHERS_EXECUTE);
|
||||
}
|
||||
return perms;
|
||||
}
|
||||
|
||||
public static void recursiveDelete(Path directory) throws IOException {
|
||||
Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
|
||||
@Override
|
||||
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
||||
Files.delete(file);
|
||||
return FileVisitResult.CONTINUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
|
||||
Files.delete(dir);
|
||||
return FileVisitResult.CONTINUE;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,239 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoPreferences;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
|
||||
public class ArduinoPackage {
|
||||
|
||||
// JSON fields
|
||||
private String name;
|
||||
private String maintainer;
|
||||
private String websiteURL;
|
||||
private String email;
|
||||
private ArduinoHelp help;
|
||||
private List<ArduinoPlatform> platforms;
|
||||
private List<ArduinoTool> tools;
|
||||
// end JSON fields
|
||||
|
||||
private Map<String, ArduinoPlatform> installedPlatforms;
|
||||
private Map<String, ArduinoTool> latestTools;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getMaintainer() {
|
||||
return maintainer;
|
||||
}
|
||||
|
||||
public String getWebsiteURL() {
|
||||
return websiteURL;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public ArduinoHelp getHelp() {
|
||||
return help;
|
||||
}
|
||||
|
||||
public Collection<ArduinoPlatform> getPlatforms() {
|
||||
return Collections.unmodifiableCollection(platforms);
|
||||
}
|
||||
|
||||
void init() {
|
||||
for (ArduinoPlatform platform : platforms) {
|
||||
platform.init(this);
|
||||
}
|
||||
for (ArduinoTool tool : tools) {
|
||||
tool.init(this);
|
||||
}
|
||||
}
|
||||
|
||||
void merge(ArduinoPackage other) {
|
||||
// Redo calculated fields
|
||||
installedPlatforms = null;
|
||||
latestTools = null;
|
||||
|
||||
if (other.platforms != null) {
|
||||
if (platforms != null) {
|
||||
platforms.addAll(other.platforms);
|
||||
} else {
|
||||
platforms = other.platforms;
|
||||
}
|
||||
for (ArduinoPlatform platform : other.platforms) {
|
||||
platform.init(this);
|
||||
}
|
||||
}
|
||||
|
||||
if (other.tools != null) {
|
||||
if (tools != null) {
|
||||
tools.addAll(other.tools);
|
||||
} else {
|
||||
tools = other.tools;
|
||||
}
|
||||
for (ArduinoTool tool : other.tools) {
|
||||
tool.init(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ArduinoPlatform getPlatform(String architecture, String version) {
|
||||
if (platforms != null) {
|
||||
for (ArduinoPlatform plat : platforms) {
|
||||
if (plat.getArchitecture().equals(architecture) && plat.getVersion().equals(version)) {
|
||||
return plat;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Path getInstallPath() {
|
||||
return ArduinoPreferences.getArduinoHome().resolve("packages").resolve(getName()); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
private synchronized void initInstalledPlatforms() throws CoreException {
|
||||
if (installedPlatforms == null) {
|
||||
installedPlatforms = new HashMap<>();
|
||||
|
||||
Path hardware = getInstallPath().resolve("hardware"); //$NON-NLS-1$
|
||||
if (Files.isDirectory(hardware)) {
|
||||
for (ArduinoPlatform platform : platforms) {
|
||||
String arch = platform.getArchitecture();
|
||||
String version = platform.getVersion();
|
||||
|
||||
Path platPath = hardware.resolve(arch).resolve(version);
|
||||
if (Files.exists(platPath)) {
|
||||
ArduinoPlatform current = installedPlatforms.get(arch);
|
||||
if (current == null || ArduinoManager.compareVersions(version, current.getVersion()) > 0) {
|
||||
installedPlatforms.put(arch, platform);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<ArduinoPlatform> getInstalledPlatforms() throws CoreException {
|
||||
initInstalledPlatforms();
|
||||
return installedPlatforms.values();
|
||||
}
|
||||
|
||||
public ArduinoPlatform getInstalledPlatform(String architecture) throws CoreException {
|
||||
if (architecture == null) {
|
||||
return null;
|
||||
} else {
|
||||
initInstalledPlatforms();
|
||||
return installedPlatforms.get(architecture);
|
||||
}
|
||||
}
|
||||
|
||||
void platformInstalled(ArduinoPlatform platform) {
|
||||
installedPlatforms.put(platform.getArchitecture(), platform);
|
||||
}
|
||||
|
||||
void platformUninstalled(ArduinoPlatform platform) {
|
||||
installedPlatforms.remove(platform.getArchitecture());
|
||||
}
|
||||
|
||||
public Collection<ArduinoPlatform> getAvailablePlatforms() throws CoreException {
|
||||
initInstalledPlatforms();
|
||||
Map<String, ArduinoPlatform> platformMap = new HashMap<>();
|
||||
for (ArduinoPlatform platform : platforms) {
|
||||
if (!installedPlatforms.containsKey(platform.getArchitecture())) {
|
||||
ArduinoPlatform p = platformMap.get(platform.getArchitecture());
|
||||
if (p == null || ArduinoManager.compareVersions(platform.getVersion(), p.getVersion()) > 0) {
|
||||
platformMap.put(platform.getArchitecture(), platform);
|
||||
}
|
||||
}
|
||||
}
|
||||
return platformMap.values();
|
||||
}
|
||||
|
||||
public Collection<ArduinoPlatform> getPlatformUpdates() throws CoreException {
|
||||
initInstalledPlatforms();
|
||||
Map<String, ArduinoPlatform> platformMap = new HashMap<>();
|
||||
for (ArduinoPlatform platform : platforms) {
|
||||
ArduinoPlatform installed = installedPlatforms.get(platform.getArchitecture());
|
||||
if (installed != null
|
||||
&& ArduinoManager.compareVersions(platform.getVersion(), installed.getVersion()) > 0) {
|
||||
ArduinoPlatform current = platformMap.get(platform.getArchitecture());
|
||||
if (current == null
|
||||
|| ArduinoManager.compareVersions(platform.getVersion(), current.getVersion()) > 0) {
|
||||
platformMap.put(platform.getArchitecture(), platform);
|
||||
}
|
||||
}
|
||||
}
|
||||
return platformMap.values();
|
||||
}
|
||||
|
||||
public List<ArduinoTool> getTools() {
|
||||
return tools;
|
||||
}
|
||||
|
||||
public ArduinoTool getTool(String toolName, String version) {
|
||||
for (ArduinoTool tool : tools) {
|
||||
if (tool.getName().equals(toolName) && tool.getVersion().equals(version)) {
|
||||
return tool;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void initLatestTools() {
|
||||
if (latestTools == null) {
|
||||
latestTools = new HashMap<>();
|
||||
|
||||
for (ArduinoTool tool : tools) {
|
||||
ArduinoTool current = latestTools.get(tool.getName());
|
||||
if (current == null || ArduinoManager.compareVersions(tool.getVersion(), current.getVersion()) > 0) {
|
||||
latestTools.put(tool.getName(), tool);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ArduinoTool getLatestTool(String toolName) {
|
||||
initLatestTools();
|
||||
return latestTools.get(toolName);
|
||||
}
|
||||
|
||||
public Collection<ArduinoTool> getLatestTools() {
|
||||
initLatestTools();
|
||||
return latestTools.values();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof ArduinoPackage) {
|
||||
return ((ArduinoPackage) obj).getName().equals(getName());
|
||||
}
|
||||
return super.equals(obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getName().hashCode();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,421 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoPreferences;
|
||||
import org.eclipse.cdt.arduino.core.internal.HierarchicalProperties;
|
||||
import org.eclipse.cdt.arduino.core.internal.LinkedProperties;
|
||||
import org.eclipse.cdt.arduino.core.internal.Messages;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.SubMonitor;
|
||||
|
||||
public class ArduinoPlatform {
|
||||
|
||||
// JSON fields
|
||||
private String name;
|
||||
private String architecture;
|
||||
private String version;
|
||||
private String category;
|
||||
private String url;
|
||||
private String archiveFileName;
|
||||
private String checksum;
|
||||
private String size;
|
||||
private List<ArduinoBoard> boards;
|
||||
private List<ToolDependency> toolsDependencies;
|
||||
// end JSON fields
|
||||
|
||||
private Path installPath;
|
||||
private ArduinoPackage pkg;
|
||||
private HierarchicalProperties boardsProperties;
|
||||
private HierarchicalProperties platformProperties;
|
||||
private HierarchicalProperties programmerProperties;
|
||||
private Map<String, String> menus = new HashMap<>();
|
||||
private Map<String, ArduinoLibrary> libraries;
|
||||
|
||||
void init(ArduinoPackage pkg) {
|
||||
this.pkg = pkg;
|
||||
|
||||
for (ArduinoBoard board : boards) {
|
||||
if (board != null) {
|
||||
board.setOwners(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ArduinoPackage getPackage() {
|
||||
return pkg;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getArchitecture() {
|
||||
return architecture;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version.replace('+', '_');
|
||||
}
|
||||
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getArchiveFileName() {
|
||||
return archiveFileName;
|
||||
}
|
||||
|
||||
public String getChecksum() {
|
||||
return checksum;
|
||||
}
|
||||
|
||||
public String getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setPlatformProperties(HierarchicalProperties platformProperties) {
|
||||
this.platformProperties = platformProperties;
|
||||
}
|
||||
|
||||
public List<ArduinoBoard> getBoards() {
|
||||
if (boardsProperties == null) {
|
||||
LinkedProperties boardProps = new LinkedProperties();
|
||||
|
||||
if (Files.exists(getInstallPath())) {
|
||||
try (InputStream is = new FileInputStream(getInstallPath().resolve("boards.txt").toFile()); //$NON-NLS-1$
|
||||
Reader reader = new InputStreamReader(is, "UTF-8")) { //$NON-NLS-1$
|
||||
boardProps.load(reader);
|
||||
} catch (IOException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
|
||||
boardsProperties = new HierarchicalProperties(boardProps);
|
||||
|
||||
// Replace the boards with a real ones
|
||||
boards = new ArrayList<>();
|
||||
for (Map.Entry<String, HierarchicalProperties> entry : boardsProperties.getChildren().entrySet()) {
|
||||
if (entry.getValue().getChild("name") != null) { //$NON-NLS-1$
|
||||
// assume things with names are boards
|
||||
boards.add(new ArduinoBoard(entry.getKey(), entry.getValue()).setOwners(this));
|
||||
}
|
||||
}
|
||||
|
||||
// Build the menu
|
||||
HierarchicalProperties menuProp = boardsProperties.getChild("menu"); //$NON-NLS-1$
|
||||
if (menuProp != null) {
|
||||
for (Map.Entry<String, HierarchicalProperties> entry : menuProp.getChildren().entrySet()) {
|
||||
menus.put(entry.getKey(), entry.getValue().getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return boards;
|
||||
}
|
||||
|
||||
public HierarchicalProperties getBoardsProperties() {
|
||||
return boardsProperties;
|
||||
}
|
||||
|
||||
public ArduinoBoard getBoard(String id) throws CoreException {
|
||||
for (ArduinoBoard board : getBoards()) {
|
||||
if (id.equals(board.getId())) {
|
||||
return board;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArduinoBoard getBoardByName(String name) throws CoreException {
|
||||
for (ArduinoBoard board : getBoards()) {
|
||||
if (name.equals(board.getName())) {
|
||||
return board;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getMenuText(String id) {
|
||||
return menus.get(id);
|
||||
}
|
||||
|
||||
public List<ToolDependency> getToolsDependencies() {
|
||||
return toolsDependencies;
|
||||
}
|
||||
|
||||
public ArduinoTool getTool(String name) throws CoreException {
|
||||
for (ToolDependency toolDep : toolsDependencies) {
|
||||
if (toolDep.getName().equals(name)) {
|
||||
return toolDep.getTool();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public HierarchicalProperties getPlatformProperties() throws CoreException {
|
||||
if (platformProperties == null) {
|
||||
LinkedProperties rawPlatformProps = new LinkedProperties();
|
||||
try (BufferedReader reader = new BufferedReader(
|
||||
new FileReader(getInstallPath().resolve("platform.txt").toFile()))) { //$NON-NLS-1$
|
||||
// There are regex's here and need to preserve the \'s
|
||||
StringBuilder buffer = new StringBuilder();
|
||||
for (String line = reader.readLine(); line != null; line = reader.readLine()) {
|
||||
buffer.append(line.replace("\\", "\\\\")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buffer.append('\n');
|
||||
}
|
||||
try (Reader reader1 = new StringReader(buffer.toString())) {
|
||||
rawPlatformProps.load(reader1);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
platformProperties = new HierarchicalProperties(rawPlatformProps);
|
||||
}
|
||||
return platformProperties;
|
||||
}
|
||||
|
||||
public HierarchicalProperties getProgrammers() throws CoreException {
|
||||
if (programmerProperties == null) {
|
||||
LinkedProperties props = new LinkedProperties();
|
||||
Path programmersTxt = getInstallPath().resolve("programmers.txt"); //$NON-NLS-1$
|
||||
if (Files.exists(programmersTxt)) {
|
||||
try (FileInputStream in = new FileInputStream(programmersTxt.toFile())) {
|
||||
props.load(in);
|
||||
programmerProperties = new HierarchicalProperties(props);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
} else {
|
||||
// TODO for now, grab the one from the arduino package
|
||||
ArduinoManager manager = Activator.getService(ArduinoManager.class);
|
||||
ArduinoPackage arduinoPkg = manager.getPackage("arduino"); //$NON-NLS-1$
|
||||
if (arduinoPkg != null) {
|
||||
ArduinoPlatform arduinoPlat = arduinoPkg.getInstalledPlatform(getArchitecture());
|
||||
if (arduinoPlat != null) {
|
||||
programmerProperties = arduinoPlat.getProgrammers();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return programmerProperties;
|
||||
}
|
||||
|
||||
public Path getInstallPath() {
|
||||
if (installPath == null) {
|
||||
Path oldPath = getPackage().getInstallPath().resolve("hardware").resolve(getPackage().getName()) //$NON-NLS-1$
|
||||
.resolve(getArchitecture()).resolve(getVersion());
|
||||
if (Files.exists(oldPath)) {
|
||||
installPath = oldPath;
|
||||
} else {
|
||||
installPath = getPackage().getInstallPath().resolve("hardware").resolve(getArchitecture()) //$NON-NLS-1$
|
||||
.resolve(getVersion());
|
||||
}
|
||||
}
|
||||
return installPath;
|
||||
}
|
||||
|
||||
private void initLibraries() throws CoreException {
|
||||
if (libraries == null) {
|
||||
libraries = new HashMap<>();
|
||||
if (Files.exists(getInstallPath())) {
|
||||
File[] libraryDirs = getInstallPath().resolve("libraries").toFile().listFiles(); //$NON-NLS-1$
|
||||
if (libraryDirs != null) {
|
||||
for (File libraryDir : libraryDirs) {
|
||||
Path propsPath = libraryDir.toPath().resolve("library.properties"); //$NON-NLS-1$
|
||||
if (propsPath.toFile().exists()) {
|
||||
ArduinoLibrary lib = new ArduinoLibrary(propsPath, this);
|
||||
libraries.put(lib.getName(), lib);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized Collection<ArduinoLibrary> getLibraries() throws CoreException {
|
||||
initLibraries();
|
||||
return libraries.values();
|
||||
}
|
||||
|
||||
public synchronized ArduinoLibrary getLibrary(String name) throws CoreException {
|
||||
initLibraries();
|
||||
return libraries != null ? libraries.get(name) : null;
|
||||
}
|
||||
|
||||
public void install(IProgressMonitor monitor) throws CoreException {
|
||||
int work = 1 + toolsDependencies.size();
|
||||
|
||||
boolean exists = Files.exists(getInstallPath());
|
||||
if (exists)
|
||||
work++;
|
||||
|
||||
Path makePath = ArduinoPreferences.getArduinoHome().resolve("make.exe"); //$NON-NLS-1$
|
||||
boolean needMake = Platform.getOS().equals(Platform.OS_WIN32) && !Files.exists(makePath);
|
||||
if (needMake)
|
||||
work++;
|
||||
|
||||
SubMonitor sub = SubMonitor.convert(monitor, work);
|
||||
|
||||
// Check if we're installed already
|
||||
if (exists) {
|
||||
try {
|
||||
sub.setTaskName(String.format("Removing old package %s", getName()));
|
||||
ArduinoManager.recursiveDelete(getInstallPath());
|
||||
sub.worked(1);
|
||||
} catch (IOException e) {
|
||||
// just log it, shouldn't break the install
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
// Install the tools
|
||||
for (ToolDependency toolDep : toolsDependencies) {
|
||||
sub.setTaskName(String.format("Installing tool %s", toolDep.getName()));
|
||||
toolDep.install(monitor);
|
||||
sub.worked(1);
|
||||
}
|
||||
|
||||
// On Windows install make from bintray
|
||||
if (needMake) {
|
||||
try {
|
||||
sub.setTaskName("Installing make");
|
||||
Files.createDirectories(makePath.getParent());
|
||||
URL makeUrl = new URL("https://bintray.com/artifact/download/cdtdoug/tools/make.exe"); //$NON-NLS-1$
|
||||
Files.copy(makeUrl.openStream(), makePath);
|
||||
makePath.toFile().setExecutable(true, false);
|
||||
sub.worked(1);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
// Download platform archive
|
||||
sub.setTaskName(String.format("Downloading and installing %s", getName()));
|
||||
try {
|
||||
ArduinoManager.downloadAndInstall(url, archiveFileName, getInstallPath(), monitor);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
sub.done();
|
||||
|
||||
pkg.platformInstalled(this);
|
||||
}
|
||||
|
||||
public IStatus uninstall(IProgressMonitor monitor) {
|
||||
try {
|
||||
ArduinoManager.recursiveDelete(getInstallPath());
|
||||
pkg.platformUninstalled(this);
|
||||
// TODO delete tools that aren't needed any more
|
||||
return Status.OK_STATUS;
|
||||
} catch (IOException e) {
|
||||
return new Status(IStatus.ERROR, Activator.getId(), Messages.ArduinoPlatform_1, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
|
||||
private String fixText(String text) {
|
||||
String fixed = text.replaceAll("&", "&"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
fixed = fixed.replaceAll("<", ">"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
fixed = fixed.replaceAll("<", "<"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
return fixed;
|
||||
}
|
||||
|
||||
public String toFormText() {
|
||||
StringBuilder text = new StringBuilder();
|
||||
|
||||
text.append("<form>"); //$NON-NLS-1$
|
||||
text.append(String.format("<p><b>%s: %s</b></p>", "Package", getName())); //$NON-NLS-1$
|
||||
text.append(String.format("<p>%s: %s</p>", "Maintainer", fixText(getPackage().getMaintainer()))); //$NON-NLS-1$
|
||||
|
||||
ArduinoHelp help = getPackage().getHelp();
|
||||
if (help != null && help.getOnline() != null) {
|
||||
text.append(String.format("<p><a href=\"%s\">%s</a></p>", help.getOnline(), "Online help")); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
text.append(String.format("<p>%s:</p>", "Supported boards")); //$NON-NLS-1$
|
||||
for (ArduinoBoard board : getBoards()) {
|
||||
text.append(String.format("<li>%s</li>", fixText(board.getName()))); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
text.append("</form>"); //$NON-NLS-1$
|
||||
|
||||
return text.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||
result = prime * result + ((pkg == null) ? 0 : pkg.hashCode());
|
||||
result = prime * result + ((version == null) ? 0 : version.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
ArduinoPlatform other = (ArduinoPlatform) obj;
|
||||
if (name == null) {
|
||||
if (other.name != null)
|
||||
return false;
|
||||
} else if (!name.equals(other.name))
|
||||
return false;
|
||||
if (pkg == null) {
|
||||
if (other.pkg != null)
|
||||
return false;
|
||||
} else if (!pkg.equals(other.pkg))
|
||||
return false;
|
||||
if (version == null) {
|
||||
if (other.version != null)
|
||||
return false;
|
||||
} else if (!version.equals(other.version))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfiguration;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
|
||||
public class ArduinoTool {
|
||||
|
||||
private String name;
|
||||
private String version;
|
||||
private List<ArduinoToolSystem> systems;
|
||||
|
||||
private transient ArduinoPackage pkg;
|
||||
|
||||
public ArduinoPackage getPackage() {
|
||||
return pkg;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version.replace('+', '_');
|
||||
}
|
||||
|
||||
public List<ArduinoToolSystem> getSystems() {
|
||||
return systems;
|
||||
}
|
||||
|
||||
void init(ArduinoPackage pkg) {
|
||||
this.pkg = pkg;
|
||||
for (ArduinoToolSystem system : systems) {
|
||||
system.setOwner(this);
|
||||
}
|
||||
}
|
||||
|
||||
public Path getInstallPath() {
|
||||
return getPackage().getInstallPath().resolve("tools").resolve(getName()).resolve(getVersion()); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public boolean isInstalled() {
|
||||
return getInstallPath().toFile().exists();
|
||||
}
|
||||
|
||||
public void install(IProgressMonitor monitor) throws CoreException {
|
||||
if (isInstalled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (ArduinoToolSystem system : systems) {
|
||||
if (system.isApplicable()) {
|
||||
system.install(monitor);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// No valid system
|
||||
throw new CoreException(
|
||||
new Status(IStatus.ERROR, Activator.getId(), String.format("No valid system found for %s", name))); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public Properties getToolProperties() {
|
||||
Properties properties = new Properties();
|
||||
properties.put("runtime.tools." + name + ".path", ArduinoBuildConfiguration.pathString(getInstallPath())); //$NON-NLS-1$//$NON-NLS-2$
|
||||
properties.put("runtime.tools." + name + '-' + version + ".path", //$NON-NLS-1$//$NON-NLS-2$
|
||||
ArduinoBuildConfiguration.pathString(getInstallPath())); //$NON-NLS-1$
|
||||
return properties;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,101 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
|
||||
public class ArduinoToolSystem {
|
||||
|
||||
private String host;
|
||||
private String archiveFileName;
|
||||
private String url;
|
||||
private String checksum;
|
||||
private String size;
|
||||
|
||||
private transient ArduinoTool tool;
|
||||
|
||||
public void setOwner(ArduinoTool tool) {
|
||||
this.tool = tool;
|
||||
}
|
||||
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
public String getArchiveFileName() {
|
||||
return archiveFileName;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getChecksum() {
|
||||
return checksum;
|
||||
}
|
||||
|
||||
public String getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public boolean isApplicable() {
|
||||
switch (Platform.getOS()) {
|
||||
case Platform.OS_WIN32:
|
||||
return "i686-mingw32".equals(host); //$NON-NLS-1$
|
||||
case Platform.OS_MACOSX:
|
||||
switch (host) {
|
||||
case "i386-apple-darwin11": //$NON-NLS-1$
|
||||
case "i386-apple-darwin": //$NON-NLS-1$
|
||||
case "x86_64-apple-darwin": //$NON-NLS-1$
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
case Platform.OS_LINUX:
|
||||
switch (Platform.getOSArch()) {
|
||||
case Platform.ARCH_X86_64:
|
||||
switch (host) {
|
||||
case "x86_64-pc-linux-gnu": //$NON-NLS-1$
|
||||
case "x86_64-linux-gnu": //$NON-NLS-1$
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
case Platform.ARCH_X86:
|
||||
switch (host) {
|
||||
case "i686-pc-linux-gnu": //$NON-NLS-1$
|
||||
case "i686-linux-gnu": //$NON-NLS-1$
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void install(IProgressMonitor monitor) throws CoreException {
|
||||
try {
|
||||
ArduinoManager.downloadAndInstall(url, archiveFileName, tool.getInstallPath(), monitor);
|
||||
} catch (IOException e) {
|
||||
throw Activator.coreException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class LibraryIndex {
|
||||
|
||||
private List<ArduinoLibrary> libraries;
|
||||
|
||||
public List<ArduinoLibrary> getLibraries() {
|
||||
return libraries;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class PackageIndex {
|
||||
|
||||
private List<ArduinoPackage> packages;
|
||||
|
||||
public Collection<ArduinoPackage> getPackages() {
|
||||
return packages;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.board;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
|
||||
public class ToolDependency {
|
||||
|
||||
private String packager;
|
||||
private String name;
|
||||
private String version;
|
||||
|
||||
public String getPackager() {
|
||||
return packager;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version.replace('+', '_');
|
||||
}
|
||||
|
||||
public ArduinoTool getTool() throws CoreException {
|
||||
return Activator.getService(ArduinoManager.class).getTool(getPackager(), getName(), getVersion());
|
||||
}
|
||||
|
||||
public void install(IProgressMonitor monitor) throws CoreException {
|
||||
ArduinoTool tool = getTool();
|
||||
if (tool == null) {
|
||||
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(),
|
||||
String.format("Tool not found %s %s", getName(), getVersion())));
|
||||
}
|
||||
getTool().install(monitor);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,876 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.build;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.io.StringWriter;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Properties;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoPreferences;
|
||||
import org.eclipse.cdt.arduino.core.internal.HierarchicalProperties;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoBoard;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoLibrary;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoPackage;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoPlatform;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoTool;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ToolDependency;
|
||||
import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection;
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.ConsoleOutputStream;
|
||||
import org.eclipse.cdt.core.ErrorParserManager;
|
||||
import org.eclipse.cdt.core.IConsoleParser;
|
||||
import org.eclipse.cdt.core.build.CBuildConfiguration;
|
||||
import org.eclipse.cdt.core.build.IToolChain;
|
||||
import org.eclipse.cdt.core.model.ICModelMarker;
|
||||
import org.eclipse.cdt.core.model.ISourceRoot;
|
||||
import org.eclipse.cdt.core.parser.ExtendedScannerInfo;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfo;
|
||||
import org.eclipse.cdt.core.resources.IConsole;
|
||||
import org.eclipse.core.resources.IBuildConfiguration;
|
||||
import org.eclipse.core.resources.IContainer;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IResourceProxy;
|
||||
import org.eclipse.core.resources.IResourceProxyVisitor;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.FileLocator;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.core.runtime.content.IContentType;
|
||||
import org.eclipse.remote.core.IRemoteConnectionChangeListener;
|
||||
import org.eclipse.remote.core.IRemoteServicesManager;
|
||||
import org.eclipse.remote.core.RemoteConnectionChangeEvent;
|
||||
|
||||
import freemarker.cache.TemplateLoader;
|
||||
import freemarker.template.Configuration;
|
||||
import freemarker.template.Template;
|
||||
import freemarker.template.TemplateException;
|
||||
|
||||
public class ArduinoBuildConfiguration extends CBuildConfiguration
|
||||
implements TemplateLoader, IRemoteConnectionChangeListener {
|
||||
|
||||
private static final ArduinoManager manager = Activator.getService(ArduinoManager.class);
|
||||
private static final boolean isWindows = Platform.getOS().equals(Platform.OS_WIN32);
|
||||
|
||||
private final ArduinoRemoteConnection target;
|
||||
private final String launchMode;
|
||||
private ArduinoBoard defaultBoard;
|
||||
private Properties boardProperties;
|
||||
|
||||
// for Makefile generation
|
||||
private Configuration templateConfig;
|
||||
|
||||
/**
|
||||
* Default configuration.
|
||||
*
|
||||
* @param config
|
||||
*/
|
||||
ArduinoBuildConfiguration(IBuildConfiguration config, String name, String launchMode, ArduinoBoard defaultBoard,
|
||||
IToolChain toolChain) throws CoreException {
|
||||
super(config, ".default", toolChain); //$NON-NLS-1$
|
||||
this.target = null;
|
||||
this.launchMode = launchMode;
|
||||
this.defaultBoard = defaultBoard;
|
||||
}
|
||||
|
||||
ArduinoBuildConfiguration(IBuildConfiguration config, String name, String launchMode,
|
||||
ArduinoRemoteConnection target, IToolChain toolChain) throws CoreException {
|
||||
super(config, name, toolChain);
|
||||
this.target = target;
|
||||
this.launchMode = launchMode;
|
||||
IRemoteServicesManager remoteManager = Activator.getService(IRemoteServicesManager.class);
|
||||
remoteManager.addRemoteConnectionChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void connectionChanged(RemoteConnectionChangeEvent event) {
|
||||
if (event.getConnection().equals(target.getRemoteConnection())) {
|
||||
boardProperties = null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> T getAdapter(Class<T> adapter) {
|
||||
if (adapter.equals(ArduinoBuildConfiguration.class)) {
|
||||
return (T) this;
|
||||
}
|
||||
return super.getAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLaunchMode() {
|
||||
return launchMode;
|
||||
}
|
||||
|
||||
public ArduinoRemoteConnection getTarget() {
|
||||
return target;
|
||||
}
|
||||
|
||||
public ArduinoBoard getBoard() throws CoreException {
|
||||
if (target != null) {
|
||||
return target.getBoard();
|
||||
} else {
|
||||
return defaultBoard;
|
||||
}
|
||||
}
|
||||
|
||||
private synchronized Properties getBoardProperties() throws CoreException {
|
||||
if (boardProperties == null) {
|
||||
ArduinoBoard board = getBoard();
|
||||
ArduinoPlatform platform = board.getPlatform();
|
||||
|
||||
// IDE generated properties
|
||||
boardProperties = new Properties();
|
||||
boardProperties.put("runtime.platform.path", platform.getInstallPath().toString()); //$NON-NLS-1$
|
||||
boardProperties.put("runtime.ide.version", "10608"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
boardProperties.put("software", "ARDUINO"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
boardProperties.put("build.arch", platform.getArchitecture().toUpperCase()); //$NON-NLS-1$
|
||||
boardProperties.put("build.path", "."); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
boardProperties.put("build.core.path", //$NON-NLS-1$
|
||||
platform.getInstallPath().resolve("cores").resolve("{build.core}").toString()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
boardProperties.put("build.system.path", platform.getInstallPath().resolve("system").toString()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
boardProperties.put("build.variant.path", //$NON-NLS-1$
|
||||
platform.getInstallPath().resolve("variants").resolve("{build.variant}").toString()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
// Everyone seems to want to use arduino package tools
|
||||
ArduinoPackage arduinoPackage = manager.getPackage("arduino"); //$NON-NLS-1$
|
||||
if (arduinoPackage != null) {
|
||||
for (ArduinoTool tool : arduinoPackage.getLatestTools()) {
|
||||
boardProperties.put("runtime.tools." + tool.getName() + ".path", tool.getInstallPath().toString()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
for (ArduinoTool tool : arduinoPackage.getTools()) {
|
||||
boardProperties.put("runtime.tools." + tool.getName() + '-' + tool.getVersion() + ".path", //$NON-NLS-1$ //$NON-NLS-2$
|
||||
tool.getInstallPath().toString());
|
||||
}
|
||||
}
|
||||
|
||||
// Super Platform
|
||||
String core = board.getBoardProperties().getProperty("build.core"); //$NON-NLS-1$
|
||||
if (core.contains(":")) { //$NON-NLS-1$
|
||||
String[] segments = core.split(":"); //$NON-NLS-1$
|
||||
if (segments.length == 2) {
|
||||
ArduinoPlatform superPlatform = manager.getInstalledPlatform(segments[0],
|
||||
platform.getArchitecture());
|
||||
if (superPlatform != null) {
|
||||
boardProperties.putAll(superPlatform.getPlatformProperties().flatten());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Platform
|
||||
boardProperties.putAll(platform.getPlatformProperties().flatten());
|
||||
|
||||
// Tools
|
||||
for (ToolDependency toolDep : platform.getToolsDependencies()) {
|
||||
boardProperties.putAll(toolDep.getTool().getToolProperties());
|
||||
}
|
||||
|
||||
// Board
|
||||
boardProperties.putAll(board.getBoardProperties());
|
||||
|
||||
// Menus
|
||||
HierarchicalProperties menus = board.getMenus();
|
||||
if (menus != null && target != null) {
|
||||
for (Entry<String, HierarchicalProperties> menuEntry : menus.getChildren().entrySet()) {
|
||||
String key = menuEntry.getKey();
|
||||
String value = target.getMenuValue(key);
|
||||
if (value == null || value.isEmpty()) {
|
||||
Iterator<HierarchicalProperties> i = menuEntry.getValue().getChildren().values().iterator();
|
||||
if (i.hasNext()) {
|
||||
HierarchicalProperties first = i.next();
|
||||
value = first.getValue();
|
||||
}
|
||||
}
|
||||
if (value != null && !value.isEmpty()) {
|
||||
boardProperties.putAll(board.getMenuProperties(key, value));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// always do this in case the project changes names
|
||||
boardProperties.put("build.project_name", getProject().getName()); //$NON-NLS-1$
|
||||
return boardProperties;
|
||||
}
|
||||
|
||||
public Map<String, Object> getBuildModel() throws CoreException {
|
||||
IProject project = getProject();
|
||||
ArduinoBoard board = getBoard();
|
||||
ArduinoPlatform platform = board.getPlatform();
|
||||
|
||||
Properties properties = new Properties();
|
||||
Map<String, Object> buildModel = new HashMap<>();
|
||||
buildModel.put("boardId", board.getId()); //$NON-NLS-1$
|
||||
properties.put("object_file", "$@"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
properties.put("source_file", "$<"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
// The list of source files in the project
|
||||
final Path projectPath = new File(project.getLocationURI()).toPath();
|
||||
final List<String> sourceFiles = new ArrayList<>();
|
||||
for (ISourceRoot sourceRoot : CCorePlugin.getDefault().getCoreModel().create(project).getSourceRoots()) {
|
||||
sourceRoot.getResource().accept(new IResourceProxyVisitor() {
|
||||
@Override
|
||||
public boolean visit(IResourceProxy proxy) throws CoreException {
|
||||
if (proxy.getType() == IResource.FILE) {
|
||||
if (isSource(proxy.getName())) {
|
||||
Path sourcePath = new File(proxy.requestResource().getLocationURI()).toPath();
|
||||
sourceFiles.add(pathString(projectPath.relativize(sourcePath)));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}, 0);
|
||||
}
|
||||
buildModel.put("project_srcs", sourceFiles); //$NON-NLS-1$
|
||||
|
||||
// The list of library sources
|
||||
List<String> librarySources = new ArrayList<>();
|
||||
for (ArduinoLibrary lib : manager.getLibraries(project)) {
|
||||
librarySources.addAll(lib.getSources());
|
||||
}
|
||||
buildModel.put("libraries_srcs", librarySources); //$NON-NLS-1$
|
||||
buildModel.put("libraries_path", pathString(ArduinoPreferences.getArduinoHome().resolve("libraries"))); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
// the recipes
|
||||
properties.putAll(getBoardProperties());
|
||||
buildModel.put("build_path", properties.get("build.path")); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("project_name", project.getName()); //$NON-NLS-1$
|
||||
|
||||
String includes = null;
|
||||
for (Path include : getIncludePath(platform, properties)) {
|
||||
if (includes == null) {
|
||||
includes = "-I"; //$NON-NLS-1$
|
||||
} else {
|
||||
includes += " -I"; //$NON-NLS-1$
|
||||
}
|
||||
includes += '"' + pathString(include) + '"';
|
||||
}
|
||||
|
||||
for (ArduinoLibrary lib : manager.getLibraries(project)) {
|
||||
for (Path include : lib.getIncludePath()) {
|
||||
includes += " -I\"" + pathString(include) + '"'; //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
||||
// Magic recipes for platform builds with platform includes
|
||||
properties.put("includes", includes); //$NON-NLS-1$
|
||||
buildModel.put("recipe_cpp_o_pattern_plat", resolveProperty("recipe.cpp.o.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_c_o_pattern_plat", resolveProperty("recipe.c.o.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_S_o_pattern_plat", resolveProperty("recipe.S.o.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
ArduinoPlatform corePlatform = platform;
|
||||
String core = properties.getProperty("build.core"); //$NON-NLS-1$
|
||||
if (core.contains(":")) { //$NON-NLS-1$
|
||||
String[] segments = core.split(":"); //$NON-NLS-1$
|
||||
if (segments.length == 2) {
|
||||
corePlatform = manager.getInstalledPlatform(segments[0], platform.getArchitecture());
|
||||
core = segments[1];
|
||||
}
|
||||
}
|
||||
buildModel.put("platform_path", pathString(corePlatform.getInstallPath())); //$NON-NLS-1$
|
||||
Path corePath = corePlatform.getInstallPath().resolve("cores").resolve(core); //$NON-NLS-1$
|
||||
buildModel.put("platform_core_path", pathString(corePath)); //$NON-NLS-1$
|
||||
List<String> coreSources = new ArrayList<>();
|
||||
getSources(coreSources, corePath, true);
|
||||
buildModel.put("platform_core_srcs", coreSources); //$NON-NLS-1$
|
||||
|
||||
List<String> variantSources = new ArrayList<>();
|
||||
String variant = properties.getProperty("build.variant"); //$NON-NLS-1$
|
||||
if (variant != null) {
|
||||
ArduinoPlatform variantPlatform = platform;
|
||||
if (variant.contains(":")) { //$NON-NLS-1$
|
||||
String[] segments = variant.split(":"); //$NON-NLS-1$
|
||||
if (segments.length == 2) {
|
||||
variantPlatform = manager.getInstalledPlatform(segments[0], platform.getArchitecture());
|
||||
variant = segments[1];
|
||||
}
|
||||
}
|
||||
Path variantPath = variantPlatform.getInstallPath().resolve("variants").resolve(variant); //$NON-NLS-1$
|
||||
buildModel.put("platform_variant_path", pathString(variantPath)); //$NON-NLS-1$
|
||||
getSources(variantSources, variantPath, true);
|
||||
}
|
||||
buildModel.put("platform_variant_srcs", variantSources); //$NON-NLS-1$
|
||||
|
||||
properties.put("archive_file", "core.a"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
properties.put("archive_file_path", "{build.path}/{archive_file}"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
properties.put("object_files", "$(PROJECT_OBJS) $(LIBRARIES_OBJS)"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
buildModel.put("recipe_cpp_o_pattern", resolveProperty("recipe.cpp.o.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_c_o_pattern", resolveProperty("recipe.c.o.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_S_o_pattern", resolveProperty("recipe.S.o.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_ar_pattern", resolveProperty("recipe.ar.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_c_combine_pattern", resolveProperty("recipe.c.combine.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_objcopy_eep_pattern", resolveProperty("recipe.objcopy.eep.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_objcopy_hex_pattern", resolveProperty("recipe.objcopy.hex.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_objcopy_bin_pattern", resolveProperty("recipe.objcopy.bin.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
buildModel.put("recipe_size_pattern", resolveProperty("recipe.size.pattern", properties)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
return buildModel;
|
||||
}
|
||||
|
||||
private static void getSources(Collection<String> sources, Path dir, boolean recurse) {
|
||||
for (File file : dir.toFile().listFiles()) {
|
||||
if (file.isDirectory()) {
|
||||
if (recurse) {
|
||||
getSources(sources, file.toPath(), recurse);
|
||||
}
|
||||
} else {
|
||||
if (ArduinoBuildConfiguration.isSource(file.getName())) {
|
||||
sources.add(ArduinoBuildConfiguration.pathString(file.toPath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IFile generateMakeFile(IProgressMonitor monitor) throws CoreException {
|
||||
IFolder buildFolder = (IFolder) getBuildContainer();
|
||||
if (!buildFolder.exists()) {
|
||||
buildFolder.create(true, true, monitor);
|
||||
}
|
||||
|
||||
IFile makefile = buildFolder.getFile("Makefile"); //$NON-NLS-1$
|
||||
|
||||
Map<String, Object> buildModel = getBuildModel();
|
||||
|
||||
// Generate the Makefile
|
||||
try (StringWriter writer = new StringWriter()) {
|
||||
if (templateConfig == null) {
|
||||
templateConfig = new Configuration(Configuration.VERSION_2_3_22);
|
||||
templateConfig.setTemplateLoader(this);
|
||||
}
|
||||
|
||||
Template template = templateConfig.getTemplate("templates/Makefile"); //$NON-NLS-1$
|
||||
template.process(buildModel, writer);
|
||||
try (ByteArrayInputStream in = new ByteArrayInputStream(
|
||||
writer.getBuffer().toString().getBytes(StandardCharsets.UTF_8))) {
|
||||
createParent(makefile, monitor);
|
||||
if (makefile.exists()) {
|
||||
makefile.setContents(in, true, true, monitor);
|
||||
} else {
|
||||
makefile.create(in, true, monitor);
|
||||
}
|
||||
}
|
||||
} catch (IOException | TemplateException e) {
|
||||
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(), "Error generating makefile", e));
|
||||
}
|
||||
|
||||
return makefile;
|
||||
}
|
||||
|
||||
protected static void createParent(IResource child, IProgressMonitor monitor) throws CoreException {
|
||||
if (child == null)
|
||||
return;
|
||||
|
||||
IContainer container = child.getParent();
|
||||
if (container.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
IFolder parent = container.getAdapter(IFolder.class);
|
||||
createParent(parent, monitor);
|
||||
parent.create(true, true, monitor);
|
||||
}
|
||||
|
||||
public static boolean isSource(String filename) {
|
||||
int i = filename.lastIndexOf('.');
|
||||
String ext = filename.substring(i + 1);
|
||||
switch (ext) {
|
||||
case "cpp": //$NON-NLS-1$
|
||||
case "c": //$NON-NLS-1$
|
||||
case "S": //$NON-NLS-1$
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private String resolvePropertyValue(String value, Properties dict) throws CoreException {
|
||||
String last;
|
||||
do {
|
||||
last = value;
|
||||
for (int i = value.indexOf('{'); i >= 0; i = value.indexOf('{', i)) {
|
||||
i++;
|
||||
if (value.charAt(i) == '{') {
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
|
||||
int n = value.indexOf('}', i);
|
||||
if (n >= 0) {
|
||||
String p2 = value.substring(i, n);
|
||||
String r2 = dict.getProperty(p2);
|
||||
if (r2 != null) {
|
||||
value = value.replace('{' + p2 + '}', r2);
|
||||
} else {
|
||||
throw Activator.coreException(String.format("Undefined key %s", p2), null);
|
||||
}
|
||||
}
|
||||
i = n;
|
||||
}
|
||||
} while (!value.equals(last));
|
||||
|
||||
return value.replace("}}", "}").replace("{{", "{"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
|
||||
}
|
||||
|
||||
private String resolveProperty(String property, Properties dict) throws CoreException {
|
||||
String value = dict.getProperty(property);
|
||||
return value != null ? resolvePropertyValue(value, dict) : null;
|
||||
}
|
||||
|
||||
public String getMakeCommand() {
|
||||
return isWindows ? ArduinoPreferences.getArduinoHome().resolve("make").toString() : "make"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
public String[] getBuildCommand() throws CoreException {
|
||||
return new String[] { getMakeCommand() };
|
||||
}
|
||||
|
||||
public String[] getCleanCommand() throws CoreException {
|
||||
return new String[] { getMakeCommand(), "clean" }; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public String[] getSizeCommand() throws CoreException {
|
||||
// TODO this shouldn't be in the makefile
|
||||
// should be like the upload command
|
||||
return new String[] { getMakeCommand(), "size" }; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public String getCodeSizeRegex() throws CoreException {
|
||||
return getBoard().getPlatform().getPlatformProperties().getProperty("recipe.size.regex"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public int getMaxCodeSize() throws CoreException {
|
||||
String sizeStr = getBoardProperties().getProperty("upload.maximum_size"); //$NON-NLS-1$
|
||||
return sizeStr != null ? Integer.parseInt(sizeStr) : -1;
|
||||
}
|
||||
|
||||
public String getDataSizeRegex() throws CoreException {
|
||||
return getBoard().getPlatform().getPlatformProperties().getProperty("recipe.size.regex.data"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
public int getMaxDataSize() throws CoreException {
|
||||
String sizeStr = getBoardProperties().getProperty("upload.maximum_data_size"); //$NON-NLS-1$
|
||||
return sizeStr != null ? Integer.parseInt(sizeStr) : -1;
|
||||
}
|
||||
|
||||
public String[] getUploadCommand(String serialPort) throws CoreException {
|
||||
Properties properties = new Properties();
|
||||
properties.putAll(getBoardProperties());
|
||||
|
||||
String toolName = properties.getProperty("upload.tool"); //$NON-NLS-1$
|
||||
ArduinoPlatform platform = getBoard().getPlatform();
|
||||
if (toolName.contains(":")) { //$NON-NLS-1$
|
||||
String[] segments = toolName.split(":"); //$NON-NLS-1$
|
||||
if (segments.length == 2) {
|
||||
platform = manager.getInstalledPlatform(segments[0], platform.getArchitecture());
|
||||
toolName = segments[1];
|
||||
}
|
||||
}
|
||||
|
||||
ArduinoTool uploadTool = platform.getTool(toolName);
|
||||
if (uploadTool != null) {
|
||||
properties.putAll(uploadTool.getToolProperties());
|
||||
}
|
||||
|
||||
properties.put("serial.port", serialPort); //$NON-NLS-1$
|
||||
// Little bit of weirdness needed for the bossac tool
|
||||
if (serialPort.startsWith("/dev/")) { //$NON-NLS-1$
|
||||
properties.put("serial.port.file", serialPort.substring(5)); //$NON-NLS-1$
|
||||
} else {
|
||||
properties.put("serial.port.file", serialPort); //$NON-NLS-1$
|
||||
}
|
||||
// to make up for some cheating in the platform.txt file
|
||||
properties.put("path", "{tools." + toolName + ".path}"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
properties.put("cmd.path", "{tools." + toolName + ".cmd.path}"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
properties.put("config.path", "{tools." + toolName + ".config.path}"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
// properties for the tool flattened
|
||||
HierarchicalProperties toolsProps = platform.getPlatformProperties().getChild("tools"); //$NON-NLS-1$
|
||||
if (toolsProps != null) {
|
||||
HierarchicalProperties toolProps = toolsProps.getChild(toolName);
|
||||
if (toolProps != null) {
|
||||
properties.putAll(toolProps.flatten());
|
||||
}
|
||||
}
|
||||
|
||||
String command;
|
||||
if (properties.get("upload.protocol") != null) { //$NON-NLS-1$
|
||||
// TODO make this a preference
|
||||
properties.put("upload.verbose", properties.getProperty("upload.params.verbose", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
properties.put("upload.verify", properties.getProperty("upload.params.verify", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
command = resolveProperty("upload.pattern", properties); //$NON-NLS-1$
|
||||
} else {
|
||||
// use the bootloader
|
||||
String programmer = target.getProgrammer();
|
||||
if (programmer != null) {
|
||||
HierarchicalProperties programmers = getBoard().getPlatform().getProgrammers();
|
||||
if (programmers != null) {
|
||||
HierarchicalProperties programmerProps = programmers.getChild(programmer);
|
||||
if (programmerProps != null) {
|
||||
properties.putAll(programmerProps.flatten());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO preference
|
||||
properties.put("program.verbose", properties.getProperty("program.params.verbose", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
properties.put("program.verify", properties.getProperty("program.params.verify", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
command = resolveProperty("program.pattern", properties); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
if (command == null) {
|
||||
throw Activator.coreException("Upload command not specified", null);
|
||||
}
|
||||
if (isWindows) {
|
||||
List<String> args = splitCommand(command);
|
||||
return args.toArray(new String[args.size()]);
|
||||
} else {
|
||||
return new String[] { "sh", "-c", command }; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<Path> getIncludePath(ArduinoPlatform platform, Properties properties) throws CoreException {
|
||||
ArduinoPlatform corePlatform = platform;
|
||||
String core = properties.getProperty("build.core"); //$NON-NLS-1$
|
||||
if (core.contains(":")) { //$NON-NLS-1$
|
||||
String[] segments = core.split(":"); //$NON-NLS-1$
|
||||
if (segments.length == 2) {
|
||||
corePlatform = manager.getInstalledPlatform(segments[0], platform.getArchitecture());
|
||||
core = segments[1];
|
||||
}
|
||||
}
|
||||
|
||||
ArduinoPlatform variantPlatform = platform;
|
||||
String variant = properties.getProperty("build.variant"); //$NON-NLS-1$
|
||||
if (variant != null) {
|
||||
if (variant.contains(":")) { //$NON-NLS-1$
|
||||
String[] segments = variant.split(":"); //$NON-NLS-1$
|
||||
if (segments.length == 2) {
|
||||
variantPlatform = manager.getInstalledPlatform(segments[0], platform.getArchitecture());
|
||||
variant = segments[1];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return Arrays.asList(corePlatform.getInstallPath().resolve("cores").resolve(core)); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
return Arrays.asList(corePlatform.getInstallPath().resolve("cores").resolve(core), //$NON-NLS-1$
|
||||
variantPlatform.getInstallPath().resolve("variants").resolve(variant)); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
// Scanner Info Cache
|
||||
private String[] cachedIncludePath;
|
||||
private String cachedInfoCommand;
|
||||
private IScannerInfo cachedScannerInfo;
|
||||
|
||||
@Override
|
||||
public IScannerInfo getScannerInformation(IResource resource) {
|
||||
try {
|
||||
IContentType contentType = CCorePlugin.getContentType(resource.getProject(), resource.getName());
|
||||
String recipe;
|
||||
if (contentType != null && (contentType.getId() == CCorePlugin.CONTENT_TYPE_CSOURCE
|
||||
|| contentType.getId() == CCorePlugin.CONTENT_TYPE_CSOURCE)) {
|
||||
recipe = "recipe.c.o.pattern"; //$NON-NLS-1$
|
||||
} else {
|
||||
recipe = "recipe.cpp.o.pattern"; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
ArduinoPlatform platform = getBoard().getPlatform();
|
||||
Properties properties = new Properties();
|
||||
properties.putAll(getBoardProperties());
|
||||
|
||||
// Overrides for scanner discovery
|
||||
properties.put("source_file", ""); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
properties.put("object_file", "-"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
// the base scanner info does includes
|
||||
properties.put("includes", ""); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
String commandString = resolveProperty(recipe, properties);
|
||||
|
||||
List<Path> includePath = new ArrayList<>();
|
||||
includePath.addAll(getIncludePath(platform, properties));
|
||||
Collection<ArduinoLibrary> libs = manager.getLibraries(getProject());
|
||||
for (ArduinoLibrary lib : libs) {
|
||||
includePath.addAll(lib.getIncludePath());
|
||||
}
|
||||
String[] includes = null;
|
||||
try {
|
||||
includes = includePath.stream().map(path -> {
|
||||
try {
|
||||
return resolvePropertyValue(path.toString(), properties);
|
||||
} catch (CoreException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}).collect(Collectors.toList()).toArray(new String[includePath.size()]);
|
||||
} catch (RuntimeException e) {
|
||||
if (e.getCause() != null && e.getCause() instanceof CoreException) {
|
||||
throw (CoreException) e.getCause();
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
// Use cache if we can
|
||||
if (cachedScannerInfo != null && cachedInfoCommand.equals(commandString)
|
||||
&& cachedIncludePath.length == includes.length) {
|
||||
boolean matches = true;
|
||||
for (int i = 0; i < includes.length; ++i) {
|
||||
if (!includes[i].equals(cachedIncludePath[i])) {
|
||||
matches = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (matches) {
|
||||
return cachedScannerInfo;
|
||||
}
|
||||
}
|
||||
|
||||
ExtendedScannerInfo baseInfo = new ExtendedScannerInfo(null, includes);
|
||||
List<String> command = splitCommand(commandString);
|
||||
IScannerInfo info = getToolChain().getScannerInfo(getBuildConfiguration(), command, baseInfo, resource,
|
||||
getBuildDirectoryURI());
|
||||
|
||||
// cache the results
|
||||
cachedScannerInfo = info;
|
||||
cachedInfoCommand = commandString;
|
||||
cachedIncludePath = includes;
|
||||
|
||||
return info;
|
||||
} catch (CoreException e) {
|
||||
Activator.log(e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String pathString(Path path) {
|
||||
String str = path.toString();
|
||||
if (isWindows) {
|
||||
str = str.replaceAll("\\\\", "/"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
private List<String> splitCommand(String command) {
|
||||
boolean inQuotes = false;
|
||||
boolean inDouble = false;
|
||||
|
||||
List<String> args = new ArrayList<>();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 0; i < command.length(); i++) {
|
||||
char c = command.charAt(i);
|
||||
switch (c) {
|
||||
case ' ':
|
||||
if (inQuotes || inDouble) {
|
||||
builder.append(c);
|
||||
} else if (builder.length() > 0) {
|
||||
args.add(builder.toString());
|
||||
builder = new StringBuilder();
|
||||
}
|
||||
break;
|
||||
case '\'':
|
||||
if (inDouble) {
|
||||
builder.append(c);
|
||||
} else {
|
||||
inQuotes = !inQuotes;
|
||||
}
|
||||
break;
|
||||
case '"':
|
||||
if (inQuotes) {
|
||||
builder.append(c);
|
||||
} else {
|
||||
inDouble = !inDouble;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
builder.append(c);
|
||||
}
|
||||
}
|
||||
|
||||
if (builder.length() > 0) {
|
||||
args.add(builder.toString());
|
||||
}
|
||||
|
||||
return args;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IProject[] build(int kind, Map<String, String> args, IConsole console, IProgressMonitor monitor)
|
||||
throws CoreException {
|
||||
IProject project = getProject();
|
||||
try {
|
||||
project.deleteMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
|
||||
|
||||
ConsoleOutputStream consoleOut = console.getOutputStream();
|
||||
consoleOut.write(String.format("\nBuilding %s\n", project.getName()));
|
||||
|
||||
generateMakeFile(monitor);
|
||||
|
||||
try (ErrorParserManager epm = new ErrorParserManager(project, getBuildDirectoryURI(), this,
|
||||
getToolChain().getErrorParserIds())) {
|
||||
epm.setOutputStream(console.getOutputStream());
|
||||
ProcessBuilder processBuilder = new ProcessBuilder().command(getBuildCommand())
|
||||
.directory(getBuildDirectory().toFile());
|
||||
setBuildEnvironment(processBuilder.environment());
|
||||
Process process = processBuilder.start();
|
||||
if (watchProcess(process, new IConsoleParser[] { epm }) == 0) {
|
||||
showSizes(console);
|
||||
}
|
||||
}
|
||||
|
||||
getBuildContainer().refreshLocal(IResource.DEPTH_INFINITE, monitor);
|
||||
} catch (IOException e) {
|
||||
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(), "Build error", e));
|
||||
}
|
||||
|
||||
// TODO if there are references we want to watch, return them here
|
||||
return new IProject[] { project };
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clean(IConsole console, IProgressMonitor monitor) throws CoreException {
|
||||
try {
|
||||
IProject project = getProject();
|
||||
project.deleteMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
|
||||
|
||||
ConsoleOutputStream consoleOut = console.getOutputStream();
|
||||
consoleOut.write(String.format("\nCleaning %s\n", project.getName()));
|
||||
|
||||
ProcessBuilder processBuilder = new ProcessBuilder().command(getCleanCommand())
|
||||
.directory(getBuildDirectory().toFile());
|
||||
setBuildEnvironment(processBuilder.environment());
|
||||
Process process = processBuilder.start();
|
||||
|
||||
watchProcess(process, console);
|
||||
|
||||
getBuildContainer().refreshLocal(IResource.DEPTH_INFINITE, monitor);
|
||||
} catch (IOException e) {
|
||||
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(), "Build error", e));
|
||||
}
|
||||
}
|
||||
|
||||
private void showSizes(IConsole console) throws CoreException {
|
||||
try {
|
||||
int codeSize = -1;
|
||||
int dataSize = -1;
|
||||
|
||||
String codeSizeRegex = getCodeSizeRegex();
|
||||
Pattern codeSizePattern = codeSizeRegex != null ? Pattern.compile(codeSizeRegex) : null;
|
||||
String dataSizeRegex = getDataSizeRegex();
|
||||
Pattern dataSizePattern = dataSizeRegex != null ? Pattern.compile(dataSizeRegex) : null;
|
||||
|
||||
if (codeSizePattern == null && dataSizePattern == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int maxCodeSize = getMaxCodeSize();
|
||||
int maxDataSize = getMaxDataSize();
|
||||
|
||||
ProcessBuilder processBuilder = new ProcessBuilder().command(getSizeCommand())
|
||||
.directory(getBuildDirectory().toFile()).redirectErrorStream(true);
|
||||
setBuildEnvironment(processBuilder.environment());
|
||||
Process process = processBuilder.start();
|
||||
try (BufferedReader processOut = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
|
||||
for (String line = processOut.readLine(); line != null; line = processOut.readLine()) {
|
||||
if (codeSizePattern != null) {
|
||||
Matcher matcher = codeSizePattern.matcher(line);
|
||||
if (matcher.matches()) {
|
||||
codeSize += Integer.parseInt(matcher.group(1));
|
||||
}
|
||||
}
|
||||
if (dataSizePattern != null) {
|
||||
Matcher matcher = dataSizePattern.matcher(line);
|
||||
if (matcher.matches()) {
|
||||
dataSize += Integer.parseInt(matcher.group(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ConsoleOutputStream consoleOut = console.getOutputStream();
|
||||
consoleOut.write("Program store usage: " + codeSize);
|
||||
if (maxCodeSize > 0) {
|
||||
consoleOut.write(" of maximum " + maxCodeSize);
|
||||
}
|
||||
consoleOut.write(" bytes\n");
|
||||
|
||||
if (maxDataSize >= 0) {
|
||||
consoleOut.write("Initial RAM usage: " + dataSize);
|
||||
if (maxCodeSize > 0) {
|
||||
consoleOut.write(" of maximum " + maxDataSize);
|
||||
}
|
||||
consoleOut.write(" bytes\n");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(), "Checking sizes", e));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object findTemplateSource(String name) throws IOException {
|
||||
return FileLocator.find(Activator.getPlugin().getBundle(), new org.eclipse.core.runtime.Path(name), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getLastModified(Object source) {
|
||||
try {
|
||||
URL url = (URL) source;
|
||||
if (url.getProtocol().equals("file")) { //$NON-NLS-1$
|
||||
File file = new File(url.toURI());
|
||||
return file.lastModified();
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
} catch (URISyntaxException e) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Reader getReader(Object source, String encoding) throws IOException {
|
||||
URL url = (URL) source;
|
||||
return new InputStreamReader(url.openStream(), encoding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeTemplateSource(Object arg0) throws IOException {
|
||||
// Nothing
|
||||
}
|
||||
|
||||
}
|
|
@ -1,115 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.build;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.Messages;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoBoard;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection;
|
||||
import org.eclipse.cdt.core.build.ICBuildConfiguration;
|
||||
import org.eclipse.cdt.core.build.ICBuildConfigurationManager;
|
||||
import org.eclipse.cdt.core.build.ICBuildConfigurationProvider;
|
||||
import org.eclipse.cdt.core.build.IToolChain;
|
||||
import org.eclipse.cdt.core.build.IToolChainManager;
|
||||
import org.eclipse.cdt.core.build.IToolChainProvider;
|
||||
import org.eclipse.core.resources.IBuildConfiguration;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.remote.core.IRemoteConnection;
|
||||
import org.eclipse.remote.core.IRemoteConnectionType;
|
||||
import org.eclipse.remote.core.IRemoteServicesManager;
|
||||
|
||||
public class ArduinoBuildConfigurationProvider implements ICBuildConfigurationProvider {
|
||||
|
||||
public static final String ID = "org.eclipse.cdt.arduino.core.provider"; //$NON-NLS-1$
|
||||
|
||||
private static final ICBuildConfigurationManager configManager = Activator
|
||||
.getService(ICBuildConfigurationManager.class);
|
||||
private static final ArduinoManager arduinoManager = Activator.getService(ArduinoManager.class);
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICBuildConfiguration getCBuildConfiguration(IBuildConfiguration config, String name) throws CoreException {
|
||||
if (config.getName().equals(IBuildConfiguration.DEFAULT_CONFIG_NAME)) {
|
||||
// Use the good ol' Uno as the default
|
||||
ArduinoBoard board = arduinoManager.getBoard("arduino", "avr", "uno"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
if (board == null) {
|
||||
Collection<ArduinoBoard> boards = arduinoManager.getInstalledBoards();
|
||||
if (!boards.isEmpty()) {
|
||||
board = boards.iterator().next();
|
||||
}
|
||||
}
|
||||
if (board != null) {
|
||||
IToolChain toolChain = createToolChain("default"); //$NON-NLS-1$
|
||||
return new ArduinoBuildConfiguration(config, name, "run", board, toolChain); //$NON-NLS-1$
|
||||
}
|
||||
} else {
|
||||
IRemoteServicesManager remoteManager = Activator.getService(IRemoteServicesManager.class);
|
||||
IRemoteConnectionType connectionType = remoteManager.getConnectionType(ArduinoRemoteConnection.TYPE_ID);
|
||||
IRemoteConnection connection = connectionType.getConnection(name);
|
||||
if (connection == null) {
|
||||
throw Activator.coreException(
|
||||
String.format(Messages.ArduinoBuildConfigurationProvider_UnknownConnection, name), null);
|
||||
}
|
||||
|
||||
ArduinoRemoteConnection target = connection.getService(ArduinoRemoteConnection.class);
|
||||
if (target != null) {
|
||||
IToolChain toolChain = createToolChain(connection.getName());
|
||||
return new ArduinoBuildConfiguration(config, name, "run", target, toolChain); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArduinoBuildConfiguration getConfiguration(IProject project, ArduinoRemoteConnection target,
|
||||
String launchMode, IProgressMonitor monitor) throws CoreException {
|
||||
for (IBuildConfiguration config : project.getBuildConfigs()) {
|
||||
ICBuildConfiguration cconfig = config.getAdapter(ICBuildConfiguration.class);
|
||||
if (cconfig != null) {
|
||||
ArduinoBuildConfiguration arduinoConfig = cconfig.getAdapter(ArduinoBuildConfiguration.class);
|
||||
if (arduinoConfig != null && target.equals(arduinoConfig.getTarget())
|
||||
&& arduinoConfig.getLaunchMode().equals(launchMode)) {
|
||||
return arduinoConfig;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Make a new one
|
||||
String configName = target.getRemoteConnection().getName();
|
||||
IBuildConfiguration config = configManager.createBuildConfiguration(this, project, configName, monitor);
|
||||
IToolChain toolChain = createToolChain(configName);
|
||||
ArduinoBuildConfiguration arduinoConfig = new ArduinoBuildConfiguration(config, configName, "run", target, //$NON-NLS-1$
|
||||
toolChain);
|
||||
configManager.addBuildConfiguration(config, arduinoConfig);
|
||||
return arduinoConfig;
|
||||
}
|
||||
|
||||
private IToolChain createToolChain(String id) throws CoreException {
|
||||
IToolChainManager toolChainManager = Activator.getService(IToolChainManager.class);
|
||||
IToolChain toolChain = toolChainManager.getToolChain(ArduinoToolChain.TYPE_ID, id);
|
||||
if (toolChain != null) {
|
||||
return toolChain;
|
||||
}
|
||||
|
||||
IToolChainProvider provider = toolChainManager.getProvider(ArduinoToolChainProvider.ID);
|
||||
toolChain = new ArduinoToolChain(provider, id);
|
||||
toolChainManager.addToolChain(toolChain);
|
||||
return toolChain;
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
package org.eclipse.cdt.arduino.core.internal.build;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.eclipse.cdt.build.gcc.core.GCCToolChain;
|
||||
import org.eclipse.cdt.core.build.IToolChain;
|
||||
import org.eclipse.cdt.core.build.IToolChainProvider;
|
||||
|
||||
public class ArduinoToolChain extends GCCToolChain {
|
||||
|
||||
public static final String TYPE_ID = "org.eclipse.cdt.arduino"; //$NON-NLS-1$
|
||||
private final String id;
|
||||
|
||||
public ArduinoToolChain(IToolChainProvider provider, String id) {
|
||||
super(provider, (Path) null, "arduino", null); //$NON-NLS-1$
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeId() {
|
||||
return TYPE_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getProperty(String key) {
|
||||
// TODO architecture if I need it
|
||||
if (key.equals(IToolChain.ATTR_OS)) {
|
||||
return "arduino"; //$NON-NLS-1$
|
||||
} else {
|
||||
return super.getProperty(key);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
package org.eclipse.cdt.arduino.core.internal.build;
|
||||
|
||||
import org.eclipse.cdt.core.build.IToolChainProvider;
|
||||
|
||||
public class ArduinoToolChainProvider implements IToolChainProvider {
|
||||
|
||||
public static final String ID = "org.eclipse.cdt.arduino.core.toolChainProvider"; //$NON-NLS-1$
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.launch;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection;
|
||||
import org.eclipse.cdt.serial.SerialPort;
|
||||
import org.eclipse.debug.core.DebugEvent;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||
import org.eclipse.debug.core.model.ISourceLocator;
|
||||
import org.eclipse.launchbar.core.target.ILaunchTarget;
|
||||
import org.eclipse.launchbar.core.target.launch.TargetedLaunch;
|
||||
import org.eclipse.remote.core.IRemoteConnection;
|
||||
|
||||
public class ArduinoLaunch extends TargetedLaunch {
|
||||
|
||||
private final ArduinoRemoteConnection remote;
|
||||
private boolean wasOpen;
|
||||
|
||||
public ArduinoLaunch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator,
|
||||
ILaunchTarget target) {
|
||||
super(launchConfiguration, mode, target, locator);
|
||||
IRemoteConnection connection = target.getAdapter(IRemoteConnection.class);
|
||||
this.remote = connection.getService(ArduinoRemoteConnection.class);
|
||||
|
||||
DebugPlugin.getDefault().addDebugEventListener(this);
|
||||
}
|
||||
|
||||
public void start() {
|
||||
this.wasOpen = remote.getRemoteConnection().isOpen();
|
||||
if (wasOpen) {
|
||||
SerialPort port = SerialPort.get(remote.getPortName());
|
||||
if (port != null) {
|
||||
try {
|
||||
port.pause();
|
||||
} catch (IOException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleDebugEvents(DebugEvent[] events) {
|
||||
super.handleDebugEvents(events);
|
||||
if (isTerminated() && wasOpen) {
|
||||
SerialPort port = SerialPort.get(remote.getPortName());
|
||||
if (port != null) {
|
||||
try {
|
||||
port.resume();
|
||||
} catch (IOException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
wasOpen = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,120 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.launch;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.Messages;
|
||||
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfiguration;
|
||||
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfigurationProvider;
|
||||
import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection;
|
||||
import org.eclipse.cdt.core.build.ICBuildConfigurationManager;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.debug.core.ILaunch;
|
||||
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||
import org.eclipse.launchbar.core.target.ILaunchTarget;
|
||||
import org.eclipse.launchbar.core.target.launch.ITargetedLaunch;
|
||||
import org.eclipse.launchbar.core.target.launch.LaunchConfigurationTargetedDelegate;
|
||||
import org.eclipse.remote.core.IRemoteConnection;
|
||||
|
||||
public class ArduinoLaunchConfigurationDelegate extends LaunchConfigurationTargetedDelegate {
|
||||
|
||||
public static final String TYPE_ID = "org.eclipse.cdt.arduino.core.launchConfigurationType"; //$NON-NLS-1$
|
||||
public static final String CONNECTION_NAME = Activator.getId() + ".connectionName"; //$NON-NLS-1$
|
||||
|
||||
private static final ICBuildConfigurationManager buildConfigManager = Activator
|
||||
.getService(ICBuildConfigurationManager.class);
|
||||
|
||||
@Override
|
||||
public ITargetedLaunch getLaunch(ILaunchConfiguration configuration, String mode, ILaunchTarget target)
|
||||
throws CoreException {
|
||||
return new ArduinoLaunch(configuration, mode, null, target);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, ILaunchTarget target,
|
||||
IProgressMonitor monitor) throws CoreException {
|
||||
IRemoteConnection connection = target.getAdapter(IRemoteConnection.class);
|
||||
if (target != null) {
|
||||
ArduinoRemoteConnection arduinoTarget = connection.getService(ArduinoRemoteConnection.class);
|
||||
|
||||
// 1. make sure proper build config is set active
|
||||
IProject project = configuration.getMappedResources()[0].getProject();
|
||||
ArduinoBuildConfiguration arduinoConfig = getArduinoConfiguration(project, mode, arduinoTarget, monitor);
|
||||
arduinoConfig.setActive(monitor);
|
||||
}
|
||||
|
||||
// 2. Run the build
|
||||
return super.buildForLaunch(configuration, mode, target, monitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException {
|
||||
// 1. Extract project from configuration
|
||||
IProject project = configuration.getMappedResources()[0].getProject();
|
||||
return new IProject[] { project };
|
||||
}
|
||||
|
||||
@Override
|
||||
public void launch(final ILaunchConfiguration configuration, String mode, final ILaunch launch,
|
||||
IProgressMonitor monitor) throws CoreException {
|
||||
try {
|
||||
ILaunchTarget target = ((ITargetedLaunch) launch).getLaunchTarget();
|
||||
IRemoteConnection connection = target.getAdapter(IRemoteConnection.class);
|
||||
if (connection == null) {
|
||||
throw new CoreException(
|
||||
new Status(IStatus.ERROR, Activator.getId(), Messages.ArduinoLaunchConfigurationDelegate_2));
|
||||
}
|
||||
ArduinoRemoteConnection arduinoTarget = connection.getService(ArduinoRemoteConnection.class);
|
||||
|
||||
// The project
|
||||
IProject project = (IProject) configuration.getMappedResources()[0];
|
||||
|
||||
// The build config
|
||||
ArduinoBuildConfiguration arduinoConfig = getArduinoConfiguration(project, mode, arduinoTarget, monitor);
|
||||
String[] uploadCmd = arduinoConfig.getUploadCommand(arduinoTarget.getPortName());
|
||||
|
||||
StringBuilder cmdStr = new StringBuilder(uploadCmd[0]);
|
||||
for (int i = 1; i < uploadCmd.length; ++i) {
|
||||
cmdStr.append(' ');
|
||||
cmdStr.append(uploadCmd[i]);
|
||||
}
|
||||
// Start the launch
|
||||
((ArduinoLaunch) launch).start();
|
||||
|
||||
// Run the process and capture the results in the console
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(uploadCmd)
|
||||
.directory(arduinoConfig.getBuildDirectory().toFile());
|
||||
arduinoConfig.setBuildEnvironment(processBuilder.environment());
|
||||
Process process = processBuilder.start();
|
||||
DebugPlugin.newProcess(launch, process, cmdStr.toString());
|
||||
} catch (IOException e) {
|
||||
throw new CoreException(new Status(IStatus.ERROR, Activator.getId(), e.getLocalizedMessage(), e));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public ArduinoBuildConfiguration getArduinoConfiguration(IProject project, String launchMode,
|
||||
ArduinoRemoteConnection arduinoTarget, IProgressMonitor monitor) throws CoreException {
|
||||
ArduinoBuildConfigurationProvider provider = (ArduinoBuildConfigurationProvider) buildConfigManager
|
||||
.getProvider(ArduinoBuildConfigurationProvider.ID);
|
||||
return provider.getConfiguration(project, arduinoTarget, launchMode, monitor);
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.launch;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.remote.ArduinoRemoteConnection;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.debug.core.ILaunchConfigurationType;
|
||||
import org.eclipse.launchbar.core.ILaunchDescriptor;
|
||||
import org.eclipse.launchbar.core.ProjectLaunchConfigProvider;
|
||||
import org.eclipse.launchbar.core.target.ILaunchTarget;
|
||||
import org.eclipse.remote.core.IRemoteConnection;
|
||||
|
||||
public class ArduinoLaunchConfigurationProvider extends ProjectLaunchConfigProvider {
|
||||
|
||||
@Override
|
||||
public boolean supports(ILaunchDescriptor descriptor, ILaunchTarget target) throws CoreException {
|
||||
if (target != null) {
|
||||
IRemoteConnection connection = target.getAdapter(IRemoteConnection.class);
|
||||
if (connection != null) {
|
||||
return connection.getConnectionType().getId().equals(ArduinoRemoteConnection.TYPE_ID);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ILaunchConfigurationType getLaunchConfigurationType(ILaunchDescriptor descriptor, ILaunchTarget target)
|
||||
throws CoreException {
|
||||
return DebugPlugin.getDefault().getLaunchManager()
|
||||
.getLaunchConfigurationType(ArduinoLaunchConfigurationDelegate.TYPE_ID);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.launch;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.ArduinoProjectNature;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.launchbar.core.ILaunchDescriptor;
|
||||
import org.eclipse.launchbar.core.ILaunchDescriptorType;
|
||||
import org.eclipse.launchbar.core.ProjectLaunchDescriptor;
|
||||
|
||||
public class ArduinoLaunchDescriptorType implements ILaunchDescriptorType {
|
||||
|
||||
@Override
|
||||
public ILaunchDescriptor getDescriptor(Object launchObject) throws CoreException {
|
||||
if (launchObject instanceof IProject && ArduinoProjectNature.hasNature((IProject) launchObject)) {
|
||||
return new ProjectLaunchDescriptor(this, (IProject) launchObject);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
################################################################################
|
||||
# Copyright (c) 2015 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
################################################################################
|
||||
ArduinoBoardManager_0=Fetching package index
|
||||
ArduinoBoardManager_1=Package index missing from response
|
||||
ArduinoBuildConfigurationProvider_UnknownConnection=Unknown connection: %s
|
||||
ArduinoLaunchConfigurationDelegate_1=No active Arduino remote connection.
|
||||
ArduinoLaunchConfigurationDelegate_0=Arduino Launch
|
||||
ArduinoLaunchConfigurationDelegate_2=Target has not been selected for Launch Configuration
|
||||
ArduinoManager_0=Install libraries
|
||||
ArduinoManager_1=Installing libraries
|
||||
ArduinoManager_2=Download failed, please try again.
|
||||
ArduinoPlatform_0=Download failed, please try again.
|
||||
ArduinoPlatform_1=Uninstall failed.
|
||||
ArduinoProjectGenerator_0=Write Arduino project file
|
|
@ -1,22 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.remote;
|
||||
|
||||
import org.eclipse.launchbar.remote.core.RemoteLaunchTargetProvider;
|
||||
|
||||
public class ArduinoLaunchTargetProvider extends RemoteLaunchTargetProvider {
|
||||
|
||||
@Override
|
||||
protected String getTypeId() {
|
||||
return ArduinoRemoteConnection.TYPE_ID;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,205 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.core.internal.remote;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.Activator;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoBoard;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoPackage;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoPlatform;
|
||||
import org.eclipse.cdt.serial.SerialPort;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.remote.core.IRemoteCommandShellService;
|
||||
import org.eclipse.remote.core.IRemoteConnection;
|
||||
import org.eclipse.remote.core.IRemoteConnectionChangeListener;
|
||||
import org.eclipse.remote.core.IRemoteConnectionPropertyService;
|
||||
import org.eclipse.remote.core.IRemoteConnectionWorkingCopy;
|
||||
import org.eclipse.remote.core.IRemoteProcess;
|
||||
import org.eclipse.remote.core.RemoteConnectionChangeEvent;
|
||||
import org.eclipse.remote.serial.core.SerialPortCommandShell;
|
||||
|
||||
public class ArduinoRemoteConnection
|
||||
implements IRemoteConnectionPropertyService, IRemoteCommandShellService, IRemoteConnectionChangeListener {
|
||||
|
||||
public static final String TYPE_ID = "org.eclipse.cdt.arduino.core.connectionType"; //$NON-NLS-1$
|
||||
|
||||
private static final String PORT_NAME = "arduinoPortName"; //$NON-NLS-1$
|
||||
private static final String PACKAGE_NAME = "arduinoPackageName"; //$NON-NLS-1$
|
||||
private static final String PLATFORM_NAME = "arduinoPlatformName"; //$NON-NLS-1$
|
||||
private static final String BOARD_NAME = "arduinoBoardName"; //$NON-NLS-1$
|
||||
private static final String MENU_QUALIFIER = "menu_"; //$NON-NLS-1$
|
||||
private static final String PROGRAMMER = "programmer"; //$NON-NLS-1$
|
||||
|
||||
private final IRemoteConnection remoteConnection;
|
||||
private SerialPort serialPort;
|
||||
private SerialPortCommandShell commandShell;
|
||||
private ArduinoBoard board;
|
||||
|
||||
private static final Map<IRemoteConnection, ArduinoRemoteConnection> connectionMap = new HashMap<>();
|
||||
|
||||
public ArduinoRemoteConnection(IRemoteConnection remoteConnection) {
|
||||
this.remoteConnection = remoteConnection;
|
||||
remoteConnection.addConnectionChangeListener(this);
|
||||
}
|
||||
|
||||
public static void setBoardId(IRemoteConnectionWorkingCopy workingCopy, ArduinoBoard board) {
|
||||
workingCopy.setAttribute(BOARD_NAME, board.getId());
|
||||
|
||||
ArduinoPlatform platform = board.getPlatform();
|
||||
workingCopy.setAttribute(PLATFORM_NAME, platform.getArchitecture());
|
||||
|
||||
ArduinoPackage pkg = platform.getPackage();
|
||||
workingCopy.setAttribute(PACKAGE_NAME, pkg.getName());
|
||||
}
|
||||
|
||||
public static void setPortName(IRemoteConnectionWorkingCopy workingCopy, String portName) {
|
||||
workingCopy.setAttribute(PORT_NAME, portName);
|
||||
}
|
||||
|
||||
public static void setMenuValue(IRemoteConnectionWorkingCopy workingCopy, String key, String value) {
|
||||
workingCopy.setAttribute(MENU_QUALIFIER + key, value);
|
||||
}
|
||||
|
||||
public static void setProgrammer(IRemoteConnectionWorkingCopy workingCopy, String programmer) {
|
||||
workingCopy.setAttribute(PROGRAMMER, programmer);
|
||||
}
|
||||
|
||||
public String getMenuValue(String key) {
|
||||
return remoteConnection.getAttribute(MENU_QUALIFIER + key);
|
||||
}
|
||||
|
||||
public String getProgrammer() {
|
||||
return remoteConnection.getAttribute(PROGRAMMER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectionChanged(RemoteConnectionChangeEvent event) {
|
||||
if (event.getType() == RemoteConnectionChangeEvent.CONNECTION_REMOVED) {
|
||||
synchronized (connectionMap) {
|
||||
connectionMap.remove(event.getConnection());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Factory implements IRemoteConnection.Service.Factory {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T extends IRemoteConnection.Service> T getService(IRemoteConnection remoteConnection,
|
||||
Class<T> service) {
|
||||
if (ArduinoRemoteConnection.class.equals(service)) {
|
||||
synchronized (connectionMap) {
|
||||
ArduinoRemoteConnection connection = connectionMap.get(remoteConnection);
|
||||
if (connection == null) {
|
||||
connection = new ArduinoRemoteConnection(remoteConnection);
|
||||
connectionMap.put(remoteConnection, connection);
|
||||
}
|
||||
return (T) connection;
|
||||
}
|
||||
} else if (IRemoteConnectionPropertyService.class.equals(service)
|
||||
|| IRemoteCommandShellService.class.equals(service)) {
|
||||
return (T) remoteConnection.getService(ArduinoRemoteConnection.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IRemoteConnection getRemoteConnection() {
|
||||
return remoteConnection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getProperty(String key) {
|
||||
if (IRemoteConnection.OS_NAME_PROPERTY.equals(key)) {
|
||||
return "arduino"; //$NON-NLS-1$
|
||||
} else if (IRemoteConnection.OS_ARCH_PROPERTY.equals(key)) {
|
||||
return "avr"; // TODO handle arm //$NON-NLS-1$
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public ArduinoBoard getBoard() throws CoreException {
|
||||
if (board == null) {
|
||||
String pkgName = remoteConnection.getAttribute(PACKAGE_NAME);
|
||||
String platName = remoteConnection.getAttribute(PLATFORM_NAME);
|
||||
String boardName = remoteConnection.getAttribute(BOARD_NAME);
|
||||
ArduinoManager manager = Activator.getService(ArduinoManager.class);
|
||||
board = manager.getBoard(pkgName, platName, boardName);
|
||||
|
||||
if (board == null) {
|
||||
// Old style board attributes?
|
||||
ArduinoPackage pkg = manager.getPackage(pkgName);
|
||||
if (pkg != null) {
|
||||
for (ArduinoPlatform plat : pkg.getAvailablePlatforms()) {
|
||||
if (plat.getName().equals(platName)) {
|
||||
platName = plat.getArchitecture();
|
||||
for (ArduinoBoard b : plat.getBoards()) {
|
||||
if (b.getName().equals(boardName)) {
|
||||
board = b;
|
||||
return board;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return board;
|
||||
}
|
||||
|
||||
public String getPortName() {
|
||||
return remoteConnection.getAttribute(PORT_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IRemoteProcess getCommandShell(int flags) throws IOException {
|
||||
if (serialPort != null && serialPort.isOpen()) {
|
||||
// can only have one open at a time
|
||||
return null;
|
||||
}
|
||||
|
||||
serialPort = new SerialPort(getPortName());
|
||||
commandShell = new SerialPortCommandShell(remoteConnection, serialPort);
|
||||
return commandShell;
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
if (serialPort != null) {
|
||||
try {
|
||||
if (serialPort.isOpen())
|
||||
serialPort.pause();
|
||||
} catch (IOException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void resume() {
|
||||
if (serialPort != null) {
|
||||
try {
|
||||
if (serialPort.isOpen())
|
||||
serialPort.resume();
|
||||
} catch (IOException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,240 +0,0 @@
|
|||
ifeq ($(OS),Windows_NT)
|
||||
SHELL = cmd
|
||||
RMDIR = rmdir /s /q
|
||||
RM = del /q
|
||||
mymkdir = if not exist "$1" mkdir "$1"
|
||||
else
|
||||
RMDIR = rm -fr
|
||||
RM = rm -f
|
||||
mymkdir = mkdir -p $1
|
||||
endif
|
||||
|
||||
PROJECT_OBJS = \
|
||||
<#list project_srcs as file>
|
||||
<#assign cpp = file?matches("(.*)\\.cpp")>
|
||||
<#if cpp>
|
||||
project/${cpp?groups[1]}.cpp.o \
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
PLATFORM_CORE_OBJS = \
|
||||
<#list platform_core_srcs as file>
|
||||
<#assign cpp = file?matches("${platform_core_path}/(.*)\\.cpp")>
|
||||
<#if cpp>
|
||||
core/${cpp?groups[1]}.cpp.o \
|
||||
</#if>
|
||||
<#assign c = file?matches("${platform_core_path}/(.*)\\.c")>
|
||||
<#if c>
|
||||
core/${c?groups[1]}.c.o \
|
||||
</#if>
|
||||
<#assign S = file?matches("${platform_core_path}/(.*)\\.S")>
|
||||
<#if S>
|
||||
core/${S?groups[1]}.S.o \
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
PLATFORM_VARIANT_OBJS = \
|
||||
<#list platform_variant_srcs as file>
|
||||
<#assign cpp = file?matches("${platform_variant_path}/(.*)\\.cpp")>
|
||||
<#if cpp>
|
||||
variant/${cpp?groups[1]}.cpp.o \
|
||||
</#if>
|
||||
<#assign c = file?matches("${platform_variant_path}/(.*)\\.c")>
|
||||
<#if c>
|
||||
variant/${c?groups[1]}.c.o \
|
||||
</#if>
|
||||
<#assign S = file?matches("${platform_variant_path}/(.*)\\.S")>
|
||||
<#if S>
|
||||
variant/${S?groups[1]}.S.o \
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
LIBRARIES_OBJS = \
|
||||
<#list libraries_srcs as file>
|
||||
<#assign cpp = file?matches("${libraries_path}/(.*?)/(.*)\\.cpp")>
|
||||
<#if !cpp>
|
||||
<#assign cpp = file?matches("${platform_path}/libraries/(.*?)/(.*)\\.cpp")>
|
||||
</#if>
|
||||
<#if cpp>
|
||||
libraries/${cpp?groups[1]}/${cpp?groups[2]}.cpp.o \
|
||||
</#if>
|
||||
<#assign c = file?matches("${libraries_path}/(.*?)/(.*)\\.c")>
|
||||
<#if !c>
|
||||
<#assign c = file?matches("${platform_path}/libraries/(.*?)/(.*)\\.c")>
|
||||
</#if>
|
||||
<#if c>
|
||||
libraries/${c?groups[1]}/${c?groups[2]}.c.o \
|
||||
</#if>
|
||||
<#assign S = file?matches("${libraries_path}/(.*?)/(.*)\\.S")>
|
||||
<#if !S>
|
||||
<#assign S = file?matches("${platform_path}/libraries/(.*?)/(.*)\\.S")>
|
||||
</#if>
|
||||
<#if S>
|
||||
libraries/${S?groups[1]}/${S?groups[2]}.S.o \
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
TARGETS = \
|
||||
<#if recipe_objcopy_hex_pattern??>
|
||||
${project_name}.hex \
|
||||
</#if>
|
||||
<#if recipe_objcopy_eep_pattern??>
|
||||
${project_name}.eep \
|
||||
</#if>
|
||||
<#if recipe_objcopy_bin_pattern??>
|
||||
${project_name}.bin \
|
||||
</#if>
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
<#if recipe_objcopy_hex_pattern??>
|
||||
${project_name}.hex: ${project_name}.elf
|
||||
${recipe_objcopy_hex_pattern}
|
||||
|
||||
</#if>
|
||||
<#if recipe_objcopy_eep_pattern??>
|
||||
${project_name}.eep: ${project_name}.elf
|
||||
${recipe_objcopy_eep_pattern}
|
||||
|
||||
</#if>
|
||||
<#if recipe_objcopy_bin_pattern??>
|
||||
${project_name}.bin: ${project_name}.elf
|
||||
${recipe_objcopy_bin_pattern}
|
||||
|
||||
</#if>
|
||||
${project_name}.elf: $(PROJECT_OBJS) $(LIBRARIES_OBJS) core.a
|
||||
${recipe_c_combine_pattern}
|
||||
|
||||
core.a: $(PLATFORM_CORE_OBJS) $(PLATFORM_VARIANT_OBJS)
|
||||
|
||||
clean:
|
||||
-$(RMDIR) project core variant libraries
|
||||
-$(RM) *.hex *.eep *.bin *.elf *.a *.ar *.d
|
||||
|
||||
size:
|
||||
${recipe_size_pattern}
|
||||
|
||||
<#list project_srcs as file>
|
||||
<#assign cpp = file?matches("(.*)\\.cpp")>
|
||||
<#if cpp>
|
||||
project/${cpp?groups[1]}.cpp.o: ../../${file} project/${cpp?groups[1]}.cpp.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_cpp_o_pattern}
|
||||
|
||||
project/${cpp?groups[1]}.cpp.d: ;
|
||||
|
||||
-include project/${cpp?groups[1]}.cpp.d
|
||||
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
<#list platform_core_srcs as file>
|
||||
<#assign cpp = file?matches("${platform_core_path}/(.*)\\.cpp")>
|
||||
<#if cpp>
|
||||
core/${cpp?groups[1]}.cpp.o: ${file} core/${cpp?groups[1]}.cpp.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_cpp_o_pattern_plat}
|
||||
${recipe_ar_pattern}
|
||||
|
||||
core/${cpp?groups[1]}.cpp.d: ;
|
||||
|
||||
-include core/${cpp?groups[1]}.cpp.d
|
||||
|
||||
</#if>
|
||||
<#assign c = file?matches("${platform_core_path}/(.*)\\.c")>
|
||||
<#if c>
|
||||
core/${c?groups[1]}.c.o: ${file} core/${c?groups[1]}.c.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_c_o_pattern_plat}
|
||||
${recipe_ar_pattern}
|
||||
|
||||
core/${c?groups[1]}.c.d: ;
|
||||
|
||||
-include core/${c?groups[1]}.c.d
|
||||
|
||||
</#if>
|
||||
<#assign S = file?matches("${platform_core_path}/(.*)\\.S")>
|
||||
<#if S>
|
||||
core/${S?groups[1]}.S.o: ${file}
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_S_o_pattern_plat}
|
||||
${recipe_ar_pattern}
|
||||
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
<#list platform_variant_srcs as file>
|
||||
<#assign cpp = file?matches("${platform_variant_path}/(.*)\\.cpp")>
|
||||
<#if cpp>
|
||||
variant/${cpp?groups[1]}.cpp.o: ${file} variant/${cpp?groups[1]}.cpp.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_cpp_o_pattern_plat}
|
||||
${recipe_ar_pattern}
|
||||
|
||||
variant/${cpp?groups[1]}.cpp.d: ;
|
||||
|
||||
-include variant/${cpp?groups[1]}.cpp.d
|
||||
|
||||
</#if>
|
||||
<#assign c = file?matches("${platform_variant_path}/(.*)\\.c")>
|
||||
<#if c>
|
||||
variant/${c?groups[1]}.c.o: ${file} variant/${c?groups[1]}.c.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_c_o_pattern_plat}
|
||||
${recipe_ar_pattern}
|
||||
|
||||
variant/${c?groups[1]}.c.d: ;
|
||||
|
||||
-include variant/${c?groups[1]}.c.d
|
||||
|
||||
</#if>
|
||||
<#assign S = file?matches("${platform_variant_path}/(.*)\\.S")>
|
||||
<#if S>
|
||||
variant/${S?groups[1]}.S.o: ${file}
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_S_o_pattern_plat}
|
||||
${recipe_ar_pattern}
|
||||
|
||||
</#if>
|
||||
</#list>
|
||||
|
||||
<#list libraries_srcs as file>
|
||||
<#assign cpp = file?matches("${libraries_path}/(.*?)/(.*)\\.cpp")>
|
||||
<#if !cpp>
|
||||
<#assign cpp = file?matches("${platform_path}/libraries/(.*?)/(.*)\\.cpp")>
|
||||
</#if>
|
||||
<#if cpp>
|
||||
libraries/${cpp?groups[1]}/${cpp?groups[2]}.cpp.o: ${file} libraries/${cpp?groups[1]}/${cpp?groups[2]}.cpp.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_cpp_o_pattern}
|
||||
|
||||
libraries/${cpp?groups[1]}/${cpp?groups[2]}.cpp.d: ;
|
||||
|
||||
-include libraries/${cpp?groups[1]}/${cpp?groups[2]}.cpp.d
|
||||
|
||||
</#if>
|
||||
<#assign c = file?matches("${libraries_path}/(.*?)/(.*)\\.c")>
|
||||
<#if !c>
|
||||
<#assign c = file?matches("${platform_path}/libraries/(.*?)/(.*)\\.c")>
|
||||
</#if>
|
||||
<#if c>
|
||||
libraries/${c?groups[1]}/${c?groups[2]}.c.o: ${file} libraries/${c?groups[1]}/${c?groups[2]}.c.d
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_c_o_pattern}
|
||||
|
||||
libraries/${c?groups[1]}/${c?groups[2]}.c.d: ;
|
||||
|
||||
-include libraries/${c?groups[1]}/${c?groups[2]}.c.d
|
||||
|
||||
</#if>
|
||||
<#assign S = file?matches("${libraries_path}/(.*?)/(.*)\\.S")>
|
||||
<#if !S>
|
||||
<#assign S = file?matches("${platform_path}/libraries/(.*?)/(.*)\\.S")>
|
||||
</#if>
|
||||
<#if S>
|
||||
libraries/${S?groups[1]}/${S?groups[2]}.S.o: ${file}
|
||||
@$(call mymkdir,$(dir $@))
|
||||
${recipe_S_o_pattern}
|
||||
|
||||
</#if>
|
||||
</#list>
|
|
@ -1,9 +0,0 @@
|
|||
#include <Arduino.h>
|
||||
|
||||
void setup() {
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
<templateManifest>
|
||||
<file open="true"
|
||||
src="/templates/cppsketch/arduino.cpp"
|
||||
dest="/${projectName}/${projectName}.cpp"/>
|
||||
</templateManifest>
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -1 +0,0 @@
|
|||
/target/
|
|
@ -1,33 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.eclipse.cdt.arduino.ui</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ds.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,464 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
|
||||
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
|
||||
org.eclipse.jdt.core.builder.invalidClasspath=abort
|
||||
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
|
||||
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
|
||||
org.eclipse.jdt.core.circularClasspath=error
|
||||
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
|
||||
org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
|
||||
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
|
||||
org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
|
||||
org.eclipse.jdt.core.codeComplete.argumentPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.argumentSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.fieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.fieldSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.localPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.localSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
|
||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
|
||||
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
|
||||
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
|
||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.doc.comment.support=enabled
|
||||
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
|
||||
org.eclipse.jdt.core.compiler.problem.APILeak=warning
|
||||
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deadCode=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
|
||||
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
|
||||
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
|
||||
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
|
||||
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
|
||||
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullReference=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
|
||||
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
|
||||
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
|
||||
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
|
||||
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
|
||||
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
|
||||
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
|
||||
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
|
||||
org.eclipse.jdt.core.formatter.align_with_spaces=false
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_assignment=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
|
||||
org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
||||
org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
|
||||
org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_field=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_method=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
|
||||
org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
|
||||
org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||
org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
|
||||
org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
||||
org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_block_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_header=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_html=true
|
||||
org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.comment.format_source_code=true
|
||||
org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
|
||||
org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
||||
org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.comment.line_length=80
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
|
||||
org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
|
||||
org.eclipse.jdt.core.formatter.compact_else_if=true
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation=2
|
||||
org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||
org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
|
||||
org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
|
||||
org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
||||
org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_empty_lines=false
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
|
||||
org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||
org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||
org.eclipse.jdt.core.formatter.indentation.size=4
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
||||
org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||
org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||
org.eclipse.jdt.core.formatter.join_lines_in_comments=true
|
||||
org.eclipse.jdt.core.formatter.join_wrapped_lines=true
|
||||
org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
|
||||
org.eclipse.jdt.core.formatter.lineSplit=120
|
||||
org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
|
||||
org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
||||
org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
|
||||
org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
|
||||
org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
|
||||
org.eclipse.jdt.core.formatter.tabulation.char=tab
|
||||
org.eclipse.jdt.core.formatter.tabulation.size=4
|
||||
org.eclipse.jdt.core.formatter.use_on_off_tags=true
|
||||
org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
|
||||
org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
|
||||
org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
|
||||
org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
|
||||
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
|
||||
org.eclipse.jdt.core.incompleteClasspath=error
|
||||
org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
|
|
@ -1,3 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
|
||||
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
|
|
@ -1,133 +0,0 @@
|
|||
cleanup.add_default_serial_version_id=true
|
||||
cleanup.add_generated_serial_version_id=false
|
||||
cleanup.add_missing_annotations=true
|
||||
cleanup.add_missing_deprecated_annotations=true
|
||||
cleanup.add_missing_methods=false
|
||||
cleanup.add_missing_nls_tags=false
|
||||
cleanup.add_missing_override_annotations=true
|
||||
cleanup.add_missing_override_annotations_interface_methods=true
|
||||
cleanup.add_serial_version_id=false
|
||||
cleanup.always_use_blocks=true
|
||||
cleanup.always_use_parentheses_in_expressions=false
|
||||
cleanup.always_use_this_for_non_static_field_access=false
|
||||
cleanup.always_use_this_for_non_static_method_access=false
|
||||
cleanup.convert_functional_interfaces=false
|
||||
cleanup.convert_to_enhanced_for_loop=false
|
||||
cleanup.correct_indentation=false
|
||||
cleanup.format_source_code=true
|
||||
cleanup.format_source_code_changes_only=false
|
||||
cleanup.insert_inferred_type_arguments=false
|
||||
cleanup.make_local_variable_final=true
|
||||
cleanup.make_parameters_final=false
|
||||
cleanup.make_private_fields_final=true
|
||||
cleanup.make_type_abstract_if_missing_method=false
|
||||
cleanup.make_variable_declarations_final=false
|
||||
cleanup.never_use_blocks=false
|
||||
cleanup.never_use_parentheses_in_expressions=true
|
||||
cleanup.organize_imports=true
|
||||
cleanup.qualify_static_field_accesses_with_declaring_class=false
|
||||
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
||||
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
||||
cleanup.qualify_static_member_accesses_with_declaring_class=false
|
||||
cleanup.qualify_static_method_accesses_with_declaring_class=false
|
||||
cleanup.remove_private_constructors=true
|
||||
cleanup.remove_redundant_modifiers=false
|
||||
cleanup.remove_redundant_semicolons=true
|
||||
cleanup.remove_redundant_type_arguments=true
|
||||
cleanup.remove_trailing_whitespaces=true
|
||||
cleanup.remove_trailing_whitespaces_all=true
|
||||
cleanup.remove_trailing_whitespaces_ignore_empty=false
|
||||
cleanup.remove_unnecessary_casts=true
|
||||
cleanup.remove_unnecessary_nls_tags=false
|
||||
cleanup.remove_unused_imports=true
|
||||
cleanup.remove_unused_local_variables=false
|
||||
cleanup.remove_unused_private_fields=true
|
||||
cleanup.remove_unused_private_members=false
|
||||
cleanup.remove_unused_private_methods=true
|
||||
cleanup.remove_unused_private_types=true
|
||||
cleanup.sort_members=false
|
||||
cleanup.sort_members_all=false
|
||||
cleanup.use_anonymous_class_creation=false
|
||||
cleanup.use_blocks=false
|
||||
cleanup.use_blocks_only_for_return_and_throw=false
|
||||
cleanup.use_lambda=true
|
||||
cleanup.use_parentheses_in_expressions=false
|
||||
cleanup.use_this_for_non_static_field_access=false
|
||||
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
||||
cleanup.use_this_for_non_static_method_access=false
|
||||
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|
||||
cleanup_profile=_CDT
|
||||
cleanup_settings_version=2
|
||||
eclipse.preferences.version=1
|
||||
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
|
||||
formatter_profile=_CDT
|
||||
formatter_settings_version=14
|
||||
internal.default.compliance=user
|
||||
org.eclipse.jdt.ui.exception.name=e
|
||||
org.eclipse.jdt.ui.gettersetter.use.is=true
|
||||
org.eclipse.jdt.ui.ignorelowercasenames=true
|
||||
org.eclipse.jdt.ui.importorder=java;javax;org;com;
|
||||
org.eclipse.jdt.ui.keywordthis=false
|
||||
org.eclipse.jdt.ui.ondemandthreshold=1000
|
||||
org.eclipse.jdt.ui.overrideannotation=true
|
||||
org.eclipse.jdt.ui.staticondemandthreshold=1000
|
||||
org.eclipse.jdt.ui.text.custom_code_templates=
|
||||
sp_cleanup.add_default_serial_version_id=true
|
||||
sp_cleanup.add_generated_serial_version_id=false
|
||||
sp_cleanup.add_missing_annotations=true
|
||||
sp_cleanup.add_missing_deprecated_annotations=true
|
||||
sp_cleanup.add_missing_methods=false
|
||||
sp_cleanup.add_missing_nls_tags=false
|
||||
sp_cleanup.add_missing_override_annotations=true
|
||||
sp_cleanup.add_missing_override_annotations_interface_methods=true
|
||||
sp_cleanup.add_serial_version_id=false
|
||||
sp_cleanup.always_use_blocks=true
|
||||
sp_cleanup.always_use_parentheses_in_expressions=false
|
||||
sp_cleanup.always_use_this_for_non_static_field_access=false
|
||||
sp_cleanup.always_use_this_for_non_static_method_access=false
|
||||
sp_cleanup.convert_functional_interfaces=false
|
||||
sp_cleanup.convert_to_enhanced_for_loop=false
|
||||
sp_cleanup.correct_indentation=false
|
||||
sp_cleanup.format_source_code=true
|
||||
sp_cleanup.format_source_code_changes_only=false
|
||||
sp_cleanup.insert_inferred_type_arguments=false
|
||||
sp_cleanup.make_local_variable_final=true
|
||||
sp_cleanup.make_parameters_final=false
|
||||
sp_cleanup.make_private_fields_final=true
|
||||
sp_cleanup.make_type_abstract_if_missing_method=false
|
||||
sp_cleanup.make_variable_declarations_final=false
|
||||
sp_cleanup.never_use_blocks=false
|
||||
sp_cleanup.never_use_parentheses_in_expressions=true
|
||||
sp_cleanup.on_save_use_additional_actions=true
|
||||
sp_cleanup.organize_imports=true
|
||||
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
|
||||
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
|
||||
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
|
||||
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
|
||||
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
|
||||
sp_cleanup.remove_private_constructors=true
|
||||
sp_cleanup.remove_redundant_modifiers=false
|
||||
sp_cleanup.remove_redundant_semicolons=true
|
||||
sp_cleanup.remove_redundant_type_arguments=true
|
||||
sp_cleanup.remove_trailing_whitespaces=true
|
||||
sp_cleanup.remove_trailing_whitespaces_all=true
|
||||
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
|
||||
sp_cleanup.remove_unnecessary_casts=true
|
||||
sp_cleanup.remove_unnecessary_nls_tags=false
|
||||
sp_cleanup.remove_unused_imports=true
|
||||
sp_cleanup.remove_unused_local_variables=false
|
||||
sp_cleanup.remove_unused_private_fields=true
|
||||
sp_cleanup.remove_unused_private_members=false
|
||||
sp_cleanup.remove_unused_private_methods=true
|
||||
sp_cleanup.remove_unused_private_types=true
|
||||
sp_cleanup.sort_members=false
|
||||
sp_cleanup.sort_members_all=false
|
||||
sp_cleanup.use_anonymous_class_creation=false
|
||||
sp_cleanup.use_blocks=false
|
||||
sp_cleanup.use_blocks_only_for_return_and_throw=false
|
||||
sp_cleanup.use_lambda=true
|
||||
sp_cleanup.use_parentheses_in_expressions=false
|
||||
sp_cleanup.use_this_for_non_static_field_access=false
|
||||
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
|
||||
sp_cleanup.use_this_for_non_static_method_access=false
|
||||
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
|
|
@ -1,4 +0,0 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -1,184 +0,0 @@
|
|||
ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
|
||||
API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
|
||||
API_USE_SCAN_FIELD_SEVERITY=Error
|
||||
API_USE_SCAN_METHOD_SEVERITY=Error
|
||||
API_USE_SCAN_TYPE_SEVERITY=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
|
||||
ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
|
||||
FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
|
||||
FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
|
||||
ILLEGAL_EXTEND=Warning
|
||||
ILLEGAL_IMPLEMENT=Warning
|
||||
ILLEGAL_INSTANTIATE=Warning
|
||||
ILLEGAL_OVERRIDE=Warning
|
||||
ILLEGAL_REFERENCE=Warning
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
|
||||
INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
|
||||
INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
INVALID_ANNOTATION=Ignore
|
||||
INVALID_JAVADOC_TAG=Error
|
||||
INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
|
||||
LEAK_EXTEND=Warning
|
||||
LEAK_FIELD_DECL=Warning
|
||||
LEAK_IMPLEMENT=Warning
|
||||
LEAK_METHOD_PARAM=Warning
|
||||
LEAK_METHOD_RETURN_TYPE=Warning
|
||||
METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
|
||||
METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
|
||||
METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
|
||||
MISSING_EE_DESCRIPTIONS=Warning
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
|
||||
TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
|
||||
UNUSED_PROBLEM_FILTERS=Warning
|
||||
automatically_removed_unused_problem_filters=false
|
||||
changed_execution_env=Error
|
||||
eclipse.preferences.version=1
|
||||
incompatible_api_component_version=Error
|
||||
incompatible_api_component_version_include_major_without_breaking_change=Disabled
|
||||
incompatible_api_component_version_include_minor_without_api_change=Disabled
|
||||
incompatible_api_component_version_report_major_without_breaking_change=Warning
|
||||
incompatible_api_component_version_report_minor_without_api_change=Warning
|
||||
invalid_since_tag_version=Error
|
||||
malformed_since_tag=Error
|
||||
missing_since_tag=Error
|
||||
report_api_breakage_when_major_version_incremented=Disabled
|
||||
report_resolution_errors_api_component=Warning
|
|
@ -1,35 +0,0 @@
|
|||
compilers.f.unresolved-features=1
|
||||
compilers.f.unresolved-plugins=1
|
||||
compilers.incompatible-environment=1
|
||||
compilers.p.build=1
|
||||
compilers.p.build.bin.includes=1
|
||||
compilers.p.build.encodings=2
|
||||
compilers.p.build.java.compiler=2
|
||||
compilers.p.build.java.compliance=1
|
||||
compilers.p.build.missing.output=2
|
||||
compilers.p.build.output.library=1
|
||||
compilers.p.build.source.library=1
|
||||
compilers.p.build.src.includes=1
|
||||
compilers.p.deprecated=1
|
||||
compilers.p.discouraged-class=1
|
||||
compilers.p.internal=1
|
||||
compilers.p.missing-packages=2
|
||||
compilers.p.missing-version-export-package=2
|
||||
compilers.p.missing-version-import-package=2
|
||||
compilers.p.missing-version-require-bundle=2
|
||||
compilers.p.no-required-att=0
|
||||
compilers.p.no.automatic.module=1
|
||||
compilers.p.not-externalized-att=1
|
||||
compilers.p.service.component.without.lazyactivation=1
|
||||
compilers.p.unknown-attribute=1
|
||||
compilers.p.unknown-class=1
|
||||
compilers.p.unknown-element=1
|
||||
compilers.p.unknown-identifier=1
|
||||
compilers.p.unknown-resource=1
|
||||
compilers.p.unresolved-ex-points=0
|
||||
compilers.p.unresolved-import=0
|
||||
compilers.s.create-docs=false
|
||||
compilers.s.doc-folder=doc
|
||||
compilers.s.open-tags=1
|
||||
compilers.use-project=true
|
||||
eclipse.preferences.version=1
|
|
@ -1,36 +0,0 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: %pluginName
|
||||
Bundle-SymbolicName: org.eclipse.cdt.arduino.ui;singleton:=true
|
||||
Bundle-Version: 2.2.0.qualifier
|
||||
Bundle-Activator: org.eclipse.cdt.arduino.ui.internal.Activator
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.core.expressions,
|
||||
org.eclipse.jface.text,
|
||||
org.eclipse.ui,
|
||||
org.eclipse.ui.ide,
|
||||
org.eclipse.ui.forms,
|
||||
org.eclipse.debug.ui,
|
||||
org.eclipse.launchbar.core,
|
||||
org.eclipse.cdt.arduino.core,
|
||||
org.eclipse.remote.core;bundle-version="2.0.0",
|
||||
org.eclipse.remote.ui;bundle-version="2.0.0",
|
||||
org.eclipse.cdt.native.serial;bundle-version="1.0.0",
|
||||
org.eclipse.tools.templates.ui;bundle-version="1.0.0",
|
||||
org.eclipse.launchbar.remote.ui;bundle-version="1.0.0",
|
||||
org.eclipse.tm.terminal.connector.cdtserial;bundle-version="4.3.0",
|
||||
org.eclipse.tm.terminal.view.ui;bundle-version="4.2.100",
|
||||
org.eclipse.tm.terminal.view.core;bundle-version="4.2.0",
|
||||
org.eclipse.tm.terminal.control;bundle-version="4.2.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-Vendor: %providerName
|
||||
Bundle-Localization: plugin
|
||||
Automatic-Module-Name: org.eclipse.cdt.arduino.ui
|
||||
Export-Package: org.eclipse.cdt.arduino.ui.internal;x-internal:=true,
|
||||
org.eclipse.cdt.arduino.ui.internal.downloads;x-internal:=true,
|
||||
org.eclipse.cdt.arduino.ui.internal.launch;x-internal:=true,
|
||||
org.eclipse.cdt.arduino.ui.internal.preferences;x-internal:=true,
|
||||
org.eclipse.cdt.arduino.ui.internal.project;x-internal:=true,
|
||||
org.eclipse.cdt.arduino.ui.internal.remote;x-internal:=true,
|
||||
org.eclipse.cdt.arduino.ui.internal.terminal;x-internal:=true
|
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
||||
<title>About</title>
|
||||
</head>
|
||||
<body lang="EN-US">
|
||||
<h2>About This Content</h2>
|
||||
|
||||
<p>November 30, 2017</p>
|
||||
<h3>License</h3>
|
||||
|
||||
<p>
|
||||
The Eclipse Foundation makes available all content in this plug-in
|
||||
("Content"). Unless otherwise indicated below, the Content
|
||||
is provided to you under the terms and conditions of the Eclipse
|
||||
Public License Version 2.0 ("EPL"). A copy of the EPL is
|
||||
available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
|
||||
For purposes of the EPL, "Program" will mean the Content.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you did not receive this Content directly from the Eclipse
|
||||
Foundation, the Content is being redistributed by another party
|
||||
("Redistributor") and different terms and conditions may
|
||||
apply to your use of any object code in the Content. Check the
|
||||
Redistributor's license that was provided with the Content. If no such
|
||||
license exists, contact the Redistributor. Unless otherwise indicated
|
||||
below, the terms and conditions of the EPL still apply to any source
|
||||
code in the Content and such source code may be obtained at <a
|
||||
href="http://www.eclipse.org/">http://www.eclipse.org</a>.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,24 +0,0 @@
|
|||
# about.ini
|
||||
# contains information about a feature
|
||||
# java.io.Properties file (ISO 8859-1 with "\" escapes)
|
||||
# "%key" are externalized strings defined in about.properties
|
||||
# This file does not need to be translated.
|
||||
|
||||
# Property "aboutText" contains blurb for "About" dialog (translated)
|
||||
aboutText=%blurb
|
||||
|
||||
# Property "windowImage" contains path to window icon (16x16)
|
||||
# needed for primary features only
|
||||
|
||||
# Property "featureImage" contains path to feature image (32x32)
|
||||
featureImage=cdt_logo_icon32.png
|
||||
|
||||
# Property "aboutImage" contains path to product image (500x330 or 115x164)
|
||||
# needed for primary features only
|
||||
|
||||
# Property "appName" contains name of the application (translated)
|
||||
# needed for primary features only
|
||||
|
||||
# Property "welcomePerspective" contains the id of the perspective in which the
|
||||
# welcome page is to be opened.
|
||||
# optional
|
|
@ -1,9 +0,0 @@
|
|||
# about.mappings
|
||||
# contains fill-ins for about.properties
|
||||
# java.io.Properties file (ISO 8859-1 with "\" escapes)
|
||||
# This file does not need to be translated.
|
||||
|
||||
# The following should contain the build version.
|
||||
# e.g. "0=20200106-1728"
|
||||
# This value will be added automatically via the build scripts
|
||||
0=${buildId}
|
|
@ -1,32 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015, 2020 Contributors to the Eclipse Foundation
|
||||
#
|
||||
# See the NOTICE file(s) distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
###############################################################################
|
||||
# about.properties
|
||||
# contains externalized strings for about.ini
|
||||
# java.io.Properties file (ISO 8859-1 with "\" escapes)
|
||||
# fill-ins are supplied by about.mappings
|
||||
# This file should be translated.
|
||||
# NOTE TO TRANSLATOR: Please do not translate the featureVersion variable.
|
||||
|
||||
|
||||
blurb=C/C++ Arduino Tools\n\
|
||||
\n\
|
||||
Version: {featureVersion}\n\
|
||||
Build id: {0}\n\
|
||||
\n\
|
||||
Copyright (c) 2015, 2020 Contributors to the Eclipse Foundation
|
||||
\n\
|
||||
See the NOTICE file(s) distributed with this work for additional\n\
|
||||
information regarding copyright ownership.\n\
|
||||
\n\
|
||||
Visit http://www.eclipse.org/cdt
|
|
@ -1,27 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
plugin.xml,\
|
||||
icons/,\
|
||||
about.html,\
|
||||
plugin.properties,\
|
||||
cdt_logo_icon32.png,\
|
||||
about.ini,\
|
||||
about.mappings,\
|
||||
about.properties
|
||||
source.. = src/
|
||||
src.includes = about.html
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 913 B |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 365 B |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 630 B |
|
@ -1,22 +0,0 @@
|
|||
###############################################################################
|
||||
# Copyright (c) 2015-2020 QNX Software Systems and others.
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are made available under the terms of the Eclipse Public License 2.0
|
||||
# which accompanies this distribution, and is available at
|
||||
# https://www.eclipse.org/legal/epl-2.0/
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0
|
||||
#
|
||||
# Contributors:
|
||||
# QNX Software Systems - initial API and implementation
|
||||
# Alexander Fedorov <alexander.fedorov@arsysop.ru> - ongoing support
|
||||
###############################################################################
|
||||
|
||||
pluginName=C/C++ Arduino UI
|
||||
providerName=Eclipse CDT
|
||||
preferencePage.name=Arduino
|
||||
|
||||
arduinoDownloadsManager=Arduino Downloads Manager
|
||||
arduinoTerminalConnector=Arduino Serial Monitor
|
||||
arduinoTerminalLauncher=Arduino Serial Monitor
|
|
@ -1,187 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?eclipse version="3.4"?>
|
||||
<plugin>
|
||||
<extension
|
||||
point="org.eclipse.debug.ui.launchConfigurationTypeImages">
|
||||
<launchConfigurationTypeImage
|
||||
configTypeID="org.eclipse.cdt.arduino.core.launchConfigurationType"
|
||||
icon="icons/arduino.png"
|
||||
id="org.eclipse.cdt.arduino.ui.launchConfigurationTypeImage1">
|
||||
</launchConfigurationTypeImage>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.newWizards">
|
||||
<wizard
|
||||
canFinishEarly="false"
|
||||
category="org.eclipse.cdt.arduino.ui.newCategory"
|
||||
class="org.eclipse.cdt.arduino.ui.internal.remote.NewArduinoTargetWizard"
|
||||
hasPages="true"
|
||||
icon="icons/arduino.png"
|
||||
id="org.eclipse.cdt.arduino.ui.newTargetWizard"
|
||||
name="Android Target"
|
||||
project="false">
|
||||
</wizard>
|
||||
<wizard
|
||||
category="org.eclipse.cdt.ui.newCWizards"
|
||||
class="org.eclipse.cdt.arduino.ui.internal.project.NewArduinoProjectWizard"
|
||||
icon="icons/newcc_app.gif"
|
||||
id="org.eclipse.cdt.arduino.ui.newProjectWizard"
|
||||
name="Arduino Project"
|
||||
project="true">
|
||||
<description>
|
||||
Create a new Arduino Project
|
||||
</description>
|
||||
</wizard>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.propertyPages">
|
||||
<page
|
||||
class="org.eclipse.cdt.arduino.ui.internal.remote.ArduinoTargetPropertyPage"
|
||||
id="org.eclipse.cdt.arduino.ui.targetPropertyPage"
|
||||
name="Arduino"
|
||||
selectionFilter="single">
|
||||
<enabledWhen>
|
||||
<adapt type="org.eclipse.remote.core.IRemoteConnection">
|
||||
<test
|
||||
forcePluginActivation="false"
|
||||
property="org.eclipse.remote.core.isConnectionType"
|
||||
value="org.eclipse.cdt.arduino.core.connectionType">
|
||||
</test>
|
||||
</adapt>
|
||||
</enabledWhen>
|
||||
</page>
|
||||
<page
|
||||
class="org.eclipse.cdt.arduino.ui.internal.project.LibrariesPropertyPage"
|
||||
id="org.eclipse.cdt.arduino.ui.librariesPropertyPage"
|
||||
name="Libraries">
|
||||
<enabledWhen>
|
||||
<and>
|
||||
<instanceof
|
||||
value="org.eclipse.core.resources.IProject">
|
||||
</instanceof>
|
||||
<test
|
||||
property="org.eclipse.core.resources.projectNature"
|
||||
value="org.eclipse.cdt.arduino.core.arduinoNature">
|
||||
</test>
|
||||
</and>
|
||||
</enabledWhen>
|
||||
</page>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.launchbar.ui.launchBarUIContributions">
|
||||
<descriptorUI
|
||||
descriptorTypeId="org.eclipse.cdt.arduino.core.descriptorType"
|
||||
labelProvider="org.eclipse.cdt.arduino.ui.internal.launch.ArduinoDescriptorLabelProvider">
|
||||
</descriptorUI>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.remote.core.remoteServices">
|
||||
<connectionTypeService
|
||||
connectionTypeId="org.eclipse.cdt.arduino.core.connectionType"
|
||||
factory="org.eclipse.cdt.arduino.ui.internal.remote.ArduinoRemoteServicesUI$Factory"
|
||||
service="org.eclipse.remote.ui.IRemoteUIConnectionService">
|
||||
</connectionTypeService>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.preferencePages">
|
||||
<page
|
||||
category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
|
||||
class="org.eclipse.cdt.arduino.ui.internal.preferences.ArduinoPreferencePage"
|
||||
id="org.eclipse.cdt.arduino.preference.page"
|
||||
name="%preferencePage.name">
|
||||
</page>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.perspectiveExtensions">
|
||||
<perspectiveExtension
|
||||
targetID="org.eclipse.cdt.ui.CPerspective">
|
||||
<view
|
||||
id="org.eclipse.remote.ui.view.connections"
|
||||
minimized="false"
|
||||
relationship="stack"
|
||||
relative="org.eclipse.ui.navigator.ProjectExplorer">
|
||||
</view>
|
||||
</perspectiveExtension>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.core.expressions.propertyTesters">
|
||||
<propertyTester
|
||||
class="org.eclipse.cdt.arduino.ui.internal.project.ArduinoPropertyTester"
|
||||
id="temporaryRemoteTester"
|
||||
namespace="org.eclipse.cdt.arduino.ui"
|
||||
properties="isArduinoRemote"
|
||||
type="org.eclipse.remote.core.IRemoteConnection">
|
||||
</propertyTester>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.debug.ui.launchConfigurationTabGroups">
|
||||
<launchConfigurationTabGroup
|
||||
class="org.eclipse.cdt.arduino.ui.internal.launch.ArduinoLaunchConfigurationTabGroup"
|
||||
id="org.eclipse.cdt.arduino.ui.launchConfigurationTabGroup"
|
||||
type="org.eclipse.cdt.arduino.core.launchConfigurationType">
|
||||
</launchConfigurationTabGroup>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.launchbar.ui.launchTargetTypeUI">
|
||||
<launchTargetTypeUI
|
||||
id="org.eclipse.cdt.arduino.core.connectionType"
|
||||
labelProvider="org.eclipse.launchbar.remote.ui.RemoteLaunchTargetLabelProvider">
|
||||
</launchTargetTypeUI>
|
||||
<wizard
|
||||
class="org.eclipse.cdt.arduino.ui.internal.remote.NewArduinoTargetWizard"
|
||||
icon="icons/arduino.png"
|
||||
id="org.eclipse.cdt.arduino.ui.launchTargetWizard"
|
||||
name="Arduino">
|
||||
</wizard>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.tools.templates.ui.templates">
|
||||
<tag
|
||||
id="org.eclipse.cdt.arduino.ui.tag"
|
||||
label="Arduino">
|
||||
</tag>
|
||||
<template
|
||||
icon="icons/arduino48.png"
|
||||
id="org.eclipse.cdt.arduino.ui.template.sketch"
|
||||
label="Arduino C++ Sketch"
|
||||
wizard="org.eclipse.cdt.arduino.ui.internal.project.NewArduinoCPPSketchWizard">
|
||||
<description>
|
||||
A single C++ file with empty setup() and loop() functions.
|
||||
</description>
|
||||
<tagReference
|
||||
id="org.eclipse.cdt.arduino.ui.tag">
|
||||
</tagReference>
|
||||
<tagReference
|
||||
id="org.eclipse.cdt.ui.cdtTag">
|
||||
</tagReference>
|
||||
</template>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.menus">
|
||||
<menuContribution
|
||||
allPopups="false"
|
||||
locationURI="menu:help">
|
||||
<command
|
||||
commandId="org.eclipse.cdt.arduino.ui.openManager"
|
||||
icon="icons/arduino.png"
|
||||
label="%arduinoDownloadsManager"
|
||||
style="push">
|
||||
</command>
|
||||
</menuContribution>
|
||||
</extension>
|
||||
<extension
|
||||
point="org.eclipse.ui.commands">
|
||||
<command
|
||||
defaultHandler="org.eclipse.cdt.arduino.ui.internal.downloads.OpenDownloadsManager"
|
||||
id="org.eclipse.cdt.arduino.ui.openManager"
|
||||
name="%arduinoDownloadsManager">
|
||||
</command>
|
||||
</extension>
|
||||
<extension point="org.eclipse.tm.terminal.view.ui.launcherDelegates">
|
||||
<delegate
|
||||
class="org.eclipse.cdt.arduino.ui.internal.terminal.ArduinoTerminalLauncher"
|
||||
id="org.eclipse.cdt.arduino.terminalLauncher"
|
||||
label="%arduinoTerminalLauncher">
|
||||
</delegate>
|
||||
</extension>
|
||||
</plugin>
|
|
@ -1,92 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015, 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.ui.internal;
|
||||
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.resource.ImageRegistry;
|
||||
import org.eclipse.jface.resource.ResourceLocator;
|
||||
import org.eclipse.ui.plugin.AbstractUIPlugin;
|
||||
import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.ServiceReference;
|
||||
|
||||
/**
|
||||
* The activator class controls the plug-in life cycle
|
||||
*/
|
||||
public class Activator extends AbstractUIPlugin {
|
||||
|
||||
// The plug-in ID
|
||||
public static final String PLUGIN_ID = "org.eclipse.cdt.arduino.ui"; //$NON-NLS-1$
|
||||
|
||||
public static final String IMG_ARDUINO = PLUGIN_ID + ".arduino"; //$NON-NLS-1$
|
||||
public static final String IMG_CONNECTION_TYPE = PLUGIN_ID + ".connectionType"; //$NON-NLS-1$
|
||||
public static final String IMG_ADD = PLUGIN_ID + ".add"; //$NON-NLS-1$
|
||||
public static final String IMG_DELETE = PLUGIN_ID + ".delete"; //$NON-NLS-1$
|
||||
|
||||
// The shared instance
|
||||
private static Activator plugin;
|
||||
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
super.start(context);
|
||||
plugin = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(BundleContext context) throws Exception {
|
||||
plugin = null;
|
||||
super.stop(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ImageRegistry createImageRegistry() {
|
||||
ImageRegistry registry = super.createImageRegistry();
|
||||
registry.put(IMG_ARDUINO, ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, "icons/cprojects.gif").get()); //$NON-NLS-1$
|
||||
registry.put(IMG_CONNECTION_TYPE,
|
||||
ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, "icons/arduino.png").get()); //$NON-NLS-1$
|
||||
registry.put(IMG_ADD, ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, "icons/list-add.gif").get()); //$NON-NLS-1$
|
||||
registry.put(IMG_DELETE, ResourceLocator.imageDescriptorFromBundle(PLUGIN_ID, "icons/list-delete.gif").get()); //$NON-NLS-1$
|
||||
return registry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the shared instance
|
||||
*
|
||||
* @return the shared instance
|
||||
*/
|
||||
public static Activator getDefault() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
public static BundleContext getContext() {
|
||||
return plugin.getBundle().getBundleContext();
|
||||
}
|
||||
|
||||
public static String getId() {
|
||||
return plugin.getBundle().getSymbolicName();
|
||||
}
|
||||
|
||||
public static void log(Exception e) {
|
||||
if (e instanceof CoreException) {
|
||||
plugin.getLog().log(((CoreException) e).getStatus());
|
||||
} else {
|
||||
plugin.getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, e.getLocalizedMessage(), e));
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T getService(Class<T> service) {
|
||||
BundleContext context = plugin.getBundle().getBundleContext();
|
||||
ServiceReference<T> ref = context.getServiceReference(service);
|
||||
return ref != null ? context.getService(ref) : null;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,365 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) 2012,2016 Eclipse contributors and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*/
|
||||
package org.eclipse.cdt.arduino.ui.internal;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.eclipse.jface.internal.text.InformationControlReplacer;
|
||||
import org.eclipse.jface.resource.JFaceResources;
|
||||
import org.eclipse.jface.text.AbstractHoverInformationControlManager;
|
||||
import org.eclipse.jface.text.AbstractInformationControl;
|
||||
import org.eclipse.jface.text.AbstractReusableInformationControlCreator;
|
||||
import org.eclipse.jface.text.IInformationControl;
|
||||
import org.eclipse.jface.text.IInformationControlCreator;
|
||||
import org.eclipse.jface.text.IInformationControlExtension3;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.custom.ScrolledComposite;
|
||||
import org.eclipse.swt.events.ControlEvent;
|
||||
import org.eclipse.swt.events.ControlListener;
|
||||
import org.eclipse.swt.events.FocusEvent;
|
||||
import org.eclipse.swt.events.FocusListener;
|
||||
import org.eclipse.swt.events.KeyEvent;
|
||||
import org.eclipse.swt.events.KeyListener;
|
||||
import org.eclipse.swt.events.MouseEvent;
|
||||
import org.eclipse.swt.events.MouseListener;
|
||||
import org.eclipse.swt.graphics.Font;
|
||||
import org.eclipse.swt.graphics.FontData;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.graphics.Rectangle;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Event;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.PartInitException;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
import org.eclipse.ui.forms.events.HyperlinkAdapter;
|
||||
import org.eclipse.ui.forms.events.HyperlinkEvent;
|
||||
import org.eclipse.ui.forms.widgets.FormText;
|
||||
|
||||
/**
|
||||
* A utility class for showing rich JDT-style HTML content in tool tip hovers. This class is final
|
||||
* to avoid long term API commitments. If you feel the need to specialize it, please open a bugzilla
|
||||
* to explain what your use case and requirements.
|
||||
*/
|
||||
@SuppressWarnings("restriction")
|
||||
public abstract class FormTextHoverManager extends AbstractHoverInformationControlManager {
|
||||
|
||||
private static class FormTextInformationControl extends AbstractInformationControl {
|
||||
private ScrolledComposite comp;
|
||||
private FormText formText;
|
||||
private String text;
|
||||
|
||||
public FormTextInformationControl(Shell parentShell, boolean inFocus) {
|
||||
super(parentShell, true);
|
||||
|
||||
// Need to do our own status bar if not in focus
|
||||
if (!inFocus) {
|
||||
Shell shell = getShell();
|
||||
Composite statusComposite = new Composite(shell, SWT.NONE);
|
||||
GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, true, false);
|
||||
statusComposite.setLayoutData(gridData);
|
||||
GridLayout statusLayout = new GridLayout(1, false);
|
||||
statusLayout.marginHeight = 0;
|
||||
statusLayout.marginWidth = 0;
|
||||
statusLayout.verticalSpacing = 1;
|
||||
statusComposite.setLayout(statusLayout);
|
||||
|
||||
Label separator = new Label(statusComposite, SWT.SEPARATOR | SWT.HORIZONTAL);
|
||||
separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||
|
||||
Label statusLabel = new Label(statusComposite, SWT.RIGHT);
|
||||
statusLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
|
||||
statusLabel.setText("Press F2 for focus");
|
||||
|
||||
FontData[] fontDatas = JFaceResources.getDialogFont().getFontData();
|
||||
for (int i = 0; i < fontDatas.length; i++) {
|
||||
fontDatas[i].setHeight(fontDatas[i].getHeight() * 9 / 10);
|
||||
}
|
||||
Font statusLabelFont = new Font(statusLabel.getDisplay(), fontDatas);
|
||||
statusLabel.setFont(statusLabelFont);
|
||||
}
|
||||
|
||||
create();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasContents() {
|
||||
return text != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInformation(String information) {
|
||||
this.text = information;
|
||||
if (text != null) {
|
||||
formText.setText(text, true, true);
|
||||
comp.setMinSize(formText.computeSize(SWT.DEFAULT, SWT.DEFAULT));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createContent(Composite parent) {
|
||||
comp = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
|
||||
comp.setExpandHorizontal(true);
|
||||
comp.setExpandVertical(true);
|
||||
|
||||
formText = new FormText(comp, SWT.NONE);
|
||||
comp.setContent(formText);
|
||||
formText.addHyperlinkListener(new HyperlinkAdapter() {
|
||||
@Override
|
||||
public void linkActivated(HyperlinkEvent event) {
|
||||
try {
|
||||
PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser()
|
||||
.openURL(new URL((String) event.getHref()));
|
||||
} catch (MalformedURLException | PartInitException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public IInformationControlCreator getInformationPresenterControlCreator() {
|
||||
return parent -> new FormTextInformationControl(parent, true);
|
||||
}
|
||||
|
||||
public Control getControl() {
|
||||
return getShell();
|
||||
}
|
||||
}
|
||||
|
||||
protected IInformationControlCloser closer;
|
||||
|
||||
public FormTextHoverManager() {
|
||||
super(new AbstractReusableInformationControlCreator() {
|
||||
@Override
|
||||
protected IInformationControl doCreateInformationControl(Shell parent) {
|
||||
return new FormTextInformationControl(parent, false);
|
||||
}
|
||||
});
|
||||
|
||||
getInternalAccessor().setInformationControlReplacer(
|
||||
new InformationControlReplacer(new AbstractReusableInformationControlCreator() {
|
||||
@Override
|
||||
protected IInformationControl doCreateInformationControl(Shell parent) {
|
||||
return new FormTextInformationControl(parent, true);
|
||||
}
|
||||
}) {
|
||||
{
|
||||
this.setCloser(new Closer());
|
||||
}
|
||||
|
||||
class Closer implements IInformationControlCloser, ControlListener, MouseListener, KeyListener,
|
||||
FocusListener, Listener {
|
||||
protected boolean isActive;
|
||||
protected Display display;
|
||||
protected Control subjectControl;
|
||||
protected IInformationControl informationControl;
|
||||
|
||||
@Override
|
||||
public void setSubjectControl(Control control) {
|
||||
subjectControl = control;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInformationControl(IInformationControl control) {
|
||||
this.informationControl = control;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(Rectangle informationArea) {
|
||||
if (!isActive) {
|
||||
isActive = true;
|
||||
|
||||
if (subjectControl != null && !subjectControl.isDisposed()) {
|
||||
subjectControl.addControlListener(this);
|
||||
subjectControl.addMouseListener(this);
|
||||
subjectControl.addKeyListener(this);
|
||||
}
|
||||
|
||||
if (informationControl != null) {
|
||||
informationControl.addFocusListener(this);
|
||||
}
|
||||
|
||||
display = subjectControl.getDisplay();
|
||||
if (!display.isDisposed()) {
|
||||
display.addFilter(SWT.MouseMove, this);
|
||||
display.addFilter(SWT.FocusOut, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
if (isActive) {
|
||||
isActive = false;
|
||||
|
||||
if (subjectControl != null && !subjectControl.isDisposed()) {
|
||||
subjectControl.removeControlListener(this);
|
||||
subjectControl.removeMouseListener(this);
|
||||
subjectControl.removeKeyListener(this);
|
||||
}
|
||||
|
||||
if (informationControl != null) {
|
||||
informationControl.removeFocusListener(this);
|
||||
}
|
||||
|
||||
if (display != null && !display.isDisposed()) {
|
||||
display.removeFilter(SWT.MouseMove, this);
|
||||
display.removeFilter(SWT.FocusOut, this);
|
||||
}
|
||||
display = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void controlResized(ControlEvent event) {
|
||||
hideInformationControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void controlMoved(ControlEvent event) {
|
||||
hideInformationControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseDown(MouseEvent event) {
|
||||
hideInformationControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseUp(MouseEvent event) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseDoubleClick(MouseEvent event) {
|
||||
hideInformationControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent event) {
|
||||
hideInformationControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyReleased(KeyEvent event) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void focusGained(FocusEvent event) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
public void focusLost(FocusEvent event) {
|
||||
if (display != null && !display.isDisposed()) {
|
||||
display.asyncExec(() -> hideInformationControl());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleEvent(Event event) {
|
||||
if (event.type == SWT.MouseMove) {
|
||||
if (event.widget instanceof Control && event.widget.isDisposed()) {
|
||||
if (informationControl != null && !informationControl.isFocusControl()
|
||||
&& informationControl instanceof IInformationControlExtension3) {
|
||||
Rectangle controlBounds = ((IInformationControlExtension3) informationControl)
|
||||
.getBounds();
|
||||
if (controlBounds != null) {
|
||||
Point mouseLocation = event.display.map((Control) event.widget, null,
|
||||
event.x, event.y);
|
||||
if (!controlBounds.contains(mouseLocation)) {
|
||||
hideInformationControl();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (display != null && !display.isDisposed()) {
|
||||
display.removeFilter(SWT.MouseMove, this);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (event.type == SWT.FocusOut) {
|
||||
if (informationControl != null && !informationControl.isFocusControl()) {
|
||||
hideInformationControl();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setCloser(IInformationControlCloser closer) {
|
||||
this.closer = closer;
|
||||
super.setCloser(closer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canClearDataOnHide() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected KeyListener keyListener = new KeyListener() {
|
||||
@Override
|
||||
public void keyReleased(KeyEvent event) {
|
||||
if (event.keyCode == SWT.F2) {
|
||||
IInformationControl informationControl = getInformationControl();
|
||||
if (informationControl instanceof FormTextInformationControl) {
|
||||
Control myControl = ((FormTextInformationControl) informationControl).getControl();
|
||||
Event mouseEvent = new Event();
|
||||
mouseEvent.display = myControl.getDisplay();
|
||||
mouseEvent.widget = myControl;
|
||||
mouseEvent.type = SWT.MouseUp;
|
||||
((Listener) closer).handleEvent(mouseEvent);
|
||||
event.doit = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent event) {
|
||||
// Ignore.
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void install(Control subjectControl) {
|
||||
Control oldSubjectControl = getSubjectControl();
|
||||
|
||||
if (oldSubjectControl != null && !oldSubjectControl.isDisposed()) {
|
||||
oldSubjectControl.removeKeyListener(keyListener);
|
||||
}
|
||||
|
||||
if (subjectControl != null) {
|
||||
subjectControl.addKeyListener(keyListener);
|
||||
}
|
||||
|
||||
super.install(subjectControl);
|
||||
getInternalAccessor().getInformationControlReplacer().install(subjectControl);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
Control subjectControl = getSubjectControl();
|
||||
if (subjectControl != null && !subjectControl.isDisposed()) {
|
||||
subjectControl.removeKeyListener(keyListener);
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,303 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016 QNX Software Systems and others.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License 2.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.arduino.ui.internal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoLibrary;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
|
||||
import org.eclipse.cdt.arduino.core.internal.board.ArduinoPlatform;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.jface.viewers.BaseLabelProvider;
|
||||
import org.eclipse.jface.viewers.CheckStateChangedEvent;
|
||||
import org.eclipse.jface.viewers.CheckboxTreeViewer;
|
||||
import org.eclipse.jface.viewers.ICheckStateListener;
|
||||
import org.eclipse.jface.viewers.ICheckStateProvider;
|
||||
import org.eclipse.jface.viewers.ITableLabelProvider;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Tree;
|
||||
import org.eclipse.swt.widgets.TreeColumn;
|
||||
import org.eclipse.ui.dialogs.FilteredTree;
|
||||
import org.eclipse.ui.dialogs.PatternFilter;
|
||||
|
||||
public class LibraryTree extends FilteredTree {
|
||||
|
||||
private static final String PLATFORMS = "Platform Libraries";
|
||||
private static final String UNCATEGORIZED = "Others";
|
||||
|
||||
private boolean includePlatforms;
|
||||
private Set<ArduinoLibrary> checkedLibs = new HashSet<>();
|
||||
private ArduinoManager manager = Activator.getService(ArduinoManager.class);
|
||||
|
||||
private static class LibPatternFilter extends PatternFilter {
|
||||
@Override
|
||||
protected boolean isLeafMatch(Viewer viewer, Object element) {
|
||||
if (element instanceof String) {
|
||||
return wordMatches((String) element);
|
||||
} else if (element instanceof ArduinoLibrary) {
|
||||
ArduinoLibrary lib = (ArduinoLibrary) element;
|
||||
return wordMatches(lib.getName()) || wordMatches(lib.getSentence()) || wordMatches(lib.getParagraph());
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ContentProvider implements ITreeContentProvider {
|
||||
public Map<String, List<ArduinoLibrary>> categories = new HashMap<>();
|
||||
public List<ArduinoLibrary> uncategorized;
|
||||
|
||||
@Override
|
||||
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
|
||||
if (newInput == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Collection<ArduinoLibrary> libraries = (Collection<ArduinoLibrary>) newInput;
|
||||
for (ArduinoLibrary library : libraries) {
|
||||
if (library.getPlatform() == null) {
|
||||
String category = library.getCategory();
|
||||
if (category != null) {
|
||||
List<ArduinoLibrary> libs = categories.get(category);
|
||||
if (libs == null) {
|
||||
libs = new ArrayList<>();
|
||||
categories.put(category, libs);
|
||||
}
|
||||
libs.add(library);
|
||||
} else {
|
||||
if (uncategorized == null) {
|
||||
uncategorized = new ArrayList<>();
|
||||
}
|
||||
uncategorized.add(library);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getElements(Object inputElement) {
|
||||
List<String> elements = new ArrayList<>(categories.keySet());
|
||||
Collections.sort(elements, (o1, o2) -> o1.compareToIgnoreCase(o2));
|
||||
if (uncategorized != null) {
|
||||
elements.add(UNCATEGORIZED);
|
||||
}
|
||||
if (includePlatforms) {
|
||||
elements.add(PLATFORMS);
|
||||
}
|
||||
return elements.toArray();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getChildren(Object parentElement) {
|
||||
if (parentElement instanceof String) {
|
||||
if (parentElement == UNCATEGORIZED) {
|
||||
return uncategorized.toArray();
|
||||
} else if (parentElement == PLATFORMS) {
|
||||
List<ArduinoPlatform> platforms = new ArrayList<>();
|
||||
try {
|
||||
for (ArduinoPlatform platform : manager.getInstalledPlatforms()) {
|
||||
if (!platform.getLibraries().isEmpty()) {
|
||||
platforms.add(platform);
|
||||
}
|
||||
}
|
||||
} catch (CoreException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
Collections.sort(platforms, (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()));
|
||||
return platforms.toArray();
|
||||
} else {
|
||||
String category = (String) parentElement;
|
||||
List<ArduinoLibrary> libs = categories.get(category);
|
||||
Collections.sort(libs, (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()));
|
||||
return libs.toArray();
|
||||
}
|
||||
} else if (parentElement instanceof ArduinoPlatform) {
|
||||
try {
|
||||
List<ArduinoLibrary> libs = new ArrayList<>(((ArduinoPlatform) parentElement).getLibraries());
|
||||
Collections.sort(libs, (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()));
|
||||
return libs.toArray();
|
||||
} catch (CoreException e) {
|
||||
Activator.log(e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getParent(Object element) {
|
||||
if (element instanceof ArduinoLibrary) {
|
||||
ArduinoLibrary library = (ArduinoLibrary) element;
|
||||
ArduinoPlatform platform = library.getPlatform();
|
||||
if (platform != null) {
|
||||
return platform;
|
||||
}
|
||||
|
||||
String category = library.getCategory();
|
||||
return category != null ? category : UNCATEGORIZED;
|
||||
} else if (element instanceof ArduinoPlatform) {
|
||||
return ((ArduinoPlatform) element).getName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasChildren(Object element) {
|
||||
return element instanceof String || element instanceof ArduinoPlatform;
|
||||
}
|
||||
}
|
||||
|
||||
private static class LabelProvider extends BaseLabelProvider implements ITableLabelProvider {
|
||||
@Override
|
||||
public Image getColumnImage(Object element, int columnIndex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getColumnText(Object element, int columnIndex) {
|
||||
if (element instanceof String) {
|
||||
return columnIndex == 0 ? (String) element : null;
|
||||
} else if (element instanceof ArduinoPlatform) {
|
||||
return columnIndex == 0 ? ((ArduinoPlatform) element).getName() : null;
|
||||
} else if (element instanceof ArduinoLibrary) {
|
||||
ArduinoLibrary library = (ArduinoLibrary) element;
|
||||
switch (columnIndex) {
|
||||
case 0:
|
||||
return library.getName();
|
||||
case 1:
|
||||
return library.getVersion();
|
||||
case 2:
|
||||
return library.getSentence();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public LibraryTree(Composite parent) {
|
||||
super(parent, SWT.CHECK | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL, new LibPatternFilter(), true);
|
||||
|
||||
TreeViewer viewer = getViewer();
|
||||
viewer.setContentProvider(new ContentProvider());
|
||||
viewer.setLabelProvider(new LabelProvider());
|
||||
|
||||
Tree tree = viewer.getTree();
|
||||
tree.setHeaderVisible(true);
|
||||
TreeColumn column1 = new TreeColumn(tree, SWT.LEFT);
|
||||
column1.setText("Library");
|
||||
column1.setWidth(200);
|
||||
TreeColumn column2 = new TreeColumn(tree, SWT.LEFT);
|
||||
column2.setText("Version");
|
||||
column2.setWidth(100);
|
||||
TreeColumn column3 = new TreeColumn(tree, SWT.LEFT);
|
||||
column3.setText("Description");
|
||||
column3.setWidth(300);
|
||||
}
|
||||
|
||||
public void setIncludePlatforms(boolean includePlatforms) {
|
||||
this.includePlatforms = includePlatforms;
|
||||
}
|
||||
|
||||
public void setChecked(Collection<ArduinoLibrary> checkedLibs) {
|
||||
this.checkedLibs = new HashSet<>(checkedLibs);
|
||||
}
|
||||
|
||||
public Collection<ArduinoLibrary> getChecked() {
|
||||
return checkedLibs;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TreeViewer doCreateTreeViewer(Composite parent, int style) {
|
||||
CheckboxTreeViewer viewer = new CheckboxTreeViewer(parent, style);
|
||||
viewer.setCheckStateProvider(new ICheckStateProvider() {
|
||||
@Override
|
||||
public boolean isGrayed(Object element) {
|
||||
if (element instanceof String) {
|
||||
String category = (String) element;
|
||||
if (category == PLATFORMS) {
|
||||
for (ArduinoLibrary lib : checkedLibs) {
|
||||
if (lib.getPlatform() != null) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if (category == UNCATEGORIZED) {
|
||||
for (ArduinoLibrary lib : checkedLibs) {
|
||||
if (lib.getPlatform() == null && lib.getCategory() == null) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (ArduinoLibrary lib : checkedLibs) {
|
||||
if (element.equals(lib.getCategory())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (element instanceof ArduinoPlatform) {
|
||||
for (ArduinoLibrary lib : checkedLibs) {
|
||||
if (element == lib.getPlatform()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChecked(Object element) {
|
||||
if (element instanceof ArduinoLibrary) {
|
||||
return checkedLibs.contains(element);
|
||||
} else {
|
||||
return isGrayed(element);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
viewer.addCheckStateListener(new ICheckStateListener() {
|
||||
@Override
|
||||
public void checkStateChanged(CheckStateChangedEvent event) {
|
||||
Object element = event.getElement();
|
||||
if (element instanceof ArduinoLibrary) {
|
||||
if (event.getChecked()) {
|
||||
checkedLibs.add((ArduinoLibrary) element);
|
||||
} else {
|
||||
checkedLibs.remove(element);
|
||||
}
|
||||
} else if (element instanceof String) {
|
||||
if (!event.getChecked()) {
|
||||
for (ArduinoLibrary lib : new ArrayList<>(checkedLibs)) {
|
||||
if (element.equals(lib.getCategory())) {
|
||||
checkedLibs.remove(lib);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return viewer;
|
||||
}
|
||||
}
|