mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Push down tag-related methods from StructuredDocString to StructuredDocStringBase
This commit is contained in:
@@ -77,19 +77,6 @@ public interface StructuredDocString {
|
||||
|
||||
// Tags related methods
|
||||
|
||||
@Nullable
|
||||
Substring getTagValue(String... tagNames);
|
||||
|
||||
@Nullable
|
||||
Substring getTagValue(String tagName, @NotNull String argName);
|
||||
|
||||
@Nullable
|
||||
Substring getTagValue(String[] tagNames, @NotNull String argName);
|
||||
|
||||
List<Substring> getTagArguments(String... tagNames);
|
||||
|
||||
@Nullable
|
||||
Substring getParamByNameAndKind(@NotNull String name, String kind);
|
||||
|
||||
List<String> getAdditionalTags();
|
||||
}
|
||||
|
||||
@@ -58,24 +58,25 @@ public class DocStringReferenceProvider extends PsiReferenceProvider {
|
||||
final int offset = ranges.get(0).getStartOffset();
|
||||
// XXX: It does not work with multielement docstrings
|
||||
StructuredDocString docString = DocStringUtil.parse(text);
|
||||
if (docString != null) {
|
||||
if (docString instanceof StructuredDocStringBase) {
|
||||
final StructuredDocStringBase taggedDocString = (StructuredDocStringBase)docString;
|
||||
result.addAll(referencesFromNames(expr, offset, docString,
|
||||
docString.getTagArguments(StructuredDocStringBase.PARAM_TAGS),
|
||||
taggedDocString.getTagArguments(StructuredDocStringBase.PARAM_TAGS),
|
||||
StructuredDocStringBase.ReferenceType.PARAMETER));
|
||||
result.addAll(referencesFromNames(expr, offset, docString,
|
||||
docString.getTagArguments(StructuredDocStringBase.PARAM_TYPE_TAGS),
|
||||
taggedDocString.getTagArguments(StructuredDocStringBase.PARAM_TYPE_TAGS),
|
||||
StructuredDocStringBase.ReferenceType.PARAMETER_TYPE));
|
||||
result.addAll(referencesFromNames(expr, offset, docString,
|
||||
docString.getKeywordArgumentSubstrings(), StructuredDocStringBase.ReferenceType.KEYWORD));
|
||||
|
||||
result.addAll(referencesFromNames(expr, offset, docString,
|
||||
docString.getTagArguments("var"),
|
||||
taggedDocString.getTagArguments("var"),
|
||||
StructuredDocStringBase.ReferenceType.VARIABLE));
|
||||
result.addAll(referencesFromNames(expr, offset, docString,
|
||||
docString.getTagArguments("cvar"),
|
||||
taggedDocString.getTagArguments("cvar"),
|
||||
StructuredDocStringBase.ReferenceType.CLASS_VARIABLE));
|
||||
result.addAll(referencesFromNames(expr, offset, docString,
|
||||
docString.getTagArguments("ivar"),
|
||||
taggedDocString.getTagArguments("ivar"),
|
||||
StructuredDocStringBase.ReferenceType.INSTANCE_VARIABLE));
|
||||
result.addAll(returnTypes(element, docString, offset));
|
||||
}
|
||||
|
||||
@@ -160,19 +160,22 @@ public class PyStructuredDocstringFormatter {
|
||||
}
|
||||
}
|
||||
|
||||
final List<String> additionalTags = docString.getAdditionalTags();
|
||||
if (!additionalTags.isEmpty()) {
|
||||
result.append("<br/><br/><b>Additional:</b><br/>");
|
||||
result.append("<table>");
|
||||
for (String tagName : additionalTags) {
|
||||
final List<Substring> args = docString.getTagArguments(tagName);
|
||||
for (Substring arg : args) {
|
||||
final String s = arg.toString();
|
||||
result.append("<tr><td align=\"right\"><b>").append(tagName);
|
||||
result.append(" ").append(s).append(":</b>");
|
||||
result.append("</td><td>").append(docString.getTagValue(tagName, s)).append("</td></tr>");
|
||||
if (docString instanceof StructuredDocStringBase) {
|
||||
final StructuredDocStringBase taggedDocString = (StructuredDocStringBase)docString;
|
||||
final List<String> additionalTags = taggedDocString.getAdditionalTags();
|
||||
if (!additionalTags.isEmpty()) {
|
||||
result.append("<br/><br/><b>Additional:</b><br/>");
|
||||
result.append("<table>");
|
||||
for (String tagName : additionalTags) {
|
||||
final List<Substring> args = taggedDocString.getTagArguments(tagName);
|
||||
for (Substring arg : args) {
|
||||
final String s = arg.toString();
|
||||
result.append("<tr><td align=\"right\"><b>").append(tagName);
|
||||
result.append(" ").append(s).append(":</b>");
|
||||
result.append("</td><td>").append(taggedDocString.getTagValue(tagName, s)).append("</td></tr>");
|
||||
}
|
||||
result.append("</table>");
|
||||
}
|
||||
result.append("</table>");
|
||||
}
|
||||
}
|
||||
return result.toString();
|
||||
|
||||
@@ -365,40 +365,12 @@ public abstract class SectionBasedDocString implements StructuredDocString {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Substring getTagValue(String... tagNames) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Substring getTagValue(String tagName, @NotNull String argName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Substring getTagValue(String[] tagNames, @NotNull String argName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Substring> getTagArguments(String... tagNames) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Substring getParamByNameAndKind(@NotNull String name, String kind) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAdditionalTags() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static class Section {
|
||||
private final String myTitle;
|
||||
private final List<SectionField> myFields;
|
||||
@@ -502,10 +474,4 @@ public abstract class SectionBasedDocString implements StructuredDocString {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
// MethodsSection
|
||||
// AttributesSection
|
||||
// YieldsSection
|
||||
// RaisesSection
|
||||
// ReturnsSection
|
||||
}
|
||||
|
||||
@@ -76,6 +76,8 @@ public abstract class StructuredDocStringBase implements StructuredDocString {
|
||||
myDescription = builder.toString();
|
||||
}
|
||||
|
||||
public abstract List<String> getAdditionalTags();
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String createParameterType(@NotNull final String name, @NotNull final String type) {
|
||||
@@ -174,7 +176,6 @@ public abstract class StructuredDocStringBase implements StructuredDocString {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Substring getTagValue(String... tagNames) {
|
||||
for (String tagName : tagNames) {
|
||||
@@ -186,14 +187,12 @@ public abstract class StructuredDocStringBase implements StructuredDocString {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Substring getTagValue(String tagName, @NotNull String argName) {
|
||||
final Map<Substring, Substring> argValues = myArgTagValues.get(tagName);
|
||||
return argValues != null ? argValues.get(new Substring(argName)) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Substring getTagValue(String[] tagNames, @NotNull String argName) {
|
||||
for (String tagName : tagNames) {
|
||||
@@ -205,7 +204,6 @@ public abstract class StructuredDocStringBase implements StructuredDocString {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Substring> getTagArguments(String... tagNames) {
|
||||
for (String tagName : tagNames) {
|
||||
final Map<Substring, Substring> map = myArgTagValues.get(tagName);
|
||||
|
||||
Reference in New Issue
Block a user