Merge pull request #578 from gpanders/highlight-uri
Only return highlights for symbols in current document
This commit is contained in:
		
						commit
						c632a7f29d
					
				@ -1144,11 +1144,14 @@ fn referencesDefinitionGlobal(
 | 
			
		||||
 | 
			
		||||
    const result: types.ResponseParams = if (highlight) result: {
 | 
			
		||||
        var highlights = try std.ArrayList(types.DocumentHighlight).initCapacity(server.arena.allocator(), locs.items.len);
 | 
			
		||||
        const uri = handle.uri();
 | 
			
		||||
        for (locs.items) |loc| {
 | 
			
		||||
            highlights.appendAssumeCapacity(.{
 | 
			
		||||
                .range = loc.range,
 | 
			
		||||
                .kind = .Text,
 | 
			
		||||
            });
 | 
			
		||||
            if (std.mem.eql(u8, loc.uri, uri)) {
 | 
			
		||||
                highlights.appendAssumeCapacity(.{
 | 
			
		||||
                    .range = loc.range,
 | 
			
		||||
                    .kind = .Text,
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        break :result .{ .DocumentHighlight = highlights.items };
 | 
			
		||||
    } else .{ .Locations = locs.items };
 | 
			
		||||
@ -1187,11 +1190,14 @@ fn referencesDefinitionFieldAccess(
 | 
			
		||||
    );
 | 
			
		||||
    const result: types.ResponseParams = if (highlight) result: {
 | 
			
		||||
        var highlights = try std.ArrayList(types.DocumentHighlight).initCapacity(server.arena.allocator(), locs.items.len);
 | 
			
		||||
        const uri = handle.uri();
 | 
			
		||||
        for (locs.items) |loc| {
 | 
			
		||||
            highlights.appendAssumeCapacity(.{
 | 
			
		||||
                .range = loc.range,
 | 
			
		||||
                .kind = .Text,
 | 
			
		||||
            });
 | 
			
		||||
            if (std.mem.eql(u8, loc.uri, uri)) {
 | 
			
		||||
                highlights.appendAssumeCapacity(.{
 | 
			
		||||
                    .range = loc.range,
 | 
			
		||||
                    .kind = .Text,
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        break :result .{ .DocumentHighlight = highlights.items };
 | 
			
		||||
    } else .{ .Locations = locs.items };
 | 
			
		||||
@ -1218,11 +1224,14 @@ fn referencesDefinitionLabel(
 | 
			
		||||
    try references.labelReferences(&server.arena, decl, server.offset_encoding, include_decl, &locs, std.ArrayList(types.Location).append);
 | 
			
		||||
    const result: types.ResponseParams = if (highlight) result: {
 | 
			
		||||
        var highlights = try std.ArrayList(types.DocumentHighlight).initCapacity(server.arena.allocator(), locs.items.len);
 | 
			
		||||
        const uri = handle.uri();
 | 
			
		||||
        for (locs.items) |loc| {
 | 
			
		||||
            highlights.appendAssumeCapacity(.{
 | 
			
		||||
                .range = loc.range,
 | 
			
		||||
                .kind = .Text,
 | 
			
		||||
            });
 | 
			
		||||
            if (std.mem.eql(u8, loc.uri, uri)) {
 | 
			
		||||
                highlights.appendAssumeCapacity(.{
 | 
			
		||||
                    .range = loc.range,
 | 
			
		||||
                    .kind = .Text,
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        break :result .{ .DocumentHighlight = highlights.items };
 | 
			
		||||
    } else .{ .Locations = locs.items };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user