projects
/
matthijs
/
master-project
/
report.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
72a9e02
)
Allow lambda expression to be indented.
author
Matthijs Kooijman
<matthijs@stdin.nl>
Mon, 2 Nov 2009 11:14:00 +0000
(12:14 +0100)
committer
Matthijs Kooijman
<matthijs@stdin.nl>
Mon, 2 Nov 2009 11:26:14 +0000
(12:26 +0100)
pret-lam.lua
patch
|
blob
|
history
diff --git
a/pret-lam.lua
b/pret-lam.lua
index 68db5772120fcf8716ada9e40b3f612a43986747..6935043297ee5077a9e77495187b4ad0623e7662 100644
(file)
--- a/
pret-lam.lua
+++ b/
pret-lam.lua
@@
-43,6
+43,10
@@
local submatches = {}
local bases = {}
-- Store the last line for each indent level
local indentlines = {}
local bases = {}
-- Store the last line for each indent level
local indentlines = {}
+-- The amount of indent of the first line, which we will strip of all
+-- subsequent lines. This allows the entire block to be indented as normal in
+-- the tex source code.
+local first_indent
-- See if str starts with a symbol, and return the remaining string and that
-- symbol. If no symbol from the table is matched, just returns the first
-- See if str starts with a symbol, and return the remaining string and that
-- symbol. If no symbol from the table is matched, just returns the first
@@
-129,6
+133,17
@@
end
-- line4, and line is no longer in scope since it is replaced by line4.
local function do_indent(line)
newind, rest = utf.match(line, '^(%s*)(.*)')
-- line4, and line is no longer in scope since it is replaced by line4.
local function do_indent(line)
newind, rest = utf.match(line, '^(%s*)(.*)')
+
+ -- Store the first line's indent
+ if not first_indent then
+ first_indent = utf.len(newind)
+ end
+
+ -- Strip the indent of the first line from this line's indent.
+ newind = utf.sub(newind, first_indent + 1)
+ -- Rebuild line, so we can still use it below
+ line = newind .. rest
+
prev = -1
-- Loop all the previous lines
for indent, unused in pairs(indentlines) do
prev = -1
-- Loop all the previous lines
for indent, unused in pairs(indentlines) do
@@
-199,6
+214,7
@@
function vis.begin_of_display()
bases = {}
end
indentlines = {}
bases = {}
end
indentlines = {}
+ first_indent = nil
end
end