Re: command entry suggestion

From: Jay <robert.jay.go....at.gmail.com>
Date: Thu, 29 Apr 2010 22:10:08 -0700 (PDT)

Mitchell,

Glad you like it :)
Yeah the name clashes happen, just had one yesterday.
It happened while writing this shortcut for an an easy shell command
[ insert(shell"grep stuff log.log") ] .

-----
util.shell = function(text,...)
        return
textadept.iconv(_G.io.popen(text:format(...)):read("*all"),"UTF-8",_CHARSET)
-- Here was my first name clash, between textadept.io and _G.io
end

----
Well right I'm dog-food'ing myself with it, and I'll probably run into
a few more surprises soon enough,
but it does help bring productivity with TA up.
I'll try to have a functional prototype with some of the obvious
problems solved by next week
so others can test it out and get more feedback to polish the system
up for general use.
-Jay
On Apr 30, 3:21 am, mitchell <mforal.n....at.gmail.com> wrote:
> 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 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 Fri 30 Apr 2010 - 01:10:08 EDT

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