moonscript support fixes

This commit is contained in:
kepler155c@gmail.com
2020-06-13 12:19:13 -06:00
parent 1a166bdb22
commit 27c7d2dd18
8 changed files with 17 additions and 195 deletions

View File

@@ -1,7 +1,6 @@
local Map = require('opus.map')
local fs = _G.fs
local shell = _ENV.shell
local commands = Map.transpose {
'packages/moonscript/moon',
@@ -16,21 +15,28 @@ local function compatEnv(source)
return env
end
shell.registerHandler(function(args, env)
if args[1]:match('(.+)%.moon$') then
local function fix(env, args)
if #args > 0 then
args[1] = env.shell.resolve(args[1])
end
return args
end
_ENV.shell.registerHandler(function(env, command, args)
if command:match('(.+)%.moon$') then
return {
title = fs.getName(args[1]):match('([^%.]+)'),
title = fs.getName(command):match('([^%.]+)'),
path = 'packages/moonscript/moon',
args = args,
args = { env.shell.resolveProgram(command), table.unpack(args) },
load = loadfile,
env = compatEnv(env),
}
end
local command = shell.resolveProgram(args[1]) or ''
command = env.shell.resolveProgram(command) or ''
return commands[command] and {
title = fs.getName(command),
path = command,
args = { table.unpack(args, 2) },
args = fix(env, args),
load = loadfile,
env = compatEnv(env),
}