# Config Examples for Distributions ## NixOS `coc-sumneko-lua` (or `lua-language-server`) use `sumneko-lua.serverDir` to store generated metafiles and log. However, `lua-language-server` installed by nix is read-only in NixOS. Therefore just setting `sumneko-lua.serverDir` is not enough in NixOS, some cmd args are also needed to be set. Here's an minimal working example: `coc-settings.json`: ```json { "Lua.misc.parameters": [ "--metapath", "~/.cache/sumneko_lua/meta", "--logpath", "~/.cache/sumneko_lua/log" ], "sumneko-lua.serverDir": "${pkgs.lua-language-server}/share/lua-language-server" } ``` `${pkgs.lua-language-server}` needs to be replaced by real path of `lua-language-server`. And `lua-language-server` used to be called `sumneko-lua-language-server` in `nixpkgs`, maybe you need to use old name. If you don't want to generate your coc configuration by nix and don't want to change the absolute path of `lua-language-server` every time updating your `nixpkgs`, you can link `lua-language-server` to somewhere fixed and change last line of configuration to the link target. For example, add it to `environment.systemPackages` and change - `configuration.nix` ``` { pkgs, ... }: { environment.systemPackages = [ pkgs.lua-language-server ]; } ``` - `coc-settings.json` ```json { "Lua.misc.parameters": [ "--metapath", "~/.cache/sumneko_lua/meta", "--logpath", "~/.cache/sumneko_lua/log" ], "sumneko-lua.serverDir": "/run/current-system/sw/share/lua-language-server" } ``` ## Others Default config should work.