lunarmodules / luacheck

A tool for linting and static analysis of Lua code.

Home Page:https://luacheck.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Config not searched in `$XDG_CONFIG_HOME` on macOS

erikw opened this issue · comments

First, thanks for this great tool. I recently started using it together with NeoVim and it works splendid!

As documented, the config file is on macOS looked for in $HOME/Library/Application\ Support/Luacheck and not in the XDG path $XDG_CONFIG_HOME/luacheck.

macOS is also a modern Unix-like/based system and it would make sense to look for the config file in the XDG Path if not found in the Library path. I manage my config files in a dotfiles repo and have everything in ~/.config that supports this. I think many developers in macOS also utilize the XDG paths.

In my case this meant that in the NeoVim plugin ALE I had to configure luacheck with extra options:

 vim.g.ale_lua_luacheck_options = "--config $XDG_CONFIG_HOME/luacheck/.luacheckr"

This should not be needed.

The code that would need update is here:

if system == "Darwin" then
local home_dir = os.getenv("HOME")
if home_dir then
return fs.join(home_dir, "Library", "Application Support", "Luacheck")
end
else

If not finding a config in the Library path, the same logic that is currently in the else clause should be done in the Darwin case

Feel free to open a PR, this sounds like a reasonable request. I will help facilitate a PR but I am not on macOS to test.

My suggestion would be to search tho macOS native location first and use that config if found, and fall back to checking the XDG location and use that, again if found.