Skip to content

Commit

Permalink
Fixed palette reference handling in LSP handlers
Browse files Browse the repository at this point in the history
 - Fixed palette hover handling ignoring map palettes
 - Fixed palette definition handling ignoring map palettes
  • Loading branch information
penev92 committed Oct 21, 2022
1 parent 8055c2d commit 6d69048
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ protected override IEnumerable<Location> HandleRulesValue(CursorTarget cursorTar
actorDefinitions = actorDefinitions.Union(mapSymbols.ActorDefinitions[cursorTarget.TargetString]);
weaponDefinitions = weaponDefinitions.Union(mapSymbols.WeaponDefinitions[cursorTarget.TargetString]);
conditionDefinitions = conditionDefinitions.Union(mapSymbols.ConditionDefinitions[cursorTarget.TargetString]);
paletteDefinitions = paletteDefinitions.Union(mapSymbols.PaletteDefinitions[cursorTarget.TargetString]);

spriteSequenceImageDefinitions = spriteSequenceImageDefinitions
.SelectMany(x => x)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ protected override Hover HandleRulesValue(CursorTarget cursorTarget)
var weaponDefinitions = modSymbols.WeaponDefinitions.Select(x => x.Key);
var conditionDefinitions = modSymbols.ConditionDefinitions.Select(x => x.Key);
var cursorDefinitions = modSymbols.CursorDefinitions.Select(x => x.Key);
var paletteDefinitions = modSymbols.PaletteDefinitions.Select(x => x.Key);
var paletteDefinitions = modSymbols.PaletteDefinitions;
var spriteSequenceImageDefinitions = modSymbols.SpriteSequenceImageDefinitions;

MapManifest mapManifest = default;
Expand All @@ -195,6 +195,12 @@ protected override Hover HandleRulesValue(CursorTarget cursorTarget)
actorDefinitions = actorDefinitions.Union(mapSymbols.ActorDefinitions.Select(x => x.Key));
weaponDefinitions = weaponDefinitions.Union(mapSymbols.WeaponDefinitions.Select(x => x.Key));
conditionDefinitions = conditionDefinitions.Union(mapSymbols.ConditionDefinitions.Select(x => x.Key));

// Merge mod symbols with map symbols.
paletteDefinitions = paletteDefinitions
.SelectMany(x => x)
.Union(mapSymbols.PaletteDefinitions.SelectMany(x => x))
.ToLookup(x => x.Name, y => y);
spriteSequenceImageDefinitions = spriteSequenceImageDefinitions
.SelectMany(x => x)
.Union(mapSymbols.SpriteSequenceImageDefinitions.SelectMany(x => x))
Expand Down Expand Up @@ -223,7 +229,7 @@ protected override Hover HandleRulesValue(CursorTarget cursorTarget)

if (fieldInfo.OtherAttributes.Any(x => x.Name == "PaletteReference") && paletteDefinitions.Contains(cursorTarget.TargetString))
{
var palette = modSymbols.PaletteDefinitions[cursorTarget.TargetString].First();
var palette = paletteDefinitions[cursorTarget.TargetString].First();
return HoverFromHoverInfo(palette.ToMarkdownInfoString(), range);
}

Expand Down

0 comments on commit 6d69048

Please sign in to comment.