@@ -16,12 +16,6 @@ public record StringReferenceContext(
1616 IDotNetImageService DotNetImageService
1717 ) ;
1818
19- public enum StringReferenceKind {
20- IL ,
21- Constant ,
22- Attribute
23- }
24-
2519 public abstract class StringReference ( StringReferenceContext context , string literal , object referrer ) : ViewModelBase {
2620 protected const FormatterOptions DefaultFormatterOptions = FormatterOptions . Default & ~ (
2721 FormatterOptions . ShowParameterNames
@@ -121,127 +115,4 @@ protected static class WriterCache {
121115 public static void FreeWriter ( TextClassifierTextColorWriter writer ) => writer . Clear ( ) ;
122116 }
123117 }
124-
125- public sealed class ILStringReference ( StringReferenceContext context , string literal , MethodDef referrer , uint offset )
126- : StringReference ( context , literal , referrer ) {
127-
128- public new MethodDef Referrer => ( MethodDef ) base . Referrer ;
129-
130- public override StringReferenceKind Kind => StringReferenceKind . IL ;
131-
132- public override ModuleDef Module => Referrer . Module ;
133-
134- public override MDToken Token => Referrer . MDToken ;
135-
136- public uint Offset { get ; } = offset ;
137-
138- public override IMemberRef Member => Referrer ;
139-
140- protected override FrameworkElement CreateReferrerUI ( ) {
141- var writer = WriterCache . GetWriter ( ) ;
142-
143- try {
144- Context . Decompiler . Write ( writer , Referrer , DefaultFormatterOptions ) ;
145- writer . Write ( TextColor . Punctuation , "+" ) ;
146- writer . Write ( TextColor . Label , $ "IL_{ Offset : X4} ") ;
147-
148- return Context . TextElementProvider . CreateTextElement (
149- Context . ClassificationFormatMap ,
150- new TextClassifierContext ( writer . Text , string . Empty , true , writer . Colors ) ,
151- ContentTypes . Search ,
152- TextElementFlags . FilterOutNewLines
153- ) ;
154- }
155- finally {
156- WriterCache . FreeWriter ( writer ) ;
157- }
158- }
159- }
160-
161- public sealed class ConstantStringReference ( StringReferenceContext context , string literal , IHasConstant referrer )
162- : StringReference ( context , literal , referrer ) {
163-
164- public new IHasConstant Referrer => ( IHasConstant ) base . Referrer ;
165-
166- public IMemberDef Container => Referrer switch {
167- FieldDef or PropertyDef => ( IMemberDef ) Referrer ,
168- ParamDef param => param . DeclaringMethod ,
169- _ => throw new ArgumentOutOfRangeException ( nameof ( Referrer ) ) ,
170- } ;
171-
172- public override StringReferenceKind Kind => StringReferenceKind . Constant ;
173-
174- public override ModuleDef Module => Container . Module ;
175-
176- public override MDToken Token => Referrer . MDToken ;
177-
178- public override IMemberRef Member => Container ;
179-
180- protected override FrameworkElement CreateReferrerUI ( ) {
181- var writer = WriterCache . GetWriter ( ) ;
182-
183- try {
184- Context . Decompiler . Write ( writer , Container , DefaultFormatterOptions ) ;
185-
186- if ( Referrer is ParamDef param ) {
187- WriteParameterReference ( writer , param ) ;
188- }
189-
190- return Context . TextElementProvider . CreateTextElement (
191- Context . ClassificationFormatMap ,
192- new TextClassifierContext ( writer . Text , string . Empty , true , writer . Colors ) ,
193- ContentTypes . Search ,
194- TextElementFlags . FilterOutNewLines
195- ) ;
196- }
197- finally {
198- WriterCache . FreeWriter ( writer ) ;
199- }
200- }
201- }
202-
203- public sealed class CustomAttributeStringReference ( StringReferenceContext context , string literal , IMDTokenProvider owner , CustomAttribute attribute )
204- : StringReference ( context , literal , owner ) {
205-
206- public CustomAttribute CustomAttribute { get ; } = attribute ;
207-
208- public override StringReferenceKind Kind => StringReferenceKind . Attribute ;
209-
210- public override ModuleDef Module => Member . Module ;
211-
212- public override MDToken Token => Owner . MDToken ;
213-
214- public IMDTokenProvider Owner { get ; } = owner ;
215-
216- public override IMemberRef Member => Owner switch {
217- ParamDef param => param . DeclaringMethod ,
218- IMemberRef reference => reference ,
219- _ => throw new ArgumentOutOfRangeException ( nameof ( Owner ) )
220- } ;
221-
222- protected override FrameworkElement CreateReferrerUI ( ) {
223- var writer = WriterCache . GetWriter ( ) ;
224-
225- try {
226- Context . Decompiler . Write ( writer , Member , DefaultFormatterOptions ) ;
227-
228- if ( Owner is ParamDef param ) {
229- WriteParameterReference ( writer , param ) ;
230- }
231-
232- writer . Write ( TextColor . Text , " in " ) ;
233- Context . Decompiler . Write ( writer , CustomAttribute . AttributeType , DefaultFormatterOptions ) ;
234-
235- return Context . TextElementProvider . CreateTextElement (
236- Context . ClassificationFormatMap ,
237- new TextClassifierContext ( writer . Text , string . Empty , true , writer . Colors ) ,
238- ContentTypes . Search ,
239- TextElementFlags . FilterOutNewLines
240- ) ;
241- }
242- finally {
243- WriterCache . FreeWriter ( writer ) ;
244- }
245- }
246- }
247118}
0 commit comments