Re: [code] [textadept] Reorder tabs

From: Mitchell <>
Date: Fri, 28 Jun 2019 22:56:47 -0400 (EDT)


On Fri, 28 Jun 2019, Qwerky wrote:

> On 2019-06-28 13:59, Robert Gieseke wrote:
>> Am 28.06.19 um 21:37 schrieb Qwerky:
>>>> So, that's what you probably would need to automate, have a shortcut,
>>>> that moves a tab/buffer left or right by manipulating a session object
>>>> or list of buffers and re-opening ...
>>> Is that doable with textadept?  I'm not very familiar with Lua, nor yet
>>> very experienced with textadept, but would be willing make an attempt,
>>> with a little help.  :-)
>> So, here is a quick proof of concept of moving the last buffer/tab to
>> the first position by closing and re-opening all buffers, should work
>> from your `init.lua`:
>> -- Ctrl-5
>> keys.c5 = function()
>> local original_tabs = {}
>> for i = 1, #_BUFFERS do
>> local buffer = _BUFFERS[i]
>> local filename = buffer.filename or buffer._type
>> original_tabs[#original_tabs + 1] = filename
>> view:goto_buffer(buffer)
>> end
>> io.close_all_buffers()
>> io.open_file(original_tabs[#original_tabs])
>> for i = 1, #original_tabs - 1 do
>> io.open_file(original_tabs[i])
>> end
>> end
>> This doesn't do a lot of things, keep cursor positions or properly
>> recover message buffers etc. Could likely be done based on the code in
>> Textadept's `session.lua`. Basically merging the save and load session
>> function from it with a order manipulation step in between.
>> Cheers,
>> Robert
> Your code seems clear enough.  But following your comment, I had a look at
> "session.lua",  comparing it to the actual session file--and I see that there
> is a lot going on there!  To properly keep everything intact would, I think,
> require a lot more than I am presently capable of with Lua.
> Though I'm sure Mitchell would have no problem with it, if he thought that
> this was a proper approach to reordering the buffers.
> Perhaps another approach might be to have the actual GUI tabs simply be a
> list of pointers to the correct buffers, so that reordering the tabs list
> itself would have no effect on the buffers, as each tab would  continue to
> point to its original buffer?  Thus the buffers could be 1, 2, 3, 4; while
> the tabs could be 2, 1, 4, 3, with each pointing to its own buffer?

I've given thought to this in the past. If there was an easy solution that didn't feel like a hack and worked well, it would probably be done by now. As it is, I don't have much motivation for this feature because I personally do not use tabs. I use the buffer browser.


You are subscribed to
To change subscription settings, send an e-mail to
To unsubscribe, send an e-mail to
Received on Fri 28 Jun 2019 - 22:56:47 EDT

This archive was generated by hypermail 2.2.0 : Sat 29 Jun 2019 - 06:42:33 EDT