summaryrefslogtreecommitdiff
path: root/python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java
diff options
context:
space:
mode:
Diffstat (limited to 'python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java')
-rw-r--r--python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java b/python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java
index 6ea65405ba1a..49a17efd28a6 100644
--- a/python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java
+++ b/python/src/com/jetbrains/python/documentation/PyDocumentationSettings.java
@@ -15,7 +15,9 @@
*/
package com.jetbrains.python.documentation;
-import com.intellij.openapi.components.*;
+import com.intellij.openapi.components.PersistentStateComponent;
+import com.intellij.openapi.components.State;
+import com.intellij.openapi.components.Storage;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleServiceManager;
import com.intellij.openapi.util.text.StringUtil;
@@ -27,6 +29,7 @@ import com.jetbrains.python.psi.PyFile;
import com.jetbrains.python.psi.PyTargetExpression;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.List;
@@ -54,7 +57,7 @@ public class PyDocumentationSettings implements PersistentStateComponent<PyDocum
private boolean isFormat(PsiFile file, final String format) {
if (file instanceof PyFile) {
- PyTargetExpression expr = ((PyFile) file).findTopLevelAttribute(PyNames.DOCFORMAT);
+ PyTargetExpression expr = ((PyFile)file).findTopLevelAttribute(PyNames.DOCFORMAT);
if (expr != null) {
String docformat = PyPsiUtils.strValue(expr.findAssignedValue());
if (docformat != null) {
@@ -88,4 +91,21 @@ public class PyDocumentationSettings implements PersistentStateComponent<PyDocum
public void loadState(PyDocumentationSettings state) {
XmlSerializerUtil.copyBean(state, this);
}
+
+ /**
+ * TODO: Use this factory for the whole document infrastructure to simplify new documentation engine support
+ * Factory that returns appropriate instance of {@link StructuredDocStringBase} if specificed
+ *
+ * @return instance or null if no doctype os set
+ */
+ @Nullable
+ public StructuredDocStringBase getDocString() {
+ if (myDocStringFormat.equals(DocStringFormat.EPYTEXT)) {
+ return new EpydocString();
+ }
+ if (myDocStringFormat.equals(DocStringFormat.REST)) {
+ return new SphinxDocString();
+ }
+ return null;
+ }
}