Dan Anderson wrote:
Neil Hodgson wrote:
Dan Anderson:
Does anyone know if there any way within a LUA script to
access each open buffer and the text it contains? Read
only access is sufficient. I would like to iterate through each
buffer, retrieve the text, and perform some additional
processing with the text.
This is not well supported. There is some code for switching
buffers at
http://lua-users.org/wiki/SciteBufferSwitch
Neil
Thanks. I did come across that, but it doesn't really satisfy my
needs. As far as I can tell, the script keeps track of all files opened
since Scite was started regardless of whether or not they have been
subsequently closed.
I do have an idea. Basically, I was thinking that I could use
scite.SendEditor() to send IDM_NEXTFILE to switch through all the
buffers. I would have to keep track of the original buffer somehow so
that I know when it is complete. Maybe the buffer file path. Not sure
if it will work but the idea seams sound. The biggest issue I see with
this approach is that it will be pretty ugly with the screen flashing
through all of the buffers.
It would be nice if an array of open buffers was exposed to the LUA
scripting interface. Each buffer object in the array could have the
basic properties & functions of the editor object.
You can grab each of the buffer file names using OnOpen. Save the
following and put in your lua startup script.
--cut--
local ses_buffers = {}
function load_buffer(bufferpath)
--fill global buffers with the names of the loaded files
if string.len(bufferpath) > 0 then
table.insert(ses_buffers,bufferpath)
--print(bufferpath)
end
end
--print out the lua table file names
function get_files(filename)
local i, file
for i,file in ipairs(ses_buffers) do
print(file)
end
end
function OnOpen(f)
load_buffer(f)
end
--cut--
Add the following to SciTEUser.properties:
ext.lua.startup.script=$(SciteUserHome)/mystartupscript.lua
Restart SciTE and the table 'ses_buffers' will have a list of all
files opened on startup. It will add each opened file to the list.
What you do with them is up to you. ;-)
I am not an expert with lua but this should help get you started.
--
Doyle Whisenant
http://www.freewebs.com/mekdesign/
"mechanic" at "sonet" dot "net"
_______________________________________________
Scite-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scite-interest