Skip to content

[Enhancement] Create cache in a user directory #2676

Open

Description

@itaranto

How are you using the lua-language-server?

Neovim

Which OS are you using?

Linux

What is the issue affecting?

Other

Expected Behaviour

lua-language-server should create the cache directory on the user's home directory. On Linux this should be in ~/.cache/lua-language-server/ ideally.

Actual Behaviour

lua-language-server fails to start because it attempts to create the cache directory in a system directory which a regular user doesn't have permissions to write to.

Reproduction steps

  1. Download lua-language-server-3.9.1-linux-x64.tar.gz and extract it to /opt/lua-language-server/
  2. Make sure the owner of /opt/lua-language-server/ is root:root.
  3. Execute /opt/lua-language-server/bin/lua-language-server --help
  4. See error: lua-language-server: create_directories: "/opt/lua-language-server/log/cache/40815": (generic:13)Permission denied

Additional Notes

No response

Log File

No response

Activity

  1. detrohutt commented on Mar 8, 2025

    @detrohutt

    As a workaround this can be addressed by setting the logpath command line option to a location the user has access to. In my case (setting up neovim on Windows) I was able to get it working by adding the option to the cmd array in the lsp configuration file.

    -- ./nvim/lsp/luals.lua
    
    return {
      cmd = {'lua-language-server', '--logpath=C:/Users/aj_ro/AppData/Local/Temp/luals'},
      filetypes = {'lua'},
      root_markers = {'.luarc.json', '.luarc.jsonc'},
    }
    
  2. tkatter commented on Apr 9, 2026

    @tkatter

    Ran into this today since the only package managers listed on the Install page for Neovim are 3 mac package managers, mise-en-place, and asdf. I'm also on Linux, so naturally I said 'ok give me the tar then', extracted into /opt/lua-language-server, symlinked the binary to be in my path ln -s /opt/lua-language-server/bin/lua-language-server /usr/local/bin/lua-language-server and same issue, fails to start because it can't create a log directory in /opt/lua-language-server. It should not be creating log directories here in the first place, like OP said, should use the user's ~/.cache.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions