lbownik commented on code in PR #5567:
URL: https://github.com/apache/netbeans/pull/5567#discussion_r1118134789
##########
rust/rust.cargo/src/org/netbeans/modules/rust/cargo/impl/CargoTOMLParser.java:
##########
@@ -89,34 +90,53 @@ public static void parseCargoToml(FileObject cargoTomlFile,
CargoTOML cargotoml)
cargotoml.setRustVersion(rustVersion);
// dependencies
- TomlTable declaredDependencies =
parseResult.getTable("dependencies");
- if (declaredDependencies != null && declaredDependencies.size() >
0) {
- ArrayList<RustPackage> packages = new
ArrayList<>(declaredDependencies.size());
- for (Map.Entry<String, Object> declaredDependency :
declaredDependencies.entrySet()) {
- String key = declaredDependency.getKey();
- Object value = declaredDependency.getValue();
- if (value instanceof String) {
- String stringValue = (String) value;
- packages.add(new RustPackage(cargotoml, key,
stringValue));
- } else {
- LOG.warning(String.format("Unrecognized cargo
dependency with key '%s', value '%s'", key, value));
- }
- }
- Collections.sort(packages, (RustPackage a, RustPackage b) -> {
- int diff = a.getName().compareTo(b.getName());
- if (diff == 0) {
- diff = a.getSemver().compareTo(b.getSemver());
- }
- return diff;
- });
- cargotoml.setDependencies(packages);
- } else {
- cargotoml.setDependencies(Collections.EMPTY_LIST);
+ {
+ List<RustPackage> dependencies = getDependencies(cargotoml,
parseResult, "dependencies");
+ cargotoml.setDependencies(dependencies);
+ }
+
+ // dev-dependencies
+ {
+ List<RustPackage> devDependencies = getDependencies(cargotoml,
parseResult, "dev-dependencies");
+ cargotoml.setDevDependencies(devDependencies);
+ }
+
+ // build-dependencies
+ {
+ List<RustPackage> buildDependencies =
getDependencies(cargotoml, parseResult, "build-dependencies");
+ cargotoml.setBuildDependencies(buildDependencies);
}
}
long end = System.currentTimeMillis();
LOG.info(String.format("Parsed '%s' in %5.2g ms.",
file.getAbsolutePath(), (end - start) / 1000.0)); //NOI18N
}
+ private static final List<RustPackage> getDependencies(CargoTOML
cargotoml, TomlParseResult parseResult, String propertyKey) {
+ TomlTable dependencies = parseResult.getTable(propertyKey);
+ if (dependencies == null || dependencies.isEmpty()) {
+ return Collections.<RustPackage>emptyList();
+ }
+ ArrayList<RustPackage> packages = new ArrayList<>(dependencies.size());
+ for (Map.Entry<String, Object> declaredDependency :
dependencies.entrySet()) {
+ String key = declaredDependency.getKey();
+ Object value = declaredDependency.getValue();
+ if (value instanceof String) {
+ String stringValue = (String) value;
+ packages.add(new RustPackage(cargotoml, key, stringValue));
+ } else {
+ // TODO: Add support for github dependencies and registry
dependencies
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
+ LOG.warning(String.format("Unrecognized cargo dev-dependency
with key '%s', value '%s'", key, value));
+ }
+ }
+ Collections.sort(packages, (RustPackage a, RustPackage b) -> {
Review Comment:
this lambda asks to be extracted into private static method
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists