summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/node-syn.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-03-21 09:47:34 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-03-21 09:47:34 +0100
commitf47b4939787074397c9ea37c1d892a1f7ccc7290 (patch)
tree7768be58efe0faab8e2dccb999686c6a674bf0d7 /tex/context/base/mkiv/node-syn.lua
parentf923c957a3b322ae3ee8e7a0b20df1580869bee7 (diff)
downloadcontext-f47b4939787074397c9ea37c1d892a1f7ccc7290.tar.gz
2018-03-21 09:24:00
Diffstat (limited to 'tex/context/base/mkiv/node-syn.lua')
-rw-r--r--tex/context/base/mkiv/node-syn.lua53
1 files changed, 31 insertions, 22 deletions
diff --git a/tex/context/base/mkiv/node-syn.lua b/tex/context/base/mkiv/node-syn.lua
index d8320e3b3..9d716c44a 100644
--- a/tex/context/base/mkiv/node-syn.lua
+++ b/tex/context/base/mkiv/node-syn.lua
@@ -204,6 +204,7 @@ luatex.synctex = synctex
local enabled = false
local paused = 0
local used = false
+local never = false
-- get rid of overhead
@@ -673,7 +674,7 @@ function synctex.registerdisabler(f)
end
function synctex.enable()
- if not enabled then
+ if not never and not enabled then
enabled = true
set_synctex_mode(3) -- we want details
if not used then
@@ -712,13 +713,13 @@ local filename = nil
function synctex.pause()
paused = paused + 1
- if paused == 1 and enabled then
+ if enabled and paused == 1 then
set_synctex_mode(0)
end
end
function synctex.resume()
- if paused == 1 and enabled then
+ if enabled and paused == 1 then
set_synctex_mode(3)
end
paused = paused - 1
@@ -735,37 +736,45 @@ statistics.register("synctex tracing",function()
end
end)
-interfaces.implement {
+local implement = interfaces.implement
+local variables = interfaces.variables
+
+function synctex.setup(t)
+ if t.state == variables.never then
+ synctex.disable() -- just in case
+ never = true
+ return
+ end
+ if t.method == variables.max then
+ collect = collect_max
+ else
+ collect = collect_min
+ end
+ if t.state == variables.start then
+ synctex.enable()
+ else
+ synctex.disable()
+ end
+end
+
+implement {
name = "synctexblockfilename",
arguments = "string",
actions = synctex.blockfilename,
}
-interfaces.implement {
+implement {
name = "synctexsetfilename",
arguments = "string",
actions = synctex.setfilename,
}
-interfaces.implement {
+implement {
name = "synctexresetfilename",
actions = synctex.resetfilename,
}
-function synctex.setup(t)
- if t.method == interfaces.variables.max then
- collect = collect_max
- else
- collect = collect_min
- end
- if t.state == interfaces.variables.start then
- synctex.enable()
- else
- synctex.disable()
- end
-end
-
-interfaces.implement {
+implement {
name = "setupsynctex",
actions = synctex.setup,
arguments = {
@@ -776,12 +785,12 @@ interfaces.implement {
},
}
-interfaces.implement {
+implement {
name = "synctexpause",
actions = synctex.pause,
}
-interfaces.implement {
+implement {
name = "synctexresume",
actions = synctex.resume,
}