Re: command entry suggestion

From: mitchell <mforal.n....at.gmail.com>
Date: Thu, 29 Apr 2010 11:21:51 -0700 (PDT)

Jay,

On Apr 28, 3:46 am, Jay <robert.jay.go....at.gmail.com> wrote:
> The last one for today...
> as I was fixing stuff here and there today I was using the "command
> entry" for debug purposes.
> and realized how much typing was required.
> so I came up with an idea to bind a utility environment to the
> incoming command functions
>
> my prototype yet functional code looks like this:
>
> local util = setmetatable({},{__index = function(e,k)
>         -- most operations are buffer shortcut
>         local v = buffer[k]
>         if v then
>                 if type(v)=="function" then
>                         v = function(...)
>                                 buffer[k](buffer,...)
>                         end
>                 end
>         else -- or bindings to textadept
>                 v = textadept[k] or _G[k] -- if nothing was found default to global
>         end
>         e[k] = v --memoize the key
>         return v
> end})
>
> textadept.events.add_handler('command_entry_command',
>   function(command) -- execute a Lua command
>     local f, err = loadstring(command)
>     if err then error(err) end
>     textadept.command_entry.focus() -- toggle focus to hide
>     setfenv(f,util)
>     f()
>   end)
>
> This way the command entry allows stuff like
>   > insert_text(current_pos,"hello")
> instead of the more verbose
>  > buffer:insert_text(buffer.current_pos,"hello")
>
> another cool feature of this is that we can define util functions for
> the command entry like this:
>
> util.insertf = function (text,...)
>         buffer:insert_text(buffer.current_pos, tostring(text):format(...))
> end
>
> so we can do this
>  > insertf("current position is: %d",current_pos)
>
> Any suggestions about what to do with this?

I REALLY like this idea. My only concern is name clashes between
textadept and buffer functions. I'd also like properties to be
accessible too, e.g. 'use_tabs = 1' enables tabs instead of spaces.
How do you propose to address these things? I think this would be a
great addition to a future release after its polished.

Mitchell

>
> -Jay
>
> --
> You received this message because you are subscribed to the Google Groups "textadept" group.
> To post to this group, send email to textadept.at.googlegroups.com.
> To unsubscribe from this group, send email to textadept+unsubscribe.at.googlegroups.com.
> For more options, visit this group athttp://groups.google.com/group/textadept?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "textadept" group.
To post to this group, send email to textadept.at.googlegroups.com.
To unsubscribe from this group, send email to textadept+unsubscribe.at.googlegroups.com.
For more options, visit this group at http://groups.google.com/group/textadept?hl=en.
Received on Thu 29 Apr 2010 - 14:21:51 EDT

This archive was generated by hypermail 2.2.0 : Thu 08 Mar 2012 - 11:44:09 EST