aboutsummaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/src
diff options
context:
space:
mode:
authorAlbert Krewinkel <[email protected]>2023-02-23 11:22:50 +0100
committerAlbert Krewinkel <[email protected]>2023-03-13 13:23:43 +0100
commit0f7653cd10deeeeb646809f9210a46087ff6e4c7 (patch)
treeda76bee01808a9adc2f2d481501cd5a3adc62016 /pandoc-lua-engine/src
parent7916940c23f68037a8579b2d3076abd269578233 (diff)
Switch to hslua-2.3
Diffstat (limited to 'pandoc-lua-engine/src')
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs4
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs2
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs1
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs2
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs1
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs2
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs1
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs10
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs2
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs1
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs1
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs3
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs1
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs1
14 files changed, 26 insertions, 6 deletions
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs
index 1fe2e0f6e..14029a1d4 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs
@@ -1,7 +1,6 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TupleSections #-}
{- |
Module : Text.Pandoc.Lua.Custom
Copyright : © 2021-2023 Albert Krewinkel, John MacFarlane
@@ -16,7 +15,6 @@ import Control.Monad ((<=<), (<$!>))
import Control.Monad.IO.Class (MonadIO)
import Data.Maybe (fromMaybe)
import HsLua as Lua hiding (Operation (Div))
-import HsLua.Core.Run (GCManagedState, newGCManagedState, withGCManagedState)
import Text.Pandoc.Class (PandocMonad, findFileWithDataFallback)
import Text.Pandoc.Error (PandocError)
import Text.Pandoc.Lua.Global (Global (..), setGlobals)
@@ -40,7 +38,7 @@ loadCustom luaFile = do
either throw pure <=< runLuaWith luaState $ do
let globals = [ PANDOC_SCRIPT_FILE luaFile ]
setGlobals globals
- dofileTrace luaFile' >>= \case
+ dofileTrace (Just luaFile') >>= \case
OK -> pure ()
_ -> throwErrorAsException
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs
index e1fe19690..ff22626a6 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs
@@ -34,7 +34,7 @@ import Text.Pandoc.Error (PandocError (PandocFilterError, PandocLuaError))
runFilterFile :: FilePath -> Pandoc -> LuaE PandocError Pandoc
runFilterFile filterPath doc = do
oldtop <- gettop
- stat <- dofileTrace filterPath
+ stat <- dofileTrace (Just filterPath)
if stat /= Lua.OK
then throwErrorAsException
else do
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs
index 5d7c87704..aa501fbaf 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs
@@ -22,7 +22,6 @@ import Control.Monad.Catch (throwM, try)
import Control.Monad.Trans (MonadIO (..))
import Data.Maybe (catMaybes)
import HsLua as Lua hiding (status, try)
-import HsLua.Core.Run as Lua
import Text.Pandoc.Class (PandocMonad (..))
import Text.Pandoc.Data (readDataFile)
import Text.Pandoc.Error (PandocError (PandocLuaError))
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs
index 6277efdd9..533482d6b 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs
@@ -31,6 +31,7 @@ documentedModule = Module
, moduleFields =
[ Field
{ fieldName = "default_options"
+ , fieldType = "table"
, fieldDescription = "Default CLI options, using a JSON-like " <>
"representation."
, fieldPushValue = pushViaJSON defaultOpts
@@ -50,6 +51,7 @@ documentedModule = Module
]
]
, moduleOperations = []
+ , moduleTypeInitializers = []
}
where
peekArgs idx =
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs
index 63753532a..2bc9910cd 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs
@@ -30,6 +30,7 @@ documentedModule = Module
, moduleFields = []
, moduleOperations = []
, moduleFunctions = functions
+ , moduleTypeInitializers = []
}
-- | Extension module functions.
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs
index 00cf9a100..a21635329 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs
@@ -42,6 +42,7 @@ documentedModule = Module
, moduleFields = fields
, moduleFunctions = functions
, moduleOperations = []
+ , moduleTypeInitializers = []
}
--
@@ -58,6 +59,7 @@ fields =
null :: LuaError e => Field e
null = Field
{ fieldName = "null"
+ , fieldType = "userdata"
, fieldDescription = "Value used to represent the `null` JSON value."
, fieldPushValue = pushValue Aeson.Null
}
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs
index 199f965d7..3de86cc99 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs
@@ -53,6 +53,7 @@ documentedModule = Module
, write
]
, moduleOperations = []
+ , moduleTypeInitializers = []
}
-- | Delete a single item from the media bag.
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs
index e921a67d0..37d78bb83 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs
@@ -74,12 +74,18 @@ documentedModule = Module
, inlineConstructors
, metaValueConstructors
]
+ , moduleTypeInitializers =
+ [ initType typePandoc
+ , initType typeBlock
+ , initType typeInline
+ ]
}
-- | Set of input formats accepted by @read@.
readersField :: Field PandocError
readersField = Field
{ fieldName = "readers"
+ , fieldType = "table"
, fieldDescription = T.unlines
[ "Set of formats that pandoc can parse. All keys in this table can"
, "be used as the `format` value in `pandoc.read`."
@@ -92,6 +98,7 @@ readersField = Field
writersField :: Field PandocError
writersField = Field
{ fieldName = "writers"
+ , fieldType = "table"
, fieldDescription = T.unlines
[ "Set of formats that pandoc can generate. All keys in this table"
, "can be used as the `format` value in `pandoc.write`."
@@ -104,6 +111,7 @@ writersField = Field
inlineField :: Field PandocError
inlineField = Field
{ fieldName = "Inline"
+ , fieldType = "table"
, fieldDescription = "Inline constructors, nested under 'constructors'."
-- the nesting happens for historical reasons and should probably be
-- changed.
@@ -114,6 +122,7 @@ inlineField = Field
blockField :: Field PandocError
blockField = Field
{ fieldName = "Block"
+ , fieldType = "table"
, fieldDescription = "Inline constructors, nested under 'constructors'."
-- the nesting happens for historical reasons and should probably be
-- changed.
@@ -176,6 +185,7 @@ stringConstants =
]
toField s = Field
{ fieldName = T.pack s
+ , fieldType = "string"
, fieldDescription = T.pack s
, fieldPushValue = pushString s
}
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs
index f90c5d761..81ff13e39 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs
@@ -26,12 +26,14 @@ documentedModule = Module
, moduleFields = [writerScaffolding]
, moduleOperations = []
, moduleFunctions = []
+ , moduleTypeInitializers = []
}
-- | Template module functions.
writerScaffolding :: Field PandocError
writerScaffolding = Field
{ fieldName = "Writer"
+ , fieldType = "table"
, fieldDescription = T.unlines
[ "An object to be used as a `Writer` function; the construct handles"
, "most of the boilerplate, expecting only render functions for all"
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs
index 21248c724..d8894e103 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs
@@ -51,6 +51,7 @@ documentedModule = Module
, table_of_contents
]
, moduleOperations = []
+ , moduleTypeInitializers = []
}
make_sections :: LuaError e => DocumentedFunction e
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
index 61ab949a8..1d685e13e 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs
@@ -41,4 +41,5 @@ documentedModule = Module
, setName "with_working_directory" with_wd
]
, moduleOperations = []
+ , moduleTypeInitializers = []
}
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs
index 652588947..87d9cebb5 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs
@@ -16,7 +16,7 @@ import HsLua.Module.DocLayout (peekDoc, pushDoc)
import Text.Pandoc.Error (PandocError)
import Text.Pandoc.Lua.Marshal.AST (peekMeta, pushBlocks, pushInlines)
import Text.Pandoc.Lua.Marshal.Context (peekContext, pushContext)
-import Text.Pandoc.Lua.Marshal.Template (peekTemplate, pushTemplate)
+import Text.Pandoc.Lua.Marshal.Template (typeTemplate, peekTemplate, pushTemplate)
import Text.Pandoc.Lua.PandocLua (PandocLua (unPandocLua), liftPandocLua)
import Text.Pandoc.Writers.Shared (metaToContext')
import Text.Pandoc.Templates
@@ -35,6 +35,7 @@ documentedModule = Module
, moduleFields = []
, moduleOperations = []
, moduleFunctions = functions
+ , moduleTypeInitializers = [initType typeTemplate]
}
-- | Template module functions.
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs
index 32630ba71..4f656ff3f 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs
@@ -39,4 +39,5 @@ documentedModule = Module
=#> functionResult pushVersion "Version" "A new Version object."
]
, moduleOperations = []
+ , moduleTypeInitializers = []
}
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs
index 513b5274e..74e3cc4ec 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs
@@ -49,6 +49,7 @@ documentedModule = Module
, moduleDescription = "pandoc utility functions"
, moduleFields = []
, moduleOperations = []
+ , moduleTypeInitializers = []
, moduleFunctions =
[ defun "blocks_to_inlines"
### (\blks mSep -> do