Skip to content

bfredl/nvim-luadev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

nvim-luadev

This plugins set up a REPL-like environment for developing lua plugins in Nvim. The :Luadev command will open an scratch window which will show output from executing lua code.

Use the folllowing mappings to execute lua code:

Binding Action
<Plug>(Luadev-RunLine) Execute the current line
<Plug>(Luadev-Run) Operator to execute lua code over a movement or text object.
<Plug>(Luadev-RunWord) Eval identifier under cursor, including table.attr
<Plug>(Luadev-Complete) in insert mode: complete (nested) global table fields

If the code is a expression, it will be evaluated, and the result shown with inspect.lua. Otherwise it will be executed as a block of code. A top-level return will cause the returned value to be inspected. A bare nil will not be shown.

Global print() is also redirected to the output buffer, but only when executing code via this plugin. require'luadev'.print(...) can be used to print to the buffer from some other context.

Planned features:

  • autodetect expression vs statements
  • Fix inspect.lua to use tostring() on userdata (done on a local copy)
  • completion of global names and table attributes (WIP: basic implementation done)
  • make <Plug>(Luadev-Run) a proper operator
  • solution for step-wise execution of code with local assignments (such as a flag to copy local values to an env)
  • tracebacks
  • interactive debugging
  • debug helpers for async callbacks (WIP)

About

REPL/debug console for nvim lua plugins

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published