public Task <string> ExecuteAsync(string filename, string originalText, CancellationToken cancellation) { try { var state = ScriptExtension.CreateState(); state.Globals["input"] = originalText; return(Task.FromResult(state.DoString(GetScript(filename).Replace(@"{INLINED_INPUT}", originalText)).CastToString())); } catch (Exception e) { TypoLogging.Write(e); throw; } }
private void Reload(string filename) { if (filename?.EndsWith(".lua", StringComparison.OrdinalIgnoreCase) == false) { return; } _lua = Directory.GetFiles(_directory, "*.lua").Select(x => { try { return(ScriptExtension.CreateState().DoString(File.ReadAllText(x), codeFriendlyName: Path.GetFileName(x)).Function); } catch (Exception e) { TypoLogging.NonFatalErrorNotify("Can’t execute script", null, e); return(null); } }).NonNull().ToArray(); }