summaryrefslogtreecommitdiff
path: root/docutils/statemachine.py
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2009-10-28 14:08:17 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2009-10-28 14:08:17 +0000
commit81e20a7b218039de58f07125c2cc4180c527d7b4 (patch)
treee077c2a615bda4fb7f083533619845e5512d2e2b /docutils/statemachine.py
parent25e36e1cc48d73dc74b1d7a031ef216e6858eed1 (diff)
downloaddocutils-81e20a7b218039de58f07125c2cc4180c527d7b4.tar.gz
(partially) Fix reporting for problems in included files.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@6188 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/statemachine.py')
-rw-r--r--docutils/statemachine.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/docutils/statemachine.py b/docutils/statemachine.py
index 83eec3689..ce05d3b74 100644
--- a/docutils/statemachine.py
+++ b/docutils/statemachine.py
@@ -348,6 +348,15 @@ class StateMachine:
"""Return source of line at absolute line offset `line_offset`."""
return self.input_lines.source(line_offset - self.input_offset)
+ def get_source_spot(self, line_offset=None):
+ """Return dict with source position of current or given line"""
+ if line_offset is None:
+ line_offset = self.line_offset
+ else:
+ line_offset -= self.input_offset
+ (source, offset) = self.input_lines.info(line_offset)
+ return {'source': source, 'line': offset + 1}
+
def abs_line_offset(self):
"""Return line offset of current line, from beginning of file."""
return self.line_offset + self.input_offset
@@ -358,9 +367,9 @@ class StateMachine:
def insert_input(self, input_lines, source):
self.input_lines.insert(self.line_offset + 1, '',
- source='internal padding')
+ source='internal padding after ' + source)
self.input_lines.insert(self.line_offset + 1, '',
- source='internal padding')
+ source='internal padding before '+ source)
self.input_lines.insert(self.line_offset + 2,
StringList(input_lines, source))
@@ -757,7 +766,7 @@ class StateMachineWS(StateMachine):
`StateMachine` subclass specialized for whitespace recognition.
There are three methods provided for extracting indented text blocks:
-
+
- `get_indented()`: use when the indent is unknown.
- `get_known_indented()`: use when the indent is known for all lines.
- `get_first_known_indented()`: use when only the first line's indent is
@@ -1046,7 +1055,7 @@ class ViewList:
child and parent lists can be broken by calling `disconnect()` on the
child list.
- Also, ViewList objects keep track of the source & offset of each item.
+ Also, ViewList objects keep track of the source & offset of each item.
This information is accessible via the `source()`, `offset()`, and
`info()` methods.
"""
@@ -1103,9 +1112,8 @@ class ViewList:
def __len__(self): return len(self.data)
# The __getitem__()/__setitem__() methods check whether the index
- # is a slice first, since native list objects start supporting
- # them directly in Python 2.3 (no exception is raised when
- # indexing a list with a slice object; they just work).
+ # is a slice first, since indexing a native list with a slice object
+ # just works.
def __getitem__(self, i):
if isinstance(i, types.SliceType):