-- Copyright 2007-2008 Mitchell mitchellcaladbolg.net. See LICENSE. package.path = _HOME..'/core/?.lua;'..package.path if not WIN32 then package.cpath = _HOME..'/core/?.so;'..package.cpath else package.cpath = _HOME..'/core/?.dll;'..package.cpath end _THEME = '' require 'iface' require 'events' require 'file_io' if not MAC then require 'lua_dialog' end --- -- Checks if the buffer being indexed is the currently focused buffer. -- This is necessary because any buffer actions are performed in the focused -- views' buffer, which may not be the buffer being indexed. Throws an error -- if the check fails. -- @param buffer The buffer in question. function textadept.check_focused_buffer(buffer) if type(buffer) ~= 'table' or not buffer.doc_pointer then error('Buffer argument expected.', 2) elseif textadept.focused_doc_pointer ~= buffer.doc_pointer then error('The indexed buffer is not the focused one.', 2) end end --- -- Displays a CocoaDialog of a specified type with given arguments returning -- the result. -- @param kind The CocoaDialog type. -- @param ... A table of key, value arguments. Each key is a --key switch with -- a "value" value. If value is nil, it is omitted and just the switch is -- used. -- @return string CocoaDialog result. function cocoa_dialog(kind, opts) local args = not MAC and { kind } or '' for k, v in pairs(opts) do if not MAC then args[#args + 1] = '--'..k if type(v) == 'string' then args[#args + 1] = v end else args = args..' --'..k if type(v) == 'string' then args = args..' "'..v..'"' end end end if not MAC then return lua_dialog.run(args) else local cocoa_dialog = '/CocoaDialog.app/Contents/MacOS/CocoaDialog ' local p = io.popen(_HOME..cocoa_dialog..kind..args) local out = p:read('*all') p:close() return out end end