dbalatero / VimMode.spoon

Adds vim keybindings to all OS X inputs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Broken with Hammerspoon 0.9.79

dbalatero opened this issue · comments

Lua is pushed to 5.4 and axuielement is bundled now with Hammerspoon, so we can drop the external dependency if we are on >= 0.9.79.

	dlopen(/Users/dbalatero/.dotfiles/hammerspoon/Spoons/VimMode.spoon/vendor/hs/_asm/axuielement/internal.so, 6): Symbol not found: _lua_newuserdata
  Referenced from: /Users/dbalatero/.dotfiles/hammerspoon/Spoons/VimMode.spoon/vendor/hs/_asm/axuielement/internal.so
  Expected in: /Applications/Hammerspoon.app/Contents/MacOS/../Frameworks/LuaSkin.framework/Versions/A/LuaSkin
 in /Users/dbalatero/.dotfiles/hammerspoon/Spoons/VimMode.spoon/vendor/hs/_asm/axuielement/internal.so
stack traceback:
	[C]: in ?
	[C]: in function 'rawrequire'
	...app/Contents/Resources/extensions/hs/_coresetup/init.lua:651: in function 'require'
	...Spoons/VimMode.spoon/vendor/hs/_asm/axuielement/init.lua:27: in main chunk
	[C]: in function 'rawrequire'
	...app/Contents/Resources/extensions/hs/_coresetup/init.lua:651: in function 'require'
	...o/.dotfiles/hammerspoon/Spoons/VimMode.spoon/lib/vim.lua:18: in main chunk
	[C]: in function 'dofile'
	...tero/.dotfiles/hammerspoon/Spoons/VimMode.spoon/init.lua:10: in main chunk
	[C]: in function 'rawrequire'
	...app/Contents/Resources/extensions/hs/_coresetup/init.lua:651: in function 'require'
	...app/Contents/Resources/extensions/hs/_coresetup/init.lua:324: in field 'loadSpoon'
	/Users/dbalatero/.dotfiles/hammerspoon/init.lua:5: in main chunk
	[C]: in function 'xpcall'
	...app/Contents/Resources/extensions/hs/_coresetup/init.lua:702: in function 'hs._coresetup.setup'
	(...tail calls...)```

Is there any progress or workaround to address this issue? any help would be appreciated

No progress so far, been quite busy. To sum up what needs to be done though:

  • Write a function that checks if the Hammerspoon version is below 0.9.79
  • If so, load the vendored axuielement library, business as usual
  • Otherwise, load the bundled version that comes with the new version
  • Possibly hide this if/else logic in a single axuielement.lua file that can export either copy of the lib

Alright all, if you pull master you should get a working version. Let me know if you discover any issues - I had to make some updates as the axuielement library broke API compatibility when it moved from experimental to HS core.