2
2
using ICSharpCode . AvalonEdit . CodeCompletion ;
3
3
using RegexDialog . Services ;
4
4
using System ;
5
- using System . Collections . Generic ;
6
5
using System . Diagnostics ;
7
6
using System . Linq ;
8
7
using System . Threading . Tasks ;
@@ -193,116 +192,4 @@ public void Detach()
193
192
}
194
193
}
195
194
}
196
-
197
- // Attached behavior pour l'utilisation en XAML
198
- public static class RoslynCompletionBehaviorExtension
199
- {
200
- private static readonly Dictionary < TextEditor , RoslynCompletionBehavior > _behaviors = [ ] ;
201
-
202
- private static readonly Dictionary < TextEditor , RoslynSignatureHelpBehavior > _signatureHelpBehaviors = [ ] ;
203
-
204
- public static RoslynCompletionBehavior GetBehaviorForEditor ( TextEditor editor ) => _behaviors . TryGetValue ( editor , out RoslynCompletionBehavior behavior ) ? behavior : null ;
205
-
206
- public static RoslynSignatureHelpBehavior GetSignatureHelpBehaviorForEditor ( TextEditor editor ) => _signatureHelpBehaviors . TryGetValue ( editor , out RoslynSignatureHelpBehavior behavior ) ? behavior : null ;
207
-
208
- #region EnableCompletion Property
209
-
210
- public static readonly DependencyProperty EnableCompletionProperty =
211
- DependencyProperty . RegisterAttached (
212
- "EnableCompletion" ,
213
- typeof ( bool ) ,
214
- typeof ( RoslynCompletionBehaviorExtension ) ,
215
- new PropertyMetadata ( false , OnEnableCompletionChanged ) ) ;
216
-
217
- public static bool GetEnableCompletion ( DependencyObject obj )
218
- {
219
- return ( bool ) obj . GetValue ( EnableCompletionProperty ) ;
220
- }
221
-
222
- public static void SetEnableCompletion ( DependencyObject obj , bool value )
223
- {
224
- obj . SetValue ( EnableCompletionProperty , value ) ;
225
- }
226
-
227
- #endregion
228
-
229
- #region TemplateCode Property
230
-
231
- public static readonly DependencyProperty TemplateCodeProperty =
232
- DependencyProperty . RegisterAttached (
233
- "TemplateCode" ,
234
- typeof ( string ) ,
235
- typeof ( RoslynCompletionBehaviorExtension ) ,
236
- new PropertyMetadata ( string . Empty , OnTemplateCodeChanged ) ) ;
237
-
238
- public static string GetTemplateCode ( DependencyObject obj )
239
- {
240
- return ( string ) obj . GetValue ( TemplateCodeProperty ) ;
241
- }
242
-
243
- public static void SetTemplateCode ( DependencyObject obj , string value )
244
- {
245
- obj . SetValue ( TemplateCodeProperty , value ) ;
246
- }
247
-
248
- #endregion
249
-
250
- private static void OnEnableCompletionChanged ( DependencyObject d , DependencyPropertyChangedEventArgs e )
251
- {
252
- if ( d is not TextEditor editor )
253
- {
254
- return ;
255
- }
256
-
257
- var enableCompletion = ( bool ) e . NewValue ;
258
- var templateCode = GetTemplateCode ( editor ) ;
259
-
260
- if ( enableCompletion )
261
- {
262
- if ( ! _behaviors . ContainsKey ( editor ) )
263
- {
264
- var behavior = new RoslynCompletionBehavior ( editor , templateCode ) ;
265
- _behaviors [ editor ] = behavior ;
266
- }
267
-
268
- if ( ! _signatureHelpBehaviors . ContainsKey ( editor ) )
269
- {
270
- var signatureHelpBehavior = new RoslynSignatureHelpBehavior ( editor , templateCode ) ;
271
- _signatureHelpBehaviors [ editor ] = signatureHelpBehavior ;
272
- }
273
- }
274
- else
275
- {
276
- if ( _behaviors . TryGetValue ( editor , out var behavior ) )
277
- {
278
- behavior . Detach ( ) ;
279
- _behaviors . Remove ( editor ) ;
280
- }
281
-
282
- if ( _signatureHelpBehaviors . TryGetValue ( editor , out var signatureHelpBehavior ) )
283
- {
284
- signatureHelpBehavior . Detach ( ) ;
285
- _signatureHelpBehaviors . Remove ( editor ) ;
286
- }
287
- }
288
- }
289
-
290
- private static void OnTemplateCodeChanged ( DependencyObject d , DependencyPropertyChangedEventArgs e )
291
- {
292
- if ( d is not TextEditor editor )
293
- {
294
- return ;
295
- }
296
-
297
- if ( _behaviors . TryGetValue ( editor , out var behavior ) )
298
- {
299
- behavior . UpdateTemplateCode ( ( string ) e . NewValue ) ;
300
- }
301
-
302
- if ( _signatureHelpBehaviors . TryGetValue ( editor , out var signatureHelpBehavior ) )
303
- {
304
- signatureHelpBehavior . UpdateTemplateCode ( ( string ) e . NewValue ) ;
305
- }
306
- }
307
- }
308
195
}
0 commit comments