LuaLS / LuaLS/lua-language-server
Large Lua files have "Not showing N further errors and warnings"
まだ誰も着手していません。
- 主要言語
- Lua
- スター
- 4.4k
- フォーク
- 442
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
### How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
### Which OS are you using?
Windows
### What is the issue affecting?
Diagnostics/Syntax Checking
### Problem
Related to: #1522
In large files, you can get into a situation where there are 0 errors reported in the errors pane except for "Not showing N further errors and warnings". Obviously, this makes it impossible to actually fix the errors, since you don't know what they are.
Thus, the bug seems to be that the Lua language server is incorrectly ignoring errors suppressed by the end-user, since they are still counting towards the 250 hardcoded (?) VSCode limit
### Reproduction steps
Use the following Lua file:
https://gist.github.com/Zamiell/d0ab9f0b9d0d48efe9a14c293e44f8f0/raw/272057baf5028400e2aefed958b8d31defb01f02/main.lua
With the following .luarc.json file:
```json
{
"$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
"diagnostics.globals": [
"ActionTriggers",
"ActiveSlot",
"BabySubType",
"BackdropType",
"BatterySubType",
"BedSubType",
"BitSet128",
"BombSubType",
"BombVariant",
"ButtonAction",
"CacheFlag",
"Card",
"Challenge",
"ChampionColor",
"ChestSubType",
"CoinSubType",
"CollectibleType",
"Color",
"CppContainer",
"DamageFlag",
"Difficulty",
"Direction",
"DoorSlot",
"DoorState",
"DoorVariant",
"EffectVariant",
"Entity",
"EntityBomb",
"EntityCollisionClass",
"EntityEffect",
"EntityFamiliar",
"EntityFlag",
"EntityGridCollisionClass",
"EntityKnife",
"EntityLaser",
"EntityNPC",
"EntityPartition",
"EntityPickup",
"EntityPlayer",
"EntityProjectile",
"EntityPtr",
"EntityRef",
"EntityTear",
"EntityType",
"FamiliarVariant",
"Font",
"Game",
"GameStateFlag",
"GetPtrHash",
"GridCollisionClass",
"GridEntity",
"GridEntityDesc",
"GridEntityDoor",
"GridEntityPit",
"GridEntityPoop",
"GridEntityPressurePlate",
"GridEntityRock",
"GridEntitySpikes",
"GridEntityTNT",
"GridEntityType",
"GridRooms",
"HUD",
"HeartSubType",
"Input",
"InputHook",
"Isaac",
"ItemConfig",
"ItemPool",
"ItemPoolType",
"ItemType",
"KColor",
"KeySubType",
"Keyboard",
"LaserOffset",
"LaserSubType",
"Level",
"LevelCurse",
"LevelStage",
"LevelStateFlag",
"LocustSubtypes",
"ModCallbacks",
"Mouse",
"Music",
"MusicManager",
"NpcState",
"NullItemID",
"Options",
"PathFinder",
"PickupPrice",
"PickupVariant",
"PillColor",
"PillEffect",
"PlayerForm",
"PlayerSpriteLayer",
"PlayerType",
"PlayerTypes",
"PoopPickupSubType",
"PoopSpellType",
"ProjectileFlags",
"ProjectileParams",
"ProjectileVariant",
"QueueItemData",
"REPENTANCE",
"RNG",
"Random",
"RandomVector",
"RegisterMod",
"RenderMode",
"Room",
"RoomConfig",
"RoomDescriptor",
"RoomShape",
"RoomTransitionAnim",
"RoomType",
"SFXManager",
"SackSubType",
"SeedEffect",
"Seeds",
"ShockwaveParams",
"SkinColor",
"SortingLayer",
"SoundEffect",
"Sprite",
"StageType",
"StartDebug",
"TearFlags",
"TearParams",
"TearVariant",
"TemporaryEffect",
"TemporaryEffects",
"TrinketType",
"UseFlag",
"Vector",
"WeaponType",
"AwaitingTextInput",
"EID",
"Encyclopedia",
"ModConfigMenu",
"MinimapAPI",
"StageAPI",
"g",
"gd",
"getParentFunctionDescription",
"sandboxGetTraceback",
"sandboxTraceback"
],
"preloadFileSize": 5000,
"runtime.version": "Lua 5.3"
}
```
Then, you will see that there are `Not showing 2551 further errors and warnings.` in the "Problems" pane of VSCode.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされた大きな main.lua ファイル、提供された .luarc.json、そして VS Code の Problems ペインを使って報告を再現し、その後、関連する issue #1522 と動作を比較します。diagnostics/syntax-checking のパスから始め、抑制された diagnostics が表示上限に引き続きカウントされる理由を特定します。完了の条件は、"Not showing N further errors and warnings" というメッセージだけが表示されるのではなく、本来の diagnostics に引き続きアクセスできることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- lua, vscode
- 領域
- devtools
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100