From bb85ebdd7e9ef0a30548b0ad8e6ca1147a0967ad Mon Sep 17 00:00:00 2001 From: guoci Date: Mon, 2 Apr 2018 18:43:41 -0400 Subject: [PATCH] map objects to webpage name --- .../documentation/PythonDocumentationMap.java | 38 +- .../python/documentation/scipyNameMapping.tsv | 46441 ++++++++++++++++ 2 files changed, 46477 insertions(+), 2 deletions(-) create mode 100644 python/src/com/jetbrains/python/documentation/scipyNameMapping.tsv diff --git a/python/src/com/jetbrains/python/documentation/PythonDocumentationMap.java b/python/src/com/jetbrains/python/documentation/PythonDocumentationMap.java index 4f9f92c27a36..ab4b3b0ab378 100644 --- a/python/src/com/jetbrains/python/documentation/PythonDocumentationMap.java +++ b/python/src/com/jetbrains/python/documentation/PythonDocumentationMap.java @@ -2,6 +2,7 @@ package com.jetbrains.python.documentation; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.ServiceManager; @@ -16,10 +17,17 @@ import com.jetbrains.python.psi.PyFunction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author yole @@ -38,6 +46,28 @@ public class PythonDocumentationMap implements PersistentStateComponent nameToWebpageName = ((Supplier>)() -> { + final ImmutableMap.Builder b = ImmutableMap.builder(); + try (final BufferedReader inputStream = new BufferedReader( + new InputStreamReader( + ScipyExternalDocumentationMap.class + .getResourceAsStream("/com/jetbrains/python/documentation/scipyNameMapping.tsv"), + StandardCharsets.US_ASCII + ) + )) { + inputStream.lines().forEach(line -> { + final String[] kv = line.split("\t"); + b.put(kv[0], kv[1]); + }); + } + catch (final IOException e) { + throw new RuntimeException(e); + } + return b.build(); + }).get(); + } + public static class Entry { private String myPrefix; private String myUrlPattern; @@ -96,8 +126,8 @@ public class PythonDocumentationMap implements PersistentStateComponent