Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workspace is loaded with fallback config then user config is partially loaded #3092

Open
UnderscoreSkyy opened this issue Feb 24, 2025 · 2 comments

Comments

@UnderscoreSkyy
Copy link

UnderscoreSkyy commented Feb 24, 2025

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Linux

What is the issue affecting?

Other

Expected Behaviour

Upon opening a project when LuaLS is loading if the user have a .luarc.json with content :

{
  "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
  "runtime": {
    "version": "Lua 5.1",
    "fileEncoding": "utf8",
    "builtin": {
      "basic": "disable",
      "bit": "disable",
      "bit32": "disable",
      "builtin": "disable",
      "coroutine": "disable",
      "debug": "disable",
      "ffi": "disable",
      "io": "disable",
      "jit": "disable",
      "math": "disable",
      "os": "disable",
      "package": "disable",
      "string": "disable",
      "table": "disable",
      "table.clear": "disable",
      "table.new": "disable",
      "utf8": "disable"
    }
  },
  "workspace": {
    "maxPreload": 2048,
    "library": ["Annotations"]
  }
}

The language server should :

  • Not prepare any hover documentation for any standard lua library
  • Preload files that exceed 500kb
  • Read definitions files from Annotations folder create entries for hover documentations.

Actual Behaviour

Upon opening the project LuaLS will :

In the case of hover documentations :
LuaLS will prepare all lua 5.4 documentation and start serving them. When definitions files in Annotations if one define for example table.foreach the documentation will be added to the current context
Image
(first documentation block come from Annotations, second come from LuaLS embedded definitions files for the standard libraries for lua 5.4)

In the case there is an 500+ kb file display directly :
Too large file: Lua/bigfile.lua skipped. The currently set size limit is: 500 KB, and the file size is: 627.979 KB.
(Upon opening Lua/bigfile.lua the file will be treated correctly without any error)

Reproduction steps

  1. Create a project folder with content as follow :
root-directory/
  - Annotations/
    - table.d.lua
  - Lua/
    - main.lua
    - bigfile.lua
  - .luarc.json

table.d.lua content :

---@meta table

---@class tablelib
table = {}

---
---Deprecated in favor of pairs
---@see pairs
---
---[View documents](http://www.lua.org/manual/5.4/manual.html#pdf-table.foreach)
---
---@generic T
---@param list any
---@param callback fun(key: string, value: any):T|nil
---@return T|nil
---@deprecated
function table.foreach(list, callback) end

main.lua content:

local t = {}
table.foreach(t, function ()
    
end)

bigfile.lua content : Anything to make the file be bigger than 500kb

.luarc.json content

{
  "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
  "runtime": {
    "version": "Lua 5.1",
    "fileEncoding": "utf8",
    "builtin": {
      "basic": "disable",
      "bit": "disable",
      "bit32": "disable",
      "builtin": "disable",
      "coroutine": "disable",
      "debug": "disable",
      "ffi": "disable",
      "io": "disable",
      "jit": "disable",
      "math": "disable",
      "os": "disable",
      "package": "disable",
      "string": "disable",
      "table": "disable",
      "table.clear": "disable",
      "table.new": "disable",
      "utf8": "disable"
    }
  },
  "workspace": {
    "maxPreload": 2048,
    "library": ["Annotations"]
  }
}
  1. Open project with vscode
  2. See warning notification appear directly or upon opening main.lua file
  3. Hover above striked table.foreach and see both documentation aggregated together

Additional Notes

This behavior can also be reproduced in current zed stable version 0.174.6
In both editor I only installed the extension and run the default provided configuration. I only configured misc.parameters : [ "--loglevel=trace" ] in vscode settings only for the following logs as misc.parameters in .luarc.json was not picked-up.

Log File

file_home_skyy_Workspace_issue.log
service.log

@tomlau10
Copy link
Contributor

concerning the runtime.version / runtime.builtin issue
possibly related: #2566


The language server should :
...
Preload files that exceed 500kb

For this specific issue

I believe any unset values in your .luarc.json will use the default value

@UnderscoreSkyy
Copy link
Author

concerning the runtime.version / runtime.builtin issue possibly related: #2566

Yes exactly the issue I describe here.

The language server should :
...
Preload files that exceed 500kb

For this specific issue

* I think you want to set `"workspace.preloadFileSize": 2048,`
  https://luals.github.io/wiki/settings/#workspacepreloadfilesize
  Otherwise its default value is `500(KB)`

* while `workspace.maxPreload` is for setting **maximum number of preloaded files**
  https://luals.github.io/wiki/settings/#workspacemaxpreload

I believe any unset values in your .luarc.json will use the default value

My bad on this part thought I had the right configuration parameter after editing my .luarc.json file load correctly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants