14 comments

[ 1590 ms ] story [ 1041 ms ] thread
This is great, and a compelling alternative to TextAdept in the lua-scriptable text editor space.
Thanks. I started learning Lua last week. So I did not even know about TextAdept and ZeroBrane until today.
Yep TextAdept never really got mush visibility, but it was (is?) a great approach to a having a editor fully scripted in lua, much more so than Scite which also has lua scripting and of course is uses the same scintilla text editor component as TextAdept.

These days Adobes Brackets is using pretty much the same approach in the JS side of things.

(comment deleted)
This might sound absurd but sometimes back when I was totally new to Lua I wanted a REPL. To my surprise, I couldn't find one. Can someone suggest something so I can use it when I get back to lua again.
Just run `lua` and you'll be dropped into a REPL. It's pretty basic compared to some other REPLs though, and I'd also be interested in hearing if there are some more user-friendly options out there.

My main gripe with the current REPL is it doesn't print anything to the screen without an explicit print call. So myMethod(x) will not print anything, instead you have to assign the result to a variable and print it or wrap everything you do in a call to print.

You can also get it to print things by returning them or by prepending "=" to them.

  Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
  > return "hi"
  hi
  > print "hi"
  hi
  > ="hi"
  hi
I agree that this is not ideal, though. It's possible to use a loader to make a more expression-oriented Lua, and then make a REPL that uses that.

  rlwrap lua
Might help. rlwrap is a wrapper program that adds readline functionality to programs that otherwise wouldn't have it.
Here is a hacky "REPL" of sorts in Lua:

  while true do
    io.write("> ")
    exp = io.read()
    print((loadstring("return " .. exp) or loadstring(exp))())
  end
Actually kinda works. Example session:

  > 5 + 5
  10
  > msg = "Hello"
  
  > print(msg)
  Hello

  > double = function(x) return x * 2 end

  > double(2)
  4
  > a = 4

  > b = a + 5

  > b
  9
Trading the ability to have multiline expressions for the ability to skip "return" sounds like a bad deal.
Like the ppl using Eclipse over PHPStorm, it's just plain counter-productive and borderline ridiculous to endorse ZeroBrane over LuaGlider. Sorry, they have a ways to go.