/* Copyright (C) 2014-2019 de4dot@gmail.com This file is part of dnSpy dnSpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. dnSpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with dnSpy. If not, see . */ namespace dnSpy.Contracts.Decompiler { /// /// Contains a span, a reference and a reference id. Should be used for references to eg. keywords /// and is used by the Visual Basic decompiler to highlight eg. 'While', 'End While', etc. /// /// Normal clickable references should be created by calling /// . /// /// Use /// to add an instance. /// public readonly struct SpanReference { /// /// Gets the reference /// public object Reference { get; } /// /// Gets the span /// public TextSpan Span { get; } /// /// Id or null (eg. ). This is used to enable /// or disable the reference. If null, it's always enabled. /// public string? Id { get; } /// /// Constructor /// /// Reference /// Span /// Reference id or null, eg. public SpanReference(object reference, TextSpan span, string? id) { Reference = reference; Span = span; Id = id; } } }