catalog:createKeyword not catalog.createKeyword
(colon, not dot)
I get a different error now. Why doesn't Lightroom think I'm in a withWriteAccessDo block at this point - isn't that what I'm doing in runProcess?
You are calling the function and passing it's result, what you should do is pass the function proper so with-write-access-do can call it.
catalog:withWriteAccessDo( "SetKeywords", GKMenuItem.setKeywords )
catalog:withWriteAccessDo( "SetKeywords", GKMenuItem.setKeywords() )
that's great - I'm on my way now.
Cool. functions are great in lua - despite passing to a different context, they always execute in the context where they live - read: lua closures.