From c115af812673f48192dca24b70891c6ec495c5a5 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 4 May 2011 20:07:32 +0400 Subject: [PATCH] fixed PY-3364 Quick-doc: Align base field tag params to the right --- python/helpers/rest_formatter.py | 39 ++++++++++++++++++- .../python/documentation/ReSTRunner.java | 3 -- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/python/helpers/rest_formatter.py b/python/helpers/rest_formatter.py index b7f1736e8e87..266c794216de 100644 --- a/python/helpers/rest_formatter.py +++ b/python/helpers/rest_formatter.py @@ -1,6 +1,43 @@ import sys +from docutils.core import publish_string from epydoc.markup import DocstringLinker -from epydoc.markup.restructuredtext import parse_docstring +from epydoc.markup.restructuredtext import ParsedRstDocstring, _EpydocHTMLTranslator, _DocumentPseudoWriter, _EpydocReader + +class RestHTMLTranslator(_EpydocHTMLTranslator): + def visit_field_name(self, node): + atts = {} + if self.in_docinfo: + atts['class'] = 'docinfo-name' + else: + atts['class'] = 'field-name' + if ( self.settings.field_name_limit + and len(node.astext()) > self.settings.field_name_limit): + atts['colspan'] = 2 + self.context.append('\n ') + else: + self.context.append('') + atts['align'] = "right" + self.body.append(self.starttag(node, 'th', '', **atts)) + +class MyParsedRstDocstring(ParsedRstDocstring): + def __init__(self, document): + ParsedRstDocstring.__init__(self, document) + + def to_html(self, docstring_linker, directory=None, + docindex=None, context=None, **options): + visitor = RestHTMLTranslator(self._document, docstring_linker, + directory, docindex, context) + self._document.walkabout(visitor) + return ''.join(visitor.body) + +def parse_docstring(docstring, errors, **options): + writer = _DocumentPseudoWriter() + reader = _EpydocReader(errors) # Outputs errors to the list. + publish_string(docstring, writer=writer, reader=reader, + settings_overrides={'report_level':10000, + 'halt_level':10000, + 'warning_stream':None}) + return MyParsedRstDocstring(writer.document) try: src = "".join(sys.argv[1:]) diff --git a/python/src/com/jetbrains/python/documentation/ReSTRunner.java b/python/src/com/jetbrains/python/documentation/ReSTRunner.java index 68b5f5a3b21a..44c32332acbf 100644 --- a/python/src/com/jetbrains/python/documentation/ReSTRunner.java +++ b/python/src/com/jetbrains/python/documentation/ReSTRunner.java @@ -4,15 +4,12 @@ import com.intellij.execution.process.ProcessOutput; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.vfs.encoding.EncodingProjectManager; import com.jetbrains.python.PythonHelpersLocator; import com.jetbrains.python.sdk.PythonSdkType; import com.jetbrains.python.sdk.SdkUtil; import org.jetbrains.annotations.Nullable; import java.io.File; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; /** * User : catherine